> [..]
> > Since my callbacks are outside of my classes (I have seen a video where the 
> > author encapsulated them in the class, but I couldn't compile that way, but 
> > let's forget about this), which forces my to declare variables globally (or 
> > in a namespace) and generally clutter up the .cpp source,
> [..]
>
> This is sort of a FAQ, I guess.  The way many folks cut down on
> clutter is to organize things the following way.  You end
> up having 2 methods for every callback (one static and one
> non-static), which is unfortunate, but you avoid the
> global state variables that rightly concern you.
>
>   class MyClass : publc Fl_SomethingOrOther {
>
>   public:
>        MyClass( ...  )
>        {
>              // whatever goes here
>
>              btn->callback(btn_callback, this);
>        }
>
>   private:
>
>      static void btn_callback(Fl_Widget*, void* self)
>      {
>         // forward to member function
>         static_cast<MyClass*>(self)->btn_callback();
>      }
>      void btn_callback()
>      {
>         // do the work here
>      }
>
>      Fl_Button* btn;  // for example
> };
>
> HTH,
> Stan

In other words: I stick to handle() for dear life :D. Thanks for the 
explanation Stan.
_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to