gtk+ : callbak - argumente
-
hi,
ich spiele zur zeit ein bisschen mit gtk+ herum und hätte da ne frage:eine callback-funktion kriegt in meinem fall daten in form eines gpointers. das ist nicht schlimm. allerdings brauche ich zwei zeiger als parameter. das beste, was mir eingefallen ist, ist ein struct zu erstellen, wo ich dann meine daten reinpacke. der zeiger auf dieses struct wird dann übergeben. problem: wenn ich in einem moment geistiger umnachtung was anderes als parameter angebe, gibts ne katastrophe. und es ist nicht schön.
kann ich da was anderes machen?
oder soll ich gar gleich gtk-- (OOP) nehmen?
-
Wo liegt das Problem?
Wenn du ein Struct / Klasse übergeben willst, dann tu das doch einfach.
Beispiel:struct VECTOR { int x; int y; int z; VECTOR() { } VECTOR(int a,int b,int c) { x=a; y=b; z=c; } }; // CALLBACK void cbFunc(GtkWidget* widget, gpointer data) { VECTOR* v = (VECTOR*)data; g_print("V1(%d;%d;%d)\n",v->x,v->y,v->z); } // ... dann später wenn du zB. die Callback zuweist: VECTOR myV(10,20,30); // Bei ClickEvent: g_signal_connect(G_OBJECT(button),"clicked", G_CALLBACK(cbFunc),(gpointer)&myV);
Das sollte problems funktionieren.