From 335b47697cec4e1cfcef8f102531b2da2120861c Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Tue, 17 May 2005 13:47:30 +0000 Subject: [PATCH] Added a small test for GetMouse(). Looks like that, when called with "true" as third parameter, it "eats" all the input messages like B_MOUSE_UP/B_MOUSE_MOVED. That means our implementation isn't correct. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12699 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/tests/kits/interface/GetMouseTest.cpp | 69 +++++++++++++++++++++++ src/tests/kits/interface/Jamfile | 5 ++ 2 files changed, 74 insertions(+) create mode 100644 src/tests/kits/interface/GetMouseTest.cpp diff --git a/src/tests/kits/interface/GetMouseTest.cpp b/src/tests/kits/interface/GetMouseTest.cpp new file mode 100644 index 0000000000..db7ab3d1a6 --- /dev/null +++ b/src/tests/kits/interface/GetMouseTest.cpp @@ -0,0 +1,69 @@ +#include +#include +#include + +#include + +class view : public BView { +public: + view(BRect rect) + : BView(rect, "test view", B_FOLLOW_ALL_SIDES, B_WILL_DRAW) + { + } + + virtual void + MouseDown(BPoint where) + { + printf("Mouse DOWN !!! %lld\n", system_time()); + + BPoint mouseWhere; + ulong buttons; + do { + GetMouse(&mouseWhere, &buttons); + snooze(10000); + } while (buttons != 0); + + printf("Mouse UP !!! %lld\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 void + DispatchMessage(BMessage *message, BHandler *handler) + { + bigtime_t when; + message->FindInt64("when", &when); + switch (message->what) { + case B_MOUSE_MOVED: + printf("B_MOUSE_MOVED: %lld\n", when); + break; + case B_MOUSE_UP: + printf("B_MOUSE_UP: %lld\n", when); + break; + case B_MOUSE_DOWN: + printf("B_MOUSE_DOWN: %lld\n", when); + break; + default: + break; + } + BWindow::DispatchMessage(message, handler); + } +}; + +int +main() +{ + BApplication app("application/x-vnd.getmousetest"); + + (new window())->Show(); + + app.Run(); +} diff --git a/src/tests/kits/interface/Jamfile b/src/tests/kits/interface/Jamfile index cc61c3eacc..c87c3d9c62 100644 --- a/src/tests/kits/interface/Jamfile +++ b/src/tests/kits/interface/Jamfile @@ -91,6 +91,11 @@ SimpleTest ScreenTest : : be ; +SimpleTest GetMouseTest : + GetMouseTest.cpp + : be + ; + SEARCH on [ FGristFiles ScrollView.cpp CheckBox.cpp ChannelSlider.cpp ChannelControl.cpp ] = [ FDirName $(OBOS_TOP) src kits interface ] ;