From 4be97ea19c9a8a83e2831eedd1829da4ac381ba7 Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Wed, 11 Jan 2012 16:16:31 +0000 Subject: Fixed the use of FL_SUBMENU_POINTER in Fl_Sys_Menu_Bar objects (Mac OS-specific). Modified the menubar demo program to exercise the Fl_Sys_Menu_Bar class. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9218 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- test/menubar.cxx | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/menubar.cxx b/test/menubar.cxx index d9139ec33..dadb80770 100644 --- a/test/menubar.cxx +++ b/test/menubar.cxx @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include #include @@ -170,6 +170,33 @@ Fl_Menu_Item pulldown[] = { {0} }; +#ifdef __APPLE__ +Fl_Menu_Item menu_location[] = { + {"Window menu bar", 0, 0, 0, FL_MENU_VALUE}, + {"System menu bar", }, + {0} +}; + +Fl_Sys_Menu_Bar* smenubar; + +void menu_location_cb(Fl_Widget* w, void* data) +{ + Fl_Menu_Bar *menubar = (Fl_Menu_Bar*)data; + if (((Fl_Choice*)w)->value() == 1) { // switch to system menu bar + menubar->hide(); + const Fl_Menu_Item *menu = menubar->menu(); + smenubar = new Fl_Sys_Menu_Bar(0,0,0,30); + smenubar->menu(menu); + smenubar->callback(test_cb); + } + else { // switch to window menu bar + smenubar->clear(); + delete smenubar; + menubar->show(); + } +} +#endif // __APPLE__ + #define WIDTH 700 Fl_Menu_* menus[4]; @@ -204,6 +231,11 @@ int main(int argc, char **argv) { Fl_Box b(200,200,200,100,"Press right button\nfor a pop-up menu"); window.resizable(&mb); window.size_range(300,400,0,400); +#ifdef __APPLE__ + Fl_Choice ch2(500,100,150,25,"Use:"); + ch2.menu(menu_location); + ch2.callback(menu_location_cb, &menubar); +#endif window.end(); window.show(argc, argv); return Fl::run(); -- cgit v1.2.3