#include <Application.h>#include <View.h>#include <Window.h>#include <stdio.h>class view : public BView {public:view(BRect rect): BView(rect, "test view", B_FOLLOW_ALL_SIDES, B_WILL_DRAW){}virtual voidMouseDown(BPoint where){printf("Mouse DOWN !!! %" B_PRIdBIGTIME "\n", system_time());BPoint mouseWhere;uint32 buttons;do {GetMouse(&mouseWhere, &buttons);snooze(10000);} while (buttons != 0);printf("Mouse UP !!! %" B_PRIdBIGTIME "\n", system_time());}};class window : public BWindow {public:window() :BWindow(BRect(100, 100, 400, 300), "test window", B_DOCUMENT_WINDOW, B_QUIT_ON_WINDOW_CLOSE){AddChild(new view(Bounds()));}virtual voidDispatchMessage(BMessage *message, BHandler *handler){bigtime_t when;message->FindInt64("when", &when);switch (message->what) {case B_MOUSE_MOVED:printf("B_MOUSE_MOVED: %" B_PRIdBIGTIME "\n", when);break;case B_MOUSE_UP:printf("B_MOUSE_UP: %" B_PRIdBIGTIME "\n", when);break;case B_MOUSE_DOWN:printf("B_MOUSE_DOWN: %" B_PRIdBIGTIME "\n", when);break;default:break;}BWindow::DispatchMessage(message, handler);}};intmain(){BApplication app("application/x-vnd.getmousetest");(new window())->Show();app.Run();}