summaryrefslogtreecommitdiff
path: root/FL
diff options
context:
space:
mode:
Diffstat (limited to 'FL')
-rw-r--r--FL/Fl_Sys_Menu_Bar.H39
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