EnhancedGEM-Library Version 2.10 ----------------------------------- (c) 1994 Christian Grunenberg Wichtigste Žnderungen gegenber der letzten Version: ----------------------------------------------------- (genaue Žnderungen s. History und Anleitung) - mehr als 50 neue u. 12 ge„nderte Funktionen - neue Beispielprogramme zur Demonstration der Fensterroutinen (u.a. Resource-Previewer, Clipboard-Viewer, XClipboard und ein einfacher Datei-Viewer (Text, Image, ASCII-Dump)) - Light-Version der Library durch Definition des Makros 'SMALL_EGEM' - komplette Fensterverwaltung, u.a. optional Redraw und Scrolling durch die Library, Ikonifizierung (ICFS,MTOS und ansonsten ICFS-kompatibel dank Dirk Haun) - Untersttzung diverser Drag&Drop-Varianten als Empf„nger und Sender - Fensterdialoge k”nnen jetzt alle Fensterelemente besitzen - optimierte Ereignisverwaltung, u.a. schnellere Timer und gepufferte, interne Nachrichtenverwaltung sowie 4 Timer-Events - Clipboard-Protokoll an offizielle Version angepažt - System- (mit šberschrift)/Applikationsmodale Alertboxen, bis zu 16 Zeilen Text, Text der Alertbox optional mit allen Textattributen - Definition des View-Protokolls integriert - Eingabefelder in Dialogen k”nnen Text per ACC_TEXT empfangen - alle Eingabefelder eines Dialogs mit Shift-Esc l”schen - TriState-Checkboxen (Checkboxen mit TOUCHEXIT-Flag) - beliebige GDOS-Fonts/-Gr”žen sowie VDI-Schreibmodi bei Attribut-Text - nicht-proportionale GDOS-Fonts in Eingabefeldern, sofern dies vom AES untersttzt wird 1. Rechtliches: ----------------- EnhancedGEM ist inklusive aller Quelltexte (in C und Assembler) und (Beispiel-) Programme Freeware, d.h. jedermann/-frau darf EnhancedGEM beliebig oft und lang kopieren, benutzen und weitergeben. Allerdings darf das Archiv nur unver„ndert weitergegeben werden, d.h. u.a. drfen keine Dateien gel”scht oder Žnderungen/Erweiterungen in den Sourcen vorgenommen werden. PD-Versender oder kommerzielle Mailboxen, welche mit Gewinn arbeiten, drfen EnhancedGEM NICHT verbreiten, solange sich diese nicht ein schriftliche Genehmigung bei mir eingeholt haben. Eine kommerzielle Nutzung der Library fr Share- oder L”hnware ist unter- sagt, sofern sie nicht mit mir abgesprochen wurde! U.a. erwarte ich in diesem Fall entweder eine einmalige, geringe "Entsch„digung" oder alternativ eine geringe Beteiligung an der Sharewaregebhr bzw. dem Verkaufspreis (1 bis 2 Mark pro Stck bzw. abh„ngig vom Preis auch mehr oder weniger). Fr private Projekte sowie Freeware-, Fairware- oder PD- Software gelten diese Einschr„nkungen natrlich nicht. Fr die einwandfreie Funktionalit„t der Library kann und will ich nicht garantieren und bernehme daher keinerlei Verantwortung fr Sch„den je- glicher Art, die von der Library oder den beiliegenden Programmen verur- sacht werden. Die Benutzung von EnhancedGEM erfolgt somit auf EIGENE Gefahr! 2. Support: ------------- Die neueste Version der Library ist jeweils in der Maus Stuttgart 2 (Tel.: 0711-6364625) erh„ltlich oder kann direkt bei mir bezogen werden (frankierten und adressierten Rckumschlag an mich senden). Bei Fragen und/oder Fehlermeldungen kann man sich ebenfalls an mich wenden. Christian Grunenberg Traminerweg 5 D-71717 Beilstein Tel.: 07062 - 5287 (m”glichst nicht vor 12 Uhr) E-Mail: Christian Grunenberg@S2 (Mausnet) Christian_Grunenberg@S2.maus.de (Usenet) 3. F„higkeiten und Bedienung: ------------------------------- - Resource-Previewer - l„žt sich mit GNU-C, Pure C und Lattice C einsetzen - an MultiTOS, MiNT (Programme laufen u.a. in der MiNT-Domain), Mag!X (ab V2.0), Geneva sowie Winx (ab V2.1) angepažt - Definitionen der Protokolle XAcc2, AV, Men, Clipboard, View und Drag & Drop - XAcc2-, AV-, Clipboard- und Drag&Drop-Protokolle werden automatisch untersttzt - verbesserte Ereignis-Verwaltung mit 4 Rechteck-, 2 Button- und 4 Timer-Events sowie optimierte Pufferung von (Fenster-) Nachrichten bei ge”ffneten systemmodalen Dialogen oder Popups (u.a. werden mehrfache Nachrichten sowie Redraws zusammengefažt) - Fensterverwaltung und -funktionen: - Routinen zur Verwaltung von Fenstern (™ffnen, Schliežen, Setzen, Scrolling, Redraw, usw.) - Ikonifizieren von Fenstern unter MTOS (ab V1.07), MagiC (ab V3.00), Geneva, bei vorhandenem ICFS und ansonsten ICFS-kompatibel - ikonifizierte Darstellung (Titel und Icon) bei jedem Fenster optional w„hlbar - optional Redraw und Scrolling vollautomatisch - Untersttzung der Winx-Scrollboxen - im ikonifizierten Zustand werden alle Fensternachrichten auto- matisch ausgewertet - Fenster wechseln/schliežen (Hotkeys und Menpunkte definierbar) - Fensterfuller per Hotkey Ctrl-#* (* auf Ziffernblock) anw„hlbar - An-/Abmeldung der Fenster beim AV-Server - optionale Hintergrundbedienung unter allen TOS-Versionen - bei ge”ffneten systemmodalen Dialogen oder Popups werden Nach- richten und zu setzende Werte automatisch bis zum Schliežen der Dialoge/Popups gepuffert und dann an die Ereignisver- waltung weitergeleitet - Ikonififizierung von Fenstern bei vorhandenem ICFS-Server: (analog, falls weder MTOS- noch ICFS-Ikonifizierung vorhanden) - [Alternate]-Closer - ein einzelnes Fenster verkleinern (Hotkey: Ctrl-Space) - [Shift]-Closer - alle Fenster einzeln verkleinern (Hotkey: Ctrl-Shift-Space) - [Control]-Closer - alle Fenster in ein Fenster verkleinern - Mausklick in ein verkleinertes Fenster ”ffnet es wieder an der alten Position - einfache Menverwaltung: - An-/Abmeldung und (De-) Aktivierung der Menleiste - Menueintr„ge (de-) aktivieren sowie Mentitel (de-) selektieren - Abfrage, ob ein Drop-Down-Men heruntergeklappt ist - Dialogverwaltung: - unmodale/modale Fensterdialoge, fliegende und normale Dialoge - beliebig viele Fenster-/fliegende Dialoge gleichzeitig - Fensterdialoge k”nnen alle Fensterelemente des AES besitzen, wobei die zus„tzlichen Elemente von der Applikation gesetzt und ausgewertet werden mssen - fliegende Dialoge springen zur Mausposition bei Mausklick aužer- halb des Dialogs und fliegen optional bei Klick auf nicht-selek- tierbares Objekt (u.a. system-modale Alertboxen) - Rechtsklick auf Objekt im Vordergrund-Dialog (bei aktiver Hinter- grundbedienung auch im Hintergrund-Dialog) simuliert Doppelklick - Fensterdialoge durch zus„tzlich gedrckte rechte Maustaste im Hintergrund bedienbar (optional auch ohne rechte Maustaste) - Tastaturbedienung der Dialoge, wobei in Dialogen mit Edit-Feldern zus„tzlich die Alternate-Taste gedrckt werden muž (Doppelklick-Simulation durch zus„tzlich gedrckte Shift-Taste) - Tastendrcke optional zum Dialog unter dem Mauszeiger - erweiterte Alert-Funktion: - 18 vordefinierte Icons - benutzerdefinierte Icons beliebiger Gr”že - beliebig lange Zeilen und Buttons - Alert-Text optional mit allen Textattributen - maximal 16 Zeilen sowie 5 Buttons - Buttons ber Hotkey anw„hlbar (auch ohne Alternate-Teste) - Buttons linksbndig/rechtsbndig/zentriert sowie optional mit einheitlicher Breite - System- oder Applikationsmodal - erweiterte M”glichkeiten in Eingabe-Feldern - Text kann per ACC_TEXT-Nachricht eingegeben werden: - Ist der Text einzeilig und enth„lt keinen Zeilentrenner (CR,LF), so wird der Text an das aktuelle Eingabefeld angeh„ngt. Ansonsten wird der Text eingefgt und mit jedem Zeilentrenner wird zum n„chsten Eingabefeld gesprungen, so daž durch die šbergabe eines mehrzeiligen Textes z.B. alle Eingabefelder ausgefllt werden k”nnen - exakte Cursorpositionierung per Maus - Mauscursor wird ber Eingabefeldern zum Textcursor - Enth„lt die Eingabemaske eines der Zeichen ',.;:\/' und wird dieses Zeichen eingegeben, wenn der Cursor VOR diesem Zeichen steht, so wird das Eingabefeld bis zu diesem Zeichen mit Leerzeichen gefllt und der Cursor hinter dieses Zeichen gesetzt (Beispiel: Punkt '.' in Dateimasken) - erstes/letzes Eingabefeld (Home/Shift-Home, Shift-Up/Down) - Wort vor/zurck (Ctrl-Left/Right) - Anfang/Ende des Eingabesfeldes (Shift-Left/Right) - vorheriges Eingabesfeld (Up,Shift-Tab/Enter/Return) - n„chstes Eingabefeld (Down/Tab/Enter) - Cursor ein Zeichen nach links/rechts (Left/Right) - Eingabefeld l”schen (Esc) - alle Eingabefelder l”schen (Shift-Esc) - Eingabefeld ab Cursor l”schen (Shift-Del) - Eingabefeld bis Cursor l”schen (Shift-Backspace) - Eingabebox fr alle Ascii-Zeichen (Shift-Insert) - Sonderzeicheneingabe durch Eingabe des dezimalen ASCII-Wertes bei gedrckter Alternate-Taste auf dem Ziffernblock => sofern der ASCII-Wert nicht eindeutig ist (ASCII<=25), mssen alle drei Stellen (evtl. mit fhrenden Nullen) eingegeben werden - Undo (Undo bzw. Shift-Undo, sofern Undo-Button vorhanden) - History-Funktion der letzten eingegebenen Texte (Ctrl-Up/Down) => mit Shift-Taste: Text in History suchen - Clipboarduntersttzung: => mit Shift-Taste: Text an Clipboard/Eingabe-Feld anh„ngen -> Ctrl-X: Text ausschneiden und in Clipboard ablegen -> Ctrl-C: Text in Clipboard ablegen -> Ctrl-V: Text in Eingabefeld einfgen - Einfge-/šberschreibenmodus (Insert) => Strich-/Block-Cursor - neue zus„tzliche Gltigkeitsmasken in Eingabefeldern: 'c','C': Ziffern "0-9", Komma ".,", Rechenzeichen "+-*/^", Klammern "(){}[]" 'l','L': LED-Ziffern "0-9" '': Ziffer='0'-'9' alle Ziffern von '0' bis , z.B. '1': Bin„rziffern '7': Oktalziffernn '9': Dezimalziffern 'h','H': Hexadezimalziffern "0-9A-F", Umwandlung in Klein/Grožbuchstaben 'u','U': ASCII 32-127, Umwandlung in Klein-/Grožbuchstaben 'v','V': ASCII 32-255, Umwandlung in Klein-/Grožbuchstaben 'w','W': ASCII 32-127 'y','Y': ASCII 32-255 - gr”žtenteils automatische Anpassung (sofern m”glich) der eingegeben Zeichen an Gltigkeitsmaske - kleiner/grožer System-Font k”nnen in Eingabefeldern benutzt werden. Untersttzt das AES auch nicht-proportionale GDOS-Fonts, so k”nnen diese ebenfalls in Eingabefeldern verwendet werden. - Bedeutung von Return wahlweise - Return selektiert DEFAULT-Objekt - Return springt zum n„chsten Eingabefeld (zyklisch) - Return selektiert beim letzten Eingabefeld das DEFAULT-Objekt - Cookie-/Scrap-/Resource- u. Environment-Library - einfache Funktionen zur Verwaltung von Pfad-/Dateinamen sowie zum Aufruf des Fileselectors - erweiterte Rectangle- & Object-Library (u.a. von PC-GEM 2.0), u.a. - Bildschirmbereiche kopieren, l”schen, invertieren, sichern und wiederherstellen - viele erweiterte Objekte: - Radio-Buttons - (TriState-) Check-Buttons - Cycle-Buttons fr Popups - Help-Button - Undo-Button - Text mit Attributen - unterstrichen,kursiv,umrandet,schattiert,fett,hell,klein/grož - beliebige GDOS-Fonts und Gr”že w„hlbar (unabh„ngig vom AES!) - Rahmen mit Titel - Titel (=unterstrichener Text) - beliebige Strichdicke, optional doppelt unterstrichen - Flugecke - Slider-Arrows (opt. umrandet) - Niceline - opt. von Eingabefeldern abh„ngiges DEFAULT-Objekt - unmodale und modale Objekte, d.h. die Objekte kommen nur in (un-) modalen Dialogen vor - usw. - Echtzeitgummiband/-schieber mit halb- oder vollautomatischer Ver- waltung bzw. Ereignisauswertung sowie optionaler Tastaturbedienung - variable Popup-Mens (vollst„ndig tastaturbedienbar (Hotkeys), frei positionierbar) - Hotkeys (unterstrichener Buchstabe, optional mit gedrckter Alternate-Taste) - vorheriger Eintrag (Cursor links/hoch) - n„chster Eintrag (Cursor rechts/runter) - erster Eintrag (Home) - letzter Eintrag (Shift-Home) - Abbruch (Escape/Undo) - aktuellen Eintrag ausw„hlen (Space,Return) - Dialogoptik in weiten Grenzen variierbar: - Hintergrundbox (Muster,Farbe,Rahmen) - Flugecke wird an Hintergrundbox angepažt - Rahmen (Schrift einfach/doppelt umrandet,Schriftgr”že) - Titel-Unterstrich (L„nge,Dicke,einfach/doppelt unterstrichen) - Farben der erweiterten Objekte - viele Varianten der Radio-/Check/Cycle-Buttons sowie Sliderpfeile - usw. - sauber programmiert, d.h. unabh„ngig von - Computer ((MEGA) ST/STE,TT,Falcon,Emulator usw.) - Aufl”sung und Anzahl der Farben - Betriebsystem (TOS,MTOS,MiNT,MagiC,Geneva,MultiGEM usw.) - VDI/GDOS-Treiber - Gr”že des System-Fonts - usw. 4. Benutzung der Library: --------------------------- Durch die beiliegenden, kommentierten Beispielprogramme, welche einen Teil der F„higkeiten demonstrieren, sowie die Dokumentation der Funktionen, Variablen und Strukturen bzw. Konstanten in der Datei 'MANUAL.TXT' bzw. dem Hypertext 'E_GEM.HYP' sollte die Verwendung der Library kein gr”žeres Problem darstellen. Eine weitere Hilfe sind sicherlich die ver”ffentlichten Quelltexte der Library sowie der WinLupe als weiteres Beispielprogramm. Sollte jemand dennoch Probleme mit oder Fragen bzgl. der Library haben, so kann er sich an mich wenden. 5. Bisherige EnhancedGEM-Applikationen: ----------------------------------------- (abgesehen von weniger ntzlichen Beispielprogrammen) - WindowViewer (Datei-Viewer als kommentiertes Beispielprogramm,PD) - ClipboardViewer (Clipboardviewer als kommentiertes Beispielprogramm,PD) - XClipboard (XClipboard-Clone,PD) - PreView (Resource-Previewer,PD) - WinLupe (saubere Bildschirmlupe,PD) - LZH-Shell (Shell zu LHarc,Fairware) - ESS-Code (GEM-UUencoder/-decoder,Shareware) von Michel Forget - Before Dawn (Bildschirmschoner,Shareware) von Arne Rudolph - PLZ (Postleitzahlenkonvertierer,PD) von Andreas Schrell - DB-Log (Loginstatistik-Programm zur D-Box,PD) von Arne Konopinski - PassThru (Desktoperweiterung,PostCardWare) von Florian Erhard - 800XL Deejay (800XL-Laufwerksemulator,PD) von Kolja Koischwitz - ACP (Another Crude Player,Freeware) von Carsten Tolkmit - Thor (GEM-Variante des Spiels Thor,Shareware) von Jean-Jaques Michel - GDOS-Print (Ausdrucken ber GDOS, PD) von Steffan Kaminski in Arbeit: - Simpl (Texteditor mit Highlighting,PD) von Frank Laus - Laborant professionell (Chemie-Analyseprogramm,PD) von Jens Schulz - u.a. 6. Zukunft ------------ In Abh„ngigkeit von meiner Lust, der vorhandenen Zeit, der Resonanz auf diese Library und der Anzahl der ver”ffentlichten EnhancedGEM-Appli- kationen sind fr die Zukunft folgende Dinge geplant: - Fenster-Mens - Font-Selector-Box - Listboxen - Text-Fenster - Toolbars - Werteingabefelder - scrollbare Eingabefelder - neue erweiterte Objekttypen - Untersttzung der Help-, View- und Men-Protokolle - usw...