diff options
| author | Michael R Sweet <michael.r.sweet@gmail.com> | 2001-08-04 20:17:10 +0000 |
|---|---|---|
| committer | Michael R Sweet <michael.r.sweet@gmail.com> | 2001-08-04 20:17:10 +0000 |
| commit | 03f49329ff670c072aaddabf8f1beaf4f69e5bd9 (patch) | |
| tree | 69e172b3f16aabaa9481eb7c6985e8892db6c84a /src/Fl_Menu_Button.cxx | |
| parent | 2636d6fcd23976cb237b0d50a2f417a067d7fea5 (diff) | |
New draw_focus() methods.
Keyboard nav for choice, menu button.
Updated Fl_Choice to draw like a combo box.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1553 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_Menu_Button.cxx')
| -rw-r--r-- | src/Fl_Menu_Button.cxx | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/Fl_Menu_Button.cxx b/src/Fl_Menu_Button.cxx index 36661a875..4abb2fe08 100644 --- a/src/Fl_Menu_Button.cxx +++ b/src/Fl_Menu_Button.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Menu_Button.cxx,v 1.4.2.3 2001/01/22 15:13:40 easysw Exp $" +// "$Id: Fl_Menu_Button.cxx,v 1.4.2.3.2.1 2001/08/04 20:17:10 easysw Exp $" // // Menu button widget for the Fast Light Tool Kit (FLTK). // @@ -31,12 +31,15 @@ void Fl_Menu_Button::draw() { if (!box() || type()) return; draw_box(box(), color()); draw_label(); + if (Fl::focus() == this) draw_focus(); if (box() == FL_FLAT_BOX) return; // for XForms compatability int H = (labelsize()-3)&-2; int X = x()+w()-H*2; int Y = y()+(h()-H)/2; - fl_color(FL_DARK3); fl_line(X+H/2, Y+H, X, Y, X+H, Y); - fl_color(FL_LIGHT3); fl_line(X+H, Y, X+H/2, Y+H); + fl_color(active_r() ? FL_DARK3 : fl_inactive(FL_DARK3)); + fl_line(X+H/2, Y+H, X, Y, X+H, Y); + fl_color(active_r() ? FL_LIGHT3 : fl_inactive(FL_LIGHT3)); + fl_line(X+H, Y, X+H/2, Y+H); } const Fl_Menu_Item* Fl_Menu_Button::popup() { @@ -62,11 +65,23 @@ int Fl_Menu_Button::handle(int e) { } else if (type()) { if (!(type() & (1 << (Fl::event_button()-1)))) return 0; } + take_focus(); popup(); return 1; + case FL_KEYBOARD: + if (Fl::event_key() == ' ') { + popup(); + return 1; + } else return 0; case FL_SHORTCUT: if (Fl_Widget::test_shortcut()) {popup(); return 1;} return test_shortcut() != 0; + case FL_FOCUS: + case FL_UNFOCUS: + if (box()) { + redraw(); + return 1; + } default: return 0; } @@ -78,5 +93,5 @@ Fl_Menu_Button::Fl_Menu_Button(int X,int Y,int W,int H,const char *l) } // -// End of "$Id: Fl_Menu_Button.cxx,v 1.4.2.3 2001/01/22 15:13:40 easysw Exp $". +// End of "$Id: Fl_Menu_Button.cxx,v 1.4.2.3.2.1 2001/08/04 20:17:10 easysw Exp $". // |
