diff options
| author | Matthias Melcher <git@matthiasm.com> | 2019-01-14 01:14:40 +0100 |
|---|---|---|
| committer | Matthias Melcher <git@matthiasm.com> | 2019-01-14 01:14:40 +0100 |
| commit | 6a61772c80dee13b4ff120b4b3e53259eae52a78 (patch) | |
| tree | 9f571468495c218982d2bebc9130165a462e503b /fluid/Fl_Menu_Type.cxx | |
| parent | b71601fe7c959eb4a68967b1ff2bcf52c67b4d77 (diff) | |
STR 3460: Fluid menu item types
Added pulldown menus to create radio style and checkbox style
menu items without going through the Class menu.
Diffstat (limited to 'fluid/Fl_Menu_Type.cxx')
| -rw-r--r-- | fluid/Fl_Menu_Type.cxx | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/fluid/Fl_Menu_Type.cxx b/fluid/Fl_Menu_Type.cxx index e4c09be01..448b898e6 100644 --- a/fluid/Fl_Menu_Type.cxx +++ b/fluid/Fl_Menu_Type.cxx @@ -49,6 +49,7 @@ extern const char* i18n_file; extern const char* i18n_set; static char submenuflag; +static uchar menuitemtype = 0; void Fl_Input_Choice_Type::build_menu() { Fl_Input_Choice* w = (Fl_Input_Choice*)o; @@ -117,12 +118,27 @@ Fl_Type *Fl_Menu_Item_Type::make() { Fl_Menu_Item_Type* t = submenuflag ? new Fl_Submenu_Type() : new Fl_Menu_Item_Type(); t->o = new Fl_Button(0,0,100,20); + t->o->type(menuitemtype); t->factory = this; t->add(p); if (!reading_file) t->label(submenuflag ? "submenu" : "item"); return t; } +Fl_Type *Fl_Checkbox_Menu_Item_Type::make() { + menuitemtype = FL_MENU_TOGGLE; + Fl_Type* t = Fl_Menu_Item_Type::make(); + menuitemtype = 0; + return t; +} + +Fl_Type *Fl_Radio_Menu_Item_Type::make() { + menuitemtype = FL_MENU_RADIO; + Fl_Type* t = Fl_Menu_Item_Type::make(); + menuitemtype = 0; + return t; +} + Fl_Type *Fl_Submenu_Type::make() { submenuflag = 1; Fl_Type* t = Fl_Menu_Item_Type::make(); @@ -131,6 +147,8 @@ Fl_Type *Fl_Submenu_Type::make() { } Fl_Menu_Item_Type Fl_Menu_Item_type; +Fl_Checkbox_Menu_Item_Type Fl_Checkbox_Menu_Item_type; +Fl_Radio_Menu_Item_Type Fl_Radio_Menu_Item_type; Fl_Submenu_Type Fl_Submenu_type; //////////////////////////////////////////////////////////////// @@ -424,7 +442,7 @@ void Fl_Menu_Type::build_menu() { } m->shortcut(((Fl_Button*)(i->o))->shortcut()); m->callback(0,(void*)i); - m->flags = i->flags(); + m->flags = i->flags() | i->o->type(); m->labelfont(i->o->labelfont()); m->labelsize(i->o->labelsize()); m->labelcolor(i->o->labelcolor()); |
