Newsgroup: it.comp.os.linux.development
Titolo: lookup_widget in altra finestra

Salve a tutti..
sono nuovo della programmazione con GTK e sto usando Glade per disegnare
le interfacce..
Volevo sapere come potevo fare per leggere, per esempio, il testo di una
un'etichetta di testo che si torva sulla "window2" dalla "window1" ..
(ok l'ho spiegato in modo spartano ma si dovrebbe capire :))
Inoltre non ho capito del tutto (e forse il problema principale e' questo)
come funziona il primo parametro della funzione lookup_widget ... (perche'
si prende "button" o "menuitem" ? per avere un widget parente di
riferimento??)
Ciao e Grazie,
Giovanni

riferimento??)
Se guardi nel sorgente prodotto glade troverai la risposta.
Cmq fa una ricerca nell'albero degli oggetti per trovare il 
riferimanto al widget che cerchi.
ciao
F.

 parente di riferimento??)
il discorso è il seguente. Da una qualsiasi callback del tuo programma
devi poter accedere ad un puntatore che punta alla finestra da cui vuoi
estrapolare l'informazione.
come si fa questo? Semplice: dichiari un po' di variabili GtkWidget
*windonw_qualcosa fuori dalla funzione main nel file main.c di glade e
poi quando si servono i puntatori nelle callback basta che dichiari le
variabili extern e hai i puntatori. Quel puntatore poi è la prima
variabile da passare alla funzione lookup_widget, il secondo è il nome
del widget che vuoi beccare (che è il nome che gli dà glade).

 del widget che vuoi beccare (che è il nome che gli dà glade).
Ok, fatto! (ho dichiarato la variabile come globale in callback.c)
Grazie a tutti.
ciao,
Giovanni

 (ok l'ho spiegato in modo spartano ma si dovrebbe capire :))
Non so se ho capito quello che vuoi fare, cmq immaginiamo che entry2 si
trovi su window2, tu fai così:
interface=GladeXML("file.glade")
entry2=interface.get_widget("entry2")
e a questo punto in ongi punto del programma potrai leggere il contenuto
di entry2 semplicemente con
testo=entry2.get_text()
-- 
 |\ |        || 
http://digilander.libero.it/nemesis2001
 | \|emesis  ||      "War, war never change us"

 testo=entry2.get_text()
1) ma questo non č per il C
2) ma come fai col file.glade quando installi il programma?

 2) ma come fai col file.glade quando installi il programma?
Con automake:
EXTRA_DIST = file.glade
interfacedir = $(DESTDIR)$(pkglibdir)
interface_DATA = file.glade
Genererà automaticamente un target simile questo:
file.glade:
	$(INSTALL_DATA) $@ $(DESTDIR)$(pkglibdir)/file.glade
Con $(pkglibdir) uguale a $(prefix)/lib/$(package_name).
A questo punto, sapendo durante a compile time $(pkglibdir), puoi dire
al tuo programma dove andare a prendere il file glade, magari usando:
	gcc ... -DUI_PATH=$(pkglibdir)
 
E usando UI_PATH.
+++
Ovviamente, se non usi autoconf/automake (male ;-)), puoi spostarla
renderlo hardcoded, chessò in /usr/lib/programma/ui.glade.
Ciao,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)              [ 
http://digilander.iol.it/ebassi/
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

 1) ma questo non è per il C
per cosa e'? (PyGtk?)
ciao,
Giovanni

 Con automake:
questo non lo conoscevo. mi salvo il post :-)

 2) ma come fai col file.glade quando installi il programma?
In che senso?


 per cosa e'? (PyGtk?)
Yes :-)
