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 <GridLayoutBuilder.h> 7 8#include <new> 9 10#include <SpaceLayoutItem.h> 11 12 13using std::nothrow; 14 15 16// constructor 17BGridLayoutBuilder::BGridLayoutBuilder(float horizontalSpacing, 18 float verticalSpacing) 19 : fLayout((new BGridView(horizontalSpacing, verticalSpacing)) 20 ->GridLayout()) 21{ 22} 23 24// constructor 25BGridLayoutBuilder::BGridLayoutBuilder(BGridLayout* layout) 26 : fLayout(layout) 27{ 28} 29 30 31// constructor 32BGridLayoutBuilder::BGridLayoutBuilder(BGridView* view) 33 : fLayout(view->GridLayout()) 34{ 35} 36 37// GridLayout 38BGridLayout* 39BGridLayoutBuilder::GridLayout() const 40{ 41 return fLayout; 42} 43 44// View 45BView* 46BGridLayoutBuilder::View() const 47{ 48 return fLayout->Owner(); 49} 50 51// GetGridLayout 52BGridLayoutBuilder& 53BGridLayoutBuilder::GetGridLayout(BGridLayout** _layout) 54{ 55 *_layout = fLayout; 56 return *this; 57} 58 59// GetView 60BGridLayoutBuilder& 61BGridLayoutBuilder::GetView(BView** _view) 62{ 63 *_view = fLayout->Owner(); 64 return *this; 65} 66 67// Add 68BGridLayoutBuilder& 69BGridLayoutBuilder::Add(BView* view, int32 column, int32 row, 70 int32 columnCount, int32 rowCount) 71{ 72 fLayout->AddView(view, column, row, columnCount, rowCount); 73 return *this; 74} 75 76// Add 77BGridLayoutBuilder& 78BGridLayoutBuilder::Add(BLayoutItem* item, int32 column, int32 row, 79 int32 columnCount, int32 rowCount) 80{ 81 fLayout->AddItem(item, column, row, columnCount, rowCount); 82 return *this; 83} 84 85// SetColumnWeight 86BGridLayoutBuilder& 87BGridLayoutBuilder::SetColumnWeight(int32 column, float weight) 88{ 89 fLayout->SetColumnWeight(column, weight); 90 return *this; 91} 92 93// SetRowWeight 94BGridLayoutBuilder& 95BGridLayoutBuilder::SetRowWeight(int32 row, float weight) 96{ 97 fLayout->SetRowWeight(row, weight); 98 return *this; 99} 100 101// SetInsets 102BGridLayoutBuilder& 103BGridLayoutBuilder::SetInsets(float left, float top, float right, float bottom) 104{ 105 fLayout->SetInsets(left, top, right, bottom); 106 return *this; 107} 108 109// cast operator BGridLayout* 110BGridLayoutBuilder::operator BGridLayout*() 111{ 112 return fLayout; 113} 114 115