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
This commit is contained in:
Axel Dörfler
2005-06-29 00:23:12 +00:00
parent ef79db4f7c
commit f269841c3b
2 changed files with 185 additions and 1 deletions
+7 -1
View File
@@ -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 ;
+178
View File
@@ -0,0 +1,178 @@
/*
* Copyright 2005, Axel Dörfler, [email protected]. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#include <Application.h>
#include <Window.h>
#include <Slider.h>
#include <StringView.h>
#include <stdio.h>
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;
}