diff options
| author | Manolo Gouy <Manolo> | 2014-02-11 17:59:20 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2014-02-11 17:59:20 +0000 |
| commit | e43bf8a1b2ffd6f2ba5a66044b0cfea9e9b097b4 (patch) | |
| tree | b1108b89709b83998e763cb2299601f8644e9442 /FL | |
| parent | f4e2292f8049576d3a60d22e3e8fb83184406214 (diff) | |
Completed the implementation of Fl_Sys_Menu_Bar that now accepts all calls of its parent class Fl_Menu_.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10102 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'FL')
| -rw-r--r-- | FL/Fl_Sys_Menu_Bar.H | 39 |
1 files changed, 31 insertions, 8 deletions
diff --git a/FL/Fl_Sys_Menu_Bar.H b/FL/Fl_Sys_Menu_Bar.H index c5c5b97e3..0c5b50cbf 100644 --- a/FL/Fl_Sys_Menu_Bar.H +++ b/FL/Fl_Sys_Menu_Bar.H @@ -25,26 +25,28 @@ #if defined(__APPLE__) || defined(FL_DOXYGEN) /** - \brief A class to create, modify and delete menus that appear on Mac OS X in the menu bar at the top of the screen. + A class to create, modify and delete menus that appear on Mac OS X in the menu bar at the top of the screen. - On other than Mac OS X platforms, Fl_Sys_Menu_Bar is a synonym of class Fl_Menu_Bar, - except for Fl_Sys_Menu_Bar::update() defined for Mac OS X only. - \n Some FLTK features are not supported by the Mac System menu: + On other than Mac OS X platforms, Fl_Sys_Menu_Bar is a synonym of class Fl_Menu_Bar. + \n To use this class, just replace Fl_Menu_Bar by 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 with standard FLTK menus. + \n A few FLTK features are not supported by the Mac System menu: \li no symbolic labels \li no embossed labels \li no font sizes - \li some calls of the parent class don't work You can configure a callback for the 'About' menu item to invoke your own code with fl_mac_set_about(). - * */ class FL_EXPORT Fl_Sys_Menu_Bar : public Fl_Menu_Bar { protected: + void update(); void draw(); public: Fl_Sys_Menu_Bar(int x,int y,int w,int h,const char *l=0); ~Fl_Sys_Menu_Bar(); - /** Return the system menu's array of Fl_Menu_Item's */ + /** Return the system menu's array of Fl_Menu_Item's + */ const Fl_Menu_Item *menu() const {return Fl_Menu_::menu();} void menu(const Fl_Menu_Item *m); int add(const char* label, int shortcut, Fl_Callback*, void *user_data=0, int flags=0); @@ -54,10 +56,16 @@ public: int add(const char* label, const char* shortcut, Fl_Callback* cb, void *user_data=0, int flags=0) { return add(label, fl_old_shortcut(shortcut), cb, user_data, flags); } + int add(const char* str); int insert(int index, const char* label, int shortcut, Fl_Callback *cb, void *user_data=0, int flags=0); + /** Insert a new menu item. + \see Fl_Menu_::insert(int index, const char* label, const char* shortcut, Fl_Callback *cb, void *user_data=0, int flags=0) + */ + int insert(int index, const char* label, const char* shortcut, Fl_Callback *cb, void *user_data=0, int flags=0) { + return insert(index, label, fl_old_shortcut(shortcut), cb, user_data, flags); + } void remove(int n); void replace(int rank, const char *name); - void update(); /** Set the Fl_Menu_Item array pointer to null, indicating a zero-length menu. \see Fl_Menu_::clear() */ @@ -66,6 +74,21 @@ public: \see Fl_Menu_::clear_submenu(int index) */ int clear_submenu(int index); + /** Make the shortcuts for this menu work no matter what window has the focus when you type it. + */ + void global() {}; + /** Sets the flags of item i + \see Fl_Menu_::mode(int i, int fl) */ + void mode (int i, int fl) { + Fl_Menu_::mode(i, fl); + update(); + } + /** Gets the flags of item i. + */ + int mode(int i) const { return Fl_Menu_::mode(i); } + /** Changes the shortcut of item i to n. + */ + void shortcut (int i, int s) { Fl_Menu_::shortcut(i, s); update(); }; }; #else |
