X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FConfigmenu.cc;h=a12ca5ad1ac1f0f60161302bd4041152a82a34de;hb=1b129560d033d6c560bb99e5e8465a3b075623cd;hp=97faf779ecdcc77d457c625f385eb7843740686c;hpb=dfc5f034581f5a26cba5c4811500438f89f0634a;p=chaz%2Fopenbox diff --git a/src/Configmenu.cc b/src/Configmenu.cc index 97faf779..a12ca5ad 100644 --- a/src/Configmenu.cc +++ b/src/Configmenu.cc @@ -36,9 +36,8 @@ #include "Window.h" #include "Screen.h" -Configmenu::Configmenu(BScreen *scr) : Basemenu(scr) { - screen = scr; - openbox = screen->getOpenbox(); +Configmenu::Configmenu(BScreen &scr) : Basemenu(scr), screen(scr) +{ setLabel(i18n->getMessage(ConfigmenuSet, ConfigmenuConfigOptions, "Config options")); setInternalMenu(); @@ -60,16 +59,23 @@ Configmenu::Configmenu(BScreen *scr) : Basemenu(scr) { "Focus New Windows"), 4); insert(i18n->getMessage(ConfigmenuSet, ConfigmenuFocusLast, "Focus Last Window on Workspace"), 5); + insert(i18n->getMessage(ConfigmenuSet, ConfigmenuHideToolbar, + "Hide toolbar"), 6); update(); - setItemSelected(2, screen->getImageControl()->doDither()); - setItemSelected(3, screen->doOpaqueMove()); - setItemSelected(4, screen->doFullMax()); - setItemSelected(5, screen->doFocusNew()); - setItemSelected(6, screen->doFocusLast()); + setValues(); } -Configmenu::~Configmenu(void) { +void Configmenu::setValues() { + setItemSelected(2, screen.getImageControl()->doDither()); + setItemSelected(3, screen.opaqueMove()); + setItemSelected(4, screen.fullMax()); + setItemSelected(5, screen.focusNew()); + setItemSelected(6, screen.focusLast()); + setItemSelected(7, screen.hideToolbar()); +} + +Configmenu::~Configmenu() { delete focusmenu; delete placementmenu; } @@ -85,45 +91,51 @@ void Configmenu::itemSelected(int button, int index) { switch(item->function()) { case 1: { // dither - screen->getImageControl()-> - setDither((! screen->getImageControl()->doDither())); + screen.getImageControl()-> + setDither((! screen.getImageControl()->doDither())); - setItemSelected(index, screen->getImageControl()->doDither()); + setItemSelected(index, screen.getImageControl()->doDither()); break; } case 2: { // opaque move - screen->saveOpaqueMove((! screen->doOpaqueMove())); + screen.setOpaqueMove(!screen.opaqueMove()); - setItemSelected(index, screen->doOpaqueMove()); + setItemSelected(index, screen.opaqueMove()); break; } case 3: { // full maximization - screen->saveFullMax((! screen->doFullMax())); + screen.setFullMax(!screen.fullMax()); - setItemSelected(index, screen->doFullMax()); + setItemSelected(index, screen.fullMax()); break; } case 4: { // focus new windows - screen->saveFocusNew((! screen->doFocusNew())); + screen.setFocusNew(!screen.focusNew()); - setItemSelected(index, screen->doFocusNew()); + setItemSelected(index, screen.focusNew()); break; } case 5: { // focus last window on workspace - screen->saveFocusLast((! screen->doFocusLast())); - setItemSelected(index, screen->doFocusLast()); + screen.setFocusLast(!screen.focusLast()); + setItemSelected(index, screen.focusLast()); + break; + } + case 6:{ //toggle toolbar hide + screen.setHideToolbar(!screen.hideToolbar()); + setItemSelected(index, screen.hideToolbar()); break; } } // switch } -void Configmenu::reconfigure(void) { +void Configmenu::reconfigure() { + setValues(); focusmenu->reconfigure(); placementmenu->reconfigure(); @@ -145,10 +157,19 @@ Configmenu::Focusmenu::Focusmenu(Configmenu *cm) : Basemenu(cm->screen) { "Auto Raise"), 3); update(); - setItemSelected(0, (! configmenu->screen->isSloppyFocus())); - setItemSelected(1, configmenu->screen->isSloppyFocus()); - setItemEnabled(2, configmenu->screen->isSloppyFocus()); - setItemSelected(2, configmenu->screen->doAutoRaise()); + setValues(); +} + +void Configmenu::Focusmenu::setValues() { + setItemSelected(0, !configmenu->screen.sloppyFocus()); + setItemSelected(1, configmenu->screen.sloppyFocus()); + setItemEnabled(2, configmenu->screen.sloppyFocus()); + setItemSelected(2, configmenu->screen.autoRaise()); +} + +void Configmenu::Focusmenu::reconfigure() { + setValues(); + Basemenu::reconfigure(); } void Configmenu::Focusmenu::itemSelected(int button, int index) { @@ -162,41 +183,41 @@ void Configmenu::Focusmenu::itemSelected(int button, int index) { switch (item->function()) { case 1: // click to focus - configmenu->screen->saveSloppyFocus(False); - configmenu->screen->saveAutoRaise(False); + configmenu->screen.setSloppyFocus(false); + configmenu->screen.setAutoRaise(false); - if (! configmenu->screen->getOpenbox()->getFocusedWindow()) - XSetInputFocus(configmenu->screen->getOpenbox()->getXDisplay(), - configmenu->screen->getToolbar()->getWindowID(), + if (! configmenu->screen.getOpenbox().getFocusedWindow()) + XSetInputFocus(configmenu->screen.getOpenbox().getXDisplay(), + configmenu->screen.getToolbar()->getWindowID(), RevertToParent, CurrentTime); else - XSetInputFocus(configmenu->screen->getOpenbox()->getXDisplay(), - configmenu->screen->getOpenbox()-> + XSetInputFocus(configmenu->screen.getOpenbox().getXDisplay(), + configmenu->screen.getOpenbox(). getFocusedWindow()->getClientWindow(), RevertToParent, CurrentTime); - configmenu->screen->reconfigure(); + configmenu->screen.reconfigure(); break; case 2: // sloppy focus - configmenu->screen->saveSloppyFocus(True); + configmenu->screen.setSloppyFocus(true); - configmenu->screen->reconfigure(); + configmenu->screen.reconfigure(); break; case 3: // auto raise with sloppy focus - Bool change = ((configmenu->screen->doAutoRaise()) ? False : True); - configmenu->screen->saveAutoRaise(change); + bool change = ((configmenu->screen.autoRaise()) ? false : true); + configmenu->screen.setAutoRaise(change); break; } - setItemSelected(0, (! configmenu->screen->isSloppyFocus())); - setItemSelected(1, configmenu->screen->isSloppyFocus()); - setItemEnabled(2, configmenu->screen->isSloppyFocus()); - setItemSelected(2, configmenu->screen->doAutoRaise()); + setItemSelected(0, !configmenu->screen.sloppyFocus()); + setItemSelected(1, configmenu->screen.sloppyFocus()); + setItemEnabled(2, configmenu->screen.sloppyFocus()); + setItemSelected(2, configmenu->screen.autoRaise()); } Configmenu::Placementmenu::Placementmenu(Configmenu *cm) : @@ -206,7 +227,7 @@ Configmenu::Placementmenu::Placementmenu(Configmenu *cm) : setLabel(i18n->getMessage(ConfigmenuSet, ConfigmenuWindowPlacement, "Window Placement")); setInternalMenu(); - + insert(i18n->getMessage(ConfigmenuSet, ConfigmenuSmartRows, "Smart Placement (Rows)"), BScreen::RowSmartPlacement); @@ -215,6 +236,8 @@ Configmenu::Placementmenu::Placementmenu(Configmenu *cm) : BScreen::ColSmartPlacement); insert(i18n->getMessage(ConfigmenuSet, ConfigmenuCascade, "Cascade Placement"), BScreen::CascadePlacement); + insert(i18n->getMessage(ConfigmenuSet, ConfigmenuBestFit, + "Best Fit Placement"), BScreen::BestFitPlacement); insert(i18n->getMessage(ConfigmenuSet, ConfigmenuLeftRight, "Left to Right"), BScreen::LeftRight); insert(i18n->getMessage(ConfigmenuSet, ConfigmenuRightLeft, @@ -225,7 +248,11 @@ Configmenu::Placementmenu::Placementmenu(Configmenu *cm) : "Bottom to Top"), BScreen::BottomTop); update(); - switch (configmenu->screen->getPlacementPolicy()) { + setValues(); +} + +void Configmenu::Placementmenu::setValues() { + switch (configmenu->screen.placementPolicy()) { case BScreen::RowSmartPlacement: setItemSelected(0, True); break; @@ -237,18 +264,27 @@ Configmenu::Placementmenu::Placementmenu(Configmenu *cm) : case BScreen::CascadePlacement: setItemSelected(2, True); break; + + case BScreen::BestFitPlacement: + setItemSelected(3, True); + break; } - Bool rl = (configmenu->screen->getRowPlacementDirection() == + Bool rl = (configmenu->screen.rowPlacementDirection() == BScreen::LeftRight), - tb = (configmenu->screen->getColPlacementDirection() == + tb = (configmenu->screen.colPlacementDirection() == BScreen::TopBottom); - setItemSelected(3, rl); - setItemSelected(4, ! rl); + setItemSelected(4, rl); + setItemSelected(5, !rl); - setItemSelected(5, tb); - setItemSelected(6, ! tb); + setItemSelected(6, tb); + setItemSelected(7, !tb); +} + +void Configmenu::Placementmenu::reconfigure() { + setValues(); + Basemenu::reconfigure(); } void Configmenu::Placementmenu::itemSelected(int button, int index) { @@ -262,50 +298,63 @@ void Configmenu::Placementmenu::itemSelected(int button, int index) { switch (item->function()) { case BScreen::RowSmartPlacement: - configmenu->screen->savePlacementPolicy(item->function()); + configmenu->screen.setPlacementPolicy(item->function()); setItemSelected(0, True); setItemSelected(1, False); setItemSelected(2, False); + setItemSelected(3, False); break; case BScreen::ColSmartPlacement: - configmenu->screen->savePlacementPolicy(item->function()); + configmenu->screen.setPlacementPolicy(item->function()); setItemSelected(0, False); setItemSelected(1, True); setItemSelected(2, False); + setItemSelected(3, False); break; case BScreen::CascadePlacement: - configmenu->screen->savePlacementPolicy(item->function()); + configmenu->screen.setPlacementPolicy(item->function()); setItemSelected(0, False); setItemSelected(1, False); setItemSelected(2, True); + setItemSelected(3, False); break; - case BScreen::LeftRight: - configmenu->screen->saveRowPlacementDirection(BScreen::LeftRight); + case BScreen::BestFitPlacement: + configmenu->screen.setPlacementPolicy(item->function()); + setItemSelected(0, False); + setItemSelected(1, False); + setItemSelected(2, False); setItemSelected(3, True); - setItemSelected(4, False); break; - case BScreen::RightLeft: - configmenu->screen->saveRowPlacementDirection(BScreen::RightLeft); + case BScreen::LeftRight: + configmenu->screen.setRowPlacementDirection(BScreen::LeftRight); - setItemSelected(3, False); setItemSelected(4, True); + setItemSelected(5, False); + + break; + + case BScreen::RightLeft: + configmenu->screen.setRowPlacementDirection(BScreen::RightLeft); + + setItemSelected(4, False); + setItemSelected(5, True); break; case BScreen::TopBottom: - configmenu->screen->saveColPlacementDirection(BScreen::TopBottom); + configmenu->screen.setColPlacementDirection(BScreen::TopBottom); setItemSelected(5, True); setItemSelected(6, False); @@ -313,7 +362,7 @@ void Configmenu::Placementmenu::itemSelected(int button, int index) { break; case BScreen::BottomTop: - configmenu->screen->saveColPlacementDirection(BScreen::BottomTop); + configmenu->screen.setColPlacementDirection(BScreen::BottomTop); setItemSelected(5, False); setItemSelected(6, True);