diff --git a/src/tests/kits/interface/look/Look.cpp b/src/tests/kits/interface/look/Look.cpp index e9acaa4994..530be79f96 100644 --- a/src/tests/kits/interface/look/Look.cpp +++ b/src/tests/kits/interface/look/Look.cpp @@ -13,13 +13,16 @@ #include #include #include +#include #include #include #include +#include #include #include #include #include +#include #include #include #include @@ -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(layout, row); add_controls(layout, row); add_controls(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();