1/*
2 * Copyright 2006, Ingo Weinhold <bonefish@cs.tu-berlin.de>.
3 * All rights reserved. Distributed under the terms of the MIT License.
4 */
5
6#include <SplitLayoutBuilder.h>
7
8#include <new>
9
10
11using std::nothrow;
12
13
14// constructor
15BSplitLayoutBuilder::BSplitLayoutBuilder(orientation orientation,
16		float spacing)
17	: fView(new BSplitView(orientation, spacing))
18{
19}
20
21// constructor
22BSplitLayoutBuilder::BSplitLayoutBuilder(BSplitView* view)
23	: fView(view)
24{
25}
26
27// SplitView
28BSplitView*
29BSplitLayoutBuilder::SplitView() const
30{
31	return fView;
32}
33
34// GetSplitView
35BSplitLayoutBuilder&
36BSplitLayoutBuilder::GetSplitView(BSplitView** view)
37{
38	*view = fView;
39	return *this;
40}
41
42// Add
43BSplitLayoutBuilder&
44BSplitLayoutBuilder::Add(BView* view)
45{
46	fView->AddChild(view);
47	return *this;
48}
49
50// Add
51BSplitLayoutBuilder&
52BSplitLayoutBuilder::Add(BView* view, float weight)
53{
54	fView->AddChild(view, weight);
55	return *this;
56}
57
58// Add
59BSplitLayoutBuilder&
60BSplitLayoutBuilder::Add(BLayoutItem* item)
61{
62	fView->AddChild(item);
63	return *this;
64}
65
66// Add
67BSplitLayoutBuilder&
68BSplitLayoutBuilder::Add(BLayoutItem* item, float weight)
69{
70	fView->AddChild(item, weight);
71	return *this;
72}
73
74// SetCollapsible
75BSplitLayoutBuilder&
76BSplitLayoutBuilder::SetCollapsible(bool collapsible)
77{
78	int32 count = fView->CountChildren();
79	if (count > 0)
80		fView->SetCollapsible(count - 1, collapsible);
81	return *this;
82}
83
84// SetInsets
85BSplitLayoutBuilder&
86BSplitLayoutBuilder::SetInsets(float left, float top, float right, float bottom)
87{
88	fView->SetInsets(left, top, right, bottom);
89
90	return *this;
91}
92
93// cast operator BSplitView*
94BSplitLayoutBuilder::operator BSplitView*()
95{
96	return fView;
97}
98
99