19ecf9d1cSIngo Weinhold /*
29ecf9d1cSIngo Weinhold * Copyright 2006, Ingo Weinhold <bonefish@cs.tu-berlin.de>.
39ecf9d1cSIngo Weinhold * All rights reserved. Distributed under the terms of the MIT License.
49ecf9d1cSIngo Weinhold */
59ecf9d1cSIngo Weinhold
69ecf9d1cSIngo Weinhold #include <SplitLayoutBuilder.h>
79ecf9d1cSIngo Weinhold
89ecf9d1cSIngo Weinhold #include <new>
99ecf9d1cSIngo Weinhold
109ecf9d1cSIngo Weinhold
119ecf9d1cSIngo Weinhold using std::nothrow;
129ecf9d1cSIngo Weinhold
139ecf9d1cSIngo Weinhold
149ecf9d1cSIngo Weinhold // constructor
BSplitLayoutBuilder(orientation orientation,float spacing)15*e724b26fSJohn Scipione BSplitLayoutBuilder::BSplitLayoutBuilder(orientation orientation,
169ecf9d1cSIngo Weinhold float spacing)
179ecf9d1cSIngo Weinhold : fView(new BSplitView(orientation, spacing))
189ecf9d1cSIngo Weinhold {
199ecf9d1cSIngo Weinhold }
209ecf9d1cSIngo Weinhold
219ecf9d1cSIngo Weinhold // constructor
BSplitLayoutBuilder(BSplitView * view)229ecf9d1cSIngo Weinhold BSplitLayoutBuilder::BSplitLayoutBuilder(BSplitView* view)
239ecf9d1cSIngo Weinhold : fView(view)
249ecf9d1cSIngo Weinhold {
259ecf9d1cSIngo Weinhold }
269ecf9d1cSIngo Weinhold
279ecf9d1cSIngo Weinhold // SplitView
289ecf9d1cSIngo Weinhold BSplitView*
SplitView() const299ecf9d1cSIngo Weinhold BSplitLayoutBuilder::SplitView() const
309ecf9d1cSIngo Weinhold {
319ecf9d1cSIngo Weinhold return fView;
329ecf9d1cSIngo Weinhold }
339ecf9d1cSIngo Weinhold
349ecf9d1cSIngo Weinhold // GetSplitView
359ecf9d1cSIngo Weinhold BSplitLayoutBuilder&
GetSplitView(BSplitView ** view)369ecf9d1cSIngo Weinhold BSplitLayoutBuilder::GetSplitView(BSplitView** view)
379ecf9d1cSIngo Weinhold {
389ecf9d1cSIngo Weinhold *view = fView;
399ecf9d1cSIngo Weinhold return *this;
409ecf9d1cSIngo Weinhold }
419ecf9d1cSIngo Weinhold
429ecf9d1cSIngo Weinhold // Add
439ecf9d1cSIngo Weinhold BSplitLayoutBuilder&
Add(BView * view)449ecf9d1cSIngo Weinhold BSplitLayoutBuilder::Add(BView* view)
459ecf9d1cSIngo Weinhold {
469ecf9d1cSIngo Weinhold fView->AddChild(view);
479ecf9d1cSIngo Weinhold return *this;
489ecf9d1cSIngo Weinhold }
499ecf9d1cSIngo Weinhold
509ecf9d1cSIngo Weinhold // Add
519ecf9d1cSIngo Weinhold BSplitLayoutBuilder&
Add(BView * view,float weight)529ecf9d1cSIngo Weinhold BSplitLayoutBuilder::Add(BView* view, float weight)
539ecf9d1cSIngo Weinhold {
549ecf9d1cSIngo Weinhold fView->AddChild(view, weight);
559ecf9d1cSIngo Weinhold return *this;
569ecf9d1cSIngo Weinhold }
579ecf9d1cSIngo Weinhold
589ecf9d1cSIngo Weinhold // Add
599ecf9d1cSIngo Weinhold BSplitLayoutBuilder&
Add(BLayoutItem * item)609ecf9d1cSIngo Weinhold BSplitLayoutBuilder::Add(BLayoutItem* item)
619ecf9d1cSIngo Weinhold {
629ecf9d1cSIngo Weinhold fView->AddChild(item);
639ecf9d1cSIngo Weinhold return *this;
649ecf9d1cSIngo Weinhold }
659ecf9d1cSIngo Weinhold
669ecf9d1cSIngo Weinhold // Add
679ecf9d1cSIngo Weinhold BSplitLayoutBuilder&
Add(BLayoutItem * item,float weight)689ecf9d1cSIngo Weinhold BSplitLayoutBuilder::Add(BLayoutItem* item, float weight)
699ecf9d1cSIngo Weinhold {
709ecf9d1cSIngo Weinhold fView->AddChild(item, weight);
719ecf9d1cSIngo Weinhold return *this;
729ecf9d1cSIngo Weinhold }
739ecf9d1cSIngo Weinhold
749ecf9d1cSIngo Weinhold // SetCollapsible
759ecf9d1cSIngo Weinhold BSplitLayoutBuilder&
SetCollapsible(bool collapsible)769ecf9d1cSIngo Weinhold BSplitLayoutBuilder::SetCollapsible(bool collapsible)
779ecf9d1cSIngo Weinhold {
789ecf9d1cSIngo Weinhold int32 count = fView->CountChildren();
799ecf9d1cSIngo Weinhold if (count > 0)
809ecf9d1cSIngo Weinhold fView->SetCollapsible(count - 1, collapsible);
819ecf9d1cSIngo Weinhold return *this;
829ecf9d1cSIngo Weinhold }
839ecf9d1cSIngo Weinhold
844aeb7a3cSStephan Aßmus // SetInsets
854aeb7a3cSStephan Aßmus BSplitLayoutBuilder&
SetInsets(float left,float top,float right,float bottom)864aeb7a3cSStephan Aßmus BSplitLayoutBuilder::SetInsets(float left, float top, float right, float bottom)
874aeb7a3cSStephan Aßmus {
884aeb7a3cSStephan Aßmus fView->SetInsets(left, top, right, bottom);
894aeb7a3cSStephan Aßmus
904aeb7a3cSStephan Aßmus return *this;
914aeb7a3cSStephan Aßmus }
924aeb7a3cSStephan Aßmus
939ecf9d1cSIngo Weinhold // cast operator BSplitView*
operator BSplitView*()949ecf9d1cSIngo Weinhold BSplitLayoutBuilder::operator BSplitView*()
959ecf9d1cSIngo Weinhold {
969ecf9d1cSIngo Weinhold return fView;
979ecf9d1cSIngo Weinhold }
989ecf9d1cSIngo Weinhold
99