1/*
2 * Copyright 2005, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
3 * Copyright 2014 Haiku, Inc.
4 * Distributed under the terms of the MIT License.
5 */
6
7
8#include <Application.h>
9#include <ListView.h>
10#include <StringItem.h>
11#include <Window.h>
12
13#include <stdio.h>
14
15
16class ColorfulItem: public BStringItem
17{
18	public:
19						ColorfulItem(const char* label, rgb_color color);
20		virtual	void	DrawItem(BView* owner, BRect frame,
21							bool complete = false);
22
23	private:
24		rgb_color fColor;
25};
26
27
28ColorfulItem::ColorfulItem(const char* label, rgb_color color)
29	:
30	BStringItem(label),
31	fColor(color)
32{
33}
34
35
36void
37ColorfulItem::DrawItem(BView* owner, BRect frame, bool complete)
38{
39	owner->SetHighColor(fColor);
40	BStringItem::DrawItem(owner, frame, complete);
41}
42
43
44//	#pragma mark -
45
46
47class Window : public BWindow {
48	public:
49		Window();
50
51		virtual bool QuitRequested();
52};
53
54
55Window::Window()
56	: BWindow(BRect(100, 100, 520, 430), "ListView-Test",
57			B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS)
58{
59	BRect rect(20, 10, 200, 300);
60	BListView *listView = new BListView(rect, "list");
61
62	listView->AddItem(new BStringItem("normal item"));
63	listView->AddItem(new ColorfulItem("green item", make_color(0, 255, 0)));
64	listView->AddItem(new BStringItem("normal item"));
65
66	AddChild(listView);
67}
68
69
70bool
71Window::QuitRequested()
72{
73	be_app->PostMessage(B_QUIT_REQUESTED);
74	return true;
75}
76
77
78//	#pragma mark -
79
80
81class Application : public BApplication {
82	public:
83		Application();
84
85		virtual void ReadyToRun(void);
86};
87
88
89Application::Application()
90	: BApplication("application/x-vnd.obos-test")
91{
92}
93
94
95void
96Application::ReadyToRun(void)
97{
98	BWindow *window = new Window();
99	window->Show();
100}
101
102
103//	#pragma mark -
104
105
106int
107main(int argc, char **argv)
108{
109	Application app;
110
111	app.Run();
112	return 0;
113}
114
115