1/* 2 * Copyright 2006, Haiku Inc. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Axel D��rfler, axeld@pinc-software.de 7 */ 8 9 10#include <Application.h> 11#include <Bitmap.h> 12#include <Cursor.h> 13#include <Debug.h> 14#include <String.h> 15#include <View.h> 16#include <Window.h> 17 18#include <algorithm> 19#include <ctype.h> 20#include <stdio.h> 21#include <stdlib.h> 22 23#include "bitmap.h" 24 25 26class View : public BView { 27 public: 28 View(BRect rect); 29 virtual ~View(); 30 31 virtual void AttachedToWindow(); 32}; 33 34 35bool gHide = false; 36 37 38View::View(BRect rect) 39 : BView(rect, "desktop view", B_FOLLOW_ALL, B_WILL_DRAW) 40{ 41 SetViewColor(0, 150, 0); 42} 43 44 45View::~View() 46{ 47} 48 49 50void 51View::AttachedToWindow() 52{ 53} 54 55 56// #pragma mark - 57 58 59class Window : public BWindow { 60 public: 61 Window(); 62 virtual ~Window(); 63 64 virtual bool QuitRequested(); 65}; 66 67 68Window::Window() 69 : BWindow(BRect(100, 100, 400, 400), "Cursor-Test", 70 B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS) 71{ 72 BView *view = new View(Bounds().InsetByCopy(30, 30)); 73 AddChild(view); 74} 75 76 77Window::~Window() 78{ 79} 80 81 82bool 83Window::QuitRequested() 84{ 85 be_app->PostMessage(B_QUIT_REQUESTED); 86 return true; 87} 88 89 90// #pragma mark - 91 92 93class Application : public BApplication { 94 public: 95 Application(); 96 97 virtual void ReadyToRun(); 98}; 99 100 101Application::Application() 102 : BApplication("application/x-vnd.haiku-cursor_test") 103{ 104} 105 106 107void 108Application::ReadyToRun() 109{ 110 Window *window = new Window(); 111 window->Show(); 112 113 if (gHide) 114 HideCursor(); 115 else { 116 BBitmap* bitmap = new BBitmap( 117 BRect(0, 0, kBitmapWidth - 1, kBitmapHeight - 1), 0,kBitmapFormat); 118 bitmap->ImportBits(kBitmapBits, sizeof(kBitmapBits), kBitmapWidth * 4, 119 0, kBitmapFormat); 120 BPoint hotspot(8, 8); 121 BCursor cursor(bitmap, hotspot); 122 SetCursor(&cursor); 123 } 124} 125 126 127// #pragma mark - 128 129 130int 131main(int argc, char **argv) 132{ 133 if (argc > 1 && !strcmp(argv[1], "hide")) 134 gHide = true; 135 136 Application app; 137 138 app.Run(); 139 return 0; 140} 141