PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [GTK] Funktion mehrere Widgets mitgeben



guardian
09-10-2003, 16:25
Hallöchen,

gibts ne Möglichkeit einer Funktion


void on_Filesel_ButtonOK_clicked( GtkButton* button, gpointer user_data );
mehrere Widgets zu übergeben ? Angenommen ich habe einen Dialog erschaffen, in welchem der User eine Datei zum Öffnen anklicken soll/kann. Wenn er eine Datei ausgesucht hat, klickt er OK. Im Hauptwidget (besteht z.b. aus nem Textview- und buffer und Menü) soll dann die ausgelesene Datei eingefügt werden (in Textview).

Nun müsste ich ja rein theoretisch der Funktion (siehe oben) den Fileselection-Dialog mit geben, und zusätzlich noch den irgendwie den Textbuffer bzw. Textview, um dass man die Datei auslesen kann und danach einfügen kann, und dass man weiß, von welchem Filesel-Dialog gerade das Signal kam.

Wobei sich auch schon wieder eine Schwirigkeit ergibt: dem Fileselection-Dialog ist der Textbuffer- und Textview unbekannt, da es ja 2 extra Widgets sind (Textbuffer- und view befinden sich im Mainwidget, und der Filesel-Dialog ist ja auch ein extra Widget).

Gibt es da eine Möglichkeit das zu vereinen (ausser das ich Textview global mache) ?

Habe mal was gelesen, dass user_data eine Art Array mit verschiedenen Informationen bzw. Widgets sein kann - in der Art wie char* argv[] aus der main-Funktion.

MfG guardian

BeS
09-10-2003, 17:43
Hallo,
es gibt zwei Möglichkeiten. Du kannst über user_data einen pointer auf einen array mit den widgets übergeben.
Eine andere Möglichkeit ist, wenn du das interface mit glade erstellt hast, dann kannst du dir die widgets mit der Funktion hohlen:
lookup_widget(GTK_WIDGET(button), "name_des_widgets");

guardian
11-10-2003, 09:01
Dank' dir :)

Ich hab auch noch ne andere Möglichkeit gefunden, indem ich eine Struktur anlege:


typedef struct
{
gchar* Content;
GError* Err;
FILE* Stream;
/* usw. */
}FC;
(lässt sich so auch realisieren)

MfG guardian