From: Christophe CURIS <[email protected]>

Due to a long history of evolution, it was time to rethink the placement
of all widgets to achieve a clean look. The frames have been reshuffled to
be aligned to each other, and as a bonus the Mod+Wheel setting now has its
own frame instead of being part of another unrelated frame.

Took opportunity to include an info balloon to explain what the "by
keyboard" checkbox actually means.

Signed-off-by: Christophe CURIS <[email protected]>
---
 WPrefs.app/WindowHandling.c | 142 +++++++++++++++++++++++++-------------------
 1 file changed, 81 insertions(+), 61 deletions(-)

diff --git a/WPrefs.app/WindowHandling.c b/WPrefs.app/WindowHandling.c
index 4a0a431..ea4031b 100644
--- a/WPrefs.app/WindowHandling.c
+++ b/WPrefs.app/WindowHandling.c
@@ -49,9 +49,11 @@ typedef struct _Panel {
        WMButton *resrB;
 
        WMFrame *maxiF;
+       WMLabel *maxiL;
        WMButton *miconB;
        WMButton *mdockB;
 
+       WMFrame *resizeF;
        WMLabel *resizeL;
        WMLabel *resizeTextL;
        WMSlider *resizeS;
@@ -300,30 +302,29 @@ static void createPanel(Panel * p)
        WMAddBoxSubview(panel->box, WMWidgetView(hbox), False, True, 110, 0, 
10);
 
     /************** Window Placement ***************/
-       panel->placF = WMCreateFrame(hbox);
-       WMMapWidget(panel->placF);
-       WMAddBoxSubview(hbox, WMWidgetView(panel->placF), True, True, 100, 0, 
10);
-
+       panel->placF = WMCreateFrame(panel->box);
+       WMResizeWidget(panel->placF, 222, 163);
+       WMMoveWidget(panel->placF, 8, 6);
        WMSetFrameTitle(panel->placF, _("Window Placement"));
        WMSetBalloonTextForView(_("How to place windows when they are first 
put\n"
                                  "on screen."), WMWidgetView(panel->placF));
 
        panel->placP = WMCreatePopUpButton(panel->placF);
-       WMResizeWidget(panel->placP, 105, 20);
-       WMMoveWidget(panel->placP, 10, 20);
+       WMResizeWidget(panel->placP, 90, 20);
+       WMMoveWidget(panel->placP, 9, 19);
 
        for (i = 0; i < wlengthof(window_placements); i++)
                WMAddPopUpButtonItem(panel->placP, 
_(window_placements[i].label));
 
        panel->porigL = WMCreateLabel(panel->placF);
-       WMResizeWidget(panel->porigL, 110, 32);
-       WMMoveWidget(panel->porigL, 3, 45);
-       WMSetLabelTextAlignment(panel->porigL, WACenter);
-       WMSetLabelText(panel->porigL, _("Placement Origin"));
+       WMResizeWidget(panel->porigL, 50, 20);
+       WMMoveWidget(panel->porigL, 100, 19);
+       WMSetLabelTextAlignment(panel->porigL, WARight);
+       WMSetLabelText(panel->porigL, _("Origin:"));
 
        panel->porigvL = WMCreateLabel(panel->placF);
-       WMResizeWidget(panel->porigvL, 80, 20);
-       WMMoveWidget(panel->porigvL, 18, 75);
+       WMResizeWidget(panel->porigvL, 69, 20);
+       WMMoveWidget(panel->porigvL, 150, 19);
        WMSetLabelTextAlignment(panel->porigvL, WACenter);
 
        color = WMCreateRGBColor(scr, 0x5100, 0x5100, 0x7100, True);
@@ -332,22 +333,25 @@ static void createPanel(Panel * p)
        WMReleaseColor(color);
        WMSetFrameRelief(panel->porigF, WRSunken);
 
+       /*
+        * There is an available area of 204 x 109, starting at x=9 y=45
+        * We have to keep 12 pixels in each direction for the sliders,
+        * and an extra pixel for spacing.
+        * In this area, we want to have a rectangle with the same aspect
+        * ratio as the screen.
+        */
        swidth = WidthOfScreen(DefaultScreenOfDisplay(WMScreenDisplay(scr)));
        sheight = HeightOfScreen(DefaultScreenOfDisplay(WMScreenDisplay(scr)));
 
-       if (sheight > swidth) {
-               width = 70 * swidth / sheight;
-               if (width > 195)
-                       width = 195;
-               height = 195 * sheight / swidth;
+       width = swidth * (109 - 13) / sheight;
+       if (width <= (204 - 13)) {
+               height = 109 - 13;
        } else {
-               height = 195 * sheight / swidth;
-               if (height > 70)
-                       height = 70;
-               width = 70 * swidth / sheight;
+               width = 204 - 13;
+               height = sheight * (204 - 13) / swidth;
        }
        WMResizeWidget(panel->porigF, width, height);
-       WMMoveWidget(panel->porigF, 125 + (195 - width) / 2, 20 + (70 - height) 
/ 2);
+       WMMoveWidget(panel->porigF, 9 + (204 - 13 - width) / 2, 45 + (109 - 13 
- height) / 2);
 
        panel->porigW = WMCreateLabel(panel->porigF);
        WMResizeWidget(panel->porigW, THUMB_SIZE, THUMB_SIZE);
@@ -356,14 +360,14 @@ static void createPanel(Panel * p)
 
        panel->hsli = WMCreateSlider(panel->placF);
        WMResizeWidget(panel->hsli, width, 12);
-       WMMoveWidget(panel->hsli, 125 + (195 - width) / 2, 20 + (70 - height) / 
2 + height + 2);
+       WMMoveWidget(panel->hsli, 9 + (204 - 13 - width) / 2, 45 + (109 - 13 - 
height) / 2 + height + 1);
        WMSetSliderAction(panel->hsli, sliderCallback, panel);
        WMSetSliderMinValue(panel->hsli, 0);
        WMSetSliderMaxValue(panel->hsli, swidth);
 
        panel->vsli = WMCreateSlider(panel->placF);
        WMResizeWidget(panel->vsli, 12, height);
-       WMMoveWidget(panel->vsli, 125 + (195 - width) / 2 + width + 2, 20 + (70 
- height) / 2);
+       WMMoveWidget(panel->vsli, 9 + (204 - 13 - width) / 2 + width + 1, 45 + 
(109 - 13 - height) / 2);
        WMSetSliderAction(panel->vsli, sliderCallback, panel);
        WMSetSliderMinValue(panel->vsli, 0);
        WMSetSliderMaxValue(panel->vsli, sheight);
@@ -373,9 +377,9 @@ static void createPanel(Panel * p)
        WMMapSubwidgets(panel->placF);
 
     /************** Opaque Move, Resize ***************/
-       panel->opaqF = WMCreateFrame(hbox);
-       WMMapWidget(panel->opaqF);
-       WMAddBoxSubview(hbox, WMWidgetView(panel->opaqF), False, True, 150, 0, 
0);
+       panel->opaqF = WMCreateFrame(panel->box);
+       WMResizeWidget(panel->opaqF, 140, 118);
+       WMMoveWidget(panel->opaqF, 372, 103);
 
        WMSetFrameTitle(panel->opaqF, _("Opaque Move/Resize"));
        WMSetBalloonTextForView(_("Whether the window contents or only a frame 
should\n"
@@ -384,7 +388,7 @@ static void createPanel(Panel * p)
 
        panel->opaqB = WMCreateButton(panel->opaqF, WBTToggle);
        WMResizeWidget(panel->opaqB, 54, 54);
-       WMMoveWidget(panel->opaqB, 14, 20);
+       WMMoveWidget(panel->opaqB, 11, 22);
        WMSetButtonImagePosition(panel->opaqB, WIPImageOnly);
 
        path = LocateImage(NON_OPAQUE_MOVE_PIXMAP);
@@ -415,7 +419,7 @@ static void createPanel(Panel * p)
 
        panel->opaqresizeB = WMCreateButton(panel->opaqF, WBTToggle);
        WMResizeWidget(panel->opaqresizeB, 54, 54);
-       WMMoveWidget(panel->opaqresizeB, 82, 20);
+       WMMoveWidget(panel->opaqresizeB, 75, 22);
        WMSetButtonImagePosition(panel->opaqresizeB, WIPImageOnly);
 
        path = LocateImage(NON_OPAQUE_RESIZE_PIXMAP);
@@ -444,51 +448,67 @@ static void createPanel(Panel * p)
 
        panel->opaqkeybB = WMCreateSwitchButton(panel->opaqF);
        WMResizeWidget(panel->opaqkeybB, 122, 25);
-       WMMoveWidget(panel->opaqkeybB, 14, 79);
+       WMMoveWidget(panel->opaqkeybB, 11, 85);
        WMSetButtonText(panel->opaqkeybB, _("by keyboard"));
 
+       WMSetBalloonTextForView(_("When selected, moving or resizing windows\n"
+                                 "using keyboard shortcuts will also display 
its\n"
+                                 "content instead of just a frame."), 
WMWidgetView(panel->opaqkeybB));
+
        WMMapSubwidgets(panel->opaqF);
 
 
     /**************** Account for Icon/Dock ***************/
        panel->maxiF = WMCreateFrame(panel->box);
-       WMResizeWidget(panel->maxiF, 205, 100);
-       WMMoveWidget(panel->maxiF, 307, 125);
+       WMResizeWidget(panel->maxiF, 140, 92);
+       WMMoveWidget(panel->maxiF, 372, 6);
        WMSetFrameTitle(panel->maxiF, _("When maximizing..."));
 
+       panel->maxiL = WMCreateLabel(panel->maxiF);
+       WMSetLabelText(panel->maxiL, _("...do not cover:"));
+       WMResizeWidget(panel->maxiL, 120, 20);
+       WMMoveWidget(panel->maxiL, 10, 16);
+
        panel->miconB = WMCreateSwitchButton(panel->maxiF);
-       WMResizeWidget(panel->miconB, 190, 30);
-       WMMoveWidget(panel->miconB, 10, 14);
-       WMSetButtonText(panel->miconB, _("...do not cover icons"));
+       WMResizeWidget(panel->miconB, 120, 25);
+       WMMoveWidget(panel->miconB, 10, 36);
+       WMSetButtonText(panel->miconB, _("Icons"));
 
        panel->mdockB = WMCreateSwitchButton(panel->maxiF);
-       WMResizeWidget(panel->mdockB, 190, 30);
-       WMMoveWidget(panel->mdockB, 10, 39);
+       WMResizeWidget(panel->mdockB, 120, 25);
+       WMMoveWidget(panel->mdockB, 10, 61);
+       WMSetButtonText(panel->mdockB, _("The dock"));
+
+       WMMapSubwidgets(panel->maxiF);
+
+    /**************** Resize with Mod+Wheel ***************/
+       panel->resizeF = WMCreateFrame(panel->box);
+       WMResizeWidget(panel->resizeF, 127, 66);
+       WMMoveWidget(panel->resizeF, 238, 103);
+       WMSetFrameTitle(panel->resizeF, _("Mod+Wheel"));
 
-       WMSetButtonText(panel->mdockB, _("...do not cover dock"));
+       panel->resizeTextL = WMCreateLabel(panel->resizeF);
+       WMSetLabelText(panel->resizeTextL, _("Resize increment:"));
+       WMResizeWidget(panel->resizeTextL, 118, 20);
+       WMMoveWidget(panel->resizeTextL, 5, 16);
 
-       panel->resizeS = WMCreateSlider(panel->maxiF);
-       WMResizeWidget(panel->resizeS, 50, 15);
-       WMMoveWidget(panel->resizeS, 10, 74);
+       panel->resizeS = WMCreateSlider(panel->resizeF);
+       WMResizeWidget(panel->resizeS, 80, 15);
+       WMMoveWidget(panel->resizeS, 9, 40);
        WMSetSliderMinValue(panel->resizeS, 0);
        WMSetSliderMaxValue(panel->resizeS, 100);
        WMSetSliderAction(panel->resizeS, resizeCallback, panel);
 
-       panel->resizeL = WMCreateLabel(panel->maxiF);
+       panel->resizeL = WMCreateLabel(panel->resizeF);
        WMResizeWidget(panel->resizeL, 30, 15);
-       WMMoveWidget(panel->resizeL, 60, 74);
+       WMMoveWidget(panel->resizeL, 90, 40);
 
-       panel->resizeTextL = WMCreateLabel(panel->maxiF);
-       WMSetLabelText(panel->resizeTextL, _("Mod+Wheel\nresize increment"));
-       WMResizeWidget(panel->resizeTextL, 110, 30);
-       WMMoveWidget(panel->resizeTextL, 90, 66);
-
-       WMMapSubwidgets(panel->maxiF);
+       WMMapSubwidgets(panel->resizeF);
 
     /**************** Edge Resistance  ****************/
        panel->resF = WMCreateFrame(panel->box);
-       WMResizeWidget(panel->resF, 289, 47);
-       WMMoveWidget(panel->resF, 8, 125);
+       WMResizeWidget(panel->resF, 127, 92);
+       WMMoveWidget(panel->resF, 238, 6);
        WMSetFrameTitle(panel->resF, _("Edge Resistance"));
 
        WMSetBalloonTextForView(_("Edge resistance will make windows `resist'\n"
@@ -498,23 +518,23 @@ static void createPanel(Panel * p)
 
        panel->resS = WMCreateSlider(panel->resF);
        WMResizeWidget(panel->resS, 80, 15);
-       WMMoveWidget(panel->resS, 10, 20);
+       WMMoveWidget(panel->resS, 9, 20);
        WMSetSliderMinValue(panel->resS, 0);
        WMSetSliderMaxValue(panel->resS, 80);
        WMSetSliderAction(panel->resS, resistanceCallback, panel);
 
        panel->resL = WMCreateLabel(panel->resF);
        WMResizeWidget(panel->resL, 30, 15);
-       WMMoveWidget(panel->resL, 95, 22);
+       WMMoveWidget(panel->resL, 90, 22);
 
        panel->resaB = WMCreateRadioButton(panel->resF);
-       WMMoveWidget(panel->resaB, 130, 15);
-       WMResizeWidget(panel->resaB, 70, 27);
+       WMMoveWidget(panel->resaB, 9, 39);
+       WMResizeWidget(panel->resaB, 107, 23);
        WMSetButtonText(panel->resaB, _("Resist"));
 
        panel->resrB = WMCreateRadioButton(panel->resF);
-       WMMoveWidget(panel->resrB, 200, 15);
-       WMResizeWidget(panel->resrB, 70, 27);
+       WMMoveWidget(panel->resrB, 9, 62);
+       WMResizeWidget(panel->resrB, 107, 23);
        WMSetButtonText(panel->resrB, _("Attract"));
        WMGroupButtons(panel->resrB, panel->resaB);
 
@@ -522,13 +542,13 @@ static void createPanel(Panel * p)
 
     /**************** Dragging a Maximized Window ****************/
        panel->dragmaxF = WMCreateFrame(panel->box);
-       WMResizeWidget(panel->dragmaxF, 289, 46);
-       WMMoveWidget(panel->dragmaxF, 8, 179);
+       WMResizeWidget(panel->dragmaxF, 357, 49);
+       WMMoveWidget(panel->dragmaxF, 8, 172);
        WMSetFrameTitle(panel->dragmaxF, _("When dragging a maximized 
window..."));
 
        panel->dragmaxP = WMCreatePopUpButton(panel->dragmaxF);
-       WMResizeWidget(panel->dragmaxP, 269, 20);
-       WMMoveWidget(panel->dragmaxP, 10, 20);
+       WMResizeWidget(panel->dragmaxP, 328, 20);
+       WMMoveWidget(panel->dragmaxP, 15, 18);
 
        for (i = 0; i < wlengthof(drag_maximized_window_options); i++)
                WMAddPopUpButtonItem(panel->dragmaxP, 
_(drag_maximized_window_options[i].label));
-- 
2.1.1


-- 
To unsubscribe, send mail to [email protected].

Reply via email to