* Copyright 2006, Ingo Weinhold <bonefish@cs.tu-berlin.de>.
* All rights reserved. Distributed under the terms of the MIT License.
*/
#include <SplitLayoutBuilder.h>
#include <new>
using std::nothrow;
BSplitLayoutBuilder::BSplitLayoutBuilder(enum orientation orientation,
float spacing)
: fView(new BSplitView(orientation, spacing))
{
}
BSplitLayoutBuilder::BSplitLayoutBuilder(BSplitView* view)
: fView(view)
{
}
BSplitView*
BSplitLayoutBuilder::SplitView() const
{
return fView;
}
BSplitLayoutBuilder&
BSplitLayoutBuilder::GetSplitView(BSplitView** view)
{
*view = fView;
return *this;
}
BSplitLayoutBuilder&
BSplitLayoutBuilder::Add(BView* view)
{
fView->AddChild(view);
return *this;
}
BSplitLayoutBuilder&
BSplitLayoutBuilder::Add(BView* view, float weight)
{
fView->AddChild(view, weight);
return *this;
}
BSplitLayoutBuilder&
BSplitLayoutBuilder::Add(BLayoutItem* item)
{
fView->AddChild(item);
return *this;
}
BSplitLayoutBuilder&
BSplitLayoutBuilder::Add(BLayoutItem* item, float weight)
{
fView->AddChild(item, weight);
return *this;
}
BSplitLayoutBuilder&
BSplitLayoutBuilder::SetCollapsible(bool collapsible)
{
int32 count = fView->CountChildren();
if (count > 0)
fView->SetCollapsible(count - 1, collapsible);
return *this;
}
BSplitLayoutBuilder&
BSplitLayoutBuilder::SetInsets(float left, float top, float right, float bottom)
{
fView->SetInsets(left, top, right, bottom);
return *this;
}
BSplitLayoutBuilder::operator BSplitView*()
{
return fView;
}