+ }
+ setValues();
+}
+
+
+Configmenu::WindowToEdgeSnapmenu::WindowToEdgeSnapmenu(Configmenu *cm) :
+ Basemenu(cm->getScreen()) {
+ setLabel(i18n(ConfigmenuSet, ConfigmenuWindowToEdgeSnap,
+ "Window-To-Edge Snapping"));
+ setInternalMenu();
+
+ insert(i18n(ConfigmenuSet, ConfigmenuWindowDoSnapNo, "No Snapping"), 1);
+ insert(i18n(ConfigmenuSet, ConfigmenuWindowDoSnap, "Edge Snapping"), 2);
+ insert(i18n(ConfigmenuSet, ConfigmenuWindowDoResistance,
+ "Edge Resistance"), 3);
+ update();
+ setValues();
+}
+
+
+void Configmenu::WindowToEdgeSnapmenu::setValues(void) {
+ setItemSelected(0, (getScreen()->getWindowToEdgeSnap() ==
+ BScreen::WindowNoSnap));
+ setItemSelected(1, (getScreen()->getWindowToEdgeSnap() ==
+ BScreen::WindowSnap));
+ setItemSelected(2, (getScreen()->getWindowToEdgeSnap() ==
+ BScreen::WindowResistance));
+}
+
+
+void Configmenu::WindowToEdgeSnapmenu::reconfigure(void) {
+ setValues();
+ Basemenu::reconfigure();
+}
+
+
+void Configmenu::WindowToEdgeSnapmenu::itemSelected(int button, unsigned int index) {
+ if (button != 1)
+ return;
+
+ BasemenuItem *item = find(index);
+
+ if (! item->function())
+ return;
+
+ switch (item->function()) {
+ case 1: // none
+ getScreen()->saveWindowToEdgeSnap(BScreen::WindowNoSnap);
+ break;
+
+ case 2: // edge snapping
+ getScreen()->saveWindowToEdgeSnap(BScreen::WindowSnap);
+ break;
+
+ case 3: // edge resistance
+ getScreen()->saveWindowToEdgeSnap(BScreen::WindowResistance);
+ break;
+ }
+ setValues();
+}
+
+
+#ifdef XINERAMA
+Configmenu::Xineramamenu::Xineramamenu(Configmenu *cm):
+ Basemenu(cm->getScreen()) {
+ setLabel(i18n(ConfigmenuSet, ConfigmenuXineramaSupport, "Xinerama Support"));
+ setInternalMenu();
+
+ insert(i18n(ConfigmenuSet, ConfigmenuXineramaPlacement, "Window Placement"),
+ 1);
+ insert(i18n(ConfigmenuSet, ConfigmenuXineramaMaximizing, "Window Maximizing"),
+ 2);
+ insert(i18n(ConfigmenuSet, ConfigmenuXineramaSnapping, "Window Snapping"),
+ 3);
+
+ update();
+ setValues();
+}
+
+
+void Configmenu::Xineramamenu::setValues(void) {
+ setItemSelected(0, getScreen()->getBlackbox()->doXineramaPlacement());
+ setItemSelected(1, getScreen()->getBlackbox()->doXineramaMaximizing());
+ setItemSelected(2, getScreen()->getBlackbox()->doXineramaSnapping());
+}
+
+
+void Configmenu::Xineramamenu::reconfigure(void) {
+ setValues();
+ Basemenu::reconfigure();
+}
+
+
+void Configmenu::Xineramamenu::itemSelected(int button, unsigned int index) {
+ if (button != 1)
+ return;
+
+ BasemenuItem *item = find(index);
+
+ if (! item->function())
+ return;
+
+ Blackbox *bb = getScreen()->getBlackbox();
+
+ switch (item->function()) {
+ case 1: // window placement
+ bb->saveXineramaPlacement(! bb->doXineramaPlacement());
+ setItemSelected(0, bb->doXineramaPlacement());
+ break;
+
+ case 2: // window maximizing
+ bb->saveXineramaMaximizing(! bb->doXineramaMaximizing());
+ setItemSelected(1, bb->doXineramaMaximizing());
+ break;