* Copyright 2006, Ingo Weinhold <bonefish@cs.tu-berlin.de>.
* All rights reserved. Distributed under the terms of the MIT License.
*/
#include <GridLayoutBuilder.h>
#include <new>
#include <SpaceLayoutItem.h>
using std::nothrow;
BGridLayoutBuilder::BGridLayoutBuilder(float horizontalSpacing,
float verticalSpacing)
: fLayout((new BGridView(horizontalSpacing, verticalSpacing))
->GridLayout())
{
}
BGridLayoutBuilder::BGridLayoutBuilder(BGridLayout* layout)
: fLayout(layout)
{
}
BGridLayoutBuilder::BGridLayoutBuilder(BGridView* view)
: fLayout(view->GridLayout())
{
}
BGridLayout*
BGridLayoutBuilder::GridLayout() const
{
return fLayout;
}
BView*
BGridLayoutBuilder::View() const
{
return fLayout->Owner();
}
BGridLayoutBuilder&
BGridLayoutBuilder::GetGridLayout(BGridLayout** _layout)
{
*_layout = fLayout;
return *this;
}
BGridLayoutBuilder&
BGridLayoutBuilder::GetView(BView** _view)
{
*_view = fLayout->Owner();
return *this;
}
BGridLayoutBuilder&
BGridLayoutBuilder::Add(BView* view, int32 column, int32 row,
int32 columnCount, int32 rowCount)
{
fLayout->AddView(view, column, row, columnCount, rowCount);
return *this;
}
BGridLayoutBuilder&
BGridLayoutBuilder::Add(BLayoutItem* item, int32 column, int32 row,
int32 columnCount, int32 rowCount)
{
fLayout->AddItem(item, column, row, columnCount, rowCount);
return *this;
}
BGridLayoutBuilder&
BGridLayoutBuilder::SetColumnWeight(int32 column, float weight)
{
fLayout->SetColumnWeight(column, weight);
return *this;
}
BGridLayoutBuilder&
BGridLayoutBuilder::SetRowWeight(int32 row, float weight)
{
fLayout->SetRowWeight(row, weight);
return *this;
}
BGridLayoutBuilder&
BGridLayoutBuilder::SetInsets(float left, float top, float right, float bottom)
{
fLayout->SetInsets(left, top, right, bottom);
return *this;
}
BGridLayoutBuilder::operator BGridLayout*()
{
return fLayout;
}