/* * WIND_GET (C) Digital Design 1990 * * Erfragen von Fensterparametern. * Fr jedes Fenster knnen die Elemente der Rechteckliste, die Gre * des Fensters sowie die Gre 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: Die Koordinaten des Arbeitsbereichs eines * * Fensters werden ausgegeben: * * *wi_gw1 = X-Koordinate * * *wi_gw2 = Y-Koordinate * * *wi_gw3 = Breite * * *wi_gw4 = Hhe * * * * 5: Die Koordinaten der Gesamtgre des * * Fensters einschlielich Rnder, Titelzeile * * und Informationszeile werden ausgegeben: * * *wi_gw1 = X-Koordinate * * *wi_gw2 = Y-Koordinate * * *wi_gw3 = Breite * * *wi_gw4 = Hhe * * * * 6: Die Koordinaten der Gesamtgre des vor- * * hergehenden Fensters werden ausgegeben: * * *wi_gw1 = X-Koordinate * * *wi_gw2 = Y-Koordinate * * *wi_gw3 = Breite * * *wi_gw4 = Hhe * * * * 7: Die Koordinaten der Gesamtgre des * * Fensters in seiner grtmglichen Gre * * (durch WIND_CREATEWIND_CRE.C festgelegt) werden * * ausgegeben: * * *wi_gw1 = X-Koordinate * * *wi_gw2 = Y-Koordinate * * *wi_gw3 = Breite * * *wi_gw4 = Hhe * * * * 8: Die relative Position des horizontalen * * Schiebers wird ausgegeben (zwischen 1 und * * 1000): * * *wi_gw1: 1 = Position ganz links * * 1000 = Position ganz rechts * * * * 9: Die relative Position des vertikalen * * Schiebers wird ausgegeben (zwischen 1 und * * 1000): * * *wi_gw1: 1 = Position ganz oben * * 1000 = Position ganz unten * * * * 10: Das Window Handle des obersten * * (= aktiven) Fensters wird ausgegeben: * * *wi_gw1 = Window Handle * * * * 11: Die Koordinaten des ersten Rechtecks in * * der Rechteckliste des Fensters werden ausge- * * geben: * * *wi_gw1 = X-Koordinate * * *wi_gw2 = Y-Koordinate * * *wi_gw3 = Breite * * *wi_gw4 = Hhe * * * * 12: Die Koordinaten des nchsten Rechtecks * * in der Rechteckliste des Fensters werden * * ausgegeben: * * *wi_gw1 = X-Koordinate * * *wi_gw2 = Y-Koordinate * * *wi_gw3 = Breite * * *wi_gw4 = Hhe * * * * 13: Reserviert, keine Bedeutung. * * * * 15: Die Gre des horizontalen Schiebers * * relativ zur Gre des umrandenden Kastens * * wird ausgegeben: * * *wi_gw1: -1 = Minimalgre * * (quadratischer Kasten) * * 1-1000 = relative Gre im Ver- * * gleich zum Scrollbalken * * * * 16: Die Gre des vertikalen Schiebers * * relativ zur Gre des umrandenden Kastens * * wird ausgegeben: * * *wi_gw1: -1 = Minimalgre * * (quadratischer Kasten) * * 1-1000 = relative Gre im Ver- * * gleich zum Scrollbalken * * * * 17: Adresse und Lnge 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 Lnge * * *wi_gw4 = 'Zweiter Teil' der Lnge */ 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_setWIND_SET.C */