[Kde-devel-es] Posición de otras ventanas
RVM
usodebian at wanadoo.es
Sun Apr 18 22:47:04 CEST 2004
El Sun, 18 Apr 2004 10:49:16 +0200, Antonio Larrosa Jiménez
<larrosa at kde.org> escribió:
> El Martes 13 Abril 2004 17:58, RVM escribió:
> > ¿Cómo puedo saber desde un programa Qt (o KDE) dónde se encuentra la
> > ventana de otro programa (coordenadas) y su tamaño?
> >
>
> Veo que nadie te ha contestado todavía, así que lo hago yo.
>
> ¿Qué es lo que sabes del programa del cual quieres obtener las
> coordenadas? ¿su pid? ¿el título de la ventana? ¿el wid de la ventana?
Hola.
Te cuento lo que he conseguido hasta ahora y cómo.
Ya hace un tiempo me aconsejaron que le echara un vistazo al código fuente
de los programas xlsclients y xwininfo para ver si de ahí podía sacar algo
en claro.
Pues bien, a partir de ese código me he hecho dos funciones que hacen lo
siguiente:
- La primera devuelve el ID de ventana de un programa. Se usa el
"Instance/Class" para buscarlo. Es el equivalente a ejecutar un
"xlsclients -l" y coger el ID de la ventana que te interesa.
- Y la segunda función, a partir del ID devuelve las coordenadas y la
anchura y altura. Es el equivalente a ejecutar un "xwininfo -id
el_id_de_la_ventana" (las coordenadas X e Y son "Absolute upper-left X" y
"Absolute upper-left Y", y en ancho y alto de "Width" y "Height"). Las
funciones que he usado son XGetWindowAttributes y XTranslateCoordinates.
Esto funciona bien, pero tiene un problema: aparentemente sólo funciona
con los programas hechos para Xlib a secas. Los programas desarrollados
con Qt o GTK dan información incorrecta.
Por ejemplo, ahora mismo estoy usando el sylpheed y los datos que obtengo
de la ventana de este programa son:
Absolute upper-left X: 10
Absolute upper-left Y: 10
Width: 10
Height: 10
Evidentemente están mal.
¿Qué debo hacer entonces para obtener información correcta de una ventana
de cualquier programa independientemente de las librerías con que se haya
hecho?
--
Ricardo Villalba
rvm at escomposlinux.org
More information about the Kde-devel-es
mailing list