* The spacing was hard coded to 3 since r36405 which made the whole thing look

poorly with the default font size, I wonder why no one noticed that before
  applying.
* This also hid some bugs in the layouting code causing the doubled spacing to
  be used.
* Fixed some weird layout in FileTypeWindow.
* Changed some code to BLayoutBuilder in a few cases.
* Made sure the list views have a better default size, and resize with the
  window.
* Removed superfluous checks if be_control_look is NULL.
* Enlarged the icon size in the main window to 48 pixels.
* I've worked around some strange resizing in the ApplicationTypesWindow by
  setting a max size for the list view. Also, setting a max limit for the
  BStringView on the right side had no effect on layouting (only the text
  was cut).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36882 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2010-05-21 10:59:19 +00:00
parent 19320ffa61
commit 91f74b0c02
8 changed files with 134 additions and 172 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright 2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
3 * Copyright 2006-2010, Axel Dörfler, axeld@pinc-software.de.
* Distributed under the terms of the MIT License.
*/
@ -245,13 +245,8 @@ ApplicationTypeWindow::ApplicationTypeWindow(BPoint position,
B_FRAME_EVENTS | B_AUTO_UPDATE_SIZE_LIMITS),
fChangedProperties(0)
{
float padding = 3.0f;
BAlignment labelAlignment = BAlignment(B_ALIGN_LEFT, B_ALIGN_TOP);
if (be_control_look){
// padding = be_control_look->DefaultItemSpacing();
// seems too big
labelAlignment = be_control_look->DefaultLabelAlignment();
}
float padding = be_control_look->DefaultItemSpacing();
BAlignment labelAlignment = be_control_look->DefaultLabelAlignment();
BMenuBar* menuBar = new BMenuBar((char*)NULL);
menuBar->SetExplicitAlignment(BAlignment(B_ALIGN_LEFT, B_ALIGN_TOP));
@ -271,7 +266,6 @@ ApplicationTypeWindow::ApplicationTypeWindow(BPoint position,
new BMessage(B_QUIT_REQUESTED), 'W', B_COMMAND_KEY));
menuBar->AddItem(menu);
// Signature
fSignatureControl = new BTextControl(B_TRANSLATE("Signature:"), NULL,
@ -310,7 +304,7 @@ ApplicationTypeWindow::ApplicationTypeWindow(BPoint position,
fBackgroundAppCheckBox = new BCheckBox("background",
B_TRANSLATE("Background app"), new BMessage(kMsgAppFlagsChanged));
flagsBox->AddChild(BGridLayoutBuilder(padding, padding)
flagsBox->AddChild(BGridLayoutBuilder()
.Add(fSingleLaunchButton, 0, 0).Add(fArgsOnlyCheckBox, 1, 0)
.Add(fMultipleLaunchButton, 0, 1).Add(fBackgroundAppCheckBox, 1, 1)
.Add(fExclusiveLaunchButton, 0, 2)
@ -323,11 +317,9 @@ ApplicationTypeWindow::ApplicationTypeWindow(BPoint position,
iconBox->SetLabel(B_TRANSLATE("Icon"));
fIconView = new IconView("icon");
fIconView->SetModificationMessage(new BMessage(kMsgIconChanged));
iconBox->AddChild(
BGroupLayoutBuilder(B_HORIZONTAL)
iconBox->AddChild(BGroupLayoutBuilder(B_HORIZONTAL)
.Add(fIconView)
.SetInsets(padding, padding, padding, padding)
);
.SetInsets(padding, padding, padding, padding));
// "Supported Types" group
@ -359,9 +351,9 @@ ApplicationTypeWindow::ApplicationTypeWindow(BPoint position,
.SetInsets(padding, padding, padding, padding)
.SetColumnWeight(0, 3)
.SetColumnWeight(1, 2)
.SetColumnWeight(2, 1)
);
iconHolder->SetExplicitAlignment(BAlignment(B_ALIGN_CENTER, B_ALIGN_MIDDLE));
.SetColumnWeight(2, 1));
iconHolder->SetExplicitAlignment(
BAlignment(B_ALIGN_CENTER, B_ALIGN_MIDDLE));
// "Version Info" group
@ -409,10 +401,10 @@ ApplicationTypeWindow::ApplicationTypeWindow(BPoint position,
// TODO: remove workaround (bug #5678)
BSize minScrollSize = scrollView->ScrollBar(B_VERTICAL)->MinSize();
minScrollSize.width+=fLongDescriptionView->MinSize().width;
minScrollSize.width += fLongDescriptionView->MinSize().width;
scrollView->SetExplicitMinSize(minScrollSize);
versionBox->AddChild(BGridLayoutBuilder(padding, padding)
versionBox->AddChild(BGridLayoutBuilder(padding / 2, padding)
.Add(fMajorVersionControl->CreateLabelLayoutItem(), 0, 0)
.Add(fMajorVersionControl->CreateTextViewLayoutItem(), 1, 0)
.Add(fMiddleVersionControl, 2, 0, 2)
@ -424,8 +416,7 @@ ApplicationTypeWindow::ApplicationTypeWindow(BPoint position,
.Add(longLabel, 0, 2)
.Add(scrollView, 1, 2, 10, 3)
.SetInsets(padding, padding, padding, padding)
.SetRowWeight(3, 3)
);
.SetRowWeight(3, 3));
// put it all together
SetLayout(new BGroupLayout(B_VERTICAL));
@ -434,12 +425,10 @@ ApplicationTypeWindow::ApplicationTypeWindow(BPoint position,
.Add(fSignatureControl)
.Add(BGroupLayoutBuilder(B_HORIZONTAL, padding)
.Add(flagsBox, 3)
.Add(iconBox, 1)
)
.Add(iconBox, 1))
.Add(typeBox)
.Add(versionBox)
.SetInsets(padding, padding, padding, padding)
);
.SetInsets(padding, padding, padding, padding));
SetKeyMenuBar(menuBar);

View File

@ -1,9 +1,8 @@
/*
* Copyright 2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
* Copyright 2006-2010, Axel Dörfler, axeld@pinc-software.de.
* Distributed under the terms of the MIT License.
*/
// TODO: think about adopting Tracker's info window style here (pressable path)
#include "ApplicationTypesWindow.h"
#include "FileTypes.h"
@ -20,6 +19,7 @@
#include <ControlLook.h>
#include <GridLayoutBuilder.h>
#include <GroupLayoutBuilder.h>
#include <LayoutBuilder.h>
#include <Locale.h>
#include <MenuField.h>
#include <MenuItem.h>
@ -40,13 +40,17 @@
#include <stdio.h>
// TODO: think about adopting Tracker's info window style here (pressable path)
#undef B_TRANSLATE_CONTEXT
#define B_TRANSLATE_CONTEXT "Application Types Window"
class ProgressWindow : public BWindow {
public:
ProgressWindow(const char* message, int32 max, volatile bool* signalQuit);
ProgressWindow(const char* message, int32 max,
volatile bool* signalQuit);
virtual ~ProgressWindow();
virtual void MessageReceived(BMessage* message);
@ -166,23 +170,19 @@ ApplicationTypesWindow::ApplicationTypesWindow(const BMessage& settings)
B_TITLED_WINDOW,
B_NOT_ZOOMABLE | B_ASYNCHRONOUS_CONTROLS | B_AUTO_UPDATE_SIZE_LIMITS)
{
float padding = 3.0f;
BAlignment labelAlignment = BAlignment(B_ALIGN_LEFT, B_ALIGN_TOP);
BAlignment fullWidthTopAlignment =
BAlignment(B_ALIGN_USE_FULL_WIDTH, B_ALIGN_TOP);
if (be_control_look) {
// padding = be_control_look->DefaultItemSpacing();
// seems too big
labelAlignment = be_control_look->DefaultLabelAlignment();
}
float padding = be_control_look->DefaultItemSpacing();
BAlignment labelAlignment = be_control_look->DefaultLabelAlignment();
BAlignment fullWidthTopAlignment(B_ALIGN_USE_FULL_WIDTH, B_ALIGN_TOP);
// Application list
BView* currentView = new BGroupView(B_VERTICAL, padding);
fTypeListView = new MimeTypeListView("listview", "application", true, true);
fTypeListView->SetSelectionMessage(new BMessage(kMsgTypeSelected));
fTypeListView->SetInvocationMessage(new BMessage(kMsgTypeInvoked));
// TODO: this isn't the perfect solution, but otherwise the window contents
// will jump chaotically
fTypeListView->SetExplicitMinSize(BSize(200, B_SIZE_UNSET));
fTypeListView->SetExplicitMaxSize(BSize(250, B_SIZE_UNSET));
BScrollView* scrollView = new BScrollView("scrollview", fTypeListView,
B_FRAME_EVENTS | B_WILL_DRAW, false, true);
@ -208,16 +208,14 @@ ApplicationTypesWindow::ApplicationTypesWindow(const BMessage& settings)
fPathView->TextView()->SetExplicitAlignment(labelAlignment);
fPathView->LabelView()->SetExplicitAlignment(labelAlignment);
infoBox->AddChild(
BGridLayoutBuilder(padding, padding)
.Add(fNameView->LabelView(), 0, 0)
.Add(fNameView->TextView(), 1, 0, 2)
.Add(fSignatureView->LabelView(), 0, 1)
.Add(fSignatureView->TextView(), 1, 1, 2)
.Add(fPathView->LabelView(), 0, 2)
.Add(fPathView->TextView(), 1, 2, 2)
.SetInsets(padding, padding, padding, padding)
);
infoBox->AddChild(BGridLayoutBuilder(padding, padding)
.Add(fNameView->LabelView(), 0, 0)
.Add(fNameView->TextView(), 1, 0, 2)
.Add(fSignatureView->LabelView(), 0, 1)
.Add(fSignatureView->TextView(), 1, 1, 2)
.Add(fPathView->LabelView(), 0, 2)
.Add(fPathView->TextView(), 1, 2, 2)
.SetInsets(padding, padding, padding, padding));
// "Version" group
@ -235,15 +233,12 @@ ApplicationTypesWindow::ApplicationTypesWindow(const BMessage& settings)
fDescriptionView->SetLowColor(fDescriptionView->ViewColor());
fDescriptionView->MakeEditable(false);
versionBox->AddChild(currentView =
BGridLayoutBuilder(padding, padding)
.Add(fVersionView->LabelView(), 0, 0)
.Add(fVersionView->TextView(), 1, 0)
.Add(fDescriptionLabel->LabelView(), 0, 1)
.Add(fDescriptionView, 1, 1, 2, 2)
.SetInsets(padding, padding, padding, padding)
);
currentView->SetExplicitAlignment(fullWidthTopAlignment);
versionBox->AddChild(BGridLayoutBuilder(padding, padding)
.Add(fVersionView->LabelView(), 0, 0)
.Add(fVersionView->TextView(), 1, 0)
.Add(fDescriptionLabel->LabelView(), 0, 1)
.Add(fDescriptionView, 1, 1, 2, 2)
.SetInsets(padding, padding, padding, padding));
// Launch and Tracker buttons
@ -254,25 +249,27 @@ ApplicationTypesWindow::ApplicationTypesWindow(const BMessage& settings)
fTrackerButton = new BButton(
B_TRANSLATE("Show in Tracker" B_UTF8_ELLIPSIS));
AddChild(BGroupLayoutBuilder(B_HORIZONTAL, padding)
.Add(BGroupLayoutBuilder(B_VERTICAL, padding)
AddChild(BLayoutBuilder::Group<>(B_HORIZONTAL, padding)
.AddGroup(B_VERTICAL, padding, 3)
.Add(scrollView)
.Add(button)
.SetInsets(padding, padding, padding, padding)
, 3)
.Add(BGroupLayoutBuilder(B_VERTICAL, padding)
.AddGroup(B_HORIZONTAL)
.Add(button)
.AddGlue()
.End()
.End()
// .AddGlue())//, 3)
.AddGroup(B_VERTICAL, padding)
.Add(infoBox)
.Add(versionBox)
.Add(BGroupLayoutBuilder(B_HORIZONTAL, padding)
.AddGroup(B_HORIZONTAL, padding)
.AddGlue()
.Add(fEditButton)
.Add(fLaunchButton)
.Add(fTrackerButton)
)
.End()
.AddGlue()
.SetInsets(padding, padding, padding, padding)
)
.SetInsets(padding, padding, padding, padding)
);
.End()
.SetInsets(padding, padding, padding, padding));
BMimeType::StartWatching(this);
_SetType(NULL);

View File

@ -1,5 +1,5 @@
/*
* Copyright 2006-2007, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
* Copyright 2006-2010, Axel Dörfler, axeld@pinc-software.de.
* Distributed under the terms of the MIT License.
*/
@ -102,9 +102,7 @@ AttributeWindow::AttributeWindow(FileTypesWindow* target, BMimeType& mimeType,
fTarget(target),
fMimeType(mimeType.Type())
{
float padding = 3.0f;
//if (be_control_look)
//padding = be_control_look->DefaultItemSpacing();
float padding = be_control_look->DefaultItemSpacing();
if (attributeItem != NULL)
fAttribute = *attributeItem;
@ -162,7 +160,8 @@ AttributeWindow::AttributeWindow(FileTypesWindow* target, BMimeType& mimeType,
item = new BMenuItem(kDisplayAsMap[i].name, message);
menu->AddItem(item);
if (compare_display_as(kDisplayAsMap[i].identifier, fAttribute.DisplayAs()))
if (compare_display_as(kDisplayAsMap[i].identifier,
fAttribute.DisplayAs()))
item->SetMarked(true);
}
@ -230,8 +229,8 @@ AttributeWindow::AttributeWindow(FileTypesWindow* target, BMimeType& mimeType,
B_TRANSLATE("Alignment:"), menu);
fAlignmentMenuField->SetAlignment(B_ALIGN_RIGHT);
fAcceptButton = new BButton("add", item
? B_TRANSLATE("Done") : B_TRANSLATE("Add"),
fAcceptButton = new BButton("add",
item ? B_TRANSLATE("Done") : B_TRANSLATE("Add"),
new BMessage(kMsgAccept));
fAcceptButton->SetEnabled(false);
@ -242,16 +241,15 @@ AttributeWindow::AttributeWindow(FileTypesWindow* target, BMimeType& mimeType,
SetLayout(new BGroupLayout(B_VERTICAL));
AddChild(BGroupLayoutBuilder(B_VERTICAL, padding)
.SetInsets(padding, padding, padding, padding)
.Add(BGridLayoutBuilder(padding, padding)
.Add(BGridLayoutBuilder(padding, padding / 2)
.Add(fPublicNameControl->CreateLabelLayoutItem(), 0, 0)
.Add(fPublicNameControl->CreateTextViewLayoutItem(), 1, 0)
.Add(fAttributeControl->CreateLabelLayoutItem(), 0, 1)
.Add(fAttributeControl->CreateTextViewLayoutItem(), 1, 1)
.Add(typeMenuField->CreateLabelLayoutItem(), 0, 2)
.Add(typeMenuField->CreateMenuBarLayoutItem(), 1, 2)
)
.Add(typeMenuField->CreateMenuBarLayoutItem(), 1, 2))
.Add(visibleBox = new BBox(B_FANCY_BORDER,
BGridLayoutBuilder(padding, padding)
BGridLayoutBuilder(padding, padding / 2)
.Add(fDisplayAsMenuField->CreateLabelLayoutItem(), 0, 0)
.Add(fDisplayAsMenuField->CreateMenuBarLayoutItem(), 1, 0)
.Add(fEditableCheckBox, 3, 0)
@ -261,15 +259,12 @@ AttributeWindow::AttributeWindow(FileTypesWindow* target, BMimeType& mimeType,
.Add(fWidthControl->CreateTextViewLayoutItem(), 1, 2, 3)
.Add(fAlignmentMenuField->CreateLabelLayoutItem(), 0, 3)
.Add(fAlignmentMenuField->CreateMenuBarLayoutItem(), 1, 3, 3)
.SetInsets(padding, padding, padding, padding)
))
.SetInsets(padding, padding, padding, padding)))
.Add(BGroupLayoutBuilder(B_HORIZONTAL, padding)
.Add(BSpaceLayoutItem::CreateGlue())
.Add(BSpaceLayoutItem::CreateGlue())
.Add(cancelButton)
.Add(fAcceptButton)
)
);
.Add(fAcceptButton)));
visibleBox->SetLabel(fVisibleCheckBox);
fAcceptButton->MakeDefault(true);

View File

@ -1,5 +1,5 @@
/*
* Copyright 2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
* Copyright 2006-2010, Axel Dörfler, axeld@pinc-software.de.
* Distributed under the terms of the MIT License.
*/
@ -122,10 +122,7 @@ ExtensionWindow::ExtensionWindow(FileTypesWindow* target, BMimeType& type,
{
SetLayout(new BGroupLayout(B_VERTICAL));
float padding = 3.0f;
//if (be_control_look)
// padding = be_control_look->DefaultItemSpacing();
// this seems to be very large!
float padding = be_control_look->DefaultItemSpacing();
fExtensionControl = new BTextControl(B_TRANSLATE("Extension:"),
extension, NULL);

View File

@ -1,5 +1,5 @@
/*
* Copyright 2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
* Copyright 2006-2010, Axel Dörfler, axeld@pinc-software.de.
* Distributed under the terms of the MIT License.
*/
@ -19,6 +19,7 @@
#include <File.h>
#include <GridLayoutBuilder.h>
#include <GroupLayoutBuilder.h>
#include <LayoutBuilder.h>
#include <Locale.h>
#include <MenuField.h>
#include <MenuItem.h>
@ -55,10 +56,7 @@ FileTypeWindow::FileTypeWindow(BPoint position, const BMessage& refs)
B_NOT_V_RESIZABLE | B_NOT_ZOOMABLE
| B_ASYNCHRONOUS_CONTROLS | B_AUTO_UPDATE_SIZE_LIMITS)
{
float padding = 3.0f;
// if (be_control_look)
// padding = be_control_look->DefaultItemSpacing();
// too big!
float padding = be_control_look->DefaultItemSpacing();
// "File Type" group
BBox* fileTypeBox = new BBox("file type BBox");
@ -84,8 +82,7 @@ FileTypeWindow::FileTypeWindow(BPoint position, const BMessage& refs)
.Add(fTypeControl, 0, 0, 2, 1)
.Add(fSelectTypeButton, 0, 1)
.Add(fSameTypeAsButton, 1, 1)
.SetInsets(padding, padding, padding, padding)
);
.SetInsets(padding, padding, padding, padding));
// "Icon" group
@ -121,17 +118,15 @@ FileTypeWindow::FileTypeWindow(BPoint position, const BMessage& refs)
.Add(fPreferredField, 0, 0, 2, 1)
.Add(fSelectAppButton, 0, 1)
.Add(fSameAppAsButton, 1, 1)
.Add(BSpaceLayoutItem::CreateGlue(), 3, 0, 1, 2)
.SetInsets(padding, padding, padding, padding)
);
.SetInsets(padding, padding, padding, padding));
SetLayout(new BGroupLayout(B_VERTICAL));
AddChild(BGridLayoutBuilder(padding, padding)
.Add(fileTypeBox, 0, 0, 1, 2)
.Add(iconBox, 1, 1, 1, 2)
.Add(preferredBox, 0, 2, 1, 2)
BLayoutBuilder::Group<>(this, B_HORIZONTAL, padding)
.AddGroup(B_VERTICAL, padding)
.Add(fileTypeBox)
.Add(preferredBox)
.End()
.SetInsets(padding, padding, padding, padding)
);
.Add(iconBox);
fTypeControl->MakeFocus(true);
BMimeType::StartWatching(this);

View File

@ -1,5 +1,5 @@
/*
* Copyright 2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
* Copyright 2006-2010, Axel Dörfler, axeld@pinc-software.de.
* Distributed under the terms of the MIT License.
*/
@ -117,6 +117,7 @@ TypeIconView::TypeIconView(const char* name)
: IconView(name)
{
ShowEmptyFrame(false);
SetIconSize(48);
}
@ -150,7 +151,8 @@ TypeIconView::Draw(BRect updateRect)
return;
}
SetHighColor(tint_color(ui_color(B_PANEL_BACKGROUND_COLOR), B_DISABLED_LABEL_TINT));
SetHighColor(tint_color(ui_color(B_PANEL_BACKGROUND_COLOR),
B_DISABLED_LABEL_TINT));
SetLowColor(ViewColor());
font_height fontHeight;
@ -218,7 +220,8 @@ TypeIconView::BitmapRect() const
ExtensionListView::ExtensionListView(const char* name,
list_view_type type, uint32 flags)
: DropTargetListView(name, type, flags)
:
DropTargetListView(name, type, flags)
{
}
@ -235,7 +238,8 @@ ExtensionListView::MessageReceived(BMessage* message)
// create extension list
BList list;
entry_ref ref;
for (int32 index = 0; message->FindRef("refs", index++, &ref) == B_OK; ) {
for (int32 index = 0; message->FindRef("refs", index, &ref) == B_OK;
index++) {
const char* point = strchr(ref.name, '.');
if (point != NULL && point[1])
list.AddItem(strdup(++point));
@ -261,7 +265,8 @@ ExtensionListView::AcceptsDrag(const BMessage* message)
int32 count = 0;
entry_ref ref;
for (int32 index = 0; message->FindRef("refs", index++, &ref) == B_OK; ) {
for (int32 index = 0; message->FindRef("refs", index, &ref) == B_OK;
index++) {
const char* point = strchr(ref.name, '.');
if (point != NULL && point[1])
count++;
@ -298,25 +303,20 @@ FileTypesWindow::FileTypesWindow(const BMessage& settings)
showRule = false;
SetLayout(new BGroupLayout(B_VERTICAL));
float padding = 3.0f;
BAlignment labelAlignment = BAlignment(B_ALIGN_LEFT, B_ALIGN_TOP);
if (be_control_look) {
// padding = be_control_look->DefaultItemSpacing();
// this seems to be very large!
labelAlignment = be_control_look->DefaultLabelAlignment();
}
BAlignment fullAlignment =
BAlignment(B_ALIGN_USE_FULL_WIDTH, B_ALIGN_USE_FULL_HEIGHT);
float padding = be_control_look->DefaultItemSpacing();
BAlignment labelAlignment = be_control_look->DefaultLabelAlignment();
BAlignment fullAlignment(B_ALIGN_USE_FULL_WIDTH, B_ALIGN_USE_FULL_HEIGHT);
// add the menu
BMenuBar* menuBar = new BMenuBar("");
BMenu* menu = new BMenu(B_TRANSLATE("File"));
BMenuItem* item;
menu->AddItem(item = new BMenuItem(
B_TRANSLATE("New resource file" B_UTF8_ELLIPSIS),
NULL, 'N', B_COMMAND_KEY));
BMenuItem* item = new BMenuItem(
B_TRANSLATE("New resource file" B_UTF8_ELLIPSIS), NULL, 'N',
B_COMMAND_KEY);
item->SetEnabled(false);
menu->AddItem(item);
BMenu* recentsMenu = BRecentFilesList::NewFileListMenu(
B_TRANSLATE("Open" B_UTF8_ELLIPSIS), NULL, NULL,
@ -365,6 +365,7 @@ FileTypesWindow::FileTypesWindow(const BMessage& settings)
fTypeListView = new MimeTypeListView("typeview", NULL, showIcons, false);
fTypeListView->SetSelectionMessage(new BMessage(kMsgTypeSelected));
fTypeListView->SetExplicitMinSize(BSize(200, B_SIZE_UNSET));
BScrollView* typeListScrollView = new BScrollView("scrollview",
fTypeListView, B_FRAME_EVENTS | B_WILL_DRAW, false, true);
@ -378,8 +379,7 @@ FileTypesWindow::FileTypesWindow(const BMessage& settings)
.Add(BSpaceLayoutItem::CreateGlue(), 1)
.Add(fIconView, 3)
.Add(BSpaceLayoutItem::CreateGlue(), 1)
.SetInsets(padding, padding, padding, padding)
);
.SetInsets(padding, padding, padding, padding));
// "File Recognition" group
@ -392,6 +392,8 @@ FileTypesWindow::FileTypesWindow(const BMessage& settings)
fAddExtensionButton = new BButton("add ext",
B_TRANSLATE("Add" B_UTF8_ELLIPSIS), new BMessage(kMsgAddExtension));
fAddExtensionButton->SetExplicitMaxSize(
BSize(B_SIZE_UNLIMITED, B_SIZE_UNSET));
fRemoveExtensionButton = new BButton("remove ext", B_TRANSLATE("Remove"),
new BMessage(kMsgRemoveExtension));
@ -411,14 +413,13 @@ FileTypesWindow::FileTypesWindow(const BMessage& settings)
fRuleControl->SetAlignment(B_ALIGN_RIGHT, B_ALIGN_LEFT);
fRuleControl->Hide();
BView* recognitionBoxGrid =
BGridLayoutBuilder(padding, padding)
.Add(fExtensionLabel->LabelView(), 0, 0)
.Add(scrollView, 0, 1, 2, 3)
.Add(fAddExtensionButton, 2, 1)
.Add(fRemoveExtensionButton, 2, 2)
.Add(fRuleControl, 0, 4, 3, 1)
.SetInsets(padding, padding, padding, padding);
BView* recognitionBoxGrid = BGridLayoutBuilder(padding, padding / 2)
.Add(fExtensionLabel->LabelView(), 0, 0)
.Add(scrollView, 0, 1, 2, 3)
.Add(fAddExtensionButton, 2, 1)
.Add(fRemoveExtensionButton, 2, 2)
.Add(fRuleControl, 0, 4, 3, 1)
.SetInsets(padding, padding, padding, padding);
recognitionBoxGrid->SetExplicitAlignment(fullAlignment);
fRecognitionBox->AddChild(recognitionBoxGrid);
@ -436,16 +437,14 @@ FileTypesWindow::FileTypesWindow(const BMessage& settings)
fDescriptionControl = new BTextControl("description",
B_TRANSLATE("Description:"), "", new BMessage(kMsgDescriptionEntered));
fDescriptionBox->AddChild(BGridLayoutBuilder(padding, padding)
fDescriptionBox->AddChild(BGridLayoutBuilder(padding / 2, padding / 2)
.Add(fInternalNameView->LabelView(), 0, 0)
.Add(fInternalNameView->TextView(), 1, 0)
.Add(fTypeNameControl->CreateLabelLayoutItem(), 0, 1)
.Add(fTypeNameControl->CreateTextViewLayoutItem(), 1, 1, 2)
.Add(fDescriptionControl->CreateLabelLayoutItem(), 0, 2)
.Add(fDescriptionControl->CreateTextViewLayoutItem(), 1, 2, 2)
.SetInsets(padding, padding, padding, padding)
);
.SetInsets(padding, padding, padding, padding));
// "Preferred Application" group
@ -466,20 +465,21 @@ FileTypesWindow::FileTypesWindow(const BMessage& settings)
B_TRANSLATE("Same as" B_UTF8_ELLIPSIS),
new BMessage(kMsgSamePreferredAppAs));
fPreferredBox->AddChild(
BGroupLayoutBuilder(B_HORIZONTAL, padding)
.Add(fPreferredField)
.Add(fSelectButton)
.Add(fSameAsButton)
.SetInsets(padding, padding, padding, padding)
);
fPreferredBox->AddChild(BGroupLayoutBuilder(B_HORIZONTAL, padding)
.Add(fPreferredField)
.Add(fSelectButton)
.Add(fSameAsButton)
.SetInsets(padding, padding, padding, padding));
// "Extra Attributes" group
fAttributeBox = new BBox("Attribute Box");
fAttributeBox->SetLabel(B_TRANSLATE("Extra attributes"));
fAddAttributeButton = new BButton("add attr",
"Add" B_UTF8_ELLIPSIS, new BMessage(kMsgAddAttribute));
fAddAttributeButton->SetExplicitMaxSize(
BSize(B_SIZE_UNLIMITED, B_SIZE_UNSET));
fRemoveAttributeButton = new BButton("remove attr", B_TRANSLATE("Remove"),
new BMessage(kMsgRemoveAttribute));
@ -493,32 +493,27 @@ FileTypesWindow::FileTypesWindow(const BMessage& settings)
BScrollView* attributesScroller = new BScrollView("scrollview attr",
fAttributeListView, B_FRAME_EVENTS | B_WILL_DRAW, false, true);
fAttributeBox->AddChild(BGridLayoutBuilder(padding, padding)
fAttributeBox->AddChild(BGridLayoutBuilder(padding, padding / 2)
.Add(attributesScroller, 0, 0, 2, 3)
.Add(fAddAttributeButton, 2, 0)
.Add(fRemoveAttributeButton, 2, 1)
.SetInsets(padding, padding, padding, padding)
);
.SetInsets(padding, padding, padding, padding));
BView* topView =
BGroupLayoutBuilder(B_HORIZONTAL, padding)
BView* topView = BGroupLayoutBuilder(B_HORIZONTAL, padding)
.SetInsets(padding, padding, padding, padding)
.Add(BGroupLayoutBuilder(B_VERTICAL, padding)
.Add(typeListScrollView)
.Add(BGroupLayoutBuilder(B_HORIZONTAL, padding)
.Add(addTypeButton).Add(fRemoveTypeButton)
)
)
.Add(addTypeButton)
.Add(fRemoveTypeButton)
.AddGlue()))
// Right side
.Add(BGroupLayoutBuilder(B_VERTICAL, padding)
.Add(BGroupLayoutBuilder(B_HORIZONTAL, padding)
.Add(fIconBox, 1).Add(fRecognitionBox, 3)
)
.Add(fIconBox, 1).Add(fRecognitionBox, 3))
.Add(fDescriptionBox)
.Add(fPreferredBox)
.Add(fAttributeBox, 5)
);
.Add(fAttributeBox, 5));
//topView->SetExplicitAlignment(fullAlignment);
//topView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));

View File

@ -1,5 +1,5 @@
/*
* Copyright 2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
* Copyright 2006-2010, Axel Dörfler, axeld@pinc-software.de.
* Distributed under the terms of the MIT License.
*/
@ -92,9 +92,7 @@ NewFileTypeWindow::NewFileTypeWindow(FileTypesWindow* target,
fAddButton = new BButton(B_TRANSLATE("Add type"),
new BMessage(kMsgAddType));
float padding = 3.0f;
// if (be_control_look)
// padding = be_control_look->DefaultItemSpacing();
float padding = be_control_look->DefaultItemSpacing();
SetLayout(new BGroupLayout(B_VERTICAL));
AddChild(BGridLayoutBuilder(padding, padding)
@ -107,8 +105,7 @@ NewFileTypeWindow::NewFileTypeWindow(FileTypesWindow* target,
.Add(new BButton(B_TRANSLATE("Cancel"),
new BMessage(B_QUIT_REQUESTED)), 1, 2)
.Add(fAddButton, 2, 2)
.SetColumnWeight(0, 3)
);
.SetColumnWeight(0, 3));
BAlignment fullSize = BAlignment(B_ALIGN_USE_FULL_WIDTH,
B_ALIGN_USE_FULL_HEIGHT);

View File

@ -1,5 +1,5 @@
/*
* Copyright 2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
* Copyright 2006-2010, Axel Dörfler, axeld@pinc-software.de.
* Distributed under the terms of the MIT License.
*/
@ -25,8 +25,8 @@ const uint32 kMsgTypeSelected = 'tpsl';
const uint32 kMsgSelected = 'seld';
TypeListWindow::TypeListWindow(const char* currentType,
uint32 what, BWindow* target)
TypeListWindow::TypeListWindow(const char* currentType, uint32 what,
BWindow* target)
:
BWindow(BRect(100, 100, 360, 440), B_TRANSLATE("Choose type"),
B_MODAL_WINDOW,
@ -34,10 +34,7 @@ TypeListWindow::TypeListWindow(const char* currentType,
fTarget(target),
fWhat(what)
{
float padding = 3.0f;
//if (be_control_look)
// padding = be_control_look->DefaultItemSpacing();
// seems too big
float padding = be_control_look->DefaultItemSpacing();
fSelectButton = new BButton("select", B_TRANSLATE("Done"),
new BMessage(kMsgSelected));