diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2024-05-08 13:26:13 +0200 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2024-05-08 13:26:13 +0200 |
| commit | d428a0044388596d19dd20f32471e24146e40975 (patch) | |
| tree | d05fc3fb56524fb1b43a497d5ebad5d3a0926ad2 | |
| parent | ef313cf9fc2e6fb029c36ed941cf9ff8f25a790f (diff) | |
Have menu items drawn with same colors in all platforms (#969)
Also, remove this text from the doc of Fl_Menu_::down_box()
"If this is FL_NO_BOX then it acts like
FL_THIN_UP_BOX and selection_color() acts like
FL_WHITE, for back compatibility."
that was true only for the Windows platform and that required
selection_color to be replaced by white for menu items which is
not what FLTK 1.4 expects.
The new state of menu item drawings is as follows :
- all platforms draw menu items with the same symbolic colors
- selected items and menu titles are drawn with the selection color
as background color
- menu items are drawn by default with no box but can be given one
by Fl_Menu_::down_box(Fl_Boxtype)
- the text of selected items is drawn with the menu's color
unless fl_contrast() finds it does not make enough contrast with
the background (selection color) and substitutes it with a more
adapted color
- the Windows platform uses a visibly different hue for its default
selection color from what other platforms use
| -rw-r--r-- | FL/Fl_Menu_.H | 4 | ||||
| -rw-r--r-- | src/Fl_Menu.cxx | 12 |
2 files changed, 2 insertions, 14 deletions
diff --git a/FL/Fl_Menu_.H b/FL/Fl_Menu_.H index 96e135692..0c5fa9a68 100644 --- a/FL/Fl_Menu_.H +++ b/FL/Fl_Menu_.H @@ -228,9 +228,7 @@ public: /** This box type is used to surround the currently-selected items in the - menus. If this is FL_NO_BOX then it acts like - FL_THIN_UP_BOX and selection_color() acts like - FL_WHITE, for back compatibility. + menus. */ Fl_Boxtype down_box() const {return (Fl_Boxtype)down_box_;} /** Sets the box type used to surround the currently-selected items in the menus. */ diff --git a/src/Fl_Menu.cxx b/src/Fl_Menu.cxx index 0e7169a23..f7a763327 100644 --- a/src/Fl_Menu.cxx +++ b/src/Fl_Menu.cxx @@ -285,17 +285,7 @@ void Fl_Menu_Item::draw(int x, int y, int w, int h, const Fl_Menu_* m, if (selected) { Fl_Color r = m ? m->selection_color() : FL_SELECTION_COLOR; Fl_Boxtype b = m && m->down_box() ? m->down_box() : FL_FLAT_BOX; - if (fl_contrast(r, color) != r) { // back compatibility boxtypes - if (selected == 2) { // menu title - r = color; - b = m ? m->box() : FL_UP_BOX; - } else { - r = (Fl_Color)(FL_COLOR_CUBE-1); // white - l.color = fl_contrast((Fl_Color)labelcolor_, r); - } - } else { - l.color = fl_contrast((Fl_Color)labelcolor_, r); - } + l.color = fl_contrast((Fl_Color)labelcolor_, r); if (selected == 2) { // menu title fl_draw_box(b, x, y, w, h, r); x += 3; |
