summaryrefslogtreecommitdiff
path: root/src/Fl_Browser_.cxx
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>2001-08-04 20:17:10 +0000
committerMichael R Sweet <michael.r.sweet@gmail.com>2001-08-04 20:17:10 +0000
commit03f49329ff670c072aaddabf8f1beaf4f69e5bd9 (patch)
tree69e172b3f16aabaa9481eb7c6985e8892db6c84a /src/Fl_Browser_.cxx
parent2636d6fcd23976cb237b0d50a2f417a067d7fea5 (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_.cxx19
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 $".
//