X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2FConfigmenu.cc;h=fbb2c66a67567bf4fb3a7b711e847dc8eca137aa;hb=87e63d53af67d5ea98f55a27007663d4c9c8fc6c;hp=5f3da4f718e23a7d841d72c9c00e064a14b1044e;hpb=347baf0c0b7163fcd510a6378546f550345ecb9f;p=chaz%2Fopenbox diff --git a/src/Configmenu.cc b/src/Configmenu.cc index 5f3da4f7..fbb2c66a 100644 --- a/src/Configmenu.cc +++ b/src/Configmenu.cc @@ -33,7 +33,7 @@ #include "Screen.hh" Configmenu::Configmenu(BScreen *scr) : Basemenu(scr) { - setLabel(i18n(ConfigmenuSet, ConfigmenuConfigOptions, "Config options")); + setLabel(i18n(ConfigmenuSet, ConfigmenuConfigOptions, "Config Options")); setInternalMenu(); focusmenu = new Focusmenu(this); @@ -43,6 +43,9 @@ Configmenu::Configmenu(BScreen *scr) : Basemenu(scr) { #ifdef XINERAMA xineramamenu = new Xineramamenu(this); #endif // XINERAMA +#ifdef XFT + xftmenu = new Xftmenu(this); +#endif // XFT insert(i18n(ConfigmenuSet, ConfigmenuFocusModel, "Focus Model"), focusmenu); @@ -55,6 +58,10 @@ Configmenu::Configmenu(BScreen *scr) : Basemenu(scr) { #ifdef XINERAMA insert(i18n(ConfigmenuSet, ConfigmenuXineramaSupport, "XineramaSupport"), xineramamenu); +#endif // XINERAMA +#ifdef XFT + insert(i18n(ConfigmenuSet, ConfigmenuXftOptions, + "Xft Font Options"), xftmenu); #endif // XINERAMA insert(i18n(ConfigmenuSet, ConfigmenuImageDithering, "Image Dithering"), 1); @@ -82,6 +89,9 @@ void Configmenu::setValues(void) { #ifdef XINERAMA ++index; #endif // XINERAMA +#ifdef XFT + ++index; +#endif // XFT setItemSelected(index++, getScreen()->doImageDither()); setItemSelected(index++, getScreen()->doOpaqueMove()); setItemSelected(index++, getScreen()->doWorkspaceWarping()); @@ -101,6 +111,9 @@ Configmenu::~Configmenu(void) { #ifdef XINERAMA delete xineramamenu; #endif // XINERAMA +#ifdef XFT + delete xftmenu; +#endif // XFT } @@ -167,6 +180,9 @@ void Configmenu::reconfigure(void) { #ifdef XINERAMA xineramamenu->reconfigure(); #endif // XINERAMA +#ifdef XFT + xftmenu->reconfigure(); +#endif // XFT Basemenu::reconfigure(); } @@ -277,7 +293,8 @@ void Configmenu::Placementmenu::setValues(void) { bool rl = (getScreen()->getRowPlacementDirection() == BScreen::LeftRight), tb = (getScreen()->getColPlacementDirection() == BScreen::TopBottom), - e = placement != BScreen::UnderMousePlacement; + e = (placement == BScreen::RowSmartPlacement || + placement == BScreen::ColSmartPlacement); setItemSelected(5, rl); setItemSelected(6, ! rl); @@ -291,6 +308,8 @@ void Configmenu::Placementmenu::setValues(void) { setItemSelected(9, getScreen()->getPlaceIgnoreShaded()); setItemSelected(10, getScreen()->getPlaceIgnoreMaximized()); + setItemEnabled(9, e); + setItemEnabled(10, e); } @@ -312,126 +331,50 @@ void Configmenu::Placementmenu::itemSelected(int button, unsigned int index) { switch (item->function()) { case BScreen::RowSmartPlacement: getScreen()->savePlacementPolicy(item->function()); - - setItemSelected(0, true); - setItemSelected(1, false); - setItemSelected(2, false); - setItemSelected(3, false); - setItemSelected(4, false); - setItemEnabled(5, true); - setItemEnabled(6, true); - setItemEnabled(7, true); - setItemEnabled(8, true); - break; case BScreen::ColSmartPlacement: getScreen()->savePlacementPolicy(item->function()); - - setItemSelected(0, false); - setItemSelected(1, true); - setItemSelected(2, false); - setItemSelected(3, false); - setItemSelected(4, false); - setItemEnabled(5, true); - setItemEnabled(6, true); - setItemEnabled(7, true); - setItemEnabled(8, true); - break; case BScreen::CascadePlacement: getScreen()->savePlacementPolicy(item->function()); - - setItemSelected(0, false); - setItemSelected(1, false); - setItemSelected(2, true); - setItemSelected(3, false); - setItemSelected(4, false); - setItemEnabled(5, true); - setItemEnabled(6, true); - setItemEnabled(7, true); - setItemEnabled(8, true); - break; case BScreen::UnderMousePlacement: getScreen()->savePlacementPolicy(item->function()); - - setItemSelected(0, false); - setItemSelected(1, false); - setItemSelected(2, false); - setItemSelected(3, true); - setItemSelected(4, false); - setItemEnabled(5, false); - setItemEnabled(6, false); - setItemEnabled(7, false); - setItemEnabled(8, false); - break; case BScreen::ClickMousePlacement: getScreen()->savePlacementPolicy(item->function()); - - setItemSelected(0, false); - setItemSelected(1, false); - setItemSelected(2, false); - setItemSelected(3, false); - setItemSelected(4, true); - setItemEnabled(5, false); - setItemEnabled(6, false); - setItemEnabled(7, false); - setItemEnabled(8, false); - break; case BScreen::LeftRight: getScreen()->saveRowPlacementDirection(BScreen::LeftRight); - - setItemSelected(5, true); - setItemSelected(6, false); - break; case BScreen::RightLeft: getScreen()->saveRowPlacementDirection(BScreen::RightLeft); - - setItemSelected(5, false); - setItemSelected(6, true); - break; case BScreen::TopBottom: getScreen()->saveColPlacementDirection(BScreen::TopBottom); - - setItemSelected(7, true); - setItemSelected(8, false); - break; case BScreen::BottomTop: getScreen()->saveColPlacementDirection(BScreen::BottomTop); - - setItemSelected(7, false); - setItemSelected(8, true); - break; case BScreen::IgnoreShaded: getScreen()->savePlaceIgnoreShaded(! getScreen()->getPlaceIgnoreShaded()); - - setItemSelected(9, getScreen()->getPlaceIgnoreShaded()); - break; case BScreen::IgnoreMaximized: getScreen()-> savePlaceIgnoreMaximized(! getScreen()->getPlaceIgnoreMaximized()); - - setItemSelected(10, getScreen()->getPlaceIgnoreMaximized()); - break; } + setValues(); } @@ -619,3 +562,54 @@ void Configmenu::Xineramamenu::itemSelected(int button, unsigned int index) { } } #endif // XINERAMA + +#ifdef XFT +Configmenu::Xftmenu::Xftmenu(Configmenu *cm): + Basemenu(cm->getScreen()) { + setLabel(i18n(ConfigmenuSet, ConfigmenuXftOptions, "Xft Font Options")); + setInternalMenu(); + + insert(i18n(ConfigmenuSet, ConfigmenuXftAA, "Anti-Alias Text"), 1); + insert(i18n(ConfigmenuSet, ConfigmenuXftShadow, "Drop Shadows Under Text"), + 2); + + update(); + setValues(); +} + + +void Configmenu::Xftmenu::setValues(void) { + setItemSelected(0, getScreen()->doAAFonts()); + setItemEnabled(1, getScreen()->doAAFonts()); + setItemSelected(1, getScreen()->doShadowFonts()); +} + + +void Configmenu::Xftmenu::reconfigure(void) { + setValues(); + Basemenu::reconfigure(); +} + + +void Configmenu::Xftmenu::itemSelected(int button, unsigned int index) { + if (button != 1) + return; + + BasemenuItem *item = find(index); + + if (! item->function()) + return; + + switch (item->function()) { + case 1: // anti-alias text + getScreen()->saveAAFonts(! getScreen()->doAAFonts()); + break; + + case 2: // drop shadows + getScreen()->saveShadowFonts(! getScreen()->doShadowFonts()); + break; + } + + setValues(); +} +#endif // XFT