* Added convenience methods to add BTextControls and BMenuFields to a grid

layout.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31968 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2009-07-30 14:03:48 +00:00
parent bb18a8faa7
commit 617ebd8897

View File

@ -5,12 +5,15 @@
#ifndef _LAYOUT_BUILDER_H
#define _LAYOUT_BUILDER_H
#include <GridLayout.h>
#include <GridView.h>
#include <GroupLayout.h>
#include <GroupView.h>
#include <MenuField.h>
#include <SpaceLayoutItem.h>
#include <SplitView.h>
#include <TextControl.h>
#include <Window.h>
@ -114,6 +117,16 @@ public:
int32 columnCount = 1, int32 rowCount = 1);
inline ThisBuilder& Add(BLayoutItem* item, int32 column, int32 row,
int32 columnCount = 1, int32 rowCount = 1);
inline ThisBuilder& AddMenuField(BMenuField* menuField,
int32 column, int32 row,
alignment labelAlignment
= B_ALIGN_HORIZONTAL_UNSET,
int32 columnCount = 1, int32 rowCount = 1);
inline ThisBuilder& AddTextControl(BTextControl* textControl,
int32 column, int32 row,
alignment labelAlignment
= B_ALIGN_HORIZONTAL_UNSET,
int32 columnCount = 1, int32 rowCount = 1);
inline GroupBuilder AddGroup(enum orientation orientation,
float spacing, int32 column, int32 row,
@ -492,6 +505,36 @@ Grid<ParentBuilder>::Add(BLayoutItem* item, int32 column, int32 row,
}
template<typename ParentBuilder>
typename Grid<ParentBuilder>::ThisBuilder&
Grid<ParentBuilder>::AddMenuField(BMenuField* menuField, int32 column,
int32 row, alignment labelAlignment, int32 columnCount, int32 rowCount)
{
BLayoutItem* item = menuField->CreateLabelLayoutItem();
item->SetExplicitAlignment(
BAlignment(labelAlignment, B_ALIGN_VERTICAL_UNSET));
fLayout->AddItem(item, column, row, columnCount, rowCount);
fLayout->AddItem(menuField->CreateMenuBarLayoutItem(), column + columnCount,
row, columnCount, rowCount);
return *this;
}
template<typename ParentBuilder>
typename Grid<ParentBuilder>::ThisBuilder&
Grid<ParentBuilder>::AddTextControl(BTextControl* textControl, int32 column,
int32 row, alignment labelAlignment, int32 columnCount, int32 rowCount)
{
BLayoutItem* item = textControl->CreateLabelLayoutItem();
item->SetExplicitAlignment(
BAlignment(labelAlignment, B_ALIGN_VERTICAL_UNSET));
fLayout->AddItem(item, column, row, columnCount, rowCount);
fLayout->AddItem(textControl->CreateTextViewLayoutItem(),
column + columnCount, row, columnCount, rowCount);
return *this;
}
template<typename ParentBuilder>
typename Grid<ParentBuilder>::GroupBuilder
Grid<ParentBuilder>::AddGroup(enum orientation orientation, float spacing,