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