home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / program / pascal / sgem122p / history.txt < prev    next >
Encoding:
Text File  |  1994-05-30  |  15.2 KB  |  328 lines

  1. History
  2. ==========================================================================
  3. Date      Beschreibung
  4. --------------------------------------------------------------------------
  5. 30-05     Version 1.22
  6. --------------------------------------------------------------------------
  7.           - Bugfix: SysGem fährt nicht mehr in den Keller, wenn die
  8.             Memory-Protection aktiv ist
  9.  
  10.           - Neue Funktion: VOID EnableTimer ( VOID );
  11.             Schaltet die Timer ein. Wird diese Funktion nicht aufgerufen,
  12.             sind __keine__ Timer möglich!!!
  13.  
  14.           - Neue Funktion: VOID DisableTimer ( VOID );
  15.             Schaltet __alle__ Timer ab.
  16.  
  17. --------------------------------------------------------------------------
  18. 28-05     Version 1.21
  19. --------------------------------------------------------------------------
  20.  
  21.           - Neue Funktion: UseBlanks ( BOOL use );
  22.             Füllt einen Text, der mit SetText in ein TEXT-Feld gesetzt
  23.             wird, mit Leerzeichen auf die volle Länge auf.
  24.             Bei 'use == 0' wird nicht mit Leerzeichen aufgefüllt.
  25.  
  26.           - Neue Funktionen:
  27.             INT  BeginDialog ( LONG win_id, OBJECT *tree, INT ed, BYTE *title );
  28.             INT  HdlDialog ( LONG win_id );
  29.             VOID FinishDialog ( LONG win_id );
  30.  
  31.             Die Programmausführung wird gestoppt. BeginDialog liefert 1,
  32.             wenn das Fenster geöffnet wurde, und 0, wenn kein Fenster mehr
  33.             zur Verfügung steht.
  34.  
  35.             Allerdings sollte - bevor Sie diese Funktionen wählen - besser
  36.             DoDialog oder WindowDialog genommen werden, da komfortabler.
  37.             (jan kriesten@gi)
  38.  
  39.           - Neue Funktion: DispatchEvents ();
  40.             Führt einmal HandleSysGem aus und kehrt zurück. Ist notwendig,
  41.             damit bei viel Rechnerei z.b. auch auf Redraw etc. reagiert
  42.             werden kann. Eventuell gesetzte Timer werden ignoriert.
  43.             (jan kriesten@gi)
  44.  
  45.           - Nachtrag: Leider habe ich verpennt zu dokumentieren, daß die
  46.             Id eines Fenster _nicht_ 0L sein darf! Sie muß also angegeben
  47.             werden und für jedes Fenster _eindeutig_ sein!
  48.             (Heinz Kißler@N)
  49.  
  50.           - Neue Funktion:
  51.             SetWatch    ( RECT *r, INT enter, WPROC proc );
  52.             WatchWindow ( LONG win_id, INT enter, WPROC proc );
  53.  
  54.             SetWatch definiert einen Bildschirmbereich, der überwacht
  55.             werden soll. WatchWindow definiert den Bereich eines Fensters,
  56.             der überwacht wird. Evtl. Verschieben der Fenster wird
  57.             berücksichtigt. (maries@baub.bwk.tue.nl)
  58.  
  59.           - Bugfix: In ganz bestimmten Konstellationen war es möglich,
  60.             daß der Textcursor im Hintergrundfenster immer noch sichtbar
  61.             war. (Heinz Kißler@N)
  62.  
  63.           - Bugfix: In Portab.h war BYTE als unsigned char und CICON als
  64.             BYTE (benutze ich...) deklariert. (Thorsten Dietrichkeit@wü)
  65.  
  66.           - Neue Funktion: SearchProgram ( BYTE *prg_name );
  67.             Sucht ein Programm im Speicher und liefert die AES-Id zurück,
  68.             oder -1, wenn nicht gefunden. Beispiel:
  69.             SearchProgram ( "GEMINI" );
  70.  
  71.           - Neue Verwaltung: Jedes Fenster kann nun seinen eigenen Timer
  72.             haben! Die jeweilige Handler-Funktion wird dann mit der
  73.             Nachricht SG_TIMER aufgerufen. Die Zeitspanne ist mit
  74.             SetWindowTimer einstellbar. (jan kriesten@gi)
  75.  
  76.           - Neue Funktion: SetDispatchTime ( INT ms_low, INT ms_high );
  77.             Setzt die Zeitspanne, nach der geschaut werden soll, ob für
  78.             die Fenster oder für das System (SetProcTimer) ein Timer-Event
  79.             vorliegt. Seht standardmäßig auf 50 ms. Kann aber beliebig
  80.             eingestellt werden, je nachdem, ob man es braucht, oder
  81.             nicht. (Thorsten Bergner@b)
  82.  
  83.           - In den Textfenstern können nun auch die Zeilen farbig darge-
  84.             stellt werden. Dazu wird das [1]-Element des Strings benutzt.
  85.             Es liegen jetzt also die Effekte auf [0], die Farbe auf [1]
  86.             und der erste Buchstabe auf [2]. (balun@gold.ba-stuttgart.de)
  87.  
  88.           - Neue Verwaltung: Ist ein Fenster noch nicht vollständig ge-
  89.             zeichnet worden, oder iconifiziert, werden alle redraws via
  90.             RedrawObj vollständig ignoriert.
  91.  
  92.           - Neue Funktion: UseMTosIconify ( BOOL use );
  93.             Ist für den Einsatz unter AES >= 4.1 gedacht und schaltet die
  94.             "echte" Iconifizierung unter MTos ein.
  95.  
  96.         --> Da bei mir das AES 4.1 nicht zum laufen zu kriegen ist, bitte
  97.             vorher testen! Ansonsten den Schalter einfach vergessen;
  98.             als Voreinstellung ist die Iconifizierung via SysGem aktiv.
  99.             (Dirk Hagedorn@pb)
  100.  
  101. --------------------------------------------------------------------------
  102. 21-05     Version 1.20
  103. --------------------------------------------------------------------------
  104.           - Bugfix: Bei der Listbox werden jetzt Einträge, die länger sind
  105.             als der Ausgangstext, abgeschnitten. Ausserdem können jetzt
  106.             die Listboxen nicht mehr außerhalb des Bildschirms erscheinen.
  107.  
  108.           - Bugfix: PopUp's können nicht mehr außerhalb des Bildschirms
  109.             erscheinen.
  110.  
  111.           - Bugfix: Frames wurden unter MTOS in Monochrom nur halb ge-
  112.             zeichnet (mist Farben...)
  113.  
  114.           - Bugfix: Unter ganz bestimmten Umständen konnte es passieren,
  115.             daß nach TerminateSysGem eine eventuelle Alertbox nicht mehr
  116.             erschienen ist.
  117.  
  118.           - Neue Funktion: ShortCutColor ( INT color );
  119.             Setzt die Farbe, in der die Unterstriche gezeichnet werden.
  120.             Standardmäßig auf RED gesetzt.
  121.  
  122.           - Bugfix: Unter Umständen "übersah" die Lib den DISABLED-Status
  123.             eines Objektes, was sich nett bemerkbar machen konnte...
  124.  
  125.           - Bugfix: Der Rückgabewert SG_TERM bei der Handler-Funktion der
  126.             Hauptmenüzeile wird nun korrekt verarbeitet und nicht mehr in
  127.             die Tonne gelenkt...
  128.  
  129.           - Bugfix: Redrawfehler bei Popup und G_STRING behoben.
  130.  
  131.           - Feature: Wird bei DoDialog oder WindowDialog als Editfeld
  132.             eine -2 übergeben, sucht sich SysGem das erste Editfeld im
  133.             Dialog und setzt den Cursor entsprechend. Bei anderen Werten
  134.             (<= 0) sind _keine_ Eingaben im Dialog möglich. Bei Werten > 0
  135.             geht SysGem davon aus, daß der Cursor in das angegebene Editfeld
  136.             (Objektnummer) setzen soll.
  137.  
  138.           - Nachtrag: In einer Multitasking-Umgebung setzt SysGem immer
  139.             die Programm-Id als "[xxxx]" vor den Fenstertitel, damit der
  140.             Benutzer weis, woher denn und zu wem das Fenster gehört. Sollte
  141.             dies nicht gewollt sein, dann einfach ein '|' als erstes
  142.             Zeichen für den Fenstertitel übergeben.
  143.  
  144.           - Da manchen die Überschrift "Alert" für die Alertbox nicht
  145.             gefallen hat, kann nun mit: SetAlertTitle ( BYTE *s ); ein
  146.             max. 20 Zeichen langer Text angegeben werden, der dann als
  147.             Alert-Überschrift erscheint.
  148.  
  149.           - Objekte vom Typ G_ICON und G_IMAGE werden nun nicht mehr
  150.             automatisch mit den 3D-Flags versehen. Dies scheint wohl auf
  151.             ziemliche Kritik gestossen zu sein. Wer jetzt 3D haben will,
  152.             muß es halt selber machen...
  153.  
  154.           - Neue Meldung: SG_MOVED. Diese wird verschickt, wenn sich die
  155.             Lage eines Fensters geändert hat, SG_SIZED wird nur noch bei
  156.             einer Größenänderung verschickt.
  157.  
  158.             Bei SG_INVISIBLE kann nun auch SG_ABORT zurückgegeben werden,
  159.             wenn man verhindern will, daß das betreffende Fenster ausge-
  160.             blendet wird. Alle anderen Werte führen zum Ausblenden des
  161.             Fensters.
  162.  
  163.           - Es war möglich, mehrere Fenster mit der gleichen Id zu öffnen,
  164.             Wird jetzt versucht, ein Fenster zu öffnen, dessen Id es
  165.             schon gibt, wird das jeweilige Fenster getoppt und die Funktion
  166.             kehrt mit einem Fehler zurück. Das Fenster wird _nicht_
  167.             geöffnet.
  168.  
  169.           - LinkTree ( ..., pos );
  170.  
  171.             NOCHMAL zur Verdeutlichung: Es müssen BÄUME gelinkt werden;
  172.             bei der Positionierung und Anpassung wird immer auf Element 0
  173.             zugegriffen. Teilbäume können in die Hose gehen!
  174.  
  175.           - WINDOW_INFO.work_area wird von fast allen Programmen benutzt,
  176.             um die Fenstergröße zu speichern. Deshalb neu eingeführt:
  177.             draw_area. Enthält den Arbeitsbereich eines Fensters ohne die
  178.             eventuell eingehängten Bäume. Sollte anstatt work_area zum
  179.             neuzeichnen benutzt werden.
  180.  
  181.           - Neue Funktion: SetWinMinSize ( LONG win_id, INT w, INT h );
  182.             ...setzt die Minimale Größe des Fensters. Hilfreich, wenn
  183.             Bäume drin sind...
  184.  
  185.           - Neue Funktion: OpenLogWindow
  186.             Öffnet ein Fenster, in das man mit wprintf schreiben kann.
  187.             Es können beliebig viele Fenster geöffnet werden... Warum
  188.             die Funktion genommen werden muß? Weil nur hier die Cursor-
  189.             verwaltung und alles drin ist... ;-)))
  190.  
  191.           - Neue Funktion: wprintf ( LONG id, BYTE *format, ... );
  192.             Schreibt in das (mit OpenLogWindow geöffnete) Fenster mit der
  193.             id 'Id' den angegeben String. Der Format-String ist identisch
  194.             mit dem bei printf. Es gibt aber noch folgende ESC-Sequenzen:
  195.  
  196.             ESC p  - Fett (Invers-Ersatz) ein
  197.             ESC q  - Fett (Invers-Ersatz) aus
  198.             ESC +  - Unterstreichen ein
  199.             ESC -  - Unterstreichen aus
  200.             ESC (  - Kursiv ein
  201.             ESC )  - Kursiv aus
  202.             ESC e  - Cursor an
  203.             ESC f  - Cursor aus
  204.             ESC E  - ClearScreen; Cursor auf Ursprung (x = 0, y = 0)
  205.  
  206.           - Neue Funktion: wcls ( LONG id );
  207.             Löscht das Fenster mit der id 'id'. Identisch mit ESC E.
  208.  
  209.           - Neue Funktion: wposxy ( LONG id, INT x, INT y );
  210.             Positioniert den Textcursor im Fenster 'id' bei x, y.
  211.             Fehlerhafte Koordinaten werden auf 0 gesetzt.
  212.  
  213.           - Neue Funktion: VOID wgetxy ( LONG win_id, INT *x, INT *y );
  214.             Liefert die Position des Cursors im entsprechenden Fenster.
  215.  
  216.           - Neue Funktion: IsVisible ( INT handle );
  217.             Liefert TRUE, wenn der Arbeitsbereich des Fensters komplett
  218.             sichtbar ist.
  219.  
  220.           - Neue Verwaltung: Wird im Fenster mittels Arrow's gescrollt,
  221.             verschiebt SysGem selbstständig den Fensterinhalt.
  222.  
  223.           - Neue Verwaltung: Tastendrücke ins Fenster werden jetzt etwas
  224.             anders gehandhabt. Es wird (in dieser Reihenfolge) geprüft:
  225.  
  226.             + Shortcut?
  227.             + Fenstermenükürzel?
  228.             + Hauptmenükürzel?
  229.             + --> Taste an Fenster schicken. Wenn das Fenster Editfelder
  230.                   besitzt, dann Zeichen einfügen. Ansonsten schicken...
  231.                   Fenster braucht Taste nicht?
  232.               --> dann SG_KEY an Hauptmenüzeile, vielleicht kann die was
  233.                   damit anfangen....
  234.  
  235.           - Neue Funktion: BYTE *LinkList ( LONG win_id, BYTE *text );
  236.             "Hängt" eine Textliste in ein Fenster ein. Die Lib passt den
  237.             Dokumentbereich automatisch an und kümmert sich selbstständig
  238.             um Redraw- und Scroll-Operationen. Dabei ist win_id die Id
  239.             des Fensters und text ein Zeiger auf den Text, der als erste
  240.             Zeile im Fenster erscheinen soll. Es wird ein Zeiger zurück-
  241.             geliefert, wo der Text anschließend zu finden ist. Das [0]
  242.             Element des Strings ist dabei zur freien Verfügung. ist der
  243.             Wert >= 0, übernimmt SysGem den Wert nach vst_effects. Es
  244.             können also einzelne Zeilen Fett, Unterstrichen usw. darge-
  245.             gestellt werden. Ist [0] < 0, ignoriert SysGem den Wert.
  246.             Man kann dann eigene Flags einsetzten.
  247.  
  248.           - Neue Funktion: BYTE *AddToList ( LONG win_id, BYTE *text );
  249.             Hängt den Text an die bereits existierende Liste des Fensters
  250.             Win_id an. Rückgabe siehe LinkText.
  251.  
  252.           - Neue Funktion: BYTE *ChgInList ( LONG win_id, INT line, BYTE *text );
  253.             Ersetzt den Text in zeile 'line' durch 'text' im Fenster 'win_id'
  254.             Ist 'text' == NULL, liefert die Funktion den Zeiger auf das
  255.             [0] Element des bestehenden Textes.
  256.  
  257.           - Neue Funktion: VOID ChangeButton ( OBJECT *tree, INT obj, BYTE *text, BOOL draw );
  258.             Ersetzt den Buttontext im Baum 'tree' durch 'text' und zeichnet,
  259.             wenn draw == TRUE, den Button auch gleich wieder neu. Da die
  260.             Verwaltung der Buttons in SysGem >= 1.10 eine andere als in den
  261.             Vorgängerversionen ist, muß ein Buttontext über diese Funktion
  262.             geändert werden.
  263.  
  264.           - Neue Verwaltung: Bei Sliderboxen werden nun auch Nachrichten
  265.             verschickt, damit evtl. Selektionen richtig bearbeitet werden
  266.             können (hi Jan!). Dazu gibt es folgende Nachrichten:
  267.  
  268.             SG_SLID_UP
  269.             SG_SLID_DN
  270.             SG_SLID_MV
  271.             SG_SLID_PGUP
  272.             SG_SLID_PGDN
  273.  
  274.             'button' enthält dabei die neue oberste Zeile in der Slider-
  275.             box, dialog_info.special enthält die objektnummer der Box,
  276.             damit bei mehreren Sliderboxen im Dialog unterschieden werden
  277.             kann, welche gemeint ist.
  278.  
  279.             Nach Rückkehr dieser Nachricht werden die Einträge dann neu
  280.             gezeichnet.
  281.  
  282.           - Neue Funktion: BYTE wgetchar ( LONG win_id, INT x, INT y, INT *effect );
  283.             Liefert das Zeichen, daß sich im Fenster 'win_id' an der
  284.             Position x, y befindet. Ist 'effect' != NULL, enthält sie
  285.             nach dem Aufruf eventuell gesetzte Stati (fett etc.)
  286.  
  287.           - Neue Funktion: Display (...);
  288.             Lädt eine Datei und stellt diese im Fenster dar.
  289.  
  290.           - Die Einträge in den Listboxen werden nun wie auch bei den
  291.             PopUp's selektiert.
  292.  
  293.           - Neue Funktion: CountLines ( LONG win_id );
  294.             Liefert die Anzahl der Textzeilen in einem Fenster (s. LinkList)
  295.  
  296.           - Neue Funktion: DelInList ( LONG win_id, UINT line );
  297.             Löscht die Zeile 'line' aus der Textliste.
  298.  
  299.           - Neue Funktion: do_qsort ( LONG win_id, CPROC compare );
  300.             Sortiert die Textzeilen ohne Berücksichtigung der Stati (fett
  301.             etc).
  302.             Vordefiniert sind für 'compare':
  303.               cmp_strings_up - Aufsteigend sortieren
  304.               cmp_strings_dn - Absteigend sortieren
  305.  
  306.           - Neue Funktion: Cycle (...)
  307.             Nun sind auch die Cycle-Buttons drin, ohne die wahrscheinlich
  308.             niemand leben kann (bei den Anfragen...)
  309.  
  310.           - So, das war's. Bis die nächsten Wünsche und Bugreports (hoff-
  311.             entlich nicht...) kommen.
  312.  
  313. --------------------------------------------------------------------------
  314. 11-05     Version 1.10
  315. --------------------------------------------------------------------------
  316.  
  317.           Die Funktionen:
  318.  
  319.           - RedrawArea
  320.           - RedrawDialog
  321.           - RedrawWindow
  322.           - IsMenuKey
  323.  
  324.           sind irgendwie verschütt gegangen. Jetzt sind sie wieder da!
  325.  
  326. --------------------------------------------------------------------------
  327. Ende der Datei.
  328.