[ vilyu @ 20.02.2005. 12:46 ] @
Zdravo, Imam sledeci problem: prema dokumentaciji sa www.fltk.net preporucuje se da cast-ovanje radim u static void callback funkciji, a da zatim obradu podataka izvedem u inline funkciji. Ali, ako na taj nacin radim, trosim oba argumenta callback funkcije na pokazivace ka prozoru i dugmetu, i ne ostaje mi "prostora" za jedan int kroz userdata, koji bi identifikovao koje je dugme pritisnuto. Da li zbog toga da izvedem novu klasu dugmeta, sa ugradjenim intom, ili je neko drugo resenje bolje? Hvala unapred. Evo moje klase: Code: class MyWindow : public Window { Button MyBtn; bool alternacija; inline void MyBtn_CB_i(Button* but) { alternacija = !alternacija; if(alternacija) but->image(gifImage::get("images/vert.gif")); else but->image(gifImage::get("images/horiz.gif")); } static void MyBtn_CB(Widget* w, void* v) { ((MyWindow*)v)->MyBtn_CB_i((Button*)w); } public: MyWindow(const char* label=0) : Window(USEDEFAULT, USEDEFAULT, 320, 90, label, true), MyBtn(10,10,40,40) { MyBtn.callback(MyBtn_CB,this); MyBtn.image(gifImage::get("images/vert.gif")); alternacija = true; end(); show(); } ~MyWindow() {} }; |