Loic wrote:
> Hi all,
> 
> sorry for spamming, but I have an other problem...
> I change my code to include a menubar. (as in the example)
> 
> my old code :
> -------------------------------
> Fl_Window* window = new Fl_Window(0,0,WINDOW_WIDTH,WINDOW_HEIGHT, "FROG 
> Displayer");
> window->end();
> window->resizable(window);
> window->show();
> 
> while(window->shown()){
>    Fl::check();
>    window->redraw();
> }
> -------------------------------
> 
> Has been changed to
> -------------------------------
> Fl_Window* window = new Fl_Window(0,0,WINDOW_WIDTH,WINDOW_HEIGHT+20, "FROG 
> Displayer_Main");
> FROG_MainWindow* frog_window = new 
> FROG_MainWindow(0,20,WINDOW_WIDTH,WINDOW_HEIGHT, "FROG Displayer");
> frog_window->end();
> frog_window->resizable(frog_window);
> frog_window->show();
> frog_window->end();
> 
> Fl_Menu_Bar* menubar = new Fl_Menu_Bar(0,0,WINDOW_WIDTH,20);
> menubar->menu(menutable);
> menubar->callback(test_cb);
> menubar->show();
> 
> window->end();
> window->resizable(window);
> window->show();
> 
> while(window->shown()){
>       Fl::check();
>       frog_window->redraw();
> }
> -------------------------------
> 
> But the callback get crazy...
> for mouse callback everything seems to be fine...

> but for keyboard callback..

        Hmm, what's a "keyboard callback" mean in this context?

        To read the keyboard you usually have to setup a handle()
        to trap events, unless I'm forgetting something. Or maybe
        you've got keyboard shortcuts enabled for certain menu items,
        but that should trigger the same callback as the mouse, so
        it'd be odd if one worked and the other did not.

> either the program crashes or it does nothing (while it is suppose to do 
> something with the key pressed).

        Hard to tell from the code you've posted, as it's missing what's
        going on in the callback and menutable, which is where the problem
        likely lies.

        If it crashes, it might be the menutable isn't NULL terminated 
correctly..
        or the callback is doing something it shouldn't with the widget or 
userdata
        pointers.

        Building the menutable is a careful business to do manually -- usually
        I only let fluid handle building menu tables, as submenus need special
        extra NULL terminations, IIRC.

        I prefer to use menubar->add() to build a menubar in contexts outside
        of fluid, eg:

                menubar->add("File/Save", ..);
                menubar->add("File/Save As", ..);
                menubar->add("File/Quit", ..);
                menubar->add("Edit/Copy", ..);

        For more info, see this example:
        http://seriss.com/people/erco/fltk/#Fl_Menu_Bar_Single_Callback

        BTW, since this is most likely a non-opengl issue, it's better
        to use fltk.general for this kinda stuff; you'll get more replies,
        and the back+forths will be more useful to folks on that group.

        Try running the debugger to see where it crashes..
_______________________________________________
fltk-opengl mailing list
fltk-opengl@easysw.com
http://lists.easysw.com/mailman/listinfo/fltk-opengl

Reply via email to