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. * Distributed under the terms of the MIT License.
* *
* Authors: * Authors:
* Jerome Duval (jerome.duval@free.fr)
* Axel Dörfler, axeld@pinc-software.de * Axel Dörfler, axeld@pinc-software.de
* Jerome Duval, jerome.duval@free.fr
* John Scipione, jscipione@gmail.com
* Jonas Sundström, jonas@kirilla.se * Jonas Sundström, jonas@kirilla.se
*/ */
@ -22,7 +23,6 @@
#include <FindDirectory.h> #include <FindDirectory.h>
#include <LayoutBuilder.h> #include <LayoutBuilder.h>
#include <Locale.h> #include <Locale.h>
#include <MenuField.h>
#include <Messenger.h> #include <Messenger.h>
#include <MimeType.h> #include <MimeType.h>
#include <Point.h> #include <Point.h>
@ -162,9 +162,8 @@ BackgroundsView::BackgroundsView()
fImageMenu->AddItem(new BMenuItem(B_TRANSLATE("Other" B_UTF8_ELLIPSIS), fImageMenu->AddItem(new BMenuItem(B_TRANSLATE("Other" B_UTF8_ELLIPSIS),
new BMessage(kMsgOtherImage))); new BMessage(kMsgOtherImage)));
BMenuField* imageMenuField = new BMenuField(NULL, fImageMenu); fImageMenuField = new BMenuField(NULL, fImageMenu);
imageMenuField->SetAlignment(B_ALIGN_RIGHT); fImageMenuField->SetAlignment(B_ALIGN_RIGHT);
imageMenuField->ResizeToPreferred();
fPlacementMenu = new BPopUpMenu(B_TRANSLATE("pick one")); fPlacementMenu = new BPopUpMenu(B_TRANSLATE("pick one"));
fPlacementMenu->AddItem(new BMenuItem(B_TRANSLATE("Manual"), fPlacementMenu->AddItem(new BMenuItem(B_TRANSLATE("Manual"),
@ -176,8 +175,8 @@ BackgroundsView::BackgroundsView()
fPlacementMenu->AddItem(new BMenuItem(B_TRANSLATE("Tile"), fPlacementMenu->AddItem(new BMenuItem(B_TRANSLATE("Tile"),
new BMessage(kMsgTilePlacement))); new BMessage(kMsgTilePlacement)));
BMenuField* placementMenuField = new BMenuField(NULL, fPlacementMenu); fPlacementMenuField = new BMenuField(NULL, fPlacementMenu);
placementMenuField->SetAlignment(B_ALIGN_RIGHT); fPlacementMenuField->SetAlignment(B_ALIGN_RIGHT);
fIconLabelOutline = new BCheckBox(B_TRANSLATE("Icon label outline"), fIconLabelOutline = new BCheckBox(B_TRANSLATE("Icon label outline"),
new BMessage(kMsgIconLabelOutline)); new BMessage(kMsgIconLabelOutline));
@ -197,18 +196,18 @@ BackgroundsView::BackgroundsView()
B_ALIGN_NO_VERTICAL)); B_ALIGN_NO_VERTICAL));
view = BLayoutBuilder::Group<>() view = BLayoutBuilder::Group<>()
.AddGroup(B_VERTICAL, 10) .AddGroup(B_VERTICAL, B_USE_DEFAULT_SPACING)
.AddGroup(B_VERTICAL, 10) .AddGroup(B_VERTICAL, B_USE_DEFAULT_SPACING)
.AddGrid(10, 10) .AddGrid(B_USE_DEFAULT_SPACING, B_USE_SMALL_SPACING)
.Add(imageStringView, 0, 0) .Add(imageStringView, 0, 0)
.Add(fImageMenuField, 1, 0)
.Add(placementStringView, 0, 1) .Add(placementStringView, 0, 1)
.Add(imageMenuField, 1, 0) .Add(fPlacementMenuField, 1, 1)
.Add(placementMenuField, 1, 1) .Add(fIconLabelOutline, 1, 2)
.End() .End()
.Add(fIconLabelOutline)
.End() .End()
.Add(fPicker) .Add(fPicker)
.SetInsets(10, 10, 10, 10) .SetInsets(B_USE_DEFAULT_SPACING)
.End() .End()
.View(); .View();
@ -316,13 +315,10 @@ BackgroundsView::MessageReceived(BMessage* msg)
} }
case kMsgManualPlacement: case kMsgManualPlacement:
_UpdatePreview();
_UpdateButtons();
break;
case kMsgTilePlacement: case kMsgTilePlacement:
case kMsgScalePlacement: case kMsgScalePlacement:
case kMsgCenterPlacement: case kMsgCenterPlacement:
fPlacementMenuField->ResizeToPreferred();
_UpdatePreview(); _UpdatePreview();
_UpdateButtons(); _UpdateButtons();
break; break;
@ -388,6 +384,8 @@ BackgroundsView::MessageReceived(BMessage* msg)
case kMsgNoImage: case kMsgNoImage:
fLastImageIndex = ((BGImageMenuItem*)fImageMenu->FindMarked()) fLastImageIndex = ((BGImageMenuItem*)fImageMenu->FindMarked())
->ImageIndex(); ->ImageIndex();
fImageMenuField->ResizeToPreferred();
fPlacementMenuField->ResizeToPreferred();
_UpdatePreview(); _UpdatePreview();
_UpdateButtons(); _UpdateButtons();
break; 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 void
BackgroundsView::WorkspaceActivated(uint32 oldWorkspaces, bool active) 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. * Distributed under the terms of the MIT License.
* *
* Authors: * Authors:
* Jerome Duval (jerome.duval@free.fr) * Jerome Duval, jerome.duval@free.fr
* John Scipione, jscipione@gmail.com
*/ */
#ifndef BACKGROUNDS_VIEW_H #ifndef BACKGROUNDS_VIEW_H
#define BACKGROUNDS_VIEW_H #define BACKGROUNDS_VIEW_H
@ -18,6 +19,7 @@
#include <Entry.h> #include <Entry.h>
#include <FilePanel.h> #include <FilePanel.h>
#include <Menu.h> #include <Menu.h>
#include <MenuField.h>
#include <MenuItem.h> #include <MenuItem.h>
#include <Message.h> #include <Message.h>
#include <Picture.h> #include <Picture.h>
@ -110,6 +112,7 @@ public:
void RefsReceived(BMessage* msg); void RefsReceived(BMessage* msg);
void SaveSettings(); void SaveSettings();
void WindowActivated(bool active);
void WorkspaceActivated(uint32 oldWorkspaces, void WorkspaceActivated(uint32 oldWorkspaces,
bool active); bool active);
int32 AddImage(BPath path); int32 AddImage(BPath path);
@ -142,10 +145,12 @@ protected:
BColorControl* fPicker; BColorControl* fPicker;
BButton* fApply; BButton* fApply;
BButton* fRevert; BButton* fRevert;
BCheckBox* fIconLabelOutline;
BMenu* fPlacementMenu;
BMenu* fImageMenu;
BMenu* fWorkspaceMenu; BMenu* fWorkspaceMenu;
BMenu* fPlacementMenu;
BMenuField* fPlacementMenuField;
BMenu* fImageMenu;
BMenuField* fImageMenuField;
BCheckBox* fIconLabelOutline;
BTextControl* fXPlacementText; BTextControl* fXPlacementText;
BTextControl* fYPlacementText; BTextControl* fYPlacementText;
Preview* fPreview; Preview* fPreview;