
                      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 genderte 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 Empfnger und Sender
 - Fensterdialoge knnen jetzt alle Fensterelemente besitzen
 - optimierte Ereignisverwaltung, u.a. schnellere Timer und gepufferte,
   interne Nachrichtenverwaltung sowie 4 Timer-Events
 - Clipboard-Protokoll an offizielle Version angepat
 - 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 knnen Text per ACC_TEXT empfangen
 - alle Eingabefelder eines Dialogs mit Shift-Esc lschen
 - TriState-Checkboxen (Checkboxen mit TOUCHEXIT-Flag)
 - beliebige GDOS-Fonts/-Gren 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 unverndert weitergegeben werden, d.h.
 u.a. drfen keine Dateien gelscht 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 Lhnware ist unter-
 sagt, sofern sie nicht mit mir abgesprochen wurde! U.a. erwarte ich in
 diesem Fall entweder eine einmalige, geringe "Entschdigung" oder
 alternativ eine geringe Beteiligung an der Sharewaregebhr bzw. dem
 Verkaufspreis (1 bis 2 Mark pro Stck bzw. abhngig vom Preis auch mehr
 oder weniger). Fr private Projekte sowie Freeware-, Fairware- oder PD-
 Software gelten diese Einschrnkungen natrlich nicht.

 Fr die einwandfreie Funktionalitt der Library kann und will ich nicht
 garantieren und bernehme daher keinerlei Verantwortung fr Schden 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) erhltlich 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 (mglichst nicht vor 12 Uhr)

     E-Mail:
     Christian Grunenberg@S2 (Mausnet)
     Christian_Grunenberg@S2.maus.de (Usenet)

 3. Fhigkeiten und Bedienung:
-------------------------------

    - Resource-Previewer
    - lt 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) angepat
    - 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 geffneten systemmodalen Dialogen oder Popups (u.a. werden
      mehrfache Nachrichten sowie Redraws zusammengefat)

    - Fensterverwaltung und -funktionen:
        - Routinen zur Verwaltung von Fenstern (ffnen, Schlieen, 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 whlbar
        - optional Redraw und Scrolling vollautomatisch
        - Untersttzung der Winx-Scrollboxen
        - im ikonifizierten Zustand werden alle Fensternachrichten auto-
          matisch ausgewertet
        - Fenster wechseln/schlieen (Hotkeys und Menpunkte definierbar)
        - Fensterfuller per Hotkey Ctrl-#* (* auf Ziffernblock) anwhlbar
        - An-/Abmeldung der Fenster beim AV-Server
        - optionale Hintergrundbedienung unter allen TOS-Versionen
        - bei geffneten systemmodalen Dialogen oder Popups werden Nach-
          richten und zu setzende Werte automatisch bis zum Schlieen
          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
        - Menueintrge (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 knnen alle Fensterelemente des AES besitzen,
          wobei die zustzlichen Elemente von der Applikation gesetzt und
          ausgewertet werden mssen
        - fliegende Dialoge springen zur Mausposition bei Mausklick auer-
          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 zustzlich gedrckte rechte Maustaste im
          Hintergrund bedienbar (optional auch ohne rechte Maustaste)
        - Tastaturbedienung der Dialoge, wobei in Dialogen mit Edit-Feldern
          zustzlich die Alternate-Taste gedrckt werden mu
          (Doppelklick-Simulation durch zustzlich gedrckte Shift-Taste)
        - Tastendrcke optional zum Dialog unter dem Mauszeiger

    - erweiterte Alert-Funktion:
        - 18 vordefinierte Icons
        - benutzerdefinierte Icons beliebiger Gre
        - beliebig lange Zeilen und Buttons
        - Alert-Text optional mit allen Textattributen
        - maximal 16 Zeilen sowie 5 Buttons
        - Buttons ber Hotkey anwhlbar (auch ohne Alternate-Teste)
        - Buttons linksbndig/rechtsbndig/zentriert sowie optional
          mit einheitlicher Breite
        - System- oder Applikationsmodal

    - erweiterte Mglichkeiten in Eingabe-Feldern
        - Text kann per ACC_TEXT-Nachricht eingegeben werden:
            - Ist der Text einzeilig und enthlt keinen Zeilentrenner
              (CR,LF), so wird der Text an das aktuelle Eingabefeld
              angehngt. Ansonsten wird der Text eingefgt und mit jedem
              Zeilentrenner wird zum nchsten Eingabefeld gesprungen, so
              da durch die bergabe eines mehrzeiligen Textes z.B.
              alle Eingabefelder ausgefllt werden knnen
        - exakte Cursorpositionierung per Maus
        - Mauscursor wird ber Eingabefeldern zum Textcursor
        - Enthlt 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)
        - nchstes Eingabefeld (Down/Tab/Enter)
        - Cursor ein Zeichen nach links/rechts (Left/Right)
        - Eingabefeld lschen (Esc)
        - alle Eingabefelder lschen (Shift-Esc)
        - Eingabefeld ab Cursor lschen (Shift-Del)
        - Eingabefeld bis Cursor lschen (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 anhngen
            -> 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 zustzliche Gltigkeitsmasken in Eingabefeldern:
            'c','C': Ziffern "0-9", Komma ".,", Rechenzeichen "+-*/^",
                     Klammern "(){}[]"
            'l','L': LED-Ziffern "0-9"
            '<Ziffer>': Ziffer='0'-'9'
                     alle Ziffern von '0' bis <Ziffer>, z.B.
                     '1': Binrziffern
                     '7': Oktalziffernn
                     '9': Dezimalziffern
            'h','H': Hexadezimalziffern "0-9A-F",
                     Umwandlung in Klein/Grobuchstaben
            'u','U': ASCII 32-127, Umwandlung in Klein-/Grobuchstaben
            'v','V': ASCII 32-255, Umwandlung in Klein-/Grobuchstaben
            'w','W': ASCII 32-127
            'y','Y': ASCII 32-255
        - grtenteils automatische Anpassung (sofern mglich) der
          eingegeben Zeichen an Gltigkeitsmaske
        - kleiner/groer System-Font knnen in Eingabefeldern benutzt
          werden. Untersttzt das AES auch nicht-proportionale GDOS-Fonts,
          so knnen diese ebenfalls in Eingabefeldern verwendet werden.
        - Bedeutung von Return wahlweise
            - Return selektiert DEFAULT-Objekt
            - Return springt zum nchsten 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, lschen, 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 Gre whlbar (unabhngig vom AES!)
        - Rahmen mit Titel
        - Titel (=unterstrichener Text)
            - beliebige Strichdicke, optional doppelt unterstrichen
        - Flugecke
        - Slider-Arrows (opt. umrandet)
        - Niceline
        - opt. von Eingabefeldern abhngiges 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 (vollstndig tastaturbedienbar (Hotkeys),
      frei positionierbar)
        - Hotkeys (unterstrichener Buchstabe, optional mit gedrckter
          Alternate-Taste)
        - vorheriger Eintrag (Cursor links/hoch)
        - nchster Eintrag (Cursor rechts/runter)
        - erster Eintrag (Home)
        - letzter Eintrag (Shift-Home)
        - Abbruch (Escape/Undo)
        - aktuellen Eintrag auswhlen (Space,Return)

    - Dialogoptik in weiten Grenzen variierbar:
        - Hintergrundbox (Muster,Farbe,Rahmen)
        - Flugecke wird an Hintergrundbox angepat
        - Rahmen (Schrift einfach/doppelt umrandet,Schriftgre)
        - Titel-Unterstrich (Lnge,Dicke,einfach/doppelt unterstrichen)
        - Farben der erweiterten Objekte
        - viele Varianten der Radio-/Check/Cycle-Buttons sowie Sliderpfeile
        - usw.

    - sauber programmiert, d.h. unabhngig von
        - Computer ((MEGA) ST/STE,TT,Falcon,Emulator usw.)
        - Auflsung und Anzahl der Farben
        - Betriebsystem (TOS,MTOS,MiNT,MagiC,Geneva,MultiGEM usw.)
        - VDI/GDOS-Treiber
        - Gre des System-Fonts

    - usw.

 4. Benutzung der Library:
---------------------------

 Durch die beiliegenden, kommentierten Beispielprogramme, welche einen Teil
 der Fhigkeiten 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 greres
 Problem darstellen.

 Eine weitere Hilfe sind sicherlich die verffentlichten 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 Abhngigkeit von meiner Lust, der vorhandenen Zeit, der Resonanz auf
 diese Library und der Anzahl der verffentlichten 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...
