FLTK 1.3.4
Fl_Sys_Menu_Bar.H
1 //
2 // "$Id: Fl_Sys_Menu_Bar.H 11795 2016-06-22 07:49:34Z greg.ercolano $"
3 //
4 // MacOS system menu bar header file for the Fast Light Tool Kit (FLTK).
5 //
6 // Copyright 1998-2010 by Bill Spitzak and others.
7 //
8 // This library is free software. Distribution and use rights are outlined in
9 // the file "COPYING" which should have been included with this file. If this
10 // file is missing or damaged, see the license at:
11 //
12 // http://www.fltk.org/COPYING.php
13 //
14 // Please report all bugs and problems on the following page:
15 //
16 // http://www.fltk.org/str.php
17 //
18 
19 #ifndef Fl_Sys_Menu_Bar_H
20 #define Fl_Sys_Menu_Bar_H
21 
22 #include "Fl_Menu_Bar.H"
23 #include "x.H"
24 
25 #if defined(__APPLE__) || defined(FL_DOXYGEN)
26 
48 class FL_EXPORT Fl_Sys_Menu_Bar : public Fl_Menu_Bar {
49 
50 #if FLTK_ABI_VERSION >= 10304
51  // NEW -- update() public (STR#3317)
52 public:
53  void update();
54 protected:
55  void draw();
56 #else
57  // OLD -- update() protected
58 protected:
59  void update();
60  void draw();
61 #endif
62 
63 public:
64  Fl_Sys_Menu_Bar(int x,int y,int w,int h,const char *l=0);
65  ~Fl_Sys_Menu_Bar();
68  const Fl_Menu_Item *menu() const {return Fl_Menu_::menu();}
69  void menu(const Fl_Menu_Item *m);
70  int add(const char* label, int shortcut, Fl_Callback*, void *user_data=0, int flags=0);
74  int add(const char* label, const char* shortcut, Fl_Callback* cb, void *user_data=0, int flags=0) {
75  return add(label, fl_old_shortcut(shortcut), cb, user_data, flags);
76  }
77  int add(const char* str);
78  int insert(int index, const char* label, int shortcut, Fl_Callback *cb, void *user_data=0, int flags=0);
82  int insert(int index, const char* label, const char* shortcut, Fl_Callback *cb, void *user_data=0, int flags=0) {
83  return insert(index, label, fl_old_shortcut(shortcut), cb, user_data, flags);
84  }
85  void remove(int n);
86  void replace(int index, const char *name);
90  void clear();
94  int clear_submenu(int index);
97  void global() {};
100  void mode (int i, int fl) {
101  Fl_Menu_::mode(i, fl);
102  update();
103  }
106  int mode(int i) const { return Fl_Menu_::mode(i); }
109  void shortcut (int i, int s) { Fl_Menu_::shortcut(i, s); update(); }
111  void setonly (Fl_Menu_Item *item) { Fl_Menu_::setonly(item); update(); }
112 };
113 
114 #else
115 
116 #if FLTK_ABI_VERSION >= 10304
117 // NEW -- small class for update()
118 class FL_EXPORT Fl_Sys_Menu_Bar : public Fl_Menu_Bar {
119 public:
120  Fl_Sys_Menu_Bar(int x,int y,int w,int h,const char *l=0) : Fl_Menu_Bar(x,y,w,h,l) {}
121  inline void update() {}
122 };
123 #else
124 // OLD -- simple typedef
126 #endif
127 
128 #endif // defined(__APPLE__) || defined(FL_DOXYGEN)
129 
130 #endif // Fl_Sys_Menu_Bar_H
131 
132 //
133 // End of "$Id: Fl_Sys_Menu_Bar.H 11795 2016-06-22 07:49:34Z greg.ercolano $".
134 //
void global()
Make the shortcuts for this menu work no matter what window has the focus when you type it...
Definition: Fl_Sys_Menu_Bar.H:97
void setonly(Fl_Menu_Item *item)
Turns the radio item "on" for the menu item and turns "off" adjacent radio items of the same group...
Definition: Fl_Sys_Menu_Bar.H:111
void mode(int i, int fl)
Sets the flags of item i.
Definition: Fl_Sys_Menu_Bar.H:100
FL_EXPORT unsigned int fl_old_shortcut(const char *s)
Emulation of XForms named shortcuts.
Definition: fl_shortcut.cxx:396
void draw()
Draws the widget.
Definition: Fl_Menu_Bar.cxx:23
This widget provides a standard menubar interface.
Definition: Fl_Menu_Bar.H:67
int mode(int i) const
Gets the flags of item i.
Definition: Fl_Sys_Menu_Bar.H:106
void clear()
Same as menu(NULL), set the array pointer to null, indicating a zero-length menu. ...
Definition: Fl_Menu_.cxx:457
int insert(int index, const char *, int shortcut, Fl_Callback *, void *=0, int=0)
Inserts a new menu item at the specified index position.
Definition: Fl_Menu_add.cxx:368
int insert(int index, const char *label, const char *shortcut, Fl_Callback *cb, void *user_data=0, int flags=0)
Insert a new menu item.
Definition: Fl_Sys_Menu_Bar.H:82
void( Fl_Callback)(Fl_Widget *, void *)
Default callback type definition for all fltk widgets (by far the most used)
Definition: Fl_Widget.H:49
int add(const char *label, const char *shortcut, Fl_Callback *cb, void *user_data=0, int flags=0)
Adds a new menu item.
Definition: Fl_Sys_Menu_Bar.H:74
A class to create, modify and delete menus that appear on Mac OS X in the menu bar at the top of the ...
Definition: Fl_Sys_Menu_Bar.H:48
void shortcut(int i, int s)
Changes the shortcut of item i to s.
Definition: Fl_Menu_.H:131
const Fl_Menu_Item * menu() const
Return the system menu's array of Fl_Menu_Item's.
Definition: Fl_Sys_Menu_Bar.H:68
void shortcut(int i, int s)
Changes the shortcut of item i to n.
Definition: Fl_Sys_Menu_Bar.H:109
int clear_submenu(int index)
Clears the specified submenu pointed to by index of all menu items.
Definition: Fl_Menu_.cxx:501
void setonly(Fl_Menu_Item *item)
Turns the radio item "on" for the menu item and turns "off" adjacent radio items of the same group...
Definition: Fl_Menu_.cxx:344
The Fl_Menu_Item structure defines a single menu item that is used by the Fl_Menu_ class...
Definition: Fl_Menu_Item.H:112
int add(const char *, int shortcut, Fl_Callback *, void *=0, int=0)
Adds a new menu item.
Definition: Fl_Menu_add.cxx:332
void mode(int i, int fl)
Sets the flags of item i.
Definition: Fl_Menu_.H:133
void replace(int, const char *)
Changes the text of item i.
Definition: Fl_Menu_add.cxx:462
const Fl_Menu_Item * menu() const
Returns a pointer to the array of Fl_Menu_Items.
Definition: Fl_Menu_.H:110