diff --git a/src/preferences/backgrounds/BackgroundsView.cpp b/src/preferences/backgrounds/BackgroundsView.cpp index 728d73e1aa..f2052f98d5 100644 --- a/src/preferences/backgrounds/BackgroundsView.cpp +++ b/src/preferences/backgrounds/BackgroundsView.cpp @@ -1,10 +1,11 @@ /* - * Copyright 2002-2009, Haiku, Inc. All Rights Reserved. + * Copyright 2002-2013 Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. * * Authors: - * Jerome Duval (jerome.duval@free.fr) * Axel Dörfler, axeld@pinc-software.de + * Jerome Duval, jerome.duval@free.fr + * John Scipione, jscipione@gmail.com * Jonas Sundström, jonas@kirilla.se */ @@ -22,7 +23,6 @@ #include #include #include -#include #include #include #include @@ -162,9 +162,8 @@ BackgroundsView::BackgroundsView() fImageMenu->AddItem(new BMenuItem(B_TRANSLATE("Other" B_UTF8_ELLIPSIS), new BMessage(kMsgOtherImage))); - BMenuField* imageMenuField = new BMenuField(NULL, fImageMenu); - imageMenuField->SetAlignment(B_ALIGN_RIGHT); - imageMenuField->ResizeToPreferred(); + fImageMenuField = new BMenuField(NULL, fImageMenu); + fImageMenuField->SetAlignment(B_ALIGN_RIGHT); fPlacementMenu = new BPopUpMenu(B_TRANSLATE("pick one")); fPlacementMenu->AddItem(new BMenuItem(B_TRANSLATE("Manual"), @@ -176,8 +175,8 @@ BackgroundsView::BackgroundsView() fPlacementMenu->AddItem(new BMenuItem(B_TRANSLATE("Tile"), new BMessage(kMsgTilePlacement))); - BMenuField* placementMenuField = new BMenuField(NULL, fPlacementMenu); - placementMenuField->SetAlignment(B_ALIGN_RIGHT); + fPlacementMenuField = new BMenuField(NULL, fPlacementMenu); + fPlacementMenuField->SetAlignment(B_ALIGN_RIGHT); fIconLabelOutline = new BCheckBox(B_TRANSLATE("Icon label outline"), new BMessage(kMsgIconLabelOutline)); @@ -197,18 +196,18 @@ BackgroundsView::BackgroundsView() B_ALIGN_NO_VERTICAL)); view = BLayoutBuilder::Group<>() - .AddGroup(B_VERTICAL, 10) - .AddGroup(B_VERTICAL, 10) - .AddGrid(10, 10) + .AddGroup(B_VERTICAL, B_USE_DEFAULT_SPACING) + .AddGroup(B_VERTICAL, B_USE_DEFAULT_SPACING) + .AddGrid(B_USE_DEFAULT_SPACING, B_USE_SMALL_SPACING) .Add(imageStringView, 0, 0) + .Add(fImageMenuField, 1, 0) .Add(placementStringView, 0, 1) - .Add(imageMenuField, 1, 0) - .Add(placementMenuField, 1, 1) + .Add(fPlacementMenuField, 1, 1) + .Add(fIconLabelOutline, 1, 2) .End() - .Add(fIconLabelOutline) .End() .Add(fPicker) - .SetInsets(10, 10, 10, 10) + .SetInsets(B_USE_DEFAULT_SPACING) .End() .View(); @@ -316,13 +315,10 @@ BackgroundsView::MessageReceived(BMessage* msg) } case kMsgManualPlacement: - _UpdatePreview(); - _UpdateButtons(); - break; - case kMsgTilePlacement: case kMsgScalePlacement: case kMsgCenterPlacement: + fPlacementMenuField->ResizeToPreferred(); _UpdatePreview(); _UpdateButtons(); break; @@ -388,6 +384,8 @@ BackgroundsView::MessageReceived(BMessage* msg) case kMsgNoImage: fLastImageIndex = ((BGImageMenuItem*)fImageMenu->FindMarked()) ->ImageIndex(); + fImageMenuField->ResizeToPreferred(); + fPlacementMenuField->ResizeToPreferred(); _UpdatePreview(); _UpdateButtons(); break; @@ -829,6 +827,19 @@ BackgroundsView::_LoadSettings() } +void +BackgroundsView::WindowActivated(bool active) +{ + static bool firstRun = true; + + if (firstRun) { + firstRun = false; + fImageMenuField->ResizeToPreferred(); + fPlacementMenuField->ResizeToPreferred(); + } +} + + void BackgroundsView::WorkspaceActivated(uint32 oldWorkspaces, bool active) { diff --git a/src/preferences/backgrounds/BackgroundsView.h b/src/preferences/backgrounds/BackgroundsView.h index 0c80d65daf..0392053b4e 100644 --- a/src/preferences/backgrounds/BackgroundsView.h +++ b/src/preferences/backgrounds/BackgroundsView.h @@ -1,9 +1,10 @@ /* - * Copyright 2002-2009, Haiku, Inc. All Rights Reserved. + * Copyright 2002-2013 Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. * * Authors: - * Jerome Duval (jerome.duval@free.fr) + * Jerome Duval, jerome.duval@free.fr + * John Scipione, jscipione@gmail.com */ #ifndef BACKGROUNDS_VIEW_H #define BACKGROUNDS_VIEW_H @@ -18,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -110,6 +112,7 @@ public: void RefsReceived(BMessage* msg); void SaveSettings(); + void WindowActivated(bool active); void WorkspaceActivated(uint32 oldWorkspaces, bool active); int32 AddImage(BPath path); @@ -142,10 +145,12 @@ protected: BColorControl* fPicker; BButton* fApply; BButton* fRevert; - BCheckBox* fIconLabelOutline; - BMenu* fPlacementMenu; - BMenu* fImageMenu; BMenu* fWorkspaceMenu; + BMenu* fPlacementMenu; + BMenuField* fPlacementMenuField; + BMenu* fImageMenu; + BMenuField* fImageMenuField; + BCheckBox* fIconLabelOutline; BTextControl* fXPlacementText; BTextControl* fYPlacementText; Preview* fPreview;