I already looked there so I will keep on asking.


> > I can create the callback from fluid without problem. The issue I have is
> > that I want to trigger the callback from outside of the GUI. In my case, I
> > am reading in a state file which changes menu settings. When I examine the
> > fluid generated code, it calls the callback I defined indirectly.
>
> Right; Have you read Greg's "Cheat Pages"? I'm pretty sure he covers this s=
> ort of usage...
>
> Try, um...
>
>    http://www.seriss.com/people/erco/fltk/#Menu_Toggle =
>
>
> and the subsequent related examples, see if that helps at all.
>
>
> > For example, I have a Fl_Menu_Item called "revdraworder" whose callback I
> > want to trigger from some part of my program. Here is the fluid code
> > generated for the callback:
> > =
>
> > void Controls::cb_revdraworder_i(Fl_Menu_* o, void*) {
> >   // I defined this callback in fluid
> >   my_function( (bool)(o->mvalue()->value()) );
> > }
> > =
>
> > void Controls::cb_revdraworder(Fl_Menu_* o, void* v) {
> >   // fluid generated this
> >   ((Controls*)(o->parent()->user_data()))->cb_revdraworder_i(o,v);
> > }
> > =
>
> > I need to pass a Fl_menu_ pointer to cb_revdraworder() but cannot figure
> > out which one. Somewhere in my code I will write
> > =
>
> > revdraworder->do_callback(w)
> > =
>
> > which will call cb_revorder() which will call cb_revorder_i().
> > How do I know what the value of w is?
>
>
> Note that the whole "cb_thing()" calling "cb_thing_i()" dance is just a con=
> venience to allow fluid to use a static member function for the callback. =
>
> The callback function needs to be static, or perhaps even "plain C", to all=
> ow the compiler to resolve it at compile time - indirection via the static =
> member function to the "actual" widget callback method is then done... =
>
> But, if you are creating your own menu structure, or are adding/removing me=
> nu items dynamically, you don't have to go that way - you can just have the=
>  callback be a regular (non-member) function that is called by the menu ite=
> m, or which you can just call yourself.
> Which may be simpler in your case?
>
> So, um, anyway, if Greg's examples don't help... Well, just keep asking!
>
> Cheers,
>
>
>
>
>
> SELEX Galileo Ltd
> Registered Office: Sigma House, Christopher Martin Road, Basildon, Essex SS=
> 14 3EL
> A company registered in England & Wales.  Company no. 02426132
> ********************************************************************
> This email and any attachments are confidential to the intended
> recipient and may also be privileged. If you are not the intended
> recipient please delete it from your system and notify the sender.
> You should not copy it or use it for any purpose nor disclose or
> distribute its contents to any other person.
> ********************************************************************
>

_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to