From 3c5208e4392da8a9451afd5eb55483a871be6182 Mon Sep 17 00:00:00 2001 From: Humdinger Date: Sat, 7 Nov 2015 17:15:56 +0100 Subject: [PATCH] Improve/fix layout Some tweaks to the layout of apps/prefs in the course of using B_USE_WINDOW_SPACING. --- src/apps/codycam/CodyCam.cpp | 38 +++++------- src/apps/codycam/CodyCam.h | 6 +- src/apps/mail/MailWindow.cpp | 7 ++- src/apps/midiplayer/MidiPlayerWindow.cpp | 56 +++++++++--------- src/apps/people/PersonWindow.cpp | 2 +- src/apps/poorman/PoorManPreferencesWindow.cpp | 10 ++-- src/apps/screenshot/ScreenshotWindow.cpp | 9 +-- src/preferences/keyboard/KeyboardView.cpp | 12 ++-- src/preferences/keyboard/KeyboardWindow.cpp | 15 +++-- src/preferences/keymap/ModifierKeysWindow.cpp | 3 +- src/preferences/mouse/MouseWindow.cpp | 16 +++-- src/preferences/mouse/SettingsView.cpp | 58 +++++++------------ 12 files changed, 108 insertions(+), 124 deletions(-) diff --git a/src/apps/codycam/CodyCam.cpp b/src/apps/codycam/CodyCam.cpp index 84e5b54608..ea8678e6bd 100644 --- a/src/apps/codycam/CodyCam.cpp +++ b/src/apps/codycam/CodyCam.cpp @@ -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; diff --git a/src/apps/codycam/CodyCam.h b/src/apps/codycam/CodyCam.h index 0fcad38281..d1ae0267b1 100644 --- a/src/apps/codycam/CodyCam.h +++ b/src/apps/codycam/CodyCam.h @@ -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(); diff --git a/src/apps/mail/MailWindow.cpp b/src/apps/mail/MailWindow.cpp index c1af1f87cf..d6dc5183d7 100644 --- a/src/apps/mail/MailWindow.cpp +++ b/src/apps/mail/MailWindow.cpp @@ -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) diff --git a/src/apps/midiplayer/MidiPlayerWindow.cpp b/src/apps/midiplayer/MidiPlayerWindow.cpp index ed82038637..84bdef07fb 100644 --- a/src/apps/midiplayer/MidiPlayerWindow.cpp +++ b/src/apps/midiplayer/MidiPlayerWindow.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -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(); } diff --git a/src/apps/people/PersonWindow.cpp b/src/apps/people/PersonWindow.cpp index 41e892cce6..e10eedae4f 100644 --- a/src/apps/people/PersonWindow.cpp +++ b/src/apps/people/PersonWindow.cpp @@ -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), diff --git a/src/apps/poorman/PoorManPreferencesWindow.cpp b/src/apps/poorman/PoorManPreferencesWindow.cpp index 31fcc7b616..629e6a6b4c 100644 --- a/src/apps/poorman/PoorManPreferencesWindow.cpp +++ b/src/apps/poorman/PoorManPreferencesWindow.cpp @@ -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); } diff --git a/src/apps/screenshot/ScreenshotWindow.cpp b/src/apps/screenshot/ScreenshotWindow.cpp index e0525590d3..75035e988e 100644 --- a/src/apps/screenshot/ScreenshotWindow.cpp +++ b/src/apps/screenshot/ScreenshotWindow.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include @@ -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"), diff --git a/src/preferences/keyboard/KeyboardView.cpp b/src/preferences/keyboard/KeyboardView.cpp index b17f9f63de..d72c5a1131 100644 --- a/src/preferences/keyboard/KeyboardView.cpp +++ b/src/preferences/keyboard/KeyboardView.cpp @@ -12,8 +12,7 @@ #include #include #include -#include -#include +#include #include #include #include @@ -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); } diff --git a/src/preferences/keyboard/KeyboardWindow.cpp b/src/preferences/keyboard/KeyboardWindow.cpp index a0fe65ed69..3014fbfede 100644 --- a/src/preferences/keyboard/KeyboardWindow.cpp +++ b/src/preferences/keyboard/KeyboardWindow.cpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include @@ -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) diff --git a/src/preferences/keymap/ModifierKeysWindow.cpp b/src/preferences/keymap/ModifierKeysWindow.cpp index b18f9f713f..621f50c24c 100644 --- a/src/preferences/keymap/ModifierKeysWindow.cpp +++ b/src/preferences/keymap/ModifierKeysWindow.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -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) diff --git a/src/preferences/mouse/MouseWindow.cpp b/src/preferences/mouse/MouseWindow.cpp index 06e7e5a317..4ce29a8776 100644 --- a/src/preferences/mouse/MouseWindow.cpp +++ b/src/preferences/mouse/MouseWindow.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #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(); diff --git a/src/preferences/mouse/SettingsView.cpp b/src/preferences/mouse/SettingsView.cpp index bc806db173..fdb9b27c1d 100644 --- a/src/preferences/mouse/SettingsView.cpp +++ b/src/preferences/mouse/SettingsView.cpp @@ -17,9 +17,8 @@ #include #include #include -#include -#include #include +#include #include #include #include @@ -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); }