X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2FConfigmenu.cc;h=7a16576d0fcd875bffaca4a39e66434f1dd39204;hb=de712f85676ca0a386c956165bb6460d65206c46;hp=a12ca5ad1ac1f0f60161302bd4041152a82a34de;hpb=307da13fff916694f870ecb77aaf3ce0cf51d09e;p=chaz%2Fopenbox diff --git a/src/Configmenu.cc b/src/Configmenu.cc index a12ca5ad..7a16576d 100644 --- a/src/Configmenu.cc +++ b/src/Configmenu.cc @@ -1,4 +1,5 @@ // Configmenu.cc for Openbox +// Copyright (c) 2002 - 2002 Ben Jansens // Copyright (c) 2001 Sean 'Shaleh' Perry // Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net) // @@ -38,36 +39,36 @@ Configmenu::Configmenu(BScreen &scr) : Basemenu(scr), screen(scr) { - setLabel(i18n->getMessage(ConfigmenuSet, ConfigmenuConfigOptions, - "Config options")); + setLabel(i18n(ConfigmenuSet, ConfigmenuConfigOptions, + "Config options")); setInternalMenu(); focusmenu = new Focusmenu(this); placementmenu = new Placementmenu(this); - insert(i18n->getMessage(ConfigmenuSet, ConfigmenuFocusModel, - "Focus Model"), focusmenu); - insert(i18n->getMessage(ConfigmenuSet, ConfigmenuWindowPlacement, - "Window Placement"), placementmenu); - insert(i18n->getMessage(ConfigmenuSet, ConfigmenuImageDithering, - "Image Dithering"), 1); - insert(i18n->getMessage(ConfigmenuSet, ConfigmenuOpaqueMove, - "Opaque Window Moving"), 2); - insert(i18n->getMessage(ConfigmenuSet, ConfigmenuFullMax, - "Full Maximization"), 3); - insert(i18n->getMessage(ConfigmenuSet, ConfigmenuFocusNew, - "Focus New Windows"), 4); - insert(i18n->getMessage(ConfigmenuSet, ConfigmenuFocusLast, - "Focus Last Window on Workspace"), 5); - insert(i18n->getMessage(ConfigmenuSet, ConfigmenuHideToolbar, - "Hide toolbar"), 6); + insert(i18n(ConfigmenuSet, ConfigmenuFocusModel, + "Focus Model"), focusmenu); + insert(i18n(ConfigmenuSet, ConfigmenuWindowPlacement, + "Window Placement"), placementmenu); + insert(i18n(ConfigmenuSet, ConfigmenuImageDithering, + "Image Dithering"), 1); + insert(i18n(ConfigmenuSet, ConfigmenuOpaqueMove, + "Opaque Window Moving"), 2); + insert(i18n(ConfigmenuSet, ConfigmenuFullMax, + "Full Maximization"), 3); + insert(i18n(ConfigmenuSet, ConfigmenuFocusNew, + "Focus New Windows"), 4); + insert(i18n(ConfigmenuSet, ConfigmenuFocusLast, + "Focus Last Window on Workspace"), 5); + insert(i18n(ConfigmenuSet, ConfigmenuHideToolbar, + "Hide toolbar"), 6); update(); setValues(); } void Configmenu::setValues() { - setItemSelected(2, screen.getImageControl()->doDither()); + setItemSelected(2, screen.imageDither()); setItemSelected(3, screen.opaqueMove()); setItemSelected(4, screen.fullMax()); setItemSelected(5, screen.focusNew()); @@ -91,10 +92,9 @@ void Configmenu::itemSelected(int button, int index) { switch(item->function()) { case 1: { // dither - screen.getImageControl()-> - setDither((! screen.getImageControl()->doDither())); + screen.setImageDither(!screen.imageDither()); - setItemSelected(index, screen.getImageControl()->doDither()); + setItemSelected(index, screen.imageDither()); break; } @@ -145,16 +145,16 @@ void Configmenu::reconfigure() { Configmenu::Focusmenu::Focusmenu(Configmenu *cm) : Basemenu(cm->screen) { configmenu = cm; - setLabel(i18n->getMessage(ConfigmenuSet, ConfigmenuFocusModel, - "Focus Model")); + setLabel(i18n(ConfigmenuSet, ConfigmenuFocusModel, + "Focus Model")); setInternalMenu(); - insert(i18n->getMessage(ConfigmenuSet, ConfigmenuClickToFocus, - "Click To Focus"), 1); - insert(i18n->getMessage(ConfigmenuSet, ConfigmenuSloppyFocus, - "Sloppy Focus"), 2); - insert(i18n->getMessage(ConfigmenuSet, ConfigmenuAutoRaise, - "Auto Raise"), 3); + insert(i18n(ConfigmenuSet, ConfigmenuClickToFocus, + "Click To Focus"), 1); + insert(i18n(ConfigmenuSet, ConfigmenuSloppyFocus, + "Sloppy Focus"), 2); + insert(i18n(ConfigmenuSet, ConfigmenuAutoRaise, + "Auto Raise"), 3); update(); setValues(); @@ -185,32 +185,18 @@ void Configmenu::Focusmenu::itemSelected(int button, int index) { case 1: // click to focus configmenu->screen.setSloppyFocus(false); configmenu->screen.setAutoRaise(false); - - 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(). - getFocusedWindow()->getClientWindow(), - RevertToParent, CurrentTime); - + // make windows all grab button1 clicks configmenu->screen.reconfigure(); - break; case 2: // sloppy focus configmenu->screen.setSloppyFocus(true); - + // make windows stop grabbing button1 clicks configmenu->screen.reconfigure(); - break; case 3: // auto raise with sloppy focus - bool change = ((configmenu->screen.autoRaise()) ? false : true); - configmenu->screen.setAutoRaise(change); - + configmenu->screen.setAutoRaise(!configmenu->screen.autoRaise()); break; } @@ -221,65 +207,69 @@ void Configmenu::Focusmenu::itemSelected(int button, int index) { } Configmenu::Placementmenu::Placementmenu(Configmenu *cm) : - Basemenu(cm->screen) { +Basemenu(cm->screen) { configmenu = cm; - setLabel(i18n->getMessage(ConfigmenuSet, ConfigmenuWindowPlacement, - "Window Placement")); + setLabel(i18n(ConfigmenuSet, ConfigmenuWindowPlacement, + "Window Placement")); setInternalMenu(); - - insert(i18n->getMessage(ConfigmenuSet, ConfigmenuSmartRows, - "Smart Placement (Rows)"), - BScreen::RowSmartPlacement); - insert(i18n->getMessage(ConfigmenuSet, ConfigmenuSmartCols, - "Smart Placement (Columns)"), - 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, - "Right to Left"), BScreen::RightLeft); - insert(i18n->getMessage(ConfigmenuSet, ConfigmenuTopBottom, - "Top to Bottom"), BScreen::TopBottom); - insert(i18n->getMessage(ConfigmenuSet, ConfigmenuBottomTop, - "Bottom to Top"), BScreen::BottomTop); + + insert(i18n(ConfigmenuSet, ConfigmenuSmartRows, + "Smart Placement (Rows)"), + BScreen::RowSmartPlacement); + insert(i18n(ConfigmenuSet, ConfigmenuSmartCols, + "Smart Placement (Columns)"), + BScreen::ColSmartPlacement); + insert(i18n(ConfigmenuSet, ConfigmenuCascade, + "Cascade Placement"), BScreen::CascadePlacement); + insert(i18n(ConfigmenuSet, ConfigmenuBestFit, + "Best Fit Placement"), BScreen::BestFitPlacement); + insert(i18n(ConfigmenuSet, ConfigmenuUnderMouse, + "Under Mouse Placement"), + BScreen::UnderMousePlacement); + insert(i18n(ConfigmenuSet, ConfigmenuClickMouse, + "Click Mouse Placement"), + BScreen::ClickMousePlacement); + insert(i18n(ConfigmenuSet, ConfigmenuLeftRight, + "Left to Right"), BScreen::LeftRight); + insert(i18n(ConfigmenuSet, ConfigmenuRightLeft, + "Right to Left"), BScreen::RightLeft); + insert(i18n(ConfigmenuSet, ConfigmenuTopBottom, + "Top to Bottom"), BScreen::TopBottom); + insert(i18n(ConfigmenuSet, ConfigmenuBottomTop, + "Bottom to Top"), BScreen::BottomTop); update(); setValues(); } void Configmenu::Placementmenu::setValues() { - switch (configmenu->screen.placementPolicy()) { - case BScreen::RowSmartPlacement: - setItemSelected(0, True); - break; - - case BScreen::ColSmartPlacement: - setItemSelected(1, True); - break; - - case BScreen::CascadePlacement: - setItemSelected(2, True); - break; - - case BScreen::BestFitPlacement: - setItemSelected(3, True); - break; - } - - Bool rl = (configmenu->screen.rowPlacementDirection() == - BScreen::LeftRight), - tb = (configmenu->screen.colPlacementDirection() == - BScreen::TopBottom); - - setItemSelected(4, rl); - setItemSelected(5, !rl); - - setItemSelected(6, tb); - setItemSelected(7, !tb); + const int p = configmenu->screen.placementPolicy(); + setItemSelected(0, p == BScreen::RowSmartPlacement); + setItemSelected(1, p == BScreen::ColSmartPlacement); + setItemSelected(2, p == BScreen::CascadePlacement); + setItemSelected(3, p == BScreen::BestFitPlacement); + setItemSelected(4, p == BScreen::UnderMousePlacement); + setItemSelected(5, p == BScreen::ClickMousePlacement); + + bool rl = (configmenu->screen.rowPlacementDirection() == + BScreen::LeftRight), + tb = (configmenu->screen.colPlacementDirection() == + BScreen::TopBottom); + + setItemSelected(6, rl); + setItemEnabled(6, (p != BScreen::UnderMousePlacement && + p != BScreen::ClickMousePlacement)); + setItemSelected(7, !rl); + setItemEnabled(7, (p != BScreen::UnderMousePlacement && + p != BScreen::ClickMousePlacement)); + + setItemSelected(8, tb); + setItemEnabled(8, (p != BScreen::UnderMousePlacement && + p != BScreen::ClickMousePlacement)); + setItemSelected(9, !tb); + setItemEnabled(9, (p != BScreen::UnderMousePlacement && + p != BScreen::ClickMousePlacement)); } void Configmenu::Placementmenu::reconfigure() { @@ -299,74 +289,43 @@ void Configmenu::Placementmenu::itemSelected(int button, int index) { switch (item->function()) { case BScreen::RowSmartPlacement: configmenu->screen.setPlacementPolicy(item->function()); - - setItemSelected(0, True); - setItemSelected(1, False); - setItemSelected(2, False); - setItemSelected(3, False); - break; case BScreen::ColSmartPlacement: configmenu->screen.setPlacementPolicy(item->function()); - - setItemSelected(0, False); - setItemSelected(1, True); - setItemSelected(2, False); - setItemSelected(3, False); - break; case BScreen::CascadePlacement: configmenu->screen.setPlacementPolicy(item->function()); - - setItemSelected(0, False); - setItemSelected(1, False); - setItemSelected(2, True); - setItemSelected(3, False); - break; case BScreen::BestFitPlacement: configmenu->screen.setPlacementPolicy(item->function()); + break; - setItemSelected(0, False); - setItemSelected(1, False); - setItemSelected(2, False); - setItemSelected(3, True); + case BScreen::UnderMousePlacement: + configmenu->screen.setPlacementPolicy(item->function()); + break; + case BScreen::ClickMousePlacement: + configmenu->screen.setPlacementPolicy(item->function()); break; case BScreen::LeftRight: configmenu->screen.setRowPlacementDirection(BScreen::LeftRight); - - 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.setColPlacementDirection(BScreen::TopBottom); - - setItemSelected(5, True); - setItemSelected(6, False); - break; case BScreen::BottomTop: configmenu->screen.setColPlacementDirection(BScreen::BottomTop); - - setItemSelected(5, False); - setItemSelected(6, True); - break; } + setValues(); }