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_Browser_.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_Browser_.cxx')
| -rw-r--r-- | src/Fl_Browser_.cxx | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/Fl_Browser_.cxx b/src/Fl_Browser_.cxx index 6a0202a0b..9e7a0fb7d 100644 --- a/src/Fl_Browser_.cxx +++ b/src/Fl_Browser_.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Browser_.cxx,v 1.10.2.16.2.4 2001/08/04 12:21:33 easysw Exp $" +// "$Id: Fl_Browser_.cxx,v 1.10.2.16.2.5 2001/08/04 20:17:10 easysw Exp $" // // Base Browser widget class for the Fast Light Tool Kit (FLTK). // @@ -316,9 +316,8 @@ J1: fl_rectf(X, yy+Y, W, hh); } item_draw(l, X-hposition_, yy+Y, W+hposition_, hh); - if (l == selection_) { - fl_color(active_r() ? textcolor() : inactive(textcolor())); - fl_rect(X+1, yy+Y, W-2, hh); + if (l == selection_ && Fl::focus() == this) { + draw_focus(FL_NO_BOX, X, yy+Y+1, W, hh); } int w = item_width(l); if (w > max_width) {max_width = w; max_width_item = l;} @@ -499,8 +498,7 @@ int Fl_Browser_::select_only(void* l, int docallbacks) { int Fl_Browser_::handle(int event) { // must do shortcuts first or the scrollbar will get them... - if ((event == FL_SHORTCUT || event == FL_KEYBOARD) - && type() >= FL_HOLD_BROWSER) { + if (event == FL_KEYBOARD && type() >= FL_HOLD_BROWSER) { void* l1 = selection_; void* l = l1; if (!l) l = top_; if (!l) l = item_first(); if (l) { @@ -553,6 +551,7 @@ int Fl_Browser_::handle(int event) { switch (event) { case FL_PUSH: if (!Fl::event_inside(X, Y, W, H)) return 0; + take_focus(); my = py = Fl::event_y(); change = 0; if (type() == FL_NORMAL_BROWSER || !top_) @@ -647,6 +646,12 @@ int Fl_Browser_::handle(int event) { if (when() & FL_WHEN_NOT_CHANGED) do_callback(); } return 1; + case FL_FOCUS: + case FL_UNFOCUS: + if (type() >= FL_HOLD_BROWSER) { + redraw(); + return 1; + } else return 0; } return 0; @@ -707,5 +712,5 @@ void Fl_Browser_::item_select(void*, int) {} int Fl_Browser_::item_selected(void* l) const {return l==selection_;} // -// End of "$Id: Fl_Browser_.cxx,v 1.10.2.16.2.4 2001/08/04 12:21:33 easysw Exp $". +// End of "$Id: Fl_Browser_.cxx,v 1.10.2.16.2.5 2001/08/04 20:17:10 easysw Exp $". // |
