summaryrefslogtreecommitdiff
path: root/FL/Fl_Widget.H
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2022-01-14 17:17:09 +0100
committerAlbrecht Schlosser <albrechts.fltk@online.de>2022-01-14 17:17:09 +0100
commitab58971bcf9cedee6ecd131ca032087ff7d1623c (patch)
tree39f102b41d07db356b4de105ccdb4b3191c451c2 /FL/Fl_Widget.H
parentc45bf57c8fcaf9c18f52f9d91dc97527e74d3d42 (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.H27
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.