summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorManolo Gouy <Manolo>2012-01-11 16:16:31 +0000
committerManolo Gouy <Manolo>2012-01-11 16:16:31 +0000
commit4be97ea19c9a8a83e2831eedd1829da4ac381ba7 (patch)
treea52c2f3f9c2e75ce7eded54604dbeae2cb316cb9 /test
parentaa0e4bb823949946ad4153b8d7eecbff0662553d (diff)
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
Diffstat (limited to 'test')
-rw-r--r--test/menubar.cxx34
1 files changed, 33 insertions, 1 deletions
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 <FL/Fl.H>
#include <FL/Fl_Box.H>
#include <FL/Fl_Double_Window.H>
-#include <FL/Fl_Menu_Bar.H>
+#include <FL/Fl_Sys_Menu_Bar.H>
#include <FL/Fl_Toggle_Button.H>
#include <FL/Fl_Menu_Button.H>
#include <FL/Fl_Choice.H>
@@ -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();