[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