diff options
| author | Michael R Sweet <michael.r.sweet@gmail.com> | 1998-10-06 18:21:25 +0000 |
|---|---|---|
| committer | Michael R Sweet <michael.r.sweet@gmail.com> | 1998-10-06 18:21:25 +0000 |
| commit | f9039b2ae21988783feae9b362818e7923e82d14 (patch) | |
| tree | 6d6fe3679d73448758f9794e7d4d4f6b22a4adad /src/Fl_Menu_Bar.cxx | |
| parent | 67e89232f9ba067825a158734a09e0fa21aacbe3 (diff) | |
Initial revision
git-svn-id: file:///fltk/svn/fltk/trunk@2 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_Menu_Bar.cxx')
| -rw-r--r-- | src/Fl_Menu_Bar.cxx | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/Fl_Menu_Bar.cxx b/src/Fl_Menu_Bar.cxx new file mode 100644 index 000000000..763f1acb1 --- /dev/null +++ b/src/Fl_Menu_Bar.cxx @@ -0,0 +1,33 @@ +#include <FL/Fl.H> +#include <FL/Fl_Menu_Bar.H> + +void Fl_Menu_Bar::draw() { + draw_box(); + if (!menu() || !menu()->text) return; + const Fl_Menu_Item* m; + int X = x()+9; + for (m=menu(); m->text; m = m->next()) { + m->draw(X, y(), 0, h(), this); + X += m->measure(0,this) + 16; + } +} + +int Fl_Menu_Bar::handle(int event) { + const Fl_Menu_Item* v; + if (menu() && menu()->text) switch (event) { + case FL_PUSH: + v = 0; + J1: + v = menu()->pulldown(x(), y(), w(), h(), v, this, 0, 1); + picked(v); + return 1; + case FL_SHORTCUT: + v = menu()->test_shortcut(); + if (v) {picked(v); return 1;} + v = menu()->find_shortcut(); + if (v) goto J1; + return 0; + } + return 0; +} + |
