Zivjo!
Sicer se ne spoznam na C++:
On Sat, 26 Aug 2000, iztok pizorn wrote:
> class Ggg {
> void tiskaj();
> };
> kje ga lomim?
Ko ti poklices funkcijo iz gtk-ja ne poda "hidden parameter" (aka.
kazalec na objekt, ki klice metodo).
Vse C callback funkcije se naj bi v C++ razredih deklariralo kot
"static".
Na Primer:
--------
class classMessageWindow; // forward declaration
class classMessageWindow {
public:
// Widgets that compose a window
GtkWidget *gwMessageWindow;
GtkWidget *gwVBox;
GtkWidget *gwLabel1;
GtkWidget *gwLabel2;
GtkWidget *gwOK;
// constructor & destructor
classMessageWindow(char *error,char *details);
~classMessageWindow();
// common methods
void show();
void hide();
// signal handlers - static!
static void gsignalOK(GtkWidget *widget, classMessageWindow *data);
};
Kot je razvidno sem signal handler deklariral kot static in potem sam
rocno podam kot parameter kazalec na objekt.
Metodam se namrec doda se en parameter in sicer
kazalec na objekt, ki je klical metodo razreda (metoda mora
namrec vedeti, kdo jo kateri izmed mnogih objektov jo je klical).
Ce jo deklariras kot static se to ne zgodi in moras to sam
postoriti rocno.
--
best regards,
Rok Papez.