diff options
Diffstat (limited to 'fluid/nodes/Menu_Node.cxx')
| -rw-r--r-- | fluid/nodes/Menu_Node.cxx | 110 |
1 files changed, 56 insertions, 54 deletions
diff --git a/fluid/nodes/Menu_Node.cxx b/fluid/nodes/Menu_Node.cxx index e0f1c11ee..b669c18e0 100644 --- a/fluid/nodes/Menu_Node.cxx +++ b/fluid/nodes/Menu_Node.cxx @@ -48,17 +48,17 @@ using namespace fld; using namespace fld::proj; Fl_Menu_Item menu_item_type_menu[] = { - {"Normal",0,nullptr,(void*)nullptr}, - {"Toggle",0,nullptr,(void*)FL_MENU_BOX}, - {"Radio",0,nullptr,(void*)FL_MENU_RADIO}, - {nullptr}}; + {"Normal",0,0,(void*)0}, + {"Toggle",0,0,(void*)FL_MENU_BOX}, + {"Radio",0,0,(void*)FL_MENU_RADIO}, + {0}}; static void delete_dependents(Fl_Menu_Item *m) { if (!m) return; int level = 0; for (;;m++) { - if (m->label()==nullptr) { + if (m->label()==0) { if (level==0) { break; } else { @@ -90,7 +90,7 @@ void Input_Choice_Node::build_menu() { } if (!n) { if (menusize) delete_menu((Fl_Menu_Item*)(w->menu())); - w->menu(nullptr); + w->menu(0); menusize = 0; } else { n++; // space for null at end of menu @@ -102,7 +102,7 @@ void Input_Choice_Node::build_menu() { if (menusize) delete_dependents((Fl_Menu_Item*)(w->menu())); } // Menus are already built during the .fl file reading process, so if the - // end of a menu list is not read yet, the end markers (label==nullptr) will + // end of a menu list is not read yet, the end markers (label==0) will // not be set, and deleting dependents will randomly free memory. // Clearing the array should avoid that. memset( (void*)w->menu(), 0, menusize * sizeof(Fl_Menu_Item) ); @@ -127,7 +127,7 @@ void Input_Choice_Node::build_menu() { m->labeltype(i->o->labeltype()); } m->shortcut(((Fl_Button*)(i->o))->shortcut()); - m->callback(nullptr,(void*)i); + m->callback(0,(void*)i); m->flags = i->flags() & ~FL_MENU_HEADLINE; m->labelfont(i->o->labelfont()); m->labelsize(i->o->labelsize()); @@ -136,7 +136,7 @@ void Input_Choice_Node::build_menu() { m++; int l1 = (q->next && q->next->is_a(FLD_NODE_TYPE_Menu_Item)) ? q->next->level : level; - while (lvl > l1) {m->label(nullptr); m++; lvl--;} + while (lvl > l1) {m->label(0); m++; lvl--;} lvl = l1; } } @@ -170,13 +170,13 @@ Node* Menu_Item_Node::make(int flags, Strategy strategy) { } if (!p) { fl_message("Please select a menu widget or a menu item"); - return nullptr; + return 0; } if (!o) { o = new Fl_Button(0,0,100,20); // create template widget } - Menu_Item_Node* t = nullptr; + Menu_Item_Node* t = 0; if (flags==FL_SUBMENU) { t = new Submenu_Node(); } else { @@ -326,8 +326,8 @@ void Menu_Item_Node::write_static(fld::io::Code_Writer& f) { f.write_h_once("extern void %s(Fl_Menu_*, %s);", callback(), user_data_type() ? user_data_type() : "void*"); for (int n=0; n < NUM_EXTRA_CODE; n++) { - if (!extra_code(n).empty() && isdeclare(extra_code(n).c_str())) - f.write_h_once("%s", extra_code(n).c_str()); + if (extra_code(n) && extra_code(n)[0] && isdeclare(extra_code(n))) + f.write_h_once("%s", extra_code(n)); } if (callback() && !is_name(callback()) && (callback()[0] != '[')) { // see if 'o' or 'v' used, to prevent unused argument warnings: @@ -376,8 +376,8 @@ void Menu_Item_Node::write_static(fld::io::Code_Writer& f) { // Find the Fl_Menu_ container for this menu item Node* t = parent; while (t->is_a(FLD_NODE_TYPE_Menu_Item)) t = t->parent; if (t) { - Widget_Node *tw = (t->is_widget()) ? static_cast<Widget_Node*>(t) : nullptr; - Node *q = nullptr; + Widget_Node *tw = (t->is_widget()) ? static_cast<Widget_Node*>(t) : 0; + Node *q = 0; // Generate code to call the callback if (tw->is_a(FLD_NODE_TYPE_Menu_Bar) && ((Menu_Bar_Node*)tw)->is_sys_menu_bar()) { // Fl_Sys_Menu_Bar removes itself from any parent on macOS, so we @@ -463,7 +463,7 @@ int Menu_Item_Node::flags() { if (!o->active()) i |= FL_MENU_INACTIVE; if (!o->visible()) i |= FL_MENU_INVISIBLE; if (can_have_children()) { - if (user_data() == nullptr) i |= FL_SUBMENU; + if (user_data() == 0) i |= FL_SUBMENU; else i |= FL_SUBMENU_POINTER; } if (hotspot()) i |= FL_MENU_DIVIDER; @@ -528,7 +528,7 @@ void Menu_Item_Node::write_item(fld::io::Code_Writer& f) { f.tag(FLD_MERGEBACK_TAG_WIDGET_CALLBACK, FLD_MERGEBACK_TAG_GENERIC, get_uid()); f.write_c("%s, ", f.indent_plus(1)); } else { - const char* k = is_name(callback()) ? nullptr : class_name(1); + const char* k = is_name(callback()) ? 0 : class_name(1); if (k) { f.write_c(" (Fl_Callback*)%s::%s,", k, callback_name(f)); } else { @@ -638,9 +638,9 @@ void Menu_Item_Node::write_code1(fld::io::Code_Writer& f) { } } for (int n=0; n < NUM_EXTRA_CODE; n++) { - if (!extra_code(n).empty() && !isdeclare(extra_code(n).c_str())) { + if (extra_code(n) && extra_code(n)[0] && !isdeclare(extra_code(n))) { start_menu_initialiser(f, menuItemInitialized, mname, i); - f.write_c("%s%s\n", f.indent(), extra_code(n).c_str()); + f.write_c("%s%s\n", f.indent(), extra_code(n)); } } if (menuItemInitialized) { @@ -669,7 +669,7 @@ void Menu_Base_Node::build_menu() { } if (!n) { if (menusize) delete_menu((Fl_Menu_Item*)(w->menu())); - w->menu(nullptr); + w->menu(0); menusize = 0; } else { n++; // space for null at end of menu @@ -681,7 +681,7 @@ void Menu_Base_Node::build_menu() { if (menusize) delete_dependents((Fl_Menu_Item*)(w->menu())); } // Menus are already built during the .fl file reading process, so if the - // end of a menu list is not read yet, the end markers (label==nullptr) will + // end of a menu list is not read yet, the end markers (label==0) will // not be set, and deleting dependents will randomly free memory. // Clearing the array should avoid that. memset( (void*)w->menu(), 0, menusize * sizeof(Fl_Menu_Item) ); @@ -706,7 +706,7 @@ void Menu_Base_Node::build_menu() { m->labeltype(i->o->labeltype()); } m->shortcut(((Fl_Button*)(i->o))->shortcut()); - m->callback(nullptr,(void*)i); + m->callback(0,(void*)i); m->flags = (i->flags() | i->o->type()) & ~FL_MENU_HEADLINE; m->labelfont(i->o->labelfont()); m->labelsize(i->o->labelsize()); @@ -715,7 +715,7 @@ void Menu_Base_Node::build_menu() { m++; int l1 = (q->next && q->next->is_a(FLD_NODE_TYPE_Menu_Item)) ? q->next->level : level; - while (lvl > l1) {m->label(nullptr); m++; lvl--;} + while (lvl > l1) {m->label(0); m++; lvl--;} lvl = l1; } } @@ -723,14 +723,14 @@ void Menu_Base_Node::build_menu() { } Node* Menu_Base_Node::click_test(int, int) { - if (selected) return nullptr; // let user move the widget + if (selected) return 0; // let user move the widget Fl_Menu_* w = (Fl_Menu_*)o; - if (!menusize) return nullptr; + if (!menusize) return 0; const Fl_Menu_Item* save = w->mvalue(); - w->value((Fl_Menu_Item*)nullptr); + w->value((Fl_Menu_Item*)0); Fl::pushed(w); w->handle(FL_PUSH); - Fl::focus(nullptr); + Fl::focus(0); const Fl_Menu_Item* m = w->mvalue(); if (m) { // restore the settings of toggles & radio items: @@ -762,21 +762,21 @@ void Menu_Base_Node::copy_properties() { //////////////////////////////////////////////////////////////// Fl_Menu_Item button_type_menu[] = { - {"normal",0,nullptr,(void*)nullptr}, - {"popup1",0,nullptr,(void*)Fl_Menu_Button::POPUP1}, - {"popup2",0,nullptr,(void*)Fl_Menu_Button::POPUP2}, - {"popup3",0,nullptr,(void*)Fl_Menu_Button::POPUP3}, - {"popup12",0,nullptr,(void*)Fl_Menu_Button::POPUP12}, - {"popup23",0,nullptr,(void*)Fl_Menu_Button::POPUP23}, - {"popup13",0,nullptr,(void*)Fl_Menu_Button::POPUP13}, - {"popup123",0,nullptr,(void*)Fl_Menu_Button::POPUP123}, - {nullptr}}; + {"normal",0,0,(void*)0}, + {"popup1",0,0,(void*)Fl_Menu_Button::POPUP1}, + {"popup2",0,0,(void*)Fl_Menu_Button::POPUP2}, + {"popup3",0,0,(void*)Fl_Menu_Button::POPUP3}, + {"popup12",0,0,(void*)Fl_Menu_Button::POPUP12}, + {"popup23",0,0,(void*)Fl_Menu_Button::POPUP23}, + {"popup13",0,0,(void*)Fl_Menu_Button::POPUP13}, + {"popup123",0,0,(void*)Fl_Menu_Button::POPUP123}, + {0}}; Menu_Button_Node Menu_Button_Node::prototype; //////////////////////////////////////////////////////////////// -Fl_Menu_Item dummymenu[] = {{"CHOICE"},{nullptr}}; +Fl_Menu_Item dummymenu[] = {{"CHOICE"},{0}}; Choice_Node Choice_Node::prototype; @@ -793,14 +793,14 @@ void Input_Choice_Node::copy_properties() { } Node* Input_Choice_Node::click_test(int, int) { - if (selected) return nullptr; // let user move the widget + if (selected) return 0; // let user move the widget Fl_Menu_* w = ((Fl_Input_Choice*)o)->menubutton(); - if (!menusize) return nullptr; + if (!menusize) return 0; const Fl_Menu_Item* save = w->mvalue(); - w->value((Fl_Menu_Item*)nullptr); + w->value((Fl_Menu_Item*)0); Fl::pushed(w); w->handle(FL_PUSH); - Fl::focus(nullptr); + Fl::focus(0); const Fl_Menu_Item* m = w->mvalue(); if (m) { // restore the settings of toggles & radio items: @@ -816,12 +816,12 @@ Node* Input_Choice_Node::click_test(int, int) { Menu_Bar_Node Menu_Bar_Node::prototype; Fl_Menu_Item menu_bar_type_menu[] = { - {"Fl_Menu_Bar",0,nullptr,(void*)nullptr}, - {"Fl_Sys_Menu_Bar",0,nullptr,(void*)1}, - {nullptr}}; + {"Fl_Menu_Bar",0,0,(void*)0}, + {"Fl_Sys_Menu_Bar",0,0,(void*)1}, + {0}}; Menu_Bar_Node::Menu_Bar_Node() -: _proxy_name(nullptr) +: _proxy_name(0) { } @@ -835,14 +835,16 @@ Menu_Bar_Node::~Menu_Bar_Node() { This test fails if subclass() is the name of a class that the user may have derived from Fl_Sys_Menu_Bar. */ -bool Menu_Bar_Node::is_sys_menu_bar() { - if (o->type()==1) return true; - return (subclass() == "Fl_Sys_Menu_Bar"); +int Menu_Bar_Node::is_sys_menu_bar() { + if (o->type()==1) return 1; + const char* sc = subclass(); + return (sc && strcmp(sc, "Fl_Sys_Menu_Bar") == 0); } -std::string Menu_Bar_Node::sys_menubar_name() const { - if (!subclass().empty()) - return subclass(); +const char* Menu_Bar_Node::sys_menubar_name() const { + const char* sc = subclass(); + if (sc && sc[0]) + return sc; else return "Fl_Sys_Menu_Bar"; } @@ -850,7 +852,7 @@ std::string Menu_Bar_Node::sys_menubar_name() const { const char *Menu_Bar_Node::sys_menubar_proxy_name() { if (!_proxy_name) _proxy_name = (char*)::malloc(128); - ::snprintf(_proxy_name, 63, "%s_Proxy", sys_menubar_name().c_str()); + ::snprintf(_proxy_name, 63, "%s_Proxy", sys_menubar_name()); return _proxy_name; } @@ -868,8 +870,8 @@ void Menu_Bar_Node::write_static(fld::io::Code_Writer& f) { " : %s(x, y, w, h, l) { }\n" " void *_parent_class;\n" "};\n", - sys_menubar_proxy_name(), sys_menubar_name().c_str(), - sys_menubar_proxy_name(), sys_menubar_name().c_str() + sys_menubar_proxy_name(), sys_menubar_name(), + sys_menubar_proxy_name(), sys_menubar_name() ); } } |
