Get a lot more views and controls on display.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29119 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2009-02-01 22:15:16 +00:00
parent 6eb09230ba
commit bb17b6b92f
+140 -5
View File
@@ -13,13 +13,16 @@
#include <GroupLayoutBuilder.h>
#include <ListView.h>
#include <MenuBar.h>
#include <MenuField.h>
#include <MenuItem.h>
#include <OptionControl.h>
#include <OutlineListView.h>
#include <PopUpMenu.h>
#include <RadioButton.h>
#include <ScrollBar.h>
#include <ScrollView.h>
#include <Slider.h>
#include <SpaceLayoutItem.h>
#include <StatusBar.h>
#include <StringView.h>
#include <TabView.h>
@@ -46,6 +49,75 @@ add_controls(BGridLayout* layout, int32& row)
}
void
add_menu_fields(BGridLayout* layout, int32& row)
{
BPopUpMenu* menu1 = new BPopUpMenu("Selection");
BMenuField* control1 = new BMenuField("Enabled", menu1, NULL);
BPopUpMenu* menu2 = new BPopUpMenu("Selection");
BMenuField* control2 = new BMenuField("Disabled", menu2, NULL);
control2->SetEnabled(false);
layout->AddView(BGroupLayoutBuilder(B_HORIZONTAL, 5)
.Add(control1)
.Add(control2), 0, row, 3);
row++;
}
void
add_text_controls(BGridLayout* layout, int32& row)
{
BTextControl* control1 = new BTextControl("Enabled", "Some Text", NULL);
BTextControl* control2 = new BTextControl("Disabled", "More Text", NULL);
control2->SetEnabled(false);
layout->AddView(BGroupLayoutBuilder(B_HORIZONTAL, 5)
.Add(control1)
.Add(control2), 0, row, 3);
row++;
}
void
add_sliders(BGridLayout* layout, int32& row)
{
BSlider* control1 = new BSlider("slider 1", "Enabled", NULL, 1, 100,
B_HORIZONTAL);
BSlider* control2 = new BSlider("slider 2", "Disabled", NULL, 1, 100,
B_HORIZONTAL);
control2->SetEnabled(false);
control1->SetHashMarkCount(10);
control1->SetHashMarks(B_HASH_MARKS_BOTTOM);
control2->SetHashMarkCount(10);
control2->SetHashMarks(B_HASH_MARKS_BOTTOM);
layout->AddView(BGroupLayoutBuilder(B_HORIZONTAL, 5)
.Add(control1)
.Add(control2), 0, row, 3);
row++;
control1 = new BSlider("slider 3", "Enabled", NULL, 1, 100,
B_HORIZONTAL, B_TRIANGLE_THUMB);
control2 = new BSlider("slider 4", "Disabled", NULL, 1, 100,
B_HORIZONTAL, B_TRIANGLE_THUMB);
control2->SetEnabled(false);
control1->SetLimitLabels("Min", "Max");
control2->SetLimitLabels("1", "100");
layout->AddView(BGroupLayoutBuilder(B_HORIZONTAL, 5)
.Add(control1)
.Add(control2), 0, row, 3);
row++;
}
int
main(int argc, char** argv)
{
@@ -60,17 +132,80 @@ main(int argc, char** argv)
// create some controls
BGridView* view = new BGridView(5.0f, 5.0f);
BGridLayout* layout = view->GridLayout();
layout->SetInsets(5, 5, 5, 5);
view->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED));
BListView* listView = new BListView();
listView->AddItem(new BStringItem("List Item 1"));
listView->AddItem(new BStringItem("List Item 2"));
BScrollView* scrollView = new BScrollView("scroller", listView, 0,
true, true);
scrollView->SetExplicitMinSize(BSize(300, 80));
BGridView* controls = new BGridView(5.0f, 5.0f);
BGridLayout* layout = controls->GridLayout();
controls->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED));
int32 row = 0;
add_controls<BButton>(layout, row);
add_controls<BCheckBox>(layout, row);
add_controls<BRadioButton>(layout, row);
add_menu_fields(layout, row);
add_text_controls(layout, row);
add_sliders(layout, row);
window->AddChild(view);
BStatusBar* statusBar = new BStatusBar("status bar", "Status",
"Completed");
statusBar->SetMaxValue(100);
statusBar->SetTo(40);
statusBar->SetBarHeight(12);
layout->AddView(statusBar, 0, row, 3);
row++;
BColorControl* colorControl = new BColorControl(B_ORIGIN, B_CELLS_32x8,
8.0f, "color control");
layout->AddView(colorControl, 0, row, 3);
BTabView* tabView = new BTabView("tab view", B_WIDTH_FROM_WIDEST);
BView* content = BGroupLayoutBuilder(B_VERTICAL, 5)
.Add(scrollView)
.Add(controls)
.SetInsets(5, 5, 5, 5);
content->SetName("Tab 1");
tabView->AddTab(content);
tabView->AddTab(new BView("Tab 2", 0));
tabView->AddTab(new BView("Tab 3", 0));
BMenuBar* menuBar = new BMenuBar("menu bar");
BMenu* menu = new BMenu("File");
BMenuItem* item = new BMenuItem("Quit", new BMessage(B_QUIT_REQUESTED));
menu->AddItem(item);
menuBar->AddItem(menu);
menu = new BMenu("Edit");
menu->SetEnabled(false);
menu->AddItem(new BMenuItem("Cut", NULL));
menu->AddItem(new BMenuItem("Copy", NULL));
menu->AddSeparatorItem();
menu->AddItem(new BMenuItem("Past", NULL));
menuBar->AddItem(menu);
BButton* okButton = new BButton("Ok", new BMessage(B_QUIT_REQUESTED));
window->AddChild(BGroupLayoutBuilder(B_VERTICAL)
.Add(menuBar)
.Add(BGroupLayoutBuilder(B_VERTICAL, 5)
.Add(tabView)
.Add(BGroupLayoutBuilder(B_HORIZONTAL, 5)
.Add(new BButton("Revert", NULL))
.Add(BSpaceLayoutItem::CreateGlue())
.Add(new BButton("Cancel", NULL))
.Add(okButton)
)
.SetInsets(5, 5, 5, 5)
)
);
window->SetDefaultButton(okButton);
window->Show();
app.Run();