From bca3ae0b173f2c3ba24b0aa5e4c8fe10e0c1754c Mon Sep 17 00:00:00 2001 From: Greg Ercolano Date: Thu, 6 Jun 2019 11:09:29 -0700 Subject: [PATCH] Added example for mac Application -> Preferences --- FL/Fl_Sys_Menu_Bar.H | 36 +++++++++++++++++- .../src/mac-app-menu-preferences.png | Bin 0 -> 4171 bytes 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 documentation/src/mac-app-menu-preferences.png diff --git a/FL/Fl_Sys_Menu_Bar.H b/FL/Fl_Sys_Menu_Bar.H index ecf72ff15..23c8fc0ab 100644 --- a/FL/Fl_Sys_Menu_Bar.H +++ b/FL/Fl_Sys_Menu_Bar.H @@ -30,9 +30,10 @@ class Fl_Sys_Menu_Bar_Driver; /** A class to create and modify menus that appear on Mac OS X in the menu bar at the top of the screen. - To use this class, just replace Fl_Menu_Bar by Fl_Sys_Menu_Bar, and, on the Mac platform, + To use this class, just replace Fl_Menu_Bar with Fl_Sys_Menu_Bar, and on the Mac platform a system menu at the top of the screen will be available. This menu will match an array - of Fl_Menu_Item's exactly as in all other FLTK menus. + of Fl_Menu_Item's exactly as in all other FLTK menus (except for the submenu with the + application's own name; see below). On other than Mac OS X platforms, Fl_Sys_Menu_Bar is a synonym of class Fl_Menu_Bar. @@ -56,6 +57,37 @@ class Fl_Sys_Menu_Bar_Driver; \li no symbolic labels \li no embossed labels \li no font sizes + + As described above, the submenu with the application's own name (usually + the second submenu from the left, immediately following the "Apple" submenu) + is a special case, and can be managed with + Fl_Mac_App_Menu::custom_application_menu_items(). + For example, to make your own "Appname -> Preferences" dialog, you might use: + + \code + #include // for Fl_Mac_App_Menu class + #include // for Fl_Menu_Item + : + void prefs_cb(Fl_Widget *w, void *data) { + // ..Open your preferences dialog here.. + } + : + int main(..) { + : + // Items to add to the application menu + static Fl_Menu_Item appitems[] = { + { "Preferences", 0, prefs_cb, 0, 0 }, + { 0 }, { 0 } + }; + Fl_Mac_App_Menu::custom_application_menu_items(appitems); // adds it + } + \endcode + + ..the result being: + + \image html mac-app-menu-preferences.png "Mac Application submenu" + \image latex tree-simple.png "Mac Application submenu" width=4cm + */ class FL_EXPORT Fl_Sys_Menu_Bar : public Fl_Menu_Bar { protected: diff --git a/documentation/src/mac-app-menu-preferences.png b/documentation/src/mac-app-menu-preferences.png new file mode 100644 index 0000000000000000000000000000000000000000..fe95ccce249fd019ced1264bc5cd88c66660f855 GIT binary patch literal 4171 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