* Copyright 2010, Clemens Zeidler <haiku@clemens-zeidler.de>
* Distributed under the terms of the MIT License.
*/
#include <Application.h>
#include <Button.h>
#include <ControlLook.h>
#include <SpaceLayoutItem.h>
#include <Window.h>
#include "ALMLayout.h"
#include "ALMGroup.h"
class OperatorWindow : public BWindow {
public:
OperatorWindow(BRect frame)
:
BWindow(frame, "ALM Operator", B_TITLED_WINDOW, B_QUIT_ON_WINDOW_CLOSE)
{
BButton* button1 = new BButton("1");
BButton* button2 = new BButton("2");
BButton* button3 = new BButton("3");
BButton* button4 = new BButton("4");
BButton* button5 = new BButton("5");
button1->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED));
button2->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED));
button3->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED));
button4->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED));
button5->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED));
float spacing = be_control_look->DefaultItemSpacing();
BALMLayout* layout = new BALMLayout(spacing);
SetLayout(layout);
layout->SetInsets(spacing);
(ALMGroup(button1) | (ALMGroup(button2)
/ (ALMGroup(button3) | ALMGroup(BSpaceLayoutItem::CreateGlue())
| ALMGroup(button4))
/ ALMGroup(button5))).BuildLayout(layout);
BSize min = layout->MinSize();
BSize max = layout->MaxSize();
SetSizeLimits(min.Width(), max.Width(), min.Height(), max.Height());
}
};
int
main()
{
BApplication app("application/x-vnd.haiku.ALMOperator");
OperatorWindow* window = new OperatorWindow(BRect(100, 100, 300, 300));
window->Show();
app.Run();
return 0;
}