Screen prefs: Use menu field layout methods

... to layout the menu field label and menu in the grid. This makes
the label and grid layout correctly, the AddMenuField() method should
be deprecated or fixed as it lays out the menu field differently.

Also replace numeric spacing units with font relative spacing units.
This commit is contained in:
John Scipione
2013-08-20 14:43:16 -04:00
parent ffd71d3d19
commit 6048f54145
+24 -10
View File
@@ -272,8 +272,9 @@ ScreenWindow::ScreenWindow(ScreenSettings* settings)
BBox* controlsBox = new BBox("controls box"); BBox* controlsBox = new BBox("controls box");
controlsBox->SetLabel(workspaceMenuField); controlsBox->SetLabel(workspaceMenuField);
BGroupView* outerControlsView = new BGroupView(B_VERTICAL, 10.0); BGroupView* outerControlsView = new BGroupView(B_VERTICAL);
outerControlsView->GroupLayout()->SetInsets(10, 10, 10, 10); outerControlsView->GroupLayout()->SetInsets(B_USE_DEFAULT_SPACING,
B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING);
controlsBox->AddChild(outerControlsView); controlsBox->AddChild(outerControlsView);
fResolutionMenu = new BPopUpMenu("resolution", true, true); fResolutionMenu = new BPopUpMenu("resolution", true, true);
@@ -309,6 +310,7 @@ ScreenWindow::ScreenWindow(ScreenSettings* settings)
fResolutionField = new BMenuField("ResolutionMenu", fResolutionField = new BMenuField("ResolutionMenu",
B_TRANSLATE("Resolution:"), fResolutionMenu); B_TRANSLATE("Resolution:"), fResolutionMenu);
fResolutionField->SetAlignment(B_ALIGN_RIGHT);
fColorsMenu = new BPopUpMenu("colors", true, false); fColorsMenu = new BPopUpMenu("colors", true, false);
@@ -329,6 +331,7 @@ ScreenWindow::ScreenWindow(ScreenSettings* settings)
fColorsField = new BMenuField("ColorsMenu", B_TRANSLATE("Colors:"), fColorsField = new BMenuField("ColorsMenu", B_TRANSLATE("Colors:"),
fColorsMenu); fColorsMenu);
fColorsField->SetAlignment(B_ALIGN_RIGHT);
fRefreshMenu = new BPopUpMenu("refresh rate", true, true); fRefreshMenu = new BPopUpMenu("refresh rate", true, true);
@@ -378,6 +381,7 @@ ScreenWindow::ScreenWindow(ScreenSettings* settings)
fRefreshField = new BMenuField("RefreshMenu", B_TRANSLATE("Refresh rate:"), fRefreshField = new BMenuField("RefreshMenu", B_TRANSLATE("Refresh rate:"),
fRefreshMenu); fRefreshMenu);
fRefreshField->SetAlignment(B_ALIGN_RIGHT);
if (_IsVesa()) if (_IsVesa())
fRefreshField->Hide(); fRefreshField->Hide();
@@ -410,6 +414,7 @@ ScreenWindow::ScreenWindow(ScreenSettings* settings)
fCombineField = new BMenuField("CombineMenu", fCombineField = new BMenuField("CombineMenu",
B_TRANSLATE("Combine displays:"), fCombineMenu); B_TRANSLATE("Combine displays:"), fCombineMenu);
fCombineField->SetAlignment(B_ALIGN_RIGHT);
if (!multiMonSupport) if (!multiMonSupport)
fCombineField->Hide(); fCombineField->Hide();
@@ -428,6 +433,7 @@ ScreenWindow::ScreenWindow(ScreenSettings* settings)
fSwapDisplaysField = new BMenuField("SwapMenu", fSwapDisplaysField = new BMenuField("SwapMenu",
B_TRANSLATE("Swap displays:"), fSwapDisplaysMenu); B_TRANSLATE("Swap displays:"), fSwapDisplaysMenu);
fSwapDisplaysField->SetAlignment(B_ALIGN_RIGHT);
if (!multiMonSupport) if (!multiMonSupport)
fSwapDisplaysField->Hide(); fSwapDisplaysField->Hide();
@@ -448,6 +454,7 @@ ScreenWindow::ScreenWindow(ScreenSettings* settings)
fUseLaptopPanelField = new BMenuField("UseLaptopPanel", fUseLaptopPanelField = new BMenuField("UseLaptopPanel",
B_TRANSLATE("Use laptop panel:"), fUseLaptopPanelMenu); B_TRANSLATE("Use laptop panel:"), fUseLaptopPanelMenu);
fUseLaptopPanelField->SetAlignment(B_ALIGN_RIGHT);
if (!useLaptopPanelSupport) if (!useLaptopPanelSupport)
fUseLaptopPanelField->Hide(); fUseLaptopPanelField->Hide();
@@ -478,14 +485,21 @@ ScreenWindow::ScreenWindow(ScreenSettings* settings)
} }
BLayoutBuilder::Group<>(outerControlsView) BLayoutBuilder::Group<>(outerControlsView)
.AddGrid(5.0, 5.0) .AddGrid(B_USE_DEFAULT_SPACING, B_USE_SMALL_SPACING)
.AddMenuField(fResolutionField, 0, 0, B_ALIGN_RIGHT) .Add(fResolutionField->CreateLabelLayoutItem(), 0, 0)
.AddMenuField(fColorsField, 0, 1, B_ALIGN_RIGHT) .Add(fResolutionField->CreateMenuBarLayoutItem(), 1, 0)
.AddMenuField(fRefreshField, 0, 2, B_ALIGN_RIGHT) .Add(fColorsField->CreateLabelLayoutItem(), 0, 1)
.AddMenuField(fCombineField, 0, 3, B_ALIGN_RIGHT) .Add(fColorsField->CreateMenuBarLayoutItem(), 1, 1)
.AddMenuField(fSwapDisplaysField, 0, 4, B_ALIGN_RIGHT) .Add(fRefreshField->CreateLabelLayoutItem(), 0, 2)
.AddMenuField(fUseLaptopPanelField, 0, 5, B_ALIGN_RIGHT) .Add(fRefreshField->CreateMenuBarLayoutItem(), 1, 2)
.AddMenuField(fTVStandardField, 0, 6, B_ALIGN_RIGHT) .Add(fCombineField->CreateLabelLayoutItem(), 0, 3)
.Add(fCombineField->CreateMenuBarLayoutItem(), 1, 3)
.Add(fSwapDisplaysField->CreateLabelLayoutItem(), 0, 4)
.Add(fSwapDisplaysField->CreateMenuBarLayoutItem(), 1, 4)
.Add(fUseLaptopPanelField->CreateLabelLayoutItem(), 0, 5)
.Add(fUseLaptopPanelField->CreateMenuBarLayoutItem(), 1, 5)
.Add(fTVStandardField->CreateLabelLayoutItem(), 0, 6)
.Add(fTVStandardField->CreateMenuBarLayoutItem(), 1, 6)
.End(); .End();
// TODO: we don't support getting the screen's preferred settings // TODO: we don't support getting the screen's preferred settings