From 617ebd889736d9388d0d49567b819874c6266c95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Thu, 30 Jul 2009 14:03:48 +0000 Subject: [PATCH] * 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 --- headers/os/interface/LayoutBuilder.h | 43 ++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/headers/os/interface/LayoutBuilder.h b/headers/os/interface/LayoutBuilder.h index 30e8d632b1..482e3b9627 100644 --- a/headers/os/interface/LayoutBuilder.h +++ b/headers/os/interface/LayoutBuilder.h @@ -5,12 +5,15 @@ #ifndef _LAYOUT_BUILDER_H #define _LAYOUT_BUILDER_H + #include #include #include #include +#include #include #include +#include #include @@ -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::Add(BLayoutItem* item, int32 column, int32 row, } +template +typename Grid::ThisBuilder& +Grid::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 Grid::ThisBuilder& +Grid::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 Grid::GroupBuilder Grid::AddGroup(enum orientation orientation, float spacing,