summaryrefslogtreecommitdiffstats
path: root/os-plugins/plugins/vmchooser/src/fltk-2/include/fltk/Menu.h
diff options
context:
space:
mode:
Diffstat (limited to 'os-plugins/plugins/vmchooser/src/fltk-2/include/fltk/Menu.h')
-rw-r--r--os-plugins/plugins/vmchooser/src/fltk-2/include/fltk/Menu.h152
1 files changed, 152 insertions, 0 deletions
diff --git a/os-plugins/plugins/vmchooser/src/fltk-2/include/fltk/Menu.h b/os-plugins/plugins/vmchooser/src/fltk-2/include/fltk/Menu.h
new file mode 100644
index 00000000..8659627d
--- /dev/null
+++ b/os-plugins/plugins/vmchooser/src/fltk-2/include/fltk/Menu.h
@@ -0,0 +1,152 @@
+// "$Id: Menu.h 5708 2007-02-23 00:52:14Z spitzak $"
+//
+// Copyright 1998-2006 by Bill Spitzak and others.
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Library General Public License for more details.
+//
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+//
+// Please report all bugs and problems to "fltk-bugs@fltk.org".
+
+#ifndef fltk_Menu_h
+#define fltk_Menu_h
+
+#include "Group.h"
+
+namespace fltk {
+
+class FL_API Menu;
+
+class FL_API List {
+public:
+ virtual int children(const Menu*, const int* indexes, int level);
+ virtual Widget* child(const Menu*, const int* indexes, int level);
+ virtual void flags_changed(const Menu*, Widget*);
+ virtual ~List();
+};
+
+enum { // Special flag values for add(), you can also use Flags.h values
+ // These match values from Fl_Menu_Item in fltk 1.0:
+ MENU_TOGGLE = 2,
+ MENU_RADIO = 8,
+ SUBMENU = 0x40,
+ MENU_DIVIDER = 0x80
+};
+
+class FL_API Menu : public Group {
+
+public:
+
+ Menu(int,int,int,int, const char* l=0, bool begin=false);
+ List* list() const {return list_;}
+ void list(List* l) {list_ = l;}
+ void layout();
+
+ static NamedStyle* default_style;
+
+ int children(const int* indexes, int level) const ;
+ int children(int index) const;
+ int children() const ;
+ Widget* child(const int* indexes, int level) const ;
+ Widget* child(int index) const ;
+
+ Widget* item() const {return item_;}
+ Widget* item(Widget* v) {return item_ = v;}
+
+ bool set_item(const int* indexes, int level);
+ Widget* get_item();
+ int value() const {return Group::focus_index();}
+ bool value(int v);
+ int size() const {return children();}
+
+ void layout_in(Widget*,const int* indexes, int level) const;
+ void draw_in(Widget*,const int* indexes, int level, int, int) const;
+ int find_selected(Widget*,const int* indexes, int level, int, int) const;
+ Rectangle get_location(Widget*,const int* indexes, int level, int) const;
+
+ int popup(const Rectangle&, const char* title=0,bool menubar=false);
+ int handle_shortcut();
+ static void default_callback(Widget*, void*);
+ void execute(Widget*);
+ void global();
+
+ Widget* find(const char*) const;
+ void remove(const char* l) { delete find(l); }
+ Widget* add(const char*, unsigned shortcut, Callback*, void* = 0, int = 0);
+ Widget* replace(const char*, unsigned shortcut, Callback*, void* = 0, int = 0);
+ Widget* insert(int n, const char*, unsigned shortcut, Callback*, void* = 0, int = 0);
+ Widget* add(const char*, void* = 0);
+ Group* add_group(const char* label, Group* parent=0, void* data=0);
+ Widget* add_leaf(const char* label, Group* parent=0, void* data=0);
+ Widget* add_many(const char*);
+ Widget* replace(const char*, void* = 0);
+ Widget* insert(int n, const char*, void* = 0);
+
+ // Undo the overrides of stuff from Group:
+ void add(Widget& o) {Group::add(o);}
+ void add(Widget* o) {add(*o);}
+ void insert(Widget& o, int n) {Group::insert(o, n);}
+ void replace(int index, Widget& o) {Group::replace(index, o);}
+ void replace(Widget& old, Widget& o) {Group::replace(old,o);}
+ void remove(int index) {Group::remove(index);}
+ void remove(Widget& o) {Group::remove(o);}
+ void remove(Widget* o) {Group::remove(o);}
+
+#ifdef Fl_Menu_Item_h
+ // Commented-out methods cannot be emulated.
+//const Fl_Menu_Item* test_shortcut();
+//Fl_Menu_Item* menu() const;
+ void copy(const Fl_Menu_Item* m, void* data = 0) {clear(); m->add_to(this,data);}
+ void menu(const Fl_Menu_Item* m) {copy(m,0);}
+ void replace(int n, const char* s) { child(n)->label(s); }
+ void replace(const char* l, const char* s) { find(l)->label(s); }
+ void shortcut(const char* l, unsigned s) { find(l)->shortcut(s); }
+ void shortcut(unsigned s) {Widget::shortcut(s);}
+ unsigned shortcut() const {return Widget::shortcut();}
+ void shortcut(int i, unsigned s) { child(i)->shortcut(s); }
+//int index(Fl_Menu_Item* m) const { return m - menu_; }
+//int index(const char* label) const;
+//void replace(Fl_Menu_Item* m, const char* s) { replace(index(m), s); }
+//void remove(Fl_Menu_Item* m) { remove(index(m)); }
+//void shortcut(Fl_Menu_Item* m, unsigned s) {shortcut(index(m), s);}
+//void mode(int i,int x);
+//void mode(Fl_Menu_Item* m, int x) {mode(index(m), x);}
+//void mode(const char* l, int x) {mode(index(l), x);}
+ unsigned mode(int i) const {return child(i)->flags() >> 8;}
+//unsigned mode(Fl_Menu_Item* m) const {return mode(index(m));}
+ unsigned mode(const char* l) const {return find(l)->flags() >> 8;}
+
+ // in fltk 1.0 these returned/took an Fl_Menu_Item*:
+ Widget* mvalue() {return item();}
+//void value(Widget* o) {set_item(o);}
+
+ const char *text(int i) const {return i >= 0 ? child(i)->label() : 0;}
+ const char *text() const {Widget* w = item(); return w ? w->label() : 0;}
+#endif
+
+protected:
+ Widget *try_popup(const Rectangle&,const char* title=0,bool menubar=false);
+
+private:
+ List* list_;
+ Widget* item_;
+};
+
+}
+
+#endif
+
+//
+// End of "$Id: Menu.h 5708 2007-02-23 00:52:14Z spitzak $".
+//