From 6d9be94032fd4c250eb94cee8b02d6fc9effb6c3 Mon Sep 17 00:00:00 2001 From: David Ludwig Date: Sun, 28 Oct 2012 20:47:33 -0400 Subject: [PATCH] WinRT: added mouse button event support --- src/video/windowsrt/SDL_WinRTApp.cpp | 14 +++++++++++++- src/video/windowsrt/SDL_WinRTApp.h | 1 + src/video/windowsrt/SDL_winrtvideo.cpp | 4 ++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/video/windowsrt/SDL_WinRTApp.cpp b/src/video/windowsrt/SDL_WinRTApp.cpp index 662d72281..789bfd0f3 100644 --- a/src/video/windowsrt/SDL_WinRTApp.cpp +++ b/src/video/windowsrt/SDL_WinRTApp.cpp @@ -5,6 +5,8 @@ extern "C" { #include "SDL_assert.h" #include "SDL_stdinc.h" #include "../SDL_sysvideo.h" +#include "../../events/SDL_mouse_c.h" +#include "SDL_events.h" } // HACK, DLudwig: The C-style main() will get loaded via the app's @@ -68,6 +70,9 @@ void SDL_WinRTApp::SetWindow(CoreWindow^ window) window->PointerPressed += ref new TypedEventHandler(this, &SDL_WinRTApp::OnPointerPressed); + window->PointerReleased += + ref new TypedEventHandler(this, &SDL_WinRTApp::OnPointerReleased); + window->PointerMoved += ref new TypedEventHandler(this, &SDL_WinRTApp::OnPointerMoved); @@ -129,7 +134,14 @@ void SDL_WinRTApp::OnWindowClosed(CoreWindow^ sender, CoreWindowEventArgs^ args) void SDL_WinRTApp::OnPointerPressed(CoreWindow^ sender, PointerEventArgs^ args) { - // Insert your code here. + // TODO, WinRT: consider attaching the SDL_Window to the mouse down button event + SDL_SendMouseButton(NULL, SDL_PRESSED, SDL_BUTTON_LEFT); +} + +void SDL_WinRTApp::OnPointerReleased(CoreWindow^ sender, PointerEventArgs^ args) +{ + // TODO, WinRT: consider attaching the SDL_Window to the mouse up button event + SDL_SendMouseButton(NULL, SDL_RELEASED, SDL_BUTTON_LEFT); } void SDL_WinRTApp::OnPointerMoved(CoreWindow^ sender, PointerEventArgs^ args) diff --git a/src/video/windowsrt/SDL_WinRTApp.h b/src/video/windowsrt/SDL_WinRTApp.h index a6358822e..d10f0e856 100644 --- a/src/video/windowsrt/SDL_WinRTApp.h +++ b/src/video/windowsrt/SDL_WinRTApp.h @@ -33,6 +33,7 @@ ref class SDL_WinRTApp sealed : public Windows::ApplicationModel::Core::IFramewo void OnWindowClosed(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::CoreWindowEventArgs^ args); void OnVisibilityChanged(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::VisibilityChangedEventArgs^ args); void OnPointerPressed(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::PointerEventArgs^ args); + void OnPointerReleased(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::PointerEventArgs^ args); void OnPointerMoved(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::PointerEventArgs^ args); private: diff --git a/src/video/windowsrt/SDL_winrtvideo.cpp b/src/video/windowsrt/SDL_winrtvideo.cpp index f084cbfd5..92aacadb6 100644 --- a/src/video/windowsrt/SDL_winrtvideo.cpp +++ b/src/video/windowsrt/SDL_winrtvideo.cpp @@ -41,6 +41,8 @@ extern "C" { #include "SDL_winrtevents_c.h" #include "SDL_winrtframebuffer_c.h" +extern SDL_WinRTApp ^ SDL_WinRTGlobalApp; + #define WINRTVID_DRIVER_NAME "dummy" /* Initialization/Query functions */ @@ -96,8 +98,6 @@ VideoBootStrap WINRT_bootstrap = { WINRT_Available, WINRT_CreateDevice }; -extern SDL_WinRTApp ^ SDL_WinRTGlobalApp; - int WINRT_VideoInit(_THIS) {