Index: ControlAdjuster.cc =================================================================== RCS file: /cvs/cygwin-apps/setup/ControlAdjuster.cc,v retrieving revision 2.1 diff -u -p -r2.1 ControlAdjuster.cc --- ControlAdjuster.cc 26 Oct 2003 19:38:30 -0000 2.1 +++ ControlAdjuster.cc 1 Nov 2003 03:12:34 -0000 @@ -35,18 +35,40 @@ void ControlAdjuster::AdjustControls (HW /* Now adjust the rectangle. - If an anchor is set, the resp. edge is 'sticky' with respect to the - opposite border. */ - if (!ci->anchorLeft) - ctlRect.left += widthChange; - if (!ci->anchorTop) - ctlRect.top += heightChange; - if (ci->anchorRight) - ctlRect.right += widthChange; - if (ci->anchorBottom) - ctlRect.bottom += heightChange; - + switch (ci->horizontalPos) + { + case CP_LEFT: + break; + case CP_MIDDLE: + ctlRect.left += widthChange/2; + ctlRect.right += widthChange - widthChange/2; + break; + case CP_RIGHT: + ctlRect.left += widthChange; + ctlRect.right += widthChange; + break; + case CP_STRETCH: + ctlRect.right += widthChange; + break; + } + switch (ci->verticalPos) + { + case CP_TOP: + break; + case CP_MIDDLE: + ctlRect.top += heightChange/2; + ctlRect.bottom += heightChange - heightChange/2; + break; + case CP_BOTTOM: + ctlRect.top += heightChange; + ctlRect.bottom += heightChange; + break; + case CP_STRETCH: + ctlRect.bottom += heightChange; + break; + } + SetWindowPos (ctl, 0, ctlRect.left, ctlRect.top, ctlRect.width (), ctlRect.height (), SWP_NOACTIVATE | SWP_NOZORDER); // If not done, weird visual glitches can occur. Index: ControlAdjuster.h =================================================================== RCS file: /cvs/cygwin-apps/setup/ControlAdjuster.h,v retrieving revision 2.1 diff -u -p -r2.1 ControlAdjuster.h --- ControlAdjuster.h 26 Oct 2003 19:38:30 -0000 2.1 +++ ControlAdjuster.h 1 Nov 2003 03:12:34 -0000 @@ -28,6 +28,15 @@ when the size changes. */ +enum ControlPosition { + CP_LEFT = 0, + CP_TOP = CP_LEFT, + CP_MIDDLE, + CP_RIGHT, + CP_BOTTOM = CP_RIGHT, + CP_STRETCH, +}; + class ControlAdjuster { public: @@ -36,12 +45,10 @@ public: // Control ID int control; /* - Anchors. Basically, says which edge should be "sticky". + * Position specifiers. */ - bool anchorLeft; - bool anchorTop; - bool anchorRight; - bool anchorBottom; + ControlPosition horizontalPos; + ControlPosition verticalPos; }; /* Index: choose.cc =================================================================== RCS file: /cvs/cygwin-apps/setup/choose.cc,v retrieving revision 2.134 diff -u -p -r2.134 choose.cc --- choose.cc 26 Oct 2003 19:38:30 -0000 2.134 +++ choose.cc 1 Nov 2003 03:12:34 -0000 @@ -66,15 +66,15 @@ extern ThreeBarProgressPage Progress; Sizing information. */ static ControlAdjuster::ControlInfo ChooserControlsInfo[] = { - {IDC_CHOOSE_KEEP, false, true, true, false}, - {IDC_CHOOSE_PREV, false, true, true, false}, - {IDC_CHOOSE_CURR, false, true, true, false}, - {IDC_CHOOSE_EXP, false, true, true, false}, - {IDC_CHOOSE_VIEW, false, true, true, false}, - {IDC_LISTVIEW_POS, false, true, true, false}, - {IDC_CHOOSE_VIEWCAPTION, false, true, true, false}, - {IDC_CHOOSE_LIST, true, true, true, true }, - {0, false, false, false, false} + {IDC_CHOOSE_KEEP, CP_RIGHT, CP_TOP}, + {IDC_CHOOSE_PREV, CP_RIGHT, CP_TOP}, + {IDC_CHOOSE_CURR, CP_RIGHT, CP_TOP}, + {IDC_CHOOSE_EXP, CP_RIGHT, CP_TOP}, + {IDC_CHOOSE_VIEW, CP_RIGHT, CP_TOP}, + {IDC_LISTVIEW_POS, CP_RIGHT, CP_TOP}, + {IDC_CHOOSE_VIEWCAPTION, CP_RIGHT, CP_TOP}, + {IDC_CHOOSE_LIST, CP_STRETCH, CP_STRETCH}, + {0, CP_LEFT, CP_TOP} }; ChooserPage::ChooserPage () Index: proppage.cc =================================================================== RCS file: /cvs/cygwin-apps/setup/proppage.cc,v retrieving revision 2.10 diff -u -p -r2.10 proppage.cc --- proppage.cc 26 Oct 2003 19:38:30 -0000 2.10 +++ proppage.cc 1 Nov 2003 03:12:35 -0000 @@ -30,9 +30,9 @@ bool PropertyPage::DoOnceForSheet = true Sizing information for some controls that are common to all pages. */ static ControlAdjuster::ControlInfo DefaultControlsInfo[] = { - {IDC_HEADICON, false, true, true, false}, - {IDC_HEADSEPARATOR, true, true, true, false}, - {0, false, false, false, false} + {IDC_HEADICON, CP_RIGHT, CP_TOP}, + {IDC_HEADSEPARATOR, CP_STRETCH, CP_TOP}, + {0, CP_LEFT, CP_TOP} }; PropertyPage::PropertyPage () Index: propsheet.cc =================================================================== RCS file: /cvs/cygwin-apps/setup/propsheet.cc,v retrieving revision 2.7 diff -u -p -r2.7 propsheet.cc --- propsheet.cc 26 Oct 2003 19:38:30 -0000 2.7 +++ propsheet.cc 1 Nov 2003 03:12:35 -0000 @@ -126,12 +126,12 @@ struct PropSheetData }; static ControlAdjuster::ControlInfo PropSheetControlsInfo[] = { - {0x3023, false, false, true, true }, // Back - {0x3024, false, false, true, true }, // Next - {0x3025, false, false, true, true }, // Finish - {0x3026, true, false, true, true }, // Line above buttons - { 2, false, false, true, true }, // Cancel - {0, false, false, false, false} + {0x3023, CP_RIGHT, CP_BOTTOM}, // Back + {0x3024, CP_RIGHT, CP_BOTTOM}, // Next + {0x3025, CP_RIGHT, CP_BOTTOM}, // Finish + {0x3026, CP_STRETCH, CP_BOTTOM}, // Line above buttons + { 2, CP_RIGHT, CP_BOTTOM}, // Cancel + {0, CP_LEFT, CP_TOP} }; static bool IsDialog (HWND hwnd) Index: site.cc =================================================================== RCS file: /cvs/cygwin-apps/setup/site.cc,v retrieving revision 2.31 diff -u -p -r2.31 site.cc --- site.cc 30 Jul 2003 08:13:09 -0000 2.31 +++ site.cc 1 Nov 2003 03:12:35 -0000 @@ -43,7 +43,24 @@ static const char *cvsid = #include "propsheet.h" #include "threebar.h" +#include "ControlAdjuster.h" + extern ThreeBarProgressPage Progress; + +/* + Sizing information. + */ +static ControlAdjuster::ControlInfo SiteControlsInfo[] = { + {IDC_URL_LIST, CP_STRETCH, CP_STRETCH}, + {IDC_EDIT_USER_URL, CP_STRETCH, CP_BOTTOM}, + {IDC_BUTTON_ADD_URL, CP_RIGHT, CP_BOTTOM}, + {0, CP_LEFT, CP_TOP} +}; + +SitePage::SitePage () +{ + sizeProcessor.AddControlInfo (SiteControlsInfo); +} #include "getopt++/StringOption.h" #include "UserSettings.h" Index: site.h =================================================================== RCS file: /cvs/cygwin-apps/setup/site.h,v retrieving revision 2.14 diff -u -p -r2.14 site.h --- site.h 27 Jul 2003 10:29:53 -0000 2.14 +++ site.h 1 Nov 2003 03:12:35 -0000 @@ -27,9 +27,7 @@ class SitePage:public PropertyPage { public: - SitePage () - { - }; + SitePage (); virtual ~ SitePage () { }; Index: threebar.cc =================================================================== RCS file: /cvs/cygwin-apps/setup/threebar.cc,v retrieving revision 2.7 diff -u -p -r2.7 threebar.cc --- threebar.cc 30 Jul 2003 21:49:53 -0000 2.7 +++ threebar.cc 1 Nov 2003 03:12:35 -0000 @@ -28,6 +28,29 @@ #include "cistring.h" #include "state.h" +#include "ControlAdjuster.h" + +/* + Sizing information. + */ +static ControlAdjuster::ControlInfo ThreeBarControlsInfo[] = { + {IDC_INS_ACTION, CP_LEFT, CP_TOP}, + {IDC_INS_PKG, CP_LEFT, CP_TOP}, + {IDC_INS_FILE, CP_LEFT, CP_TOP}, + {IDC_INS_DISKFULL, CP_STRETCH, CP_TOP}, + {IDC_INS_IPROGRESS, CP_STRETCH, CP_TOP}, + {IDC_INS_PPROGRESS, CP_STRETCH, CP_TOP}, + {IDC_INS_BL_PACKAGE, CP_LEFT, CP_TOP}, + {IDC_INS_BL_TOTAL, CP_LEFT, CP_TOP}, + {IDC_INS_BL_DISK, CP_LEFT, CP_TOP}, + {0, CP_LEFT, CP_TOP} +}; + +ThreeBarProgressPage::ThreeBarProgressPage () +{ + sizeProcessor.AddControlInfo (ThreeBarControlsInfo); +} + bool ThreeBarProgressPage::Create () { return PropertyPage::Create (IDD_INSTATUS); Index: threebar.h =================================================================== RCS file: /cvs/cygwin-apps/setup/threebar.h,v retrieving revision 2.6 diff -u -p -r2.6 threebar.h --- threebar.h 23 Jun 2003 20:49:00 -0000 2.6 +++ threebar.h 1 Nov 2003 03:12:35 -0000 @@ -53,9 +53,7 @@ class ThreeBarProgressPage:public Proper void EnableSingleBar (bool enable = true); public: - ThreeBarProgressPage () - { - }; + ThreeBarProgressPage (); virtual ~ ThreeBarProgressPage () { };