/* * WIND_GET (C) Digital Design 1993 * * Erfragen von Fensterparametern. * Fr jedes Fenster k”nnen die Elemente der Rechteckliste, die Gr”že * des Fensters sowie die Gr”že und Position des horizontalen und * vertikalen Schiebers erfragt werden. */ #include #include typedef int *INTP; int wind_get( int wi_ghandle, int wi_gfield, ... /* int *wi_gw1, int *wi_gw2, int *wi_gw3, int *wi_gw4 */ ) { va_list ap; intin[0] = wi_ghandle; /* Window Handle des Fensters, dessen * * Parameter erfragt werden sollen. */ intin[1] = wi_gfield; /* gibt an, welche Informationen erfragt werden * * sollen: * * * * 4 (WF_WORKXYWH): Die Koordinaten des * * Arbeitsbereichs eines Fensters werden * * ausgegeben: * * *wi_gw1 = X-Koordinate * * *wi_gw2 = Y-Koordinate * * *wi_gw3 = Breite * * *wi_gw4 = H”he * * * * 5 (WF_CURRXYWH): Die Koordinaten der * * Gesamtgr”že des Fensters einschliežlich * * R„nder, Titelzeile und Informationszeile * * werden ausgegeben: * * *wi_gw1 = X-Koordinate * * *wi_gw2 = Y-Koordinate * * *wi_gw3 = Breite * * *wi_gw4 = H”he * * * * 6 (WF_PREVXYWH): Die Koordinaten der * * Gesamtgr”že des vorhergehenden Fensters * * werden ausgegeben: * * *wi_gw1 = X-Koordinate * * *wi_gw2 = Y-Koordinate * * *wi_gw3 = Breite * * *wi_gw4 = H”he * * * * 7 (WF_FULLXYWH): Die Koordinaten der Gesamt- * * gr”že des Fensters in seiner gr”žtm”glichen * * Gr”že (durch ÝWIND_CREATEÝWIND_CRE.CÝ festgelegt) werden * * ausgegeben: * * *wi_gw1 = X-Koordinate * * *wi_gw2 = Y-Koordinate * * *wi_gw3 = Breite * * *wi_gw4 = H”he * * * * 8 (WF_HSLIDE): Die relative Position des * * horizontalen Schiebers wird ausgegeben * * (von 0 bis 1000): * * *wi_gw1: 1 = Position ganz links * * 1000 = Position ganz rechts * * * * 9 (WF_VSLIDE): Die relative Position des * * vertikalen Schiebers wird ausgegeben * * (von 0 bis 1000): * * *wi_gw1: 1 = Position ganz oben * * 1000 = Position ganz unten * * * * 10 (WF_TOP): Das Window Handle des obersten * * (= aktiven) Fensters wird ausgegeben: * * *wi_gw1 = Window Handle * * * * 11 (WF_FIRSTXYWH): Die Koordinaten des * * ersten Rechtecks in der Rechteckliste des * * Fensters werden ausgegeben: * * *wi_gw1 = X-Koordinate * * *wi_gw2 = Y-Koordinate * * *wi_gw3 = Breite * * *wi_gw4 = H”he * * * * 12 (WF_NEXTXYWH): Die Koordinaten des * * n„chsten Rechtecks in der Rechteckliste des * * Fensters werden ausgegeben: * * *wi_gw1 = X-Koordinate * * *wi_gw2 = Y-Koordinate * * *wi_gw3 = Breite * * *wi_gw4 = H”he * * * * 13 (WF_RESVD): Reserviert, keine Bedeutung. * * * * 15 (WF_HSLSIZE): Die Gr”že des horizontalen * * Schiebers relativ zur Gr”že des umrandenden * * Kastens wird ausgegeben: * * *wi_gw1: -1 = Minimalgr”že * * (quadratischer Kasten) * * 1-1000 = relative Gr”že im Vergleich * * zum Scrollbalken * * * * 16 (WF_VSLSIZE): Die Gr”že des vertikalen * * Schiebers relativ zur Gr”že des umrandenden * * Kastens wird ausgegeben: * * *wi_gw1: -1 = Minimalgr”že * * (quadratischer Kasten) * * 1-1000 = relative Gr”že im Vergleich * * zum Scrollbalken * * * * 17 (WF_SCREEN): Adresse und L„nge des * * internen Buffers fr Drop-Down-Mens und * * Alertboxen werden ausgegeben: * * *wi_gw1 = 'Erster Teil' der Adresse * * *wi_gw2 = 'Zweiter Teil' der Adresse * * *wi_gw3 = 'Erster Teil' der L„nge * * *wi_gw4 = 'Zweiter Teil' der L„nge * * * * 24 (WF_BEVENT): Liefert den BEVENT-Status * * des Fensters im Bit 0 von wi_gw1. * * ACHTUNG: Diese Funktion wird erst ab * * MultiTOS 1.0 bzw. WINX 2.1 untersttzt! * * * * 25 (WF_BOTTOM): Liefert die Kennung des * * untersten Fensters im Fensterstapel: * * *wi_gw1 = Window Handle * * Ist kein Fenster offen, enth„lt wi_gw1 * * -1 (NOWINDOW). * * ACHTUNG: Diese Funktion wird erst ab * * MultiTOS 1.0 bzw. WINX 2.1 untersttzt! */ AES( 104, 2, 5, 0, 0 ); va_start( ap, wi_gfield ); *(va_arg( ap, INTP )) = intout[1]; switch (wi_gfield) { case 4: case 5: case 6: case 7: case 11: case 12: case 17: *(va_arg( ap, INTP )) = intout[2]; *(va_arg( ap, INTP )) = intout[3]; *(va_arg( ap, INTP )) = intout[4]; } va_end( ap ); return intout[0]; /* = wi_greturn: positiv bei Erfolg, 0 bei Fehler * * (z.B. nicht existierendes Window Handle) */ } /* siehe auch: Ýwind_setÝWIND_SET.CÝ */