aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/MenuCreator.cc31
1 files changed, 15 insertions, 16 deletions
diff --git a/src/MenuCreator.cc b/src/MenuCreator.cc
index 46f233d..abd6691 100644
--- a/src/MenuCreator.cc
+++ b/src/MenuCreator.cc
@@ -66,7 +66,10 @@ using FbTk::AutoReloadHelper;
66 66
67namespace { 67namespace {
68 68
69FbTk::RefCount<FbTk::Menu> createStyleMenu(int screen_number, const string &label, 69typedef FbTk::RefCount<FbTk::Menu> RefMenu;
70typedef FbTk::RefCount<FbTk::Command<void> > RefCmd;
71
72RefMenu createStyleMenu(int screen_number, const string &label,
70 AutoReloadHelper *reloader, const string &directory) { 73 AutoReloadHelper *reloader, const string &directory) {
71 74
72 FbTk::RefCount<FbMenu> menu(MenuCreator::createMenu(label, screen_number)); 75 FbTk::RefCount<FbMenu> menu(MenuCreator::createMenu(label, screen_number));
@@ -107,7 +110,7 @@ FbTk::RefCount<FbTk::Menu> createStyleMenu(int screen_number, const string &labe
107 return menu; 110 return menu;
108} 111}
109 112
110FbTk::RefCount<FbTk::Menu> createRootCmdMenu(int screen_number, const string &label, 113RefMenu createRootCmdMenu(int screen_number, const string &label,
111 const string &directory, AutoReloadHelper *reloader, 114 const string &directory, AutoReloadHelper *reloader,
112 const string &cmd) { 115 const string &cmd) {
113 116
@@ -267,7 +270,7 @@ insertMenuItem(lua::state &l, FbTk::Menu &menu, FbTk::StringConvertor &parent_co
267 int size = menu.insert(str_label); 270 int size = menu.insert(str_label);
268 menu.setItemEnabled(size-1, false); 271 menu.setItemEnabled(size-1, false);
269 } else if(str_key == "icons") { 272 } else if(str_key == "icons") {
270 FbTk::RefCount<FbTk::Menu> submenu = MenuCreator::createMenuType("iconmenu", screen_number); 273 RefMenu submenu = MenuCreator::createMenuType("iconmenu", screen_number);
271 if (! submenu) 274 if (! submenu)
272 return; 275 return;
273 if (str_label.empty()) 276 if (str_label.empty())
@@ -275,15 +278,15 @@ insertMenuItem(lua::state &l, FbTk::Menu &menu, FbTk::StringConvertor &parent_co
275 else 278 else
276 menu.insert(str_label, submenu); 279 menu.insert(str_label, submenu);
277 } else if (str_key == "exit") { // exit 280 } else if (str_key == "exit") { // exit
278 FbTk::RefCount<FbTk::Command<void> > exit_cmd(FbTk::CommandParser<void>::instance().parse("exit")); 281 RefCmd exit_cmd(FbTk::CommandParser<void>::instance().parse("exit"));
279 if (str_label.empty()) 282 if (str_label.empty())
280 menu.insert(_FB_XTEXT(Menu, Exit, "Exit", "Exit Command"), exit_cmd); 283 menu.insert(_FB_XTEXT(Menu, Exit, "Exit", "Exit Command"), exit_cmd);
281 else 284 else
282 menu.insert(str_label, exit_cmd); 285 menu.insert(str_label, exit_cmd);
283 } else if (str_key == "config") { 286 } else if (str_key == "config") {
284 menu.insert(str_label, FbTk::RefCount<FbTk::Menu>(screen->configMenu()) ); 287 menu.insert(str_label, RefMenu(screen->configMenu()) );
285 } else if(str_key == "menu") { 288 } else if(str_key == "menu") {
286 FbTk::RefCount<FbTk::Menu> t(MenuCreator::createMenu("", screen_number)); 289 RefMenu t(MenuCreator::createMenu("", screen_number));
287 l.pushvalue(-1); 290 l.pushvalue(-1);
288 createMenu_(*t, l, *conv, reloader); 291 createMenu_(*t, l, *conv, reloader);
289 menu.insert(str_label, t); 292 menu.insert(str_label, t);
@@ -292,11 +295,9 @@ insertMenuItem(lua::state &l, FbTk::Menu &menu, FbTk::StringConvertor &parent_co
292 const string &str_cmd = getField(l, -1, "param"); 295 const string &str_cmd = getField(l, -1, "param");
293 296
294 if(str_key == "command") { 297 if(str_key == "command") {
295 menu.insert(str_label, FbTk::RefCount<FbTk::Command<void> >( 298 menu.insert(str_label, RefCmd( parser.parse(str_cmd)) );
296 parser.parse(str_cmd)) );
297 } else if(str_key == "exec") { 299 } else if(str_key == "exec") {
298 menu.insert(str_label, FbTk::RefCount<FbTk::Command<void> >( 300 menu.insert(str_label, RefCmd( parser.parse("exec", str_cmd)) );
299 parser.parse("exec", str_cmd)) );
300 } else if(str_key == "style") 301 } else if(str_key == "style")
301 menu.insert(new StyleMenuItem(str_label, str_cmd)); 302 menu.insert(new StyleMenuItem(str_label, str_cmd));
302 else if (str_key == "stylesdir") 303 else if (str_key == "stylesdir")
@@ -309,7 +310,7 @@ insertMenuItem(lua::state &l, FbTk::Menu &menu, FbTk::StringConvertor &parent_co
309 menu.insert(str_label, createRootCmdMenu(screen_number, str_label, str_cmd, 310 menu.insert(str_label, createRootCmdMenu(screen_number, str_label, str_cmd,
310 reloader, program) ); 311 reloader, program) );
311 } else if (str_key == "workspaces") { 312 } else if (str_key == "workspaces") {
312 menu.insert(str_label, FbTk::RefCount<FbTk::Menu>(screen->workspaceMenu()) ); 313 menu.insert(str_label, RefMenu(screen->workspaceMenu()) );
313 } else { 314 } else {
314 // finally, try window-related commands 315 // finally, try window-related commands
315 MenuCreator::createWindowMenuItem(str_key, str_label, menu); 316 MenuCreator::createWindowMenuItem(str_key, str_label, menu);
@@ -411,7 +412,6 @@ FbTk::RefCount<FbMenu> MenuCreator::createMenuType(const string &type, int scree
411bool MenuCreator::createWindowMenuItem(const string &type, 412bool MenuCreator::createWindowMenuItem(const string &type,
412 const string &label, 413 const string &label,
413 FbTk::Menu &menu) { 414 FbTk::Menu &menu) {
414 typedef FbTk::RefCount<FbTk::Command<void> > RefCmd;
415 _FB_USES_NLS; 415 _FB_USES_NLS;
416 416
417 static MenuContext context; 417 static MenuContext context;
@@ -493,8 +493,7 @@ bool MenuCreator::createWindowMenuItem(const string &type,
493 if (screen == 0) 493 if (screen == 0)
494 return false; 494 return false;
495 495
496 FbTk::RefCount<FbTk::Menu> submenu( new AlphaMenu(screen->menuTheme(), 496 RefMenu submenu( new AlphaMenu(screen->menuTheme(), screen->imageControl(),
497 screen->imageControl(),
498 *screen->layerManager().getLayer(ResourceLayer::MENU)) ); 497 *screen->layerManager().getLayer(ResourceLayer::MENU)) );
499 submenu->disableTitle(); 498 submenu->disableTitle();
500 menu.insert(label.empty() ? _FB_XTEXT(Configmenu, Transparency, "Transparency", 499 menu.insert(label.empty() ? _FB_XTEXT(Configmenu, Transparency, "Transparency",
@@ -513,13 +512,13 @@ bool MenuCreator::createWindowMenuItem(const string &type,
513 512
514 } else if (type == "sendto") { 513 } else if (type == "sendto") {
515 menu.insert(label.empty() ? _FB_XTEXT(Windowmenu, SendTo, "Send To...", "Send to menu item name"): 514 menu.insert(label.empty() ? _FB_XTEXT(Windowmenu, SendTo, "Send To...", "Send to menu item name"):
516 label, FbTk::RefCount<FbTk::Menu>(new SendToMenu(*Fluxbox::instance()->findScreen(menu.screenNumber()))) ); 515 label, RefMenu(new SendToMenu(*Fluxbox::instance()->findScreen(menu.screenNumber()))) );
517 } else if (type == "layer") { 516 } else if (type == "layer") {
518 BScreen *screen = Fluxbox::instance()->findScreen(menu.screenNumber()); 517 BScreen *screen = Fluxbox::instance()->findScreen(menu.screenNumber());
519 if (screen == 0) 518 if (screen == 0)
520 return false; 519 return false;
521 520
522 FbTk::RefCount<FbTk::Menu> submenu( new LayerMenu(screen->menuTheme(), 521 RefMenu submenu( new LayerMenu(screen->menuTheme(),
523 screen->imageControl(), 522 screen->imageControl(),
524 *screen->layerManager().getLayer(ResourceLayer::MENU), 523 *screen->layerManager().getLayer(ResourceLayer::MENU),
525 &context, 524 &context,