Backgrounds: Resize menu fields to preferred width.

Also a few other related changes:
* Update the copyright year in header and add my name.
* Use font aware spacing units in layout constructor.
* Align the fIconLabelOutline check box with the menu fields
  instead of the menu field labels.
This commit is contained in:
John Scipione 2013-05-30 17:47:26 -04:00
parent d9dae4d313
commit 19d9ad49ae
2 changed files with 40 additions and 24 deletions

View File

@ -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 <FindDirectory.h>
#include <LayoutBuilder.h>
#include <Locale.h>
#include <MenuField.h>
#include <Messenger.h>
#include <MimeType.h>
#include <Point.h>
@ -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)
{

View File

@ -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 <Entry.h>
#include <FilePanel.h>
#include <Menu.h>
#include <MenuField.h>
#include <MenuItem.h>
#include <Message.h>
#include <Picture.h>
@ -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;