* Copyright 2005, Axel DΓΆrfler, axeld@pinc-software.de. 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);
}
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->SetViewUIColor(B_PANEL_BACKGROUND_COLOR);
AddChild(view);
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_BOTTOM);
slider->SetHashMarkCount(11);
slider->SetLimitLabels("0", "100");
slider->SetBarThickness(12.0);
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);
downBy(rect, slider);
rect.right = rect.left + 100;
rect.bottom = rect.top + 100;
slider = new BSlider(rect, "SliderA", "Test A", NULL, 0, 100);
slider->SetLimitLabels("0", "100");
slider->UseFillColor(true, &color);
slider->SetHashMarks(B_HASH_MARKS_BOTH);
slider->SetHashMarkCount(5);
view->AddChild(slider);
rect.left = 270;
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->SetBarThickness(12.0);
slider->SetHashMarks(B_HASH_MARKS_RIGHT);
slider->SetHashMarkCount(5);
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;
}
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();
}
int
main(int argc, char **argv)
{
Application app;
app.Run();
return 0;
}