diff --git a/src/tests/libs/alm/ComplexButtons.cpp b/src/tests/libs/alm/ComplexButtons.cpp index fcd0977435..4fe739348e 100644 --- a/src/tests/libs/alm/ComplexButtons.cpp +++ b/src/tests/libs/alm/ComplexButtons.cpp @@ -12,6 +12,7 @@ // include this for ALM #include "ALMLayout.h" +#include "ALMLayoutBuilder.h" class ComplexButtonsWindow : public BWindow { @@ -55,6 +56,17 @@ public: button5->SetExplicitMaxSize(BSize(500, 500)); button5->SetExplicitPreferredSize(BSize(30 + kOffset, B_SIZE_UNSET)); + BALMLayout* fLayout = new BALMLayout(10, 10); + BALM::BALMLayoutBuilder(this, fLayout) + .Add(button1, fLayout->Left(), fLayout->Top()) + .StartingAt(button1) + .AddToRight(button2) + .AddToRight(button3, fLayout->Right()) + .AddBelow(button4, fLayout->Bottom(), fLayout->Left(), + fLayout->AddXTab()) + .AddToRight(button5, fLayout->Right()); + + /* // create a new BALMLayout and use it for this window fLayout = new BALMLayout(); SetLayout(fLayout); @@ -66,6 +78,7 @@ public: fLayout->AddView(button4, fLayout->Left(), fLayout->BottomOf(button1), NULL, fLayout->Bottom()); fLayout->AddViewToRight(button5, fLayout->Right()); + */ // test size limits BSize min = fLayout->MinSize(); diff --git a/src/tests/libs/alm/Pinwheel.cpp b/src/tests/libs/alm/Pinwheel.cpp index 24a3401c66..cdea90ade3 100644 --- a/src/tests/libs/alm/Pinwheel.cpp +++ b/src/tests/libs/alm/Pinwheel.cpp @@ -13,6 +13,7 @@ // include this for ALM #include "ALMLayout.h" +#include "ALMLayoutBuilder.h" class PinwheelWindow : public BWindow { @@ -34,7 +35,24 @@ public: button4->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED)); // create a new BALMLayout and use it for this window - BALMLayout* layout = new BALMLayout(10.); + BALMLayout* layout = new BALMLayout(10, 10); + + BReference xTabs[2]; + BReference yTabs[2]; + layout->AddXTabs(xTabs, 2); + layout->AddYTabs(yTabs, 2); + + BALM::BALMLayoutBuilder(this, layout) + .SetInsets(5) + .Add(textView1, xTabs[0], yTabs[0], xTabs[1], yTabs[1]) + .StartingAt(textView1) + .AddAbove(button1, layout->Top(), layout->Left()) + .AddToRight(button2, layout->Right(), NULL, yTabs[1]) + .AddBelow(button3, layout->Bottom(), xTabs[0]) + .AddToLeft(button4, layout->Left(), yTabs[0]); + + // alternative setup + /* SetLayout(layout); layout->SetInsets(5.); @@ -52,6 +70,7 @@ public: layout->Bottom()); layout->AddView(button4, layout->Left(), y1, x1, layout->Bottom()); layout->AddView(textView1, x1, y1, x2, y2); + */ // alternative setup /* diff --git a/src/tests/libs/alm/ThreeButtons.cpp b/src/tests/libs/alm/ThreeButtons.cpp index 834e7241bf..f119ae1659 100644 --- a/src/tests/libs/alm/ThreeButtons.cpp +++ b/src/tests/libs/alm/ThreeButtons.cpp @@ -12,6 +12,7 @@ // include this for ALM #include "ALMLayout.h" +#include "ALMLayoutBuilder.h" class ThreeButtonsWindow : public BWindow { @@ -37,6 +38,14 @@ public: B_ALIGN_USE_FULL_HEIGHT)); button3->SetExplicitMaxSize(BSize(500, 500)); + fLayout = new BALMLayout(0, 0); + BALM::BALMLayoutBuilder(this, fLayout) + .Add(button1, fLayout->Left(), fLayout->Top(), fLayout->Right()) + .StartingAt(button1) + .AddBelow(button2) + .AddBelow(button3, fLayout->Bottom()); + + /* // create a new BALMLayout and use it for this window fLayout = new BALMLayout(); SetLayout(fLayout); @@ -45,6 +54,7 @@ public: fLayout->Right(), NULL); fLayout->AddViewToBottom(button2); fLayout->AddViewToBottom(button3, fLayout->Bottom()); + */ // test size limits BSize min = fLayout->MinSize(); diff --git a/src/tests/libs/alm/Views.cpp b/src/tests/libs/alm/Views.cpp index 5de238a642..97ffe49d9c 100644 --- a/src/tests/libs/alm/Views.cpp +++ b/src/tests/libs/alm/Views.cpp @@ -18,6 +18,7 @@ #include #include "ALMLayout.h" +#include "ALMLayoutBuilder.h" using namespace LinearProgramming; @@ -53,6 +54,31 @@ public: menu->AddItem(new BPopUpMenu("Menu 2")); BStringView* stringView2 = new BStringView("string 2", "string 2"); + BALM::BALMLayout* layout = new BALMLayout(10, 10); + BALM::BALMLayoutBuilder(this, layout) + .SetInsets(10) + .Add(button1, layout->Left(), layout->Top()) + .StartingAt(button1) + .AddToRight(radioButton) + .AddToRight(BSpaceLayoutItem::CreateGlue()) + .AddToRight(button3) + .StartingAt(radioButton) + .AddBelow(textView1, NULL, NULL, layout->RightOf(button3)) + .AddBelow(button4) + .AddToRight(button5, layout->Right()) + .AddBelow(button6) + .AddBelow(menu1, layout->AddYTab(), layout->Left(), + layout->AddXTab()) + .AddToRight(stringView1) + .AddToRight(BSpaceLayoutItem::CreateGlue(), layout->Right()) + .AddBelow(statusBar, NULL, layout->Left(), layout->Right()) + .StartingAt(statusBar) + .AddBelow(menu2, layout->Bottom(), layout->Left(), + layout->RightOf(menu1)) + .AddToRight(stringView2) + .AddToRight(BSpaceLayoutItem::CreateGlue(), layout->Right()); + + /* // create a new BALMLayout and use it for this window BALMLayout* layout = new BALMLayout(10); SetLayout(layout); @@ -79,6 +105,7 @@ public: layout->RightOf(menu1), layout->Bottom()); layout->AddViewToRight(stringView2); layout->AddItemToRight(BSpaceLayoutItem::CreateGlue(), layout->Right()); + */ layout->Solver()->AddConstraint(2, layout->TopOf(menu1), -1, layout->Bottom(), OperatorType(kEQ), 0);