diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2022-01-14 17:17:09 +0100 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2022-01-14 17:17:09 +0100 |
| commit | ab58971bcf9cedee6ecd131ca032087ff7d1623c (patch) | |
| tree | 39f102b41d07db356b4de105ccdb4b3191c451c2 /FL/Fl_Widget.H | |
| parent | c45bf57c8fcaf9c18f52f9d91dc97527e74d3d42 (diff) | |
Improve focus box drawing and documentation
Add new method
Fl_Widget::draw_focus(Fl_Boxtype t, int x, int y, int w, int h, Fl_Color bg)
... with background color for correct contrast testing (in Fl_Tabs)
Draw the focus box of the "tabs" of Fl_Tabs widgets with the correct
boxtype and background color.
Make 'unsigned int visible_focus()' const so it can be used in 'const'
methods.
Do not draw the focus box if the per-widget focus box option is off.
Diffstat (limited to 'FL/Fl_Widget.H')
| -rw-r--r-- | FL/Fl_Widget.H | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/FL/Fl_Widget.H b/FL/Fl_Widget.H index 0745b9063..1c90848de 100644 --- a/FL/Fl_Widget.H +++ b/FL/Fl_Widget.H @@ -169,9 +169,28 @@ protected: void draw_box(Fl_Boxtype t, Fl_Color c) const; void draw_box(Fl_Boxtype t, int x,int y,int w,int h, Fl_Color c) const; void draw_backdrop() const; - /** draws a focus rectangle around the widget */ - void draw_focus() {draw_focus(box(),x(),y(),w(),h());} - void draw_focus(Fl_Boxtype t, int x,int y,int w,int h) const; + + /** Draws a focus rectangle around the widget. + This method uses the widget's boxtype and coordinates and its + background color color(). + \see Fl_Widget::draw_focus(Fl_Boxtype, int, int, int, int, Fl_Color) const + */ + void draw_focus() const { + draw_focus(box(), x(), y(), w(), h(), color()); + } + + /** Draws a focus rectangle around the widget. + This method uses the given boxtype and coordinates and the widget's + background color color(). + \see Fl_Widget::draw_focus(Fl_Boxtype, int, int, int, int, Fl_Color) const + */ + void draw_focus(Fl_Boxtype t, int X, int Y, int W, int H) const { + draw_focus(t, X, Y, W, H, color()); + + } + // See documentation in Fl_Widget.cxx + void draw_focus(Fl_Boxtype t, int x, int y, int w, int h, Fl_Color bg) const; + void draw_label() const; void draw_label(int, int, int, int) const; @@ -845,7 +864,7 @@ public: \retval 0 if this widget has no visible focus. \see visible_focus(int), set_visible_focus(), clear_visible_focus() */ - unsigned int visible_focus() { return flags_ & VISIBLE_FOCUS; } + unsigned int visible_focus() const { return flags_ & VISIBLE_FOCUS; } /** The default callback for all widgets that don't set a callback. |
