•  Back 
  •  Fensterverwaltung 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
Topic       : TOS - das Betriebssystem
Author      : 
Version     : tos.hyp (5. März 2013)
Subject     : Programmieren/Atari
Nodes       : 3001
Index Size  : 93602
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : Titel
@help       : 
@options    : +g -i -s +x +zz -t4
@width      : 70
View Ref-File8.9.11  wind_set                                                   TOS

 Name:         »Set Window« - verändert einzelne Parameter eines 
               Fensters.

 AES-Nummer:   105

 Deklaration:  int16_t wind_set ( int16_t wi_shandle, int16_t 
               wi_sfield, int16_t wi_sw1, int16_t wi_sw2, int16_t 
               wi_sw3, int16_t wi_sw4 );

 Beschreibung: Die Funktion verändert, abhängig von den übergebenen 
               Parametern, verschiedene Eigenschaften des Fensters mit 
               der Kennung wi_shandle. Es gilt für wi_sfield.

               Zusammenfassung aller Unterfunktionen

                WF_BEVENT (24) erlaubt es, eine WM_TOPPED Message beim 
                        Anklicken eines Fensters zu verhindern (z.B. 
                        um Dauerfunktionen in nicht getoppten Fenstern 
                        zu ermöglichen). wi_sw1 ist ein Bitvektor bei 
                        dem bisher lediglich Bit-0 eine Bedeutung 
                        besitzt. Andere Werte als 1 sind also nicht 
                        erlaubt. Der Aufruf wäre dann: 
                        wind_set(wi_shandle, WF_BEVENT, 0x0001, 0, 0, 
                        0).
                        Achtung: Das Vorhandensein dieses Features 
                        sollte per appl_getinfo (Opcode 11) ermittelt 
                        werden.

                WF_BOTTOM (25) ermöglicht es, das (geöffnete!) Fenster 
                        mit der Kennung wi_shandle in den Hintergrund 
                        zu legen, und zwar per wind_set(wi_shandle, 
                        WF_BOTTOM, 0, 0, 0, 0).
                        Achtung: Das Vorhandensein dieses Features 
                        sollte per appl_getinfo (Opcode 11) ermittelt 
                        werden.

                WF_BOTTOMALL (22368) Stellt alle Fenster der 
                        Applikation wi_sw1 nach hinten.

                         wi_sw1 = Kennung der Applikation

                        Übergibt man in wi_shandle ein Fensterkennung 
                        ungleich DESKWINDOW, dann wird wi_shandle 
                        zusätzlich ganz nach hinten gestellt 
                        (ansonsten wird die Reihenfolge der Fenster 
                        untereinander nicht geändert). wi_shandle muß 
                        offen sein und der Applikation wi_sw1 gehören.

                        Es ist nicht garantiert, daß eine Applikation 
                        WF_BOTTOMALL auf die Fenster einer anderen 
                        Applikation anwenden kann (vorallem in einer 
                        Multitasking-Umgebung). In diesem Fall wird 0 
                        zurückgegeben.

                        Achtung: Das Vorhandensein dieses Features 
                        sollte per appl_getinfo (Opcode 22360) 
                        ermittelt werden.

                WF_COLOR (18) verändert die Farbe eines 
                        Fensterelements. Dazu wird in wi_sw1 die 
                        Nummer des Elements angegeben:


                         Element          Beschreibung

                         W_BOTTOMER (20)  Backdrop-Button
                         W_BOX (0)        Wurzelobjekt des Fensters
                         W_CLOSER (2)     Schließbox
                         W_DATA (6)       Elternobjekt der restlichen 
                                          Elemente
                         W_DNARROW (11)   Pfeil nach unten
                         W_FULLER (4)     Zoombox
                         W_HBAR (14)      Elternobjekt der vertikalen 
                                          Sliderelemente
                         W_HELEV (18)     Horizontaler Slider
                         W_HSLIDE (17)    Hintergrund des horiz. 
                                          Sliders
                         W_INFO (5)       Infozeile
                         W_LFARROW (15)   Pfeil nach links
                         W_NAME (3)       Move-Balken
                         W_RTARROW (16)   Pfeil nach rechts
                         W_SIZER (8)      Size-Box
                         W_SMALLER (19)   Iconifier-Button
                         W_TITLE (1)      Elternobjekt der Schließ- 
                                          und Zoombox, sowie des Names
                         W_UPARROW (10)   Pfeil nach oben
                         W_VBAR (9)       Elternobjekt der vertikalen 
                                          Sliderelemente
                         W_VELEV (13)     Vertikaler Slider
                         W_VSLIDE (12)    Hintergrund des vert. 
                                          Sliders
                         W_WORK (7)       Arbeitsfläche

                        Im Parameter wi_sw2 wird die Farbe für den 
                        Objekttyp des Fensterelements übergeben, falls 
                        das Fenster getoppt ist, in wi_sw3 falls es 
                        nicht aktiv ist. Ein Wert von -1 behält die 
                        aktuelle Farbeinstellung bei.
                        Achtung: Das Vorhandensein dieses Features 
                        sollte per appl_getinfo (Opcode 11) ermittelt 
                        werden.

                WF_CURRXYWH (5) setzt die Fenstergröße aus wi_sw1, 
                        wi_sw2, wi_sw3 und wi_sw4 fest.

                        XaAES is compatible with all other AES's, 
                        except from the following points:

                          1. If x, y, w and h all have a value of -1.

                          2. x and y values of -1 are 'legal', i.e, 
                             one cannot use -1 to use any old x value. 
                             Ofcourse, x and y coordinates are checked 
                             to be inside the rootwindow (not X when 
                             noleft = false).

                          3. When h have a value of 0, the window is 
                             infact shaded. This is a thing N.AES does 
                             with MiNTSetter, altho I'm not sure this 
                             is correct. The application is sent a 
                             WM_SHADED. On the next wind_set(handle, 
                             WF_CURRXYWH,...) where the h coordinate 
                             is not equal to the window's shaded 
                             height, the window is unshaded. While the 
                             window is shaded via this method, shift- 
                             clicks on the window title to shade a 
                             window is ignored.

                        XaAES since 2004-09-22, there is an extend 
                        version.

                WF_DCOLOR (19) setzt die Standard-Farben für die 
                        Fensterelemente. Der Parameter wi_shandle wird 
                        ignoriert, und für die übrigen Parameter gilt:

                         wi_sw1 =  Fensterelement
                         wi_sw2 =  Farbe für aktive Fenster
                         wi_sw3 =  Farbe für inaktive Fenster

                        Achtung: Das Vorhandensein dieses Features 
                        sollte per appl_getinfo (Opcode 11) ermittelt 
                        werden. Beim Verändern der Komponente W_FULLER 
                        werden automatisch W_SMALLER und W_BOTTOMER 
                        mit verändert; dies macht es notwendig, zuerst 
                        den Fuller, und dann die übrigen Komponenten 
                        zu setzen.

                        Ab MagiC 4 ist es möglich, für jedes einzelne 
                        Fensterelement 3D-Flags festzulegen. Dabei 
                        gilt:

                         wi_sw1 =  Fensterelement
                         wi_sw2 =  Farbe im aktiven Zustand
                         wi_sw3 =  Farbe im inaktiven Zustand
                         wi_sw4 =  3D-Flags

                        Der Parameter wi_shandle muß dabei den Wert 0 
                        annehmen; die 3D-Flags werden als Bitvektor 
                        beschrieben; es gilt:

                         Bit-0 =    Effekt "3D im Vordergrund"
                         Bit-1 =    Effekt "3D im Hintergrund"
                         Bit-2 =    Effekt "selektierbar im 
                                    Vordergrund"
                         Bit-3 =    dto. im Hintergrund
                         Bit-8+n =  Maskenbit für Bit n

                        Es werden also nur Bits verändert, wenn das 
                        zugehörige Maskenbit gesetzt ist. Dieses 
                        Feature kann z.Zt. noch nicht über 
                        appl_getinfo ermittelt werden.

                WF_DDELAY (22362) Verzögerungswerte setzen

                         wi_sw1 = Startverzögerung beim Klick auf 
                                  Scrollpfeil
                         wi_sw2 = Kontinuierliche Verzögerung beim 
                                  Klick auf Scrollpfeil
                         wi_sw3 = Kontinuierliche Verzögerung beim 
                                  Klick auf Closer
                         wi_sw4 = Kontinuierliche Verzögerung beim 
                                  Klick auf Fuller

                        Die Verzögerungswerte dienen zum Bremsen von 
                        Aktionen, falls diese zu schnell ausgeführt 
                        werden (z.B. wegen neuer Hardware).

                        Achtung: Das Vorhandensein dieses Features 
                        sollte per appl_getinfo (Opcode 22360) 
                        ermittelt werden.

                WF_FULLXYWH (7) If either wi_sw1, wi_sw2, wi_sw3 or 
                        wi_sw4 have a value of -1, that coordinate is 
                        not changed. If ALL coordinates have a value 
                        of -1, the window is actually moved to the 
                        current FULLXYWH coordinates, making the 
                        current window position the new PREVXYWH 
                        position. XaAES since 2004-09-22, there is an 
                        extend version.

                WF_HSLIDE (8) setzt den horizontalen Slider auf die 
                        neue Position wi_sw1 (0 ganz links, bis 1000 
                        ganz rechts).

                WF_HSLSIZE (15) setzt die Größe des horizontalen 
                        Sliders relativ zur Gesamtbreite auf den Wert 
                        wi_sw1 (-1 kleinste Größe, 1 klein bis 1000 
                        Gesamtbreite).

                WF_ICONIFY (26) das Fenster wird ikonifiziert. Die 
                        Parameter wi_sw1 bis wi_sw4 geben Position und 
                        Größe des Fensters im ikonifizierten Zustand 
                        an; diese Werte erhält man vom AES beim 
                        Eintreffen einer WM_ICONIFY Message.
                        Tip: Um ein bereits erzeugtes, aber noch nicht 
                        geöffnetes Fenster zu ikonifizieren, übergibt 
                        man als Koordinaten (-1,-1,-1,-1). Das Fenster 
                        kann dann per wind_open(handle,-1,-1,-1,-1) 
                        auf den Bildschirm gebracht werden. Ab MagiC 4 
                        und XaAES v0.943 funktioniert dies auch, wenn 
                        das Fenster bereits geöffnet ist.
                        Achtung: Das Vorhandensein dieses Features 
                        sollte per appl_getinfo (Opcode 11) erfragt 
                        werden.

                WF_IGNORE (13) Ist in alten AES-Version benutzt. 
                        Funktion unbekannt.

                WF_INFO (3) schreibt den String, auf den wi_sw1 und 
                        wi_sw2 zeigt, in die Infozeile. GEM benutzt 
                        dabei nur den Zeiger und legt keine Kopie an.

                        Unter GEM ist die Länge auf 80 Zeichen 
                        beschränkt. Bei N.AES sind es maximal 128 bei 
                        XaAES maximal 200.

                WF_KIND (1) legt wi_sw1 als neue Fensterkomponenten 
                        fest, Format wie bei wind_create.

                WF_M_BACKDROP (100) Damit kann ein Fenster wi_sw1 auf 
                        einen Schalg nach untern gebracht werden, ohne 
                        die Reihenfolge der anderen Fenster zu 
                        verändern. In KAOS 1.4.2 hieß der Parameter 
                        noch WF_BACKDROP.

                WF_MENU (33) Es kann eine Menüzeile in ein Fenster 
                        eingehängt werden. Wurde das Fenster nicht mit 
                        der Komponente MENUBAR erzeugt, dann wird der 
                        Aufruf ignoriert. In wi_sw1 und wi_sw2 wird 
                        die Adresse des Baums übergeben.
                        Beim anklicken erhält man eine erweiterte 
                        MN_SELECTED Nachricht.
                        nur XaAES

                WF_NAME (2) schreibt den String, auf den wi_sw1 und 
                        wi_sw2 zeigt, in die Titelzeile. GEM benutzt 
                        dabei nur den Zeiger und legt keine Kopie an.

                        Unter GEM ist die Länge auf 80 Zeichen 
                        beschränkt. Bei N.AES sind es maximal 128 bei 
                        XaAES maximal 200.

                WF_NEWDESK (14) legt den Objektbaum, auf den wi_sw1 
                        und wi_sw2 zeigt, mit dem Startobjekt wi_sw3 
                        als neues Desktop fest. Durch Übergabe eines 
                        Nullzeigers kann wieder der 
                        Standardhintergrund gesetzt werden.

                WF_OPTS (41) wi_handle is a window handle or -1. If 
                        handle is a legal window handle, the options 
                        will only apply to that window. If 'handle' is 
                        -1, the settings will apply to all windows the 
                        application creates AFTER this call.

                        wi_sw1 is 0 to clear the selected bits or 1 to 
                        set the selected bits.

                        wi_sw2 Currently available options are as 
                        follows;

                         WO0_WHEEL (0x0001) Setting this bit will 
                               enable extended mouse wheel support, 
                               and go into WHL_AROWWHEEL mode causing 
                               XaAES to send extended WM_ARROWED 
                               messages to the application when the 
                               mouse wheel turns. Read section "XaAES 
                               and wheel mouse handling." for details.
                         WO0_FULLREDRAW (0x0002) Setting this bit will 
                               make XaAES send WM_REDRAW messages to 
                               cover the whole work-area of the window 
                               when it is FULLED. Default behaviour is 
                               to only send WM_REDRAW messages for the 
                               areas that need it, blitting the 
                               already visible parts. This can also be 
                               configured via xaaes.cnf, see the 
                               app_options argument 'naesff'.
                         WO0_NOBLITW (0x0004) Setting this bit will 
                               make XaAES send WM_REDRAW messages to 
                               cover the whole work-area of the window 
                               when its WIDTH changes. This is handy 
                               for apps like HighWire, Textprocessors 
                               ,etc, that need to reformat when window 
                               width changes. Default behaviour is to 
                               send WM_REDRAW messages for the areas 
                               that need it.
                         WO0_NOBLITH (0x0008) Setting this bit will 
                               make XaAES send WM_REDRAW messages to 
                               cover the whole work-area of the window 
                               when its HEIGHT changes. Default 
                               behaviour is to send WM_REDRAW messages 
                               for the areas that need it.
                         WO0_SENDREPOS (0x0010) Setting this bit will 
                               make XaAES send a WM_REPOSED(38) 
                               message when a windows X/WIDTH and/or 
                               Y/HEIGHT coordinate pair changes. Such 
                               changes happes when the user resizes 
                               the window using upper/left borders. 
                               Default behaviour is to first send a 
                               WM_MOVED followed by a WM_SIZED message 
                               under these conditions, because older 
                               apps dont evaluate the WIDTH/HEIGHT in 
                               WM_MOVED messages. So, dudes, set this 
                               bit and use WM_REPOSED!
                         WO0_WCOWORK (0x0020) Setting this bit will 
                               enable Window Coordinate Orientation 
                               WORK mode.

                        wi_sw3 and wi_sw4 are currently undefined and 
                        must be cleared.

                        Features sollte per appl_getinfo (Opcode 11) 
                        erfragt werden.

                WF_PREVXYWH (6) If eitherwi_sw1, wi_sw2, wi_sw3 or 
                        wi_sw4 have a value of -1, that coordinate is 
                        not changed. If ALL coordinates have a value 
                        of -1, the window is actually moved to the 
                        current PREVXYWH coordinates, making the 
                        current window position the new PREVXYWH 
                        position.
                        XaAES since 2004-09-22, there is an extend 
                        version.

                WF_SHADE (22365) Setzt den Shade-Zustand des Fensters

                         wi_sw1 = Zu aktivierender Shade-Zustand  1: 
                           eingeklappt
                            0: ausgeklappt
                           -1: Zustand umschalten

                        Beim Einklappen wird eine WM_SHADED-Nachricht 
                        versandt. Beim Ausklappen WM_UNSHADED und ein 
                        WM_REDRAW über den kompletten Ausgabebereichs 
                        des Fensters. Setzt man den Zustand vor dem 
                        Öffnen des Fensters, dann wird er beim Öffnen 
                        beachtet. Das Schließen eines Fenster setzt es 
                        automatisch auf ausgeklappt.

                        Achtung: Das Vorhandensein dieses Features 
                        sollte per appl_getinfo (Opcode 22360) 
                        ermittelt werden.

                WF_STACK (22366) Stellt das Fenster wi_shandle im 
                        Fensterstapel unter das Fenster wi_sw1 ohne 
                        die Bildschirmposition selbst zu ändern.

                         wi_sw1 = offenes Fenster/DESKWINDOW 
                           (0)/NOWINDOW (-1)

                        Ist wi_shandle geschlossen, wird der 
                        Positionierungswunsch gespeichert und beim 
                        Öffnen des Fensters mit wind_open 
                        berücksichtigt. wi_sw1 wird erst bei der 
                        eigentlichen Positionierung ausgewertet. Ist 
                        (wi_sw1 == DESKWINDOW), wird das Fenster nach 
                        ganz hinten gestellt (entspricht WF_BOTTOM). 
                        Ist (wi_sw1 == NOWINDOW) oder wi_sw1 nicht 
                        offen, dann wird das Fenster wi_shandle ganz 
                        nach vorne gestellt (entspricht WF_TOP).

                        Achtung: Das Vorhandensein dieses Features 
                        sollte per appl_getinfo (Opcode 22360) 
                        ermittelt werden.

                WF_TOOLBAR (30) befestigt eine Toolbar an einem 
                        Fenster, ändert oder entfernt diese. Es gilt:

                         wi_sw1 =  High-Word
                         wi_sw2 =  Low-Word der Adresse der Toolbar.

                        Um eine Toolbar zu entfernen, müssen die 
                        Parameter wi_sw1 und wi_sw2 auf NULL gesetzt 
                        werden.

                        XaAES ab v0.942 kennt Toolbars. Hiefür gibt es 
                        zusätzliche Parameter:

                         wi_sw3 =  Startobjekt ab dem gezeichnet wird.
                         wi_sw4 =  Nummer des Editobjekt, in das der 
                                   Cursor gesetzt wird.

                        Beim betätigen eines Toolbarobjekt erhält man 
                        die Nachricht WM_TOOLBAR.

                WF_TOP (10) das Fenster mit dem Handle wi_shandle wird 
                        zum neuen oberen Fenster. Ab MagiC 4 und XaAES 
                        v0.943 kann durch wind_set (-1, WF_TOP, id, 
                        ...) das Menü und der Desktophintergrund auf 
                        die Applikation mit der Kennung id 
                        umgeschaltet werden; ein Wert von -1 für id 
                        steht dabei für die aktuelle Applikation.

                WF_TOPALL (22367) Holt alle Fenster der Applikation 
                        wi_sw1 nach vorne.

                         wi_sw1 = Kennung der Applikation

                        Übergibt man in wi_shandle ein Fensterkennung 
                        ungleich DESKWINDOW (0), dann wird wi_shandle 
                        zusätzlich ganz nach vorne gestellt (ansonsten 
                        wird die Reihenfolge der Fenster untereinander 
                        nicht geändert). wi_shandle muß offen sein und 
                        der Applikation wi_sw1 gehören.

                        Es ist nicht garantiert, daß eine Applikation 
                        WF_TOPALL auf die Fenster einer anderen 
                        Applikation anwenden kann (vorallem in einer 
                        Multitasking-Umgebung). In diesem Fall wird 0 
                        zurückgegeben.

                        Achtung: Das Vorhandensein dieses Features 
                        sollte per appl_getinfo (Opcode 22360) 
                        ermittelt werden.

                WF_UNICONIFY (27) das Fenster wird unikonifiziert.
                        Achtung: Das Vorhandensein dieses Features 
                        sollte per appl_getinfo (Opcode 11) erfragt 
                        werden.

                WF_UNICONIFYXYWH (28) das Fenster wird unikonifiziert. 
                        Die Parameter wi_sw1 bis wi_sw4 geben Position 
                        und Größe des Fensters im unikonifizierten 
                        Zustand an. Dieser Opcode ist dann besonders 
                        nützlich, wenn ein Fenster bereits im 
                        ikonifizierten Zustand geöffnet worden ist.

                WF_VSLIDE (9) setzt den vertikalen Slider auf die neue 
                        Position wi_sw1 (0 ganz oben bis 1000 ganz 
                        unten).

                WF_VSLSIZE (16) setzt die Höhe des vertikalen Sliders 
                        relativ zur Gesamthöhe auf den Wert wi_sw1 (-1 
                        kleinste Höhe, 1 klein bis 1000 Gesamthöhe).

                WF_WCOLOR z.Zt. keine Informationen bekannt.

                WF_WHEEL (40) Setzt für ein Fenster (wi_shandle= 
                        Fensterkennung) oder alle Applikationen 
                        (wi_shandle= 0) die WA_WHEEL Nachricht. Ist 
                        wi_sw1 = 1 dann sendet XaAES eine spezielle 
                        WM_ARROWED (WA_WHEEL) Nachricht. Bei wi_sw1 = 
                        1 kommt die normalen Nachricht.
                        ab XaAES v0.960

                WF_WIDGETS (200) Setzt die aktuellen Positionen der 
                        Sliderobjekte (W_UPARROW, W_DNARROW, etc.) des 
                        Fensters mit dem Handle wi_shandle. In den 
                        Parametern wi_sw1 und wi_sw2 werden die 
                        vertikal Elemente des typs rightwidgets, in 
                        den Parametern wi_sw3 und wi_sw4 die 
                        horizontal Elemente des typs bottomwidgets 
                        übergeben. wi_sw1 ist das oberste Element, 
                        wi_sw2 das unterste Element des 
                        Vertikalsliders. wi_sw3 ist das linkeste 
                        Element, wi_sw4 das rechteste Element des 
                        Horizontalsliders.

                WF_WINXCFG (22361) Setzt die globalen und lokalen 
                        Schalter der aufrufenden Applikation, falls 
                        dies möglich ist.

                         wi_sw1 = Maske der bei diesem Aufruf zu 
                           verändernden globalen Schalter (Bit gesetzt 
                           bedeutet, Schalter übernehmen).
                         wi_sw2 = Neue Schalterstellung der globalen 
                           Schalter (Bit gesetzt bedeutet, Schalter 
                           eingeschaltet).
                         wi_sw3 = Maske der bei diesem Aufruf zu 
                           verändernden lokalen Schalter (Bit gesetzt 
                           bedeutet, Schalter übernehmen).
                         wi_sw4 = Neue Schalterstellung der lokalen 
                           Schalter (Bit gesetzt bedeutet, Schalter 
                           eingeschaltet).

                        Welche Schalter tatsächlich verändert wurden, 
                        kann man nur durch einen Aufruf von wind_get( 
                        WF_WINXCFG) ermitteln. ACHTUNG: Diese Funktion 
                        sollte nur von Konfigurationsprogrammen 
                        aufgerufen werden, die wissen was sie tun 
                        (z.B. WINX.CPX).

                        Achtung: Das Vorhandensein dieses Features 
                        sollte per appl_getinfo (Opcode 22360) 
                        ermittelt werden.

               Hinweis: Die Parameter wi_sw1, wi_sw2, wi_sw3 und 
               wi_sw4 sind dabei von der über den Parameter wi_sfield 
               übergebenen Funktionsnummer abhängig.

               Bei der Angabe des Fensternamens sollte man aus 
               ästhetischen Gründen vor und hinter der Zeichenkette 
               immer ein Leerzeichen lassen, da sonst das Muster im 
               Fensternamen direkt am ersten und am letzten Buchstaben 
               hängt.

               Achtung: Die hier angegebenen Opcodes sind nicht mehr 
               vollständig zum PC-GEM kompatibel, da die Entwicklung 
               dort in eine andere Richtung ging.

 Ergebnis:     Ein Fehler ist nur dann aufgetreten, wenn als Ergebnis 
               0 zurückgegeben wird.

 Verfügbar:    In allen AES Versionen.

 Gruppe:       Fensterverwaltung

 Querverweis:  Binding   wind_get   wind_create   OBJECT 
               Unterfunktionsübersicht