home *** CD-ROM | disk | FTP | other *** search
- History
- ==========================================================================
- Date Beschreibung
- --------------------------------------------------------------------------
- 30-05 Version 1.22
- --------------------------------------------------------------------------
- - Bugfix: SysGem fährt nicht mehr in den Keller, wenn die
- Memory-Protection aktiv ist
-
- - Neue Funktion: VOID EnableTimer ( VOID );
- Schaltet die Timer ein. Wird diese Funktion nicht aufgerufen,
- sind __keine__ Timer möglich!!!
-
- - Neue Funktion: VOID DisableTimer ( VOID );
- Schaltet __alle__ Timer ab.
-
- --------------------------------------------------------------------------
- 28-05 Version 1.21
- --------------------------------------------------------------------------
-
- - Neue Funktion: UseBlanks ( BOOL use );
- Füllt einen Text, der mit SetText in ein TEXT-Feld gesetzt
- wird, mit Leerzeichen auf die volle Länge auf.
- Bei 'use == 0' wird nicht mit Leerzeichen aufgefüllt.
-
- - Neue Funktionen:
- INT BeginDialog ( LONG win_id, OBJECT *tree, INT ed, BYTE *title );
- INT HdlDialog ( LONG win_id );
- VOID FinishDialog ( LONG win_id );
-
- Die Programmausführung wird gestoppt. BeginDialog liefert 1,
- wenn das Fenster geöffnet wurde, und 0, wenn kein Fenster mehr
- zur Verfügung steht.
-
- Allerdings sollte - bevor Sie diese Funktionen wählen - besser
- DoDialog oder WindowDialog genommen werden, da komfortabler.
- (jan kriesten@gi)
-
- - Neue Funktion: DispatchEvents ();
- Führt einmal HandleSysGem aus und kehrt zurück. Ist notwendig,
- damit bei viel Rechnerei z.b. auch auf Redraw etc. reagiert
- werden kann. Eventuell gesetzte Timer werden ignoriert.
- (jan kriesten@gi)
-
- - Nachtrag: Leider habe ich verpennt zu dokumentieren, daß die
- Id eines Fenster _nicht_ 0L sein darf! Sie muß also angegeben
- werden und für jedes Fenster _eindeutig_ sein!
- (Heinz Kißler@N)
-
- - Neue Funktion:
- SetWatch ( RECT *r, INT enter, WPROC proc );
- WatchWindow ( LONG win_id, INT enter, WPROC proc );
-
- SetWatch definiert einen Bildschirmbereich, der überwacht
- werden soll. WatchWindow definiert den Bereich eines Fensters,
- der überwacht wird. Evtl. Verschieben der Fenster wird
- berücksichtigt. (maries@baub.bwk.tue.nl)
-
- - Bugfix: In ganz bestimmten Konstellationen war es möglich,
- daß der Textcursor im Hintergrundfenster immer noch sichtbar
- war. (Heinz Kißler@N)
-
- - Bugfix: In Portab.h war BYTE als unsigned char und CICON als
- BYTE (benutze ich...) deklariert. (Thorsten Dietrichkeit@wü)
-
- - Neue Funktion: SearchProgram ( BYTE *prg_name );
- Sucht ein Programm im Speicher und liefert die AES-Id zurück,
- oder -1, wenn nicht gefunden. Beispiel:
- SearchProgram ( "GEMINI" );
-
- - Neue Verwaltung: Jedes Fenster kann nun seinen eigenen Timer
- haben! Die jeweilige Handler-Funktion wird dann mit der
- Nachricht SG_TIMER aufgerufen. Die Zeitspanne ist mit
- SetWindowTimer einstellbar. (jan kriesten@gi)
-
- - Neue Funktion: SetDispatchTime ( INT ms_low, INT ms_high );
- Setzt die Zeitspanne, nach der geschaut werden soll, ob für
- die Fenster oder für das System (SetProcTimer) ein Timer-Event
- vorliegt. Seht standardmäßig auf 50 ms. Kann aber beliebig
- eingestellt werden, je nachdem, ob man es braucht, oder
- nicht. (Thorsten Bergner@b)
-
- - In den Textfenstern können nun auch die Zeilen farbig darge-
- stellt werden. Dazu wird das [1]-Element des Strings benutzt.
- Es liegen jetzt also die Effekte auf [0], die Farbe auf [1]
- und der erste Buchstabe auf [2]. (balun@gold.ba-stuttgart.de)
-
- - Neue Verwaltung: Ist ein Fenster noch nicht vollständig ge-
- zeichnet worden, oder iconifiziert, werden alle redraws via
- RedrawObj vollständig ignoriert.
-
- - Neue Funktion: UseMTosIconify ( BOOL use );
- Ist für den Einsatz unter AES >= 4.1 gedacht und schaltet die
- "echte" Iconifizierung unter MTos ein.
-
- --> Da bei mir das AES 4.1 nicht zum laufen zu kriegen ist, bitte
- vorher testen! Ansonsten den Schalter einfach vergessen;
- als Voreinstellung ist die Iconifizierung via SysGem aktiv.
- (Dirk Hagedorn@pb)
-
- --------------------------------------------------------------------------
- 21-05 Version 1.20
- --------------------------------------------------------------------------
- - Bugfix: Bei der Listbox werden jetzt Einträge, die länger sind
- als der Ausgangstext, abgeschnitten. Ausserdem können jetzt
- die Listboxen nicht mehr außerhalb des Bildschirms erscheinen.
-
- - Bugfix: PopUp's können nicht mehr außerhalb des Bildschirms
- erscheinen.
-
- - Bugfix: Frames wurden unter MTOS in Monochrom nur halb ge-
- zeichnet (mist Farben...)
-
- - Bugfix: Unter ganz bestimmten Umständen konnte es passieren,
- daß nach TerminateSysGem eine eventuelle Alertbox nicht mehr
- erschienen ist.
-
- - Neue Funktion: ShortCutColor ( INT color );
- Setzt die Farbe, in der die Unterstriche gezeichnet werden.
- Standardmäßig auf RED gesetzt.
-
- - Bugfix: Unter Umständen "übersah" die Lib den DISABLED-Status
- eines Objektes, was sich nett bemerkbar machen konnte...
-
- - Bugfix: Der Rückgabewert SG_TERM bei der Handler-Funktion der
- Hauptmenüzeile wird nun korrekt verarbeitet und nicht mehr in
- die Tonne gelenkt...
-
- - Bugfix: Redrawfehler bei Popup und G_STRING behoben.
-
- - Feature: Wird bei DoDialog oder WindowDialog als Editfeld
- eine -2 übergeben, sucht sich SysGem das erste Editfeld im
- Dialog und setzt den Cursor entsprechend. Bei anderen Werten
- (<= 0) sind _keine_ Eingaben im Dialog möglich. Bei Werten > 0
- geht SysGem davon aus, daß der Cursor in das angegebene Editfeld
- (Objektnummer) setzen soll.
-
- - Nachtrag: In einer Multitasking-Umgebung setzt SysGem immer
- die Programm-Id als "[xxxx]" vor den Fenstertitel, damit der
- Benutzer weis, woher denn und zu wem das Fenster gehört. Sollte
- dies nicht gewollt sein, dann einfach ein '|' als erstes
- Zeichen für den Fenstertitel übergeben.
-
- - Da manchen die Überschrift "Alert" für die Alertbox nicht
- gefallen hat, kann nun mit: SetAlertTitle ( BYTE *s ); ein
- max. 20 Zeichen langer Text angegeben werden, der dann als
- Alert-Überschrift erscheint.
-
- - Objekte vom Typ G_ICON und G_IMAGE werden nun nicht mehr
- automatisch mit den 3D-Flags versehen. Dies scheint wohl auf
- ziemliche Kritik gestossen zu sein. Wer jetzt 3D haben will,
- muß es halt selber machen...
-
- - Neue Meldung: SG_MOVED. Diese wird verschickt, wenn sich die
- Lage eines Fensters geändert hat, SG_SIZED wird nur noch bei
- einer Größenänderung verschickt.
-
- Bei SG_INVISIBLE kann nun auch SG_ABORT zurückgegeben werden,
- wenn man verhindern will, daß das betreffende Fenster ausge-
- blendet wird. Alle anderen Werte führen zum Ausblenden des
- Fensters.
-
- - Es war möglich, mehrere Fenster mit der gleichen Id zu öffnen,
- Wird jetzt versucht, ein Fenster zu öffnen, dessen Id es
- schon gibt, wird das jeweilige Fenster getoppt und die Funktion
- kehrt mit einem Fehler zurück. Das Fenster wird _nicht_
- geöffnet.
-
- - LinkTree ( ..., pos );
-
- NOCHMAL zur Verdeutlichung: Es müssen BÄUME gelinkt werden;
- bei der Positionierung und Anpassung wird immer auf Element 0
- zugegriffen. Teilbäume können in die Hose gehen!
-
- - WINDOW_INFO.work_area wird von fast allen Programmen benutzt,
- um die Fenstergröße zu speichern. Deshalb neu eingeführt:
- draw_area. Enthält den Arbeitsbereich eines Fensters ohne die
- eventuell eingehängten Bäume. Sollte anstatt work_area zum
- neuzeichnen benutzt werden.
-
- - Neue Funktion: SetWinMinSize ( LONG win_id, INT w, INT h );
- ...setzt die Minimale Größe des Fensters. Hilfreich, wenn
- Bäume drin sind...
-
- - Neue Funktion: OpenLogWindow
- Öffnet ein Fenster, in das man mit wprintf schreiben kann.
- Es können beliebig viele Fenster geöffnet werden... Warum
- die Funktion genommen werden muß? Weil nur hier die Cursor-
- verwaltung und alles drin ist... ;-)))
-
- - Neue Funktion: wprintf ( LONG id, BYTE *format, ... );
- Schreibt in das (mit OpenLogWindow geöffnete) Fenster mit der
- id 'Id' den angegeben String. Der Format-String ist identisch
- mit dem bei printf. Es gibt aber noch folgende ESC-Sequenzen:
-
- ESC p - Fett (Invers-Ersatz) ein
- ESC q - Fett (Invers-Ersatz) aus
- ESC + - Unterstreichen ein
- ESC - - Unterstreichen aus
- ESC ( - Kursiv ein
- ESC ) - Kursiv aus
- ESC e - Cursor an
- ESC f - Cursor aus
- ESC E - ClearScreen; Cursor auf Ursprung (x = 0, y = 0)
-
- - Neue Funktion: wcls ( LONG id );
- Löscht das Fenster mit der id 'id'. Identisch mit ESC E.
-
- - Neue Funktion: wposxy ( LONG id, INT x, INT y );
- Positioniert den Textcursor im Fenster 'id' bei x, y.
- Fehlerhafte Koordinaten werden auf 0 gesetzt.
-
- - Neue Funktion: VOID wgetxy ( LONG win_id, INT *x, INT *y );
- Liefert die Position des Cursors im entsprechenden Fenster.
-
- - Neue Funktion: IsVisible ( INT handle );
- Liefert TRUE, wenn der Arbeitsbereich des Fensters komplett
- sichtbar ist.
-
- - Neue Verwaltung: Wird im Fenster mittels Arrow's gescrollt,
- verschiebt SysGem selbstständig den Fensterinhalt.
-
- - Neue Verwaltung: Tastendrücke ins Fenster werden jetzt etwas
- anders gehandhabt. Es wird (in dieser Reihenfolge) geprüft:
-
- + Shortcut?
- + Fenstermenükürzel?
- + Hauptmenükürzel?
- + --> Taste an Fenster schicken. Wenn das Fenster Editfelder
- besitzt, dann Zeichen einfügen. Ansonsten schicken...
- Fenster braucht Taste nicht?
- --> dann SG_KEY an Hauptmenüzeile, vielleicht kann die was
- damit anfangen....
-
- - Neue Funktion: BYTE *LinkList ( LONG win_id, BYTE *text );
- "Hängt" eine Textliste in ein Fenster ein. Die Lib passt den
- Dokumentbereich automatisch an und kümmert sich selbstständig
- um Redraw- und Scroll-Operationen. Dabei ist win_id die Id
- des Fensters und text ein Zeiger auf den Text, der als erste
- Zeile im Fenster erscheinen soll. Es wird ein Zeiger zurück-
- geliefert, wo der Text anschließend zu finden ist. Das [0]
- Element des Strings ist dabei zur freien Verfügung. ist der
- Wert >= 0, übernimmt SysGem den Wert nach vst_effects. Es
- können also einzelne Zeilen Fett, Unterstrichen usw. darge-
- gestellt werden. Ist [0] < 0, ignoriert SysGem den Wert.
- Man kann dann eigene Flags einsetzten.
-
- - Neue Funktion: BYTE *AddToList ( LONG win_id, BYTE *text );
- Hängt den Text an die bereits existierende Liste des Fensters
- Win_id an. Rückgabe siehe LinkText.
-
- - Neue Funktion: BYTE *ChgInList ( LONG win_id, INT line, BYTE *text );
- Ersetzt den Text in zeile 'line' durch 'text' im Fenster 'win_id'
- Ist 'text' == NULL, liefert die Funktion den Zeiger auf das
- [0] Element des bestehenden Textes.
-
- - Neue Funktion: VOID ChangeButton ( OBJECT *tree, INT obj, BYTE *text, BOOL draw );
- Ersetzt den Buttontext im Baum 'tree' durch 'text' und zeichnet,
- wenn draw == TRUE, den Button auch gleich wieder neu. Da die
- Verwaltung der Buttons in SysGem >= 1.10 eine andere als in den
- Vorgängerversionen ist, muß ein Buttontext über diese Funktion
- geändert werden.
-
- - Neue Verwaltung: Bei Sliderboxen werden nun auch Nachrichten
- verschickt, damit evtl. Selektionen richtig bearbeitet werden
- können (hi Jan!). Dazu gibt es folgende Nachrichten:
-
- SG_SLID_UP
- SG_SLID_DN
- SG_SLID_MV
- SG_SLID_PGUP
- SG_SLID_PGDN
-
- 'button' enthält dabei die neue oberste Zeile in der Slider-
- box, dialog_info.special enthält die objektnummer der Box,
- damit bei mehreren Sliderboxen im Dialog unterschieden werden
- kann, welche gemeint ist.
-
- Nach Rückkehr dieser Nachricht werden die Einträge dann neu
- gezeichnet.
-
- - Neue Funktion: BYTE wgetchar ( LONG win_id, INT x, INT y, INT *effect );
- Liefert das Zeichen, daß sich im Fenster 'win_id' an der
- Position x, y befindet. Ist 'effect' != NULL, enthält sie
- nach dem Aufruf eventuell gesetzte Stati (fett etc.)
-
- - Neue Funktion: Display (...);
- Lädt eine Datei und stellt diese im Fenster dar.
-
- - Die Einträge in den Listboxen werden nun wie auch bei den
- PopUp's selektiert.
-
- - Neue Funktion: CountLines ( LONG win_id );
- Liefert die Anzahl der Textzeilen in einem Fenster (s. LinkList)
-
- - Neue Funktion: DelInList ( LONG win_id, UINT line );
- Löscht die Zeile 'line' aus der Textliste.
-
- - Neue Funktion: do_qsort ( LONG win_id, CPROC compare );
- Sortiert die Textzeilen ohne Berücksichtigung der Stati (fett
- etc).
- Vordefiniert sind für 'compare':
- cmp_strings_up - Aufsteigend sortieren
- cmp_strings_dn - Absteigend sortieren
-
- - Neue Funktion: Cycle (...)
- Nun sind auch die Cycle-Buttons drin, ohne die wahrscheinlich
- niemand leben kann (bei den Anfragen...)
-
- - So, das war's. Bis die nächsten Wünsche und Bugreports (hoff-
- entlich nicht...) kommen.
-
- --------------------------------------------------------------------------
- 11-05 Version 1.10
- --------------------------------------------------------------------------
-
- Die Funktionen:
-
- - RedrawArea
- - RedrawDialog
- - RedrawWindow
- - IsMenuKey
-
- sind irgendwie verschütt gegangen. Jetzt sind sie wieder da!
-
- --------------------------------------------------------------------------
- Ende der Datei.
-