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.

Reply via email to