summaryrefslogtreecommitdiff
path: root/FL/Fl_Sys_Menu_Bar.H
diff options
context:
space:
mode:
authorManolo Gouy <Manolo>2017-12-02 16:20:30 +0000
committerManolo Gouy <Manolo>2017-12-02 16:20:30 +0000
commit34dd1b15fbbc44e70bfdb21498ce7898bf8658b3 (patch)
treefb65dd41847ff4205236066de124a1c9cb27e33c /FL/Fl_Sys_Menu_Bar.H
parenta8fe10cf88e757f59057fdaf51637d26ab3019aa (diff)
Converted class Fl_Sys_Menu_Bar to the driver model.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12575 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'FL/Fl_Sys_Menu_Bar.H')
-rw-r--r--FL/Fl_Sys_Menu_Bar.H44
1 files changed, 16 insertions, 28 deletions
diff --git a/FL/Fl_Sys_Menu_Bar.H b/FL/Fl_Sys_Menu_Bar.H
index 833140c24..31bcb3cc7 100644
--- a/FL/Fl_Sys_Menu_Bar.H
+++ b/FL/Fl_Sys_Menu_Bar.H
@@ -3,7 +3,7 @@
//
// MacOS system menu bar header file for the Fast Light Tool Kit (FLTK).
//
-// Copyright 1998-2010 by Bill Spitzak and others.
+// Copyright 1998-2017 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
@@ -21,7 +21,7 @@
#include <FL/Fl_Menu_Bar.H>
-#if defined(__APPLE__) || defined(FL_DOXYGEN)
+class Fl_Sys_Menu_Bar_Driver;
/**
A class to create, modify and delete menus that appear on Mac OS X in the menu bar at the top of the screen.
@@ -41,14 +41,15 @@
\li no embossed labels
\li no font sizes
- You can configure a callback for the 'About' menu item to invoke your own code with fl_mac_set_about().
+ You can configure a callback for the 'About' menu item to invoke your own code with Fl_Sys_Menu_Bar::about().
*/
class FL_EXPORT Fl_Sys_Menu_Bar : public Fl_Menu_Bar {
protected:
- void draw();
+ virtual void draw();
public:
Fl_Sys_Menu_Bar(int x,int y,int w,int h,const char *l=0);
- ~Fl_Sys_Menu_Bar();
+ virtual ~Fl_Sys_Menu_Bar();
+ Fl_Sys_Menu_Bar_Driver *driver();
/** Return the system menu's array of Fl_Menu_Item's
*/
const Fl_Menu_Item *menu() const {return Fl_Menu_::menu();}
@@ -71,38 +72,25 @@ public:
}
void remove(int n);
void replace(int index, const char *name);
- /** Set the Fl_Menu_Item array pointer to null, indicating a zero-length menu.
- \see Fl_Menu_::clear()
- */
void clear();
- /** Clears the specified submenu pointed to by index of all menu items.
- \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();
- }
+ void mode (int i, int fl);
/** 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(); }
- /** Turns the radio item "on" for the menu item and turns "off" adjacent radio items of the same group.*/
- void setonly (Fl_Menu_Item *item) { Fl_Menu_::setonly(item); update(); }
+ void shortcut (int i, int s);
+ void setonly (Fl_Menu_Item *item);
+ static void about(Fl_Callback *cb, void *data);
};
-#else
+extern Fl_Sys_Menu_Bar *fl_sys_menu_bar;
-typedef Fl_Menu_Bar Fl_Sys_Menu_Bar;
+/**
+ * Attaches a callback to the "About myprog" item of the system application menu.
+ For back-compatibility. Equivalent to Fl_Sys_Menu_Bar::about(cb, user_data).
+ */
+inline void fl_mac_set_about(Fl_Callback *cb, void *user_data, int shortcut = 0) { Fl_Sys_Menu_Bar::about(cb, user_data);}
-#endif // defined(__APPLE__) || defined(FL_DOXYGEN)
#endif // Fl_Sys_Menu_Bar_H