aboutsummaryrefslogtreecommitdiff
path: root/src/Slit.cc
diff options
context:
space:
mode:
authorMathias Gumz <akira@fluxbox.org>2015-01-15 13:24:46 (GMT)
committerMathias Gumz <akira@fluxbox.org>2015-01-15 13:25:05 (GMT)
commit8387742c8860694777f7c2c62da0a90c9e836988 (patch)
treee5bd5a50c3e033ea73a9339474750287d06aeb3f /src/Slit.cc
parentb4cd45549013e8b45f95bf3e123cd14684948e91 (diff)
downloadfluxbox-8387742c8860694777f7c2c62da0a90c9e836988.zip
fluxbox-8387742c8860694777f7c2c62da0a90c9e836988.tar.bz2
Refactor menu code: be more explicit and compact
This commit is a preparation step for some menu cleanup ahead. To make it easier to understand which types of MenuItems are added where and when, I converted the overloaded FbTk::Menu::insert() functions into explicit ones (Menu::insertSubmenu(), Menu::insertItem(), etc. ). This makes it possible to just grep for 'insertSubmenu()'. Side effect this commit: it trims down the very verbose creation of menu items in regards to how the labels are created. Minor: FbTk::Menu::shown and FbTk::Menu::s_focused are moved out of the class.
Diffstat (limited to 'src/Slit.cc')
-rw-r--r--src/Slit.cc54
1 files changed, 26 insertions, 28 deletions
diff --git a/src/Slit.cc b/src/Slit.cc
index 46390c7..1851a16 100644
--- a/src/Slit.cc
+++ b/src/Slit.cc
@@ -1099,21 +1099,21 @@ void Slit::updateClientmenu() {
1099 1099
1100 FbTk::RefCount<FbTk::Command<void> > cycle_up(new FbTk::SimpleCommand<Slit>(*this, &Slit::cycleClientsUp)); 1100 FbTk::RefCount<FbTk::Command<void> > cycle_up(new FbTk::SimpleCommand<Slit>(*this, &Slit::cycleClientsUp));
1101 FbTk::RefCount<FbTk::Command<void> > cycle_down(new FbTk::SimpleCommand<Slit>(*this, &Slit::cycleClientsDown)); 1101 FbTk::RefCount<FbTk::Command<void> > cycle_down(new FbTk::SimpleCommand<Slit>(*this, &Slit::cycleClientsDown));
1102 m_clientlist_menu.insert(_FB_XTEXT(Slit, CycleUp, "Cycle Up", "Cycle clients upwards"), cycle_up); 1102 m_clientlist_menu.insertCommand(_FB_XTEXT(Slit, CycleUp, "Cycle Up", "Cycle clients upwards"), cycle_up);
1103 m_clientlist_menu.insert(_FB_XTEXT(Slit, CycleDown, "Cycle Down", "Cycle clients downwards"), cycle_down); 1103 m_clientlist_menu.insertCommand(_FB_XTEXT(Slit, CycleDown, "Cycle Down", "Cycle clients downwards"), cycle_down);
1104 1104
1105 m_clientlist_menu.insert(new FbTk::MenuSeparator()); 1105 m_clientlist_menu.insertItem(new FbTk::MenuSeparator());
1106 1106
1107 FbTk::RefCount<FbTk::Command<void> > reconfig(new FbTk::SimpleCommand<Slit>(*this, &Slit::reconfigure)); 1107 FbTk::RefCount<FbTk::Command<void> > reconfig(new FbTk::SimpleCommand<Slit>(*this, &Slit::reconfigure));
1108 SlitClients::iterator it = m_client_list.begin(); 1108 SlitClients::iterator it = m_client_list.begin();
1109 for (; it != m_client_list.end(); ++it) { 1109 for (; it != m_client_list.end(); ++it) {
1110 if ((*it) != 0 && (*it)->window() != 0) 1110 if ((*it) != 0 && (*it)->window() != 0)
1111 m_clientlist_menu.insert(new SlitClientMenuItem(*this, *(*it), reconfig)); 1111 m_clientlist_menu.insertItem(new SlitClientMenuItem(*this, *(*it), reconfig));
1112 } 1112 }
1113 1113
1114 m_clientlist_menu.insert(new FbTk::MenuSeparator()); 1114 m_clientlist_menu.insertItem(new FbTk::MenuSeparator());
1115 FbTk::RefCount<FbTk::Command<void> > savecmd(new FbTk::SimpleCommand<Slit>(*this, &Slit::saveClientList)); 1115 FbTk::RefCount<FbTk::Command<void> > savecmd(new FbTk::SimpleCommand<Slit>(*this, &Slit::saveClientList));
1116 m_clientlist_menu.insert(_FB_XTEXT(Slit, 1116 m_clientlist_menu.insertCommand(_FB_XTEXT(Slit,
1117 SaveSlitList, 1117 SaveSlitList,
1118 "Save SlitList", "Saves the current order in the slit"), 1118 "Save SlitList", "Saves the current order in the slit"),
1119 savecmd); 1119 savecmd);
@@ -1165,31 +1165,32 @@ void Slit::setupMenu() {
1165 1165
1166 // setup base menu 1166 // setup base menu
1167 m_slitmenu.setLabel(_FB_XTEXT(Slit, Slit, "Slit", "The Slit")); 1167 m_slitmenu.setLabel(_FB_XTEXT(Slit, Slit, "Slit", "The Slit"));
1168 m_slitmenu.insert(_FB_XTEXT(Menu, Placement, "Placement", "Title of Placement menu"), 1168 m_slitmenu.insertSubmenu(
1169 placement_menu); 1169 _FB_XTEXT(Menu, Placement, "Placement", "Title of Placement menu"),
1170 placement_menu);
1170 1171
1171 m_slitmenu.insert(_FB_XTEXT(Menu, Layer, "Layer...", "Title of Layer menu"), m_layermenu.get()); 1172 m_slitmenu.insertSubmenu(
1173 _FB_XTEXT(Menu, Layer, "Layer...", "Title of Layer menu"),
1174 m_layermenu.get());
1172 1175
1173#ifdef XINERAMA 1176#ifdef XINERAMA
1174 if (screen().hasXinerama()) { 1177 if (screen().hasXinerama()) {
1175 m_slitmenu.insert(_FB_XTEXT(Menu, OnHead, "On Head...", "Title of On Head menu"), 1178 m_xineramaheadmenu = new XineramaHeadMenu<Slit>(
1176 m_xineramaheadmenu = 1179 screen().menuTheme(),
1177 new XineramaHeadMenu<Slit>( 1180 screen(),
1178 screen().menuTheme(), 1181 screen().imageControl(),
1179 screen(), 1182 *screen().layerManager().getLayer(::ResourceLayer::MENU),
1180 screen().imageControl(), 1183 *this,
1181 *screen().layerManager().getLayer(::ResourceLayer::MENU), 1184 _FB_XTEXT(Slit, OnHead, "Slit on Head", "Title of Slits On Head menu"));
1182 *this, 1185 m_slitmenu.insertSubmenu(_FB_XTEXT(Menu, OnHead, "On Head...", "Title of On Head menu"), m_xineramaheadmenu);
1183 _FB_XTEXT(Slit, OnHead, "Slit on Head", "Title of Slits On Head menu")
1184 ));
1185 } 1186 }
1186#endif //XINERAMA 1187#endif //XINERAMA
1187 1188
1188 m_slitmenu.insert(new FbTk::BoolMenuItem(_FB_XTEXT(Common, AutoHide, "Auto hide", "This thing automatically hides when not close by"), 1189 m_slitmenu.insertItem(new FbTk::BoolMenuItem(_FB_XTEXT(Common, AutoHide, "Auto hide", "This thing automatically hides when not close by"),
1189 m_rc_auto_hide, 1190 m_rc_auto_hide,
1190 save_and_reconfigure_slit)); 1191 save_and_reconfigure_slit));
1191 1192
1192 m_slitmenu.insert(new FbTk::BoolMenuItem(_FB_XTEXT(Common, MaximizeOver,"Maximize Over", "Maximize over this thing when maximizing"), 1193 m_slitmenu.insertItem(new FbTk::BoolMenuItem(_FB_XTEXT(Common, MaximizeOver,"Maximize Over", "Maximize over this thing when maximizing"),
1193 m_rc_maximize_over, 1194 m_rc_maximize_over,
1194 save_and_reconfigure_slit)); 1195 save_and_reconfigure_slit));
1195 1196
@@ -1206,9 +1207,9 @@ void Slit::setupMenu() {
1206 RefCount<Command<void> > set_alpha_cmd(alpha_macrocmd); 1207 RefCount<Command<void> > set_alpha_cmd(alpha_macrocmd);
1207 alpha_menuitem->setCommand(set_alpha_cmd); 1208 alpha_menuitem->setCommand(set_alpha_cmd);
1208 1209
1209 m_slitmenu.insert(alpha_menuitem); 1210 m_slitmenu.insertItem(alpha_menuitem);
1210 1211
1211 m_slitmenu.insert(_FB_XTEXT(Slit, ClientsMenu, "Clients", "Slit client menu"), &m_clientlist_menu); 1212 m_slitmenu.insertSubmenu(_FB_XTEXT(Slit, ClientsMenu, "Clients", "Slit client menu"), &m_clientlist_menu);
1212 m_slitmenu.updateMenu(); 1213 m_slitmenu.updateMenu();
1213 1214
1214 // setup sub menu 1215 // setup sub menu
@@ -1249,10 +1250,8 @@ void Slit::setupMenu() {
1249 placement_menu->insert(""); 1250 placement_menu->insert("");
1250 placement_menu->setItemEnabled(i, false); 1251 placement_menu->setItemEnabled(i, false);
1251 } else { 1252 } else {
1252 placement_menu->insert(new PlaceSlitMenuItem(str, *this, 1253 FbTk::MenuItem* item = new PlaceSlitMenuItem(str, *this, placement, save_and_reconfigure);
1253 placement, 1254 placement_menu->insertItem(item);
1254 save_and_reconfigure));
1255
1256 } 1255 }
1257 place_menu.pop_front(); 1256 place_menu.pop_front();
1258 } 1257 }
@@ -1268,7 +1267,6 @@ void Slit::moveToLayer(int layernum) {
1268 1267
1269void Slit::saveOnHead(int head) { 1268void Slit::saveOnHead(int head) {
1270 m_rc_on_head = head; 1269 m_rc_on_head = head;
1271 // reposition
1272 reconfigure(); 1270 reconfigure();
1273} 1271}
1274 1272