Improve/fix layout

Some tweaks to the layout of apps/prefs in the course of using
B_USE_WINDOW_SPACING.
This commit is contained in:
Humdinger 2015-11-07 17:15:56 +01:00
parent c8325bb7d7
commit 3c5208e439
12 changed files with 108 additions and 124 deletions

View File

@ -36,15 +36,6 @@
#define WINDOW_OFFSET_X 28
#define WINDOW_OFFSET_Y 28
const int32 kBtnHeight = 20;
const int32 kBtnWidth = 60;
const int32 kBtnBuffer = 25;
const int32 kXBuffer = 10;
const int32 kYBuffer = 10;
const int32 kMenuHeight = 15;
const int32 kButtonHeight = 15;
const int32 kSliderViewRectHeight = 40;
#define CALL printf
#define ERROR printf
#define FTPINFO printf
@ -133,7 +124,7 @@ CodyCam::~CodyCam()
void
CodyCam::ReadyToRun()
{
fWindow = new VideoWindow(BRect(28, 28, 28, 28),
fWindow = new VideoWindow(
(const char*) B_TRANSLATE_SYSTEM_NAME("CodyCam"), B_TITLED_WINDOW,
B_NOT_ZOOMABLE | B_AUTO_UPDATE_SIZE_LIMITS, &fPort);
@ -187,10 +178,7 @@ CodyCam::MessageReceived(BMessage *message)
status_t err = fMediaRoster->GetParameterWebFor(node, &web);
if (err >= B_OK && web != NULL) {
view = BMediaTheme::ViewFor(web);
fVideoControlWindow = new ControlWindow(
BRect(2 * WINDOW_OFFSET_X + WINDOW_SIZE_X, WINDOW_OFFSET_Y,
2 * WINDOW_OFFSET_X + WINDOW_SIZE_X + view->Bounds().right,
WINDOW_OFFSET_Y + view->Bounds().bottom), view, node);
fVideoControlWindow = new ControlWindow(view, node);
fMediaRoster->StartWatching(BMessenger(NULL,
fVideoControlWindow), node, B_MEDIA_WEB_CHANGED);
fVideoControlWindow->Show();
@ -407,10 +395,10 @@ CodyCam::_TearDownNodes()
// #pragma mark - Video Window Class
VideoWindow::VideoWindow(BRect frame, const char* title, window_type type,
VideoWindow::VideoWindow(const char* title, window_type type,
uint32 flags, port_id* consumerPort)
:
BWindow(frame, title, type, flags),
BWindow(BRect(50, 50, 50, 50), title, type, flags),
fPortPtr(consumerPort),
fVideoView(NULL)
{
@ -428,7 +416,7 @@ VideoWindow::VideoWindow(BRect frame, const char* title, window_type type,
_SetUpSettings("codycam", "");
BMenuBar* menuBar = new BMenuBar(BRect(0, 0, 0, 0), "menu bar");
BMenuBar* menuBar = new BMenuBar("menu bar");
BMenuItem* menuItem;
fMenu = new BMenu(B_TRANSLATE("File"));
@ -466,17 +454,17 @@ VideoWindow::VideoWindow(BRect frame, const char* title, window_type type,
box->AddChild(fVideoView);
BLayoutBuilder::Group<>(this, B_VERTICAL, 0)
.SetInsets(0, 0, 0, 0)
.Add(menuBar)
.AddGroup(B_VERTICAL, kYBuffer)
.SetInsets(kXBuffer, kYBuffer, kXBuffer, kYBuffer)
.AddGroup(B_VERTICAL)
.SetInsets(B_USE_WINDOW_SPACING)
.Add(box)
.AddGroup(B_HORIZONTAL, kXBuffer)
.SetInsets(0, 0, 0, 0)
.AddGroup(B_HORIZONTAL, B_USE_DEFAULT_SPACING)
.Add(fCaptureSetupBox)
.Add(fFtpSetupBox)
.End()
.Add(fStatusLine);
.Add(fStatusLine)
.End()
.AddGlue();
Show();
}
@ -849,10 +837,10 @@ VideoWindow::ToggleMenuOnOff()
// #pragma mark -
ControlWindow::ControlWindow(const BRect& frame, BView* controls,
ControlWindow::ControlWindow(BView* controls,
media_node node)
:
BWindow(frame, B_TRANSLATE("Video settings"), B_TITLED_WINDOW,
BWindow(BRect(), B_TRANSLATE("Video settings"), B_TITLED_WINDOW,
B_ASYNCHRONOUS_CONTROLS)
{
fView = controls;

View File

@ -114,7 +114,7 @@ private:
class VideoWindow : public BWindow {
public:
VideoWindow(BRect frame, const char* title,
VideoWindow(const char* title,
window_type type, uint32 flags,
port_id* consumerport);
~VideoWindow();
@ -164,7 +164,7 @@ private:
ftp_msg_info fFtpInfo;
Settings* fSettings;
BMenu* fMenu;
StringValueSetting* fServerSetting;
@ -182,7 +182,7 @@ private:
class ControlWindow : public BWindow {
public:
ControlWindow(const BRect& frame, BView* controls,
ControlWindow(BView* controls,
media_node node);
void MessageReceived(BMessage* message);
bool QuitRequested();

View File

@ -557,8 +557,11 @@ TMailWindow::TMailWindow(BRect rect, const char* title, TMailApp* app,
BLayoutBuilder::Group<>(this, B_VERTICAL, 0)
.Add(fMenuBar)
.Add(fToolBar)
.Add(fHeaderView)
.AddGroup(B_VERTICAL, 0)
.Add(fToolBar)
.Add(fHeaderView)
.SetInsets(B_USE_WINDOW_SPACING, 0, B_USE_WINDOW_SPACING, 0)
.End()
.Add(fContentView);
if (to != NULL)

View File

@ -29,6 +29,7 @@
#include <Locale.h>
#include <MidiProducer.h>
#include <MidiRoster.h>
#include <SeparatorView.h>
#include <StorageKit.h>
#include <SpaceLayoutItem.h>
@ -252,46 +253,41 @@ MidiPlayerWindow::CreateViews()
new BMessage(MSG_PLAY_STOP));
fPlayButton->SetEnabled(false);
BBox* divider = new BBox(B_EMPTY_STRING, B_WILL_DRAW | B_FRAME_EVENTS,
B_FANCY_BORDER);
divider->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, 1));
BStringView* volumeLabel = new BStringView(NULL, B_TRANSLATE("Volume:"));
volumeLabel->SetAlignment(B_ALIGN_LEFT);
// Build the layout
BLayoutBuilder::Group<>(this, B_VERTICAL, B_USE_SMALL_SPACING)
BLayoutBuilder::Group<>(this, B_VERTICAL, 0)
.Add(fScopeView)
.AddGroup(B_VERTICAL, B_USE_SMALL_SPACING)
.AddGroup(B_HORIZONTAL, 0.0f)
.AddGrid(B_USE_DEFAULT_SPACING, B_USE_SMALL_SPACING)
.Add(fShowScopeCheckBox, 1, 0)
.AddGroup(B_VERTICAL, 0)
.AddGrid(B_USE_DEFAULT_SPACING, B_USE_SMALL_SPACING)
.Add(fShowScopeCheckBox, 1, 0)
.Add(fReverbMenuField->CreateLabelLayoutItem(), 0, 1)
.AddGroup(B_HORIZONTAL, 0.0f, 1, 1)
.Add(fReverbMenuField->CreateMenuBarLayoutItem())
.AddGlue()
.End()
.Add(fInputMenuField->CreateLabelLayoutItem(), 0, 2)
.AddGroup(B_HORIZONTAL, 0.0f, 1, 2)
.Add(fInputMenuField->CreateMenuBarLayoutItem())
.AddGlue()
.End()
.Add(volumeLabel, 0, 3)
.Add(fVolumeSlider, 0, 4, 2, 1)
.Add(fReverbMenuField->CreateLabelLayoutItem(), 0, 1)
.AddGroup(B_HORIZONTAL, 0.0f, 1, 1)
.Add(fReverbMenuField->CreateMenuBarLayoutItem())
.AddGlue()
.End()
.AddGlue()
.Add(fInputMenuField->CreateLabelLayoutItem(), 0, 2)
.AddGroup(B_HORIZONTAL, 0.0f, 1, 2)
.Add(fInputMenuField->CreateMenuBarLayoutItem())
.AddGlue()
.End()
.Add(volumeLabel, 0, 3)
.Add(fVolumeSlider, 0, 4, 2, 1)
.End()
.AddGlue()
.Add(divider)
.AddGlue()
.Add(fPlayButton)
.AddGlue()
.SetInsets(B_USE_WINDOW_INSETS)
.SetInsets(B_USE_WINDOW_SPACING, B_USE_DEFAULT_SPACING,
B_USE_WINDOW_SPACING, B_USE_DEFAULT_SPACING)
.End()
.Add(new BSeparatorView(B_HORIZONTAL))
.AddGroup(B_VERTICAL, 0)
.Add(fPlayButton)
.SetInsets(0, B_USE_DEFAULT_SPACING, 0, B_USE_WINDOW_SPACING)
.End()
.SetInsets(0)
.End();
}

View File

@ -45,7 +45,7 @@ PersonWindow::PersonWindow(BRect frame, const char* title,
const char* nameAttribute, const char* categoryAttribute,
const entry_ref* ref)
:
BWindow(frame, title, B_TITLED_WINDOW, B_NOT_RESIZABLE | B_NOT_ZOOMABLE
BWindow(frame, title, B_TITLED_WINDOW, B_NOT_ZOOMABLE
| B_AUTO_UPDATE_SIZE_LIMITS),
fRef(NULL),
fPanel(NULL),

View File

@ -36,6 +36,7 @@ PoorManPreferencesWindow::PoorManPreferencesWindow(BRect frame, char * name)
new BMessage(MSG_PREF_BTN_DONE));
fPrefTabView = new BTabView("Pref Tab View", B_WIDTH_FROM_WIDEST);
fPrefTabView->SetBorder(B_NO_BORDER);
// Site Tab
fSiteTab = new BTab();
@ -75,15 +76,16 @@ PoorManPreferencesWindow::PoorManPreferencesWindow(BRect frame, char * name)
fLogFilePanel->SetButtonLabel(B_DEFAULT_BUTTON, B_TRANSLATE("Create"));
change_title = fLogFilePanel->Window();
change_title->SetTitle(STR_FILEPANEL_CREATE_LOG_FILE);
BLayoutBuilder::Group<>(this, B_VERTICAL)
.SetInsets(B_USE_WINDOW_INSETS)
BLayoutBuilder::Group<>(this, B_VERTICAL, 0)
.SetInsets(0, B_USE_DEFAULT_SPACING, 0, B_USE_WINDOW_SPACING)
.Add(fPrefTabView)
.AddGroup(B_HORIZONTAL)
.AddGlue()
.Add(fCancelButton)
.Add(fDoneButton);
.Add(fDoneButton)
.SetInsets(B_USE_WINDOW_SPACING, 0, B_USE_WINDOW_SPACING, 0);
}

View File

@ -35,6 +35,7 @@
#include <MessageFilter.h>
#include <Path.h>
#include <Roster.h>
#include <SeparatorView.h>
#include <SpaceLayoutItem.h>
#include <String.h>
#include <StringView.h>
@ -227,10 +228,10 @@ ScreenshotWindow::ScreenshotWindow(const Utility& utility, bool silent,
.AddGlue()
.End()
.End()
.AddStrut(kSpacing)
.Add(divider)
.AddStrut(kSpacing)
.AddGroup(B_HORIZONTAL, kSpacing)
.Add(new BSeparatorView(B_HORIZONTAL))
.AddGroup(B_HORIZONTAL, 0)
.SetInsets(B_USE_WINDOW_SPACING, B_USE_DEFAULT_SPACING,
B_USE_WINDOW_SPACING, B_USE_WINDOW_SPACING)
.Add(new BButton("", B_TRANSLATE("Copy to clipboard"),
new BMessage(B_COPY)))
.Add(new BButton("", B_TRANSLATE("New screenshot"),

View File

@ -12,8 +12,7 @@
#include <Bitmap.h>
#include <Button.h>
#include <Catalog.h>
#include <GroupLayout.h>
#include <GroupLayoutBuilder.h>
#include <LayoutBuilder.h>
#include <Locale.h>
#include <Slider.h>
#include <TextControl.h>
@ -40,6 +39,7 @@ KeyboardView::KeyboardView()
fRepeatSlider->SetHashMarks(B_HASH_MARKS_BOTTOM);
fRepeatSlider->SetHashMarkCount(5);
fRepeatSlider->SetLimitLabels(B_TRANSLATE("Slow"),B_TRANSLATE("Fast"));
fRepeatSlider->SetExplicitMinSize(BSize(200, B_SIZE_UNSET));
// Create the "Delay until key repeat" slider...
@ -60,14 +60,10 @@ KeyboardView::KeyboardView()
textcontrol->StringWidth(B_TRANSLATE("Typing test area")), B_SIZE_UNSET));
// Build the layout
SetLayout(new BGroupLayout(B_HORIZONTAL));
AddChild(BGroupLayoutBuilder(B_VERTICAL, 10)
BLayoutBuilder::Group<>(this, B_VERTICAL, B_USE_DEFAULT_SPACING)
.Add(fRepeatSlider)
.Add(fDelaySlider)
.Add(textcontrol)
.SetInsets(10, 10, 10, 10)
);
.Add(textcontrol);
}

View File

@ -20,6 +20,7 @@
#include <Locale.h>
#include <Message.h>
#include <Screen.h>
#include <SeparatorView.h>
#include <Slider.h>
#include <TextControl.h>
@ -36,8 +37,6 @@ KeyboardWindow::KeyboardWindow()
// Add the main settings view
fSettingsView = new KeyboardView();
BBox* fSettingsBox = new BBox("keyboard_box");
fSettingsBox->AddChild(fSettingsView);
// Add the "Default" button..
fDefaultsButton = new BButton(B_TRANSLATE("Defaults"), new BMessage(BUTTON_DEFAULTS));
@ -48,12 +47,18 @@ KeyboardWindow::KeyboardWindow()
// Build the layout
BLayoutBuilder::Group<>(this, B_VERTICAL)
.SetInsets(B_USE_DEFAULT_SPACING)
.Add(fSettingsBox)
.AddGroup(B_HORIZONTAL)
.SetInsets(B_USE_WINDOW_SPACING, B_USE_WINDOW_SPACING,
B_USE_WINDOW_SPACING, 0)
.Add(fSettingsView)
.End()
.Add(new BSeparatorView(B_HORIZONTAL))
.AddGroup(B_HORIZONTAL)
.SetInsets(B_USE_WINDOW_SPACING, 0, B_USE_WINDOW_SPACING,
B_USE_WINDOW_SPACING)
.Add(fDefaultsButton)
.Add(fRevertButton)
.AddGlue();
.End();
BSlider* slider = (BSlider* )FindView("key_repeat_rate");
if (slider !=NULL)

View File

@ -28,6 +28,7 @@
#include <Path.h>
#include <PopUpMenu.h>
#include <Resources.h>
#include <SeparatorView.h>
#include <Size.h>
#include <StringView.h>
@ -289,7 +290,7 @@ ModifierKeysWindow::ModifierKeysWindow()
new BMessage(kMsgApplyModifiers));
fOkButton->MakeDefault(true);
BLayoutBuilder::Group<>(this, B_VERTICAL, B_USE_SMALL_SPACING)
BLayoutBuilder::Group<>(this, B_VERTICAL, B_USE_DEFAULT_SPACING)
.AddGrid(B_USE_DEFAULT_SPACING, B_USE_SMALL_SPACING)
.Add(keyRole, 0, 0)
.Add(keyLabel, 1, 0)

View File

@ -22,6 +22,7 @@
#include <MenuItem.h>
#include <Message.h>
#include <Screen.h>
#include <SeparatorView.h>
#include <Slider.h>
#include "MouseWindow.h"
@ -39,8 +40,6 @@ MouseWindow::MouseWindow(BRect _rect)
{
// Add the main settings view
fSettingsView = new SettingsView(fSettings);
fSettingsBox = new BBox("main box");
fSettingsBox->AddChild(fSettingsView);
// Add the "Default" button
fDefaultsButton = new BButton(B_TRANSLATE("Defaults"),
@ -58,12 +57,19 @@ MouseWindow::MouseWindow(BRect _rect)
// Build the layout
BLayoutBuilder::Group<>(this, B_VERTICAL)
.SetInsets(B_USE_DEFAULT_SPACING)
.Add(fSettingsBox)
.AddGroup(B_HORIZONTAL)
.SetInsets(B_USE_WINDOW_SPACING, B_USE_WINDOW_SPACING,
B_USE_WINDOW_SPACING, 0)
.Add(fSettingsView)
.End()
.Add(new BSeparatorView(B_HORIZONTAL))
.AddGroup(B_HORIZONTAL)
.SetInsets(B_USE_WINDOW_SPACING, 0, B_USE_WINDOW_SPACING,
B_USE_WINDOW_SPACING)
.Add(fDefaultsButton)
.Add(fRevertButton)
.AddGlue();
.AddGlue()
.End();
// check if the window is on screen
BRect rect = BScreen().Frame();

View File

@ -17,9 +17,8 @@
#include <Button.h>
#include <Catalog.h>
#include <Debug.h>
#include <GroupLayout.h>
#include <GroupLayoutBuilder.h>
#include <InterfaceDefs.h>
#include <LayoutBuilder.h>
#include <Locale.h>
#include <MenuField.h>
#include <MenuItem.h>
@ -137,7 +136,7 @@ SettingsView::SettingsView(MouseSettings& settings)
BMenuField* focusField = new BMenuField(B_TRANSLATE("Focus mode:"),
fFocusMenu);
focusField->SetAlignment(B_ALIGN_RIGHT);
focusField->SetAlignment(B_ALIGN_LEFT);
// Add the "Focus follows mouse mode" pop up menu
fFocusFollowsMouseMenu = new BPopUpMenu(B_TRANSLATE("Normal"));
@ -165,61 +164,49 @@ SettingsView::SettingsView(MouseSettings& settings)
fAcceptFirstClickBox = new BCheckBox(B_TRANSLATE("Accept first click"),
new BMessage(kMsgAcceptFirstClick));
// dividers
// This one is a vertical line for B_HORIZONTAL
BSeparatorView* hdivider = new BSeparatorView(B_VERTICAL, B_FANCY_BORDER);
// This one is a horizontal line for B_VERTICAL
BSeparatorView* vdivider = new BSeparatorView(B_HORIZONTAL, B_FANCY_BORDER);
// Build the layout
SetLayout(new BGroupLayout(B_VERTICAL));
// Layout is :
// A | B
// -----
// C
AddChild(BGroupLayoutBuilder(B_VERTICAL, B_USE_SMALL_SPACING)
BLayoutBuilder::Group<>(this, B_VERTICAL, B_USE_DEFAULT_SPACING)
// Horizontal : A|B
.AddGroup(B_HORIZONTAL, B_USE_SMALL_SPACING)
.AddGroup(B_HORIZONTAL, B_USE_DEFAULT_SPACING)
// Vertical block A: mouse type/view/test
.AddGroup(B_VERTICAL, 10)
.AddGroup(B_VERTICAL, B_USE_DEFAULT_SPACING)
.AddGroup(B_HORIZONTAL, 0)
.AddGlue()
.Add(typeField)
.AddGlue()
.End()
.End()
.AddGlue()
.Add(BGroupLayoutBuilder(B_HORIZONTAL, 0)
.AddGroup(B_HORIZONTAL, 0)
.AddGlue()
.Add(fMouseView)
.AddGlue()
)
.End()
.AddGlue()
.Add(doubleClickTextControl)
.End()
.Add(hdivider)
.End()
.Add(new BSeparatorView(B_VERTICAL))
// Vertical block B: speed settings
.AddGroup(B_VERTICAL, B_USE_DEFAULT_SPACING, 3)
.Add(BGroupLayoutBuilder(B_HORIZONTAL, 0)
.AddGroup(B_HORIZONTAL, 0)
.Add(fClickSpeedSlider)
)
.Add(BGroupLayoutBuilder(B_HORIZONTAL, 0)
.End()
.AddGroup(B_HORIZONTAL, 0)
.Add(fMouseSpeedSlider)
)
.Add(BGroupLayoutBuilder(B_HORIZONTAL, 0)
.End()
.AddGroup(B_HORIZONTAL, 0)
.Add(fAccelerationSlider)
)
.End()
.End()
.End()
.End()
.Add(vdivider)
.AddStrut(B_USE_DEFAULT_SPACING)
// Horizontal Block C: focus mode
.AddGroup(B_HORIZONTAL, B_USE_SMALL_SPACING)
@ -227,11 +214,10 @@ SettingsView::SettingsView(MouseSettings& settings)
.AddGlue()
.AddGroup(B_VERTICAL, 0)
.Add(fAcceptFirstClickBox)
.End()
.End()
.SetInsets(B_USE_SMALL_SPACING, B_USE_SMALL_SPACING,
B_USE_SMALL_SPACING, B_USE_SMALL_SPACING)
);
.End()
.End();
SetBorder(B_NO_BORDER);
}