From f269841c3b852dbec4a9142197cae87a87f1e8f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 29 Jun 2005 00:23:12 +0000 Subject: [PATCH] Added a BSlider test application - our BSlider class needs definitely some work :-) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13340 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/tests/kits/interface/Jamfile | 8 +- src/tests/kits/interface/SliderTest.cpp | 178 ++++++++++++++++++++++++ 2 files changed, 185 insertions(+), 1 deletion(-) create mode 100644 src/tests/kits/interface/SliderTest.cpp diff --git a/src/tests/kits/interface/Jamfile b/src/tests/kits/interface/Jamfile index a7205d1829..4359e3e4ad 100644 --- a/src/tests/kits/interface/Jamfile +++ b/src/tests/kits/interface/Jamfile @@ -101,8 +101,14 @@ SimpleTest PulseTest : : be ; +SimpleTest SliderTest : + SliderTest.cpp + Slider.cpp + : be + ; + SEARCH on [ FGristFiles - ScrollView.cpp CheckBox.cpp ChannelSlider.cpp ChannelControl.cpp + ScrollView.cpp CheckBox.cpp ChannelSlider.cpp ChannelControl.cpp Slider.cpp ] = [ FDirName $(OBOS_TOP) src kits interface ] ; SubInclude OBOS_TOP src tests kits interface bprintjob ; diff --git a/src/tests/kits/interface/SliderTest.cpp b/src/tests/kits/interface/SliderTest.cpp new file mode 100644 index 0000000000..802b426486 --- /dev/null +++ b/src/tests/kits/interface/SliderTest.cpp @@ -0,0 +1,178 @@ +/* + * Copyright 2005, Axel Dörfler, axeld@pinc-software.de. All rights reserved. + * Distributed under the terms of the MIT License. + */ + + +#include +#include +#include +#include + +#include + + +class Window : public BWindow { + public: + Window(); + + virtual bool QuitRequested(); +}; + + +void +downBy(BRect &rect, BView* view) +{ + rect.bottom = rect.top + view->Bounds().Height() + 10; + rect.OffsetBy(0, rect.Height()); +} + + +void +rightBy(BRect &rect, BView* view) +{ + rect.right = rect.left + view->Bounds().Width() + 10; + rect.OffsetBy(rect.Width(), 0); +} + + +// #pragma mark - + + +Window::Window() + : BWindow(BRect(100, 100, 600, 400), "Slider-Test", + B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS) +{ + BRect rect = Bounds(); + BView* view = new BView(rect, NULL, B_FOLLOW_ALL, B_WILL_DRAW); + view->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); + AddChild(view); + + // horizontal sliders + + rect.InsetBy(10, 10); + rect.right = rect.left + 250; + rect.bottom = rect.top + 30; + + BSlider* slider = new BSlider(rect, "Slider1", "Test 1", NULL, 0, 100); + slider->ResizeToPreferred(); + view->AddChild(slider); + + downBy(rect, slider); + + slider = new BSlider(rect, "Slider2", "Test 2", NULL, 0, 100, B_TRIANGLE_THUMB); + slider->ResizeToPreferred(); + view->AddChild(slider); + + downBy(rect, slider); + + slider = new BSlider(rect, "Slider3", "Test 3", NULL, 0, 100); + rgb_color color = { 200, 80, 80, 255 }; + slider->UseFillColor(true, &color); + slider->SetHashMarks(B_HASH_MARKS_BOTH); + slider->SetHashMarkCount(11); + slider->SetLimitLabels("0", "100"); + slider->ResizeToPreferred(); + view->AddChild(slider); + + downBy(rect, slider); + + slider = new BSlider(rect, "Slider4", "Test 4", NULL, 0, 100, B_TRIANGLE_THUMB); + slider->SetLimitLabels("0", "100"); + slider->UseFillColor(true, &color); + slider->SetBarThickness(20.0); + slider->SetHashMarks(B_HASH_MARKS_BOTH); + slider->SetHashMarkCount(21); + slider->ResizeToPreferred(); + view->AddChild(slider); + + // vertical sliders + + rect.left = rect.right + 10; + rect.right = rect.left + 30; + rect.top = 10; + rect.bottom = view->Bounds().Height() - 20; + + slider = new BSlider(rect, "Slider5", "Test 5", NULL, 0, 100); + slider->SetOrientation(B_VERTICAL); + slider->ResizeToPreferred(); + view->AddChild(slider); + + rightBy(rect, slider); + + slider = new BSlider(rect, "Slider6", "Test 6", NULL, 0, 100, B_TRIANGLE_THUMB); + slider->SetOrientation(B_VERTICAL); + slider->ResizeToPreferred(); + view->AddChild(slider); + + rightBy(rect, slider); + + slider = new BSlider(rect, "Slider7", "Test 7", NULL, 0, 100); + slider->SetOrientation(B_VERTICAL); + slider->UseFillColor(true, &color); + slider->SetHashMarks(B_HASH_MARKS_BOTH); + slider->SetBarThickness(6.0); + slider->SetHashMarkCount(11); + slider->SetLimitLabels("0", "100"); + slider->ResizeToPreferred(); + view->AddChild(slider); + + rightBy(rect, slider); + + slider = new BSlider(rect, "Slider8", "Test 8", NULL, 0, 100, B_TRIANGLE_THUMB); + slider->SetOrientation(B_VERTICAL); + slider->UseFillColor(true, &color); + slider->SetBarThickness(20.0); + slider->SetHashMarks(B_HASH_MARKS_BOTH); + slider->SetHashMarkCount(21); + slider->SetLimitLabels("0", "100"); + slider->ResizeToPreferred(); + view->AddChild(slider); +} + + +bool +Window::QuitRequested() +{ + be_app->PostMessage(B_QUIT_REQUESTED); + return true; +} + + +// #pragma mark - + + +class Application : public BApplication { + public: + Application(); + + virtual void ReadyToRun(void); +}; + + +Application::Application() + : BApplication("application/x-vnd.haiku-test") +{ +} + + +void +Application::ReadyToRun(void) +{ + BWindow *window = new Window(); + window->Show(); +} + + +// #pragma mark - + + +int +main(int argc, char **argv) +{ + Application app; + + app.Run(); + return 0; +} +