summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Melcher <github@matthiasm.com>2023-10-13 12:49:26 +0200
committerMatthias Melcher <github@matthiasm.com>2023-10-13 12:49:26 +0200
commitb1321bb97e254a5aa4d5ed6eef03d89a3892d1f9 (patch)
treef031953def82e39f6c2ef9af50576ed7df9cb19d /src
parent0af27f6fda2479db5ebd27e22d68bd96ac7eb2da (diff)
#748: Adds option to choose menu window boxtype
...independently from the menu button or menu bar boxtype
Diffstat (limited to 'src')
-rw-r--r--src/Fl_Menu.cxx9
-rw-r--r--src/Fl_Menu_.cxx18
2 files changed, 17 insertions, 10 deletions
diff --git a/src/Fl_Menu.cxx b/src/Fl_Menu.cxx
index a213978d3..271bcd50b 100644
--- a/src/Fl_Menu.cxx
+++ b/src/Fl_Menu.cxx
@@ -386,9 +386,12 @@ menuwindow::menuwindow(const Fl_Menu_Item* m, int X, int Y, int Wp, int Hp,
if (m) m = m->first(); // find the first item that needs to be rendered
drawn_selected = -1;
if (button) {
- box(button->box());
- // don't force a box type, but make sure that the background is redrawn
- if (box() == FL_NO_BOX) box(FL_FLAT_BOX);
+ Fl_Boxtype b = button->menu_box();
+ if (b==FL_NO_BOX)
+ b = button->box();
+ if (b==FL_NO_BOX)
+ b = FL_FLAT_BOX;
+ box(b);
} else {
box(FL_UP_BOX);
}
diff --git a/src/Fl_Menu_.cxx b/src/Fl_Menu_.cxx
index 3391b35a6..0d82d92dc 100644
--- a/src/Fl_Menu_.cxx
+++ b/src/Fl_Menu_.cxx
@@ -423,17 +423,21 @@ void Fl_Menu_Item::setonly(Fl_Menu_Item const* first) {
and label string. menu() is initialized to null.
*/
Fl_Menu_::Fl_Menu_(int X,int Y,int W,int H,const char* l)
-: Fl_Widget(X,Y,W,H,l) {
+: Fl_Widget(X,Y,W,H,l),
+ menu_(NULL),
+ value_(NULL),
+ prev_value_(NULL),
+ alloc(0),
+ down_box_(FL_NO_BOX),
+ menu_box_(FL_NO_BOX),
+ textfont_(FL_HELVETICA),
+ textsize_(FL_NORMAL_SIZE),
+ textcolor_(FL_FOREGROUND_COLOR)
+{
set_flag(SHORTCUT_LABEL);
box(FL_UP_BOX);
when(FL_WHEN_RELEASE_ALWAYS);
- value_ = prev_value_ = menu_ = 0;
- alloc = 0;
selection_color(FL_SELECTION_COLOR);
- textfont(FL_HELVETICA);
- textsize(FL_NORMAL_SIZE);
- textcolor(FL_FOREGROUND_COLOR);
- down_box(FL_NO_BOX);
}
/**