xref: /haiku/src/tests/libs/alm/ThreeButtons.cpp (revision 25a7b01d15612846f332751841da3579db313082)
1 /*
2  * Copyright 2010, Clemens Zeidler <haiku@clemens-zeidler.de>
3  * Distributed under the terms of the MIT License.
4  */
5 
6 #include <stdio.h>
7 
8 #include <Application.h>
9 #include <Button.h>
10 #include <List.h>
11 #include <Window.h>
12 
13 // include this for ALM
14 #include "ALMLayout.h"
15 #include "ALMLayoutBuilder.h"
16 
17 
18 class ThreeButtonsWindow : public BWindow {
19 public:
ThreeButtonsWindow(BRect frame)20 	ThreeButtonsWindow(BRect frame)
21 		:
22 		BWindow(frame, "ALM Three Buttons", B_TITLED_WINDOW,
23 			B_QUIT_ON_WINDOW_CLOSE)
24 	{
25 		BButton* button1 = new BButton("A");
26 		BButton* button2 = new BButton("B");
27 		BButton* button3 = new BButton("C");
28 
29 		button1->SetExplicitAlignment(BAlignment(B_ALIGN_USE_FULL_WIDTH,
30 			B_ALIGN_USE_FULL_HEIGHT));
31 		button1->SetExplicitMaxSize(BSize(500, 50));
32 
33 		button2->SetExplicitAlignment(BAlignment(B_ALIGN_USE_FULL_WIDTH,
34 			B_ALIGN_USE_FULL_HEIGHT));
35 		button2->SetExplicitMaxSize(BSize(500, 500));
36 
37 		button3->SetExplicitAlignment(BAlignment(B_ALIGN_USE_FULL_WIDTH,
38 			B_ALIGN_USE_FULL_HEIGHT));
39 		button3->SetExplicitMaxSize(BSize(500, 500));
40 
41 		fLayout = new BALMLayout(0, 0);
42 		BALM::BALMLayoutBuilder(this, fLayout)
43 			.Add(button1, fLayout->Left(), fLayout->Top(), fLayout->Right())
44 			.StartingAt(button1)
45 				.AddBelow(button2)
46 				.AddBelow(button3, fLayout->Bottom());
47 
48 		// test size limits
49 		BSize min = fLayout->MinSize();
50 		BSize max = fLayout->MaxSize();
51 		SetSizeLimits(min.Width(), max.Width(), min.Height(), max.Height());
52 	}
53 
54 private:
55 	BALMLayout* fLayout;
56 
57 };
58 
59 
60 int
main()61 main()
62 {
63 	BApplication app("application/x-vnd.haiku.ThreeButtons");
64 
65 	BRect frameRect;
66 	frameRect.Set(100, 100, 600, 300);
67 	ThreeButtonsWindow* window = new ThreeButtonsWindow(frameRect);
68 	window->Show();
69 
70 	app.Run();
71 	return 0;
72 }
73