BToolbar: Allow the toolbar's orientation to be set by its creator.

I already made this patch in Heidi's clone of BToolbar. Adding it here
allows me to drop Heidi's version altogether.

I also relicensed the header file at the permission of Stephan. The .cpp
file still lists him as author and copyright holder.

Signed-off-by: Jessica Hamilton <[email protected]>
This commit is contained in:
Augustin Cavalier
2014-11-10 13:21:13 +13:00
committed by Jessica Hamilton
parent 44d31dca37
commit 0a74147e1d
2 changed files with 12 additions and 6 deletions
+6 -3
View File
@@ -1,6 +1,6 @@
/* /*
* Copyright 2011 Stephan Aßmus <[email protected]> * Copyright 2011-2014, Haiku, Inc. All rights reserved.
* All rights reserved. Distributed under the terms of the MIT license. * Distributed under the terms of the MIT License.
*/ */
#ifndef _TOOLBAR_H #ifndef _TOOLBAR_H
#define _TOOLBAR_H #define _TOOLBAR_H
@@ -14,7 +14,8 @@ namespace BPrivate {
class BToolbar : public BGroupView { class BToolbar : public BGroupView {
public: public:
BToolbar(BRect frame); BToolbar(BRect frame,
orientation ont = B_HORIZONTAL);
virtual ~BToolbar(); virtual ~BToolbar();
virtual void Hide(); virtual void Hide();
@@ -41,6 +42,8 @@ private:
void _AddView(BView* view); void _AddView(BView* view);
BButton* _FindButton(uint32 command) const; BButton* _FindButton(uint32 command) const;
void _HideToolTips() const; void _HideToolTips() const;
orientation fOrientation;
}; };
} // namespace BPrivate } // namespace BPrivate
+6 -3
View File
@@ -44,9 +44,10 @@ LockableButton::MouseDown(BPoint point)
} }
BToolbar::BToolbar(BRect frame) BToolbar::BToolbar(BRect frame, orientation ont)
: :
BGroupView(B_HORIZONTAL) BGroupView(ont),
fOrientation(ont)
{ {
float inset = ceilf(be_control_look->DefaultItemSpacing() / 2); float inset = ceilf(be_control_look->DefaultItemSpacing() / 2);
GroupLayout()->SetInsets(inset, 0, inset, 0); GroupLayout()->SetInsets(inset, 0, inset, 0);
@@ -105,7 +106,9 @@ BToolbar::AddAction(BMessage* message, BHandler* target,
void void
BToolbar::AddSeparator() BToolbar::AddSeparator()
{ {
_AddView(new BSeparatorView(B_VERTICAL, B_PLAIN_BORDER)); orientation ont = (fOrientation == B_HORIZONTAL) ?
B_VERTICAL : B_HORIZONTAL;
_AddView(new BSeparatorView(ont, B_PLAIN_BORDER));
} }