Added constructor versions of the Group and Grid layout builders that take a

BWindow* parameter. They set the newly created layout on the window, which saves
the API user to do that.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31118 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2009-06-19 15:28:00 +00:00
parent 6383ae9c30
commit 2a3974d313
2 changed files with 28 additions and 4 deletions
+27
View File
@@ -11,6 +11,7 @@
#include <GroupView.h>
#include <SpaceLayoutItem.h>
#include <SplitView.h>
#include <Window.h>
namespace BLayoutBuilder {
@@ -49,6 +50,9 @@ public:
inline Group(enum orientation orientation
= B_HORIZONTAL,
float spacing = 0.0f);
inline Group(BWindow* window,
enum orientation orientation = B_HORIZONTAL,
float spacing = 0.0f);
inline Group(BGroupLayout* layout);
inline Group(BGroupView* view);
@@ -95,6 +99,9 @@ public:
public:
inline Grid(float horizontalSpacing = 0.0f,
float verticalSpacing = 0.0f);
inline Grid(BWindow* window,
float horizontalSpacing = 0.0f,
float verticalSpacing = 0.0f);
inline Grid(BGridLayout* layout);
inline Grid(BGridView* view);
@@ -213,6 +220,16 @@ Group<ParentBuilder>::Group(enum orientation orientation, float spacing)
}
template<typename ParentBuilder>
Group<ParentBuilder>::Group(BWindow* window, enum orientation orientation,
float spacing)
:
fLayout((new BGroupView(orientation, spacing))->GroupLayout())
{
window->SetLayout(fLayout);
}
template<typename ParentBuilder>
Group<ParentBuilder>::Group(BGroupLayout* layout)
:
@@ -392,6 +409,16 @@ Grid<ParentBuilder>::Grid(float horizontalSpacing, float verticalSpacing)
}
template<typename ParentBuilder>
Grid<ParentBuilder>::Grid(BWindow* window, float horizontalSpacing,
float verticalSpacing)
:
fLayout((new BGridView(horizontalSpacing, verticalSpacing))->GridLayout())
{
window->SetLayout(fLayout);
}
template<typename ParentBuilder>
Grid<ParentBuilder>::Grid(BGridLayout* layout)
:
@@ -149,10 +149,7 @@ TeamWindow::ThreadStackTraceChanged(const Team::ThreadEvent& event)
void
TeamWindow::_Init()
{
BGroupLayout* rootLayout = new BGroupLayout(B_VERTICAL);
SetLayout(rootLayout);
BLayoutBuilder::Group<>(rootLayout)
BLayoutBuilder::Group<>(this, B_VERTICAL)
.AddSplit(B_VERTICAL, 3.0f)
.Add(fTabView = new BTabView("tab view"), 0.4f)
.AddGroup(B_VERTICAL, 4.0f)