Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "stdafx.h" | 5 #include "stdafx.h" |
| 6 #include <corewindow.h> | 6 #include <corewindow.h> |
| 7 | 7 |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "ui/gfx/win/msg_util.h" | |
| 9 | 10 |
| 10 EXTERN_C IMAGE_DOS_HEADER __ImageBase; | 11 EXTERN_C IMAGE_DOS_HEADER __ImageBase; |
| 11 int g_window_count = 0; | 12 int g_window_count = 0; |
| 12 | 13 |
| 13 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, | 14 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, |
| 14 WPARAM wparam, LPARAM lparam) { | 15 WPARAM wparam, LPARAM lparam) { |
| 15 PAINTSTRUCT ps; | 16 PAINTSTRUCT ps; |
| 16 HDC hdc; | 17 HDC hdc; |
| 17 switch (message) { | 18 switch (message) { |
| 18 case WM_CREATE: | 19 case WM_CREATE: |
| 19 ++g_window_count; | 20 ++g_window_count; |
| 20 break; | 21 break; |
| 21 case WM_PAINT: | 22 case WM_PAINT: |
| 22 hdc = ::BeginPaint(hwnd, &ps); | 23 hdc = ::BeginPaint(hwnd, &ps); |
| 23 ::EndPaint(hwnd, &ps); | 24 ::EndPaint(hwnd, &ps); |
| 24 break; | 25 break; |
| 25 case WM_LBUTTONUP: | |
| 26 // TODO(cpu): Remove this test code. | |
| 27 ::InvalidateRect(hwnd, NULL, TRUE); | |
| 28 break; | |
| 29 case WM_CLOSE: | 26 case WM_CLOSE: |
| 30 ::DestroyWindow(hwnd); | 27 ::DestroyWindow(hwnd); |
| 31 break; | 28 break; |
| 32 case WM_DESTROY: | 29 case WM_DESTROY: |
| 33 --g_window_count; | 30 --g_window_count; |
| 34 if (!g_window_count) | 31 if (!g_window_count) |
| 35 ::PostQuitMessage(0); | 32 ::PostQuitMessage(0); |
| 36 break; | 33 break; |
| 37 default: | 34 default: |
| 38 return ::DefWindowProc(hwnd, message, wparam, lparam); | 35 return ::DefWindowProc(hwnd, message, wparam, lparam); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 107 winui::Core::TouchHitTestingEventArgs*> TouchHitTestHandler; | 104 winui::Core::TouchHitTestingEventArgs*> TouchHitTestHandler; |
| 108 | 105 |
| 109 typedef winfoundtn::ITypedEventHandler< | 106 typedef winfoundtn::ITypedEventHandler< |
| 110 winui::Core::CoreWindow*, | 107 winui::Core::CoreWindow*, |
| 111 winui::Core::VisibilityChangedEventArgs*> VisibilityChangedHandler; | 108 winui::Core::VisibilityChangedEventArgs*> VisibilityChangedHandler; |
| 112 | 109 |
| 113 typedef winfoundtn::ITypedEventHandler< | 110 typedef winfoundtn::ITypedEventHandler< |
| 114 winui::Core::CoreDispatcher*, | 111 winui::Core::CoreDispatcher*, |
| 115 winui::Core::AcceleratorKeyEventArgs*> AcceleratorKeyEventHandler; | 112 winui::Core::AcceleratorKeyEventArgs*> AcceleratorKeyEventHandler; |
| 116 | 113 |
| 114 // This interface is implemented by classes which handle mouse and keyboard | |
| 115 // input. | |
| 116 class InputHandler { | |
| 117 public: | |
| 118 InputHandler() {} | |
| 119 virtual ~InputHandler() {} | |
| 120 | |
| 121 virtual bool HandleKeyboardMessage(const MSG& msg) = 0; | |
| 122 virtual bool HandleMouseMessage(const MSG& msg) = 0; | |
| 123 | |
| 124 private: | |
| 125 DISALLOW_COPY_AND_ASSIGN(InputHandler); | |
| 126 }; | |
| 127 | |
| 128 // This class implements the winrt interfaces corresponding to mouse input. | |
| 129 class MouseEvent : public mswr::RuntimeClass< | |
| 130 winui::Core::IPointerEventArgs, | |
| 131 winui::Input::IPointerPoint, | |
| 132 winui::Input::IPointerPointProperties, | |
| 133 windevs::Input::IPointerDevice> { | |
| 134 public: | |
| 135 MouseEvent(const MSG& msg) | |
| 136 : msg_(msg) { | |
| 137 } | |
| 138 | |
| 139 // IPointerEventArgs implementation. | |
| 140 virtual HRESULT STDMETHODCALLTYPE get_CurrentPoint( | |
| 141 winui::Input::IPointerPoint** point) { | |
| 142 return QueryInterface(winui::Input::IID_IPointerPoint, | |
| 143 reinterpret_cast<void**>(point)); | |
| 144 } | |
| 145 | |
| 146 virtual HRESULT STDMETHODCALLTYPE get_KeyModifiers( | |
| 147 winsys::VirtualKeyModifiers* modifiers) { | |
| 148 return E_NOTIMPL; | |
| 149 } | |
| 150 | |
| 151 virtual HRESULT STDMETHODCALLTYPE GetIntermediatePoints( | |
| 152 __FIVector_1_Windows__CUI__CInput__CPointerPoint** points) { | |
|
cpu_(ooo_6.6-7.5)
2014/05/14 00:49:38
use the c++ type instead of the crazy C type.
ananta
2014/05/14 00:59:13
Done.
| |
| 153 return E_NOTIMPL; | |
| 154 } | |
| 155 | |
| 156 // IPointerPoint implementation. | |
| 157 virtual HRESULT STDMETHODCALLTYPE get_PointerDevice( | |
| 158 windevs::Input::IPointerDevice** pointer_device) { | |
| 159 return QueryInterface(windevs::Input::IID_IPointerDevice, | |
| 160 reinterpret_cast<void**>(pointer_device)); | |
| 161 } | |
| 162 | |
| 163 virtual HRESULT STDMETHODCALLTYPE get_Position(winfoundtn::Point* position) { | |
| 164 position->X = CR_GET_X_LPARAM(msg_.lParam); | |
| 165 position->Y = CR_GET_Y_LPARAM(msg_.lParam); | |
| 166 return S_OK; | |
| 167 } | |
| 168 | |
| 169 virtual HRESULT STDMETHODCALLTYPE get_PointerId(uint32* pointer_id) { | |
| 170 // TODO(ananta) | |
| 171 // Implement this properly. | |
| 172 *pointer_id = 1; | |
| 173 return S_OK; | |
| 174 } | |
| 175 | |
| 176 virtual HRESULT STDMETHODCALLTYPE get_Timestamp(uint64* timestamp) { | |
| 177 *timestamp = msg_.time; | |
| 178 return S_OK; | |
| 179 } | |
| 180 | |
| 181 virtual HRESULT STDMETHODCALLTYPE get_Properties( | |
| 182 winui::Input::IPointerPointProperties** properties) { | |
| 183 return QueryInterface(winui::Input::IID_IPointerPointProperties, | |
| 184 reinterpret_cast<void**>(properties)); | |
| 185 } | |
| 186 | |
| 187 virtual HRESULT STDMETHODCALLTYPE get_RawPosition( | |
| 188 winfoundtn::Point* position) { | |
| 189 return E_NOTIMPL; | |
| 190 } | |
| 191 | |
| 192 virtual HRESULT STDMETHODCALLTYPE get_FrameId(uint32* frame_id) { | |
| 193 return E_NOTIMPL; | |
| 194 } | |
| 195 | |
| 196 virtual HRESULT STDMETHODCALLTYPE get_IsInContact(boolean* in_contact) { | |
| 197 return E_NOTIMPL; | |
| 198 } | |
| 199 | |
| 200 // IPointerPointProperties implementation. | |
| 201 virtual HRESULT STDMETHODCALLTYPE get_PointerUpdateKind( | |
| 202 winui::Input::PointerUpdateKind* update_kind) { | |
| 203 // TODO(ananta) | |
| 204 // There is no WM_POINTERUPDATE equivalent on Windows 7. Look into | |
| 205 // equivalents. | |
| 206 if (msg_.message == WM_LBUTTONDOWN) { | |
| 207 *update_kind = winui::Input::PointerUpdateKind_LeftButtonPressed; | |
| 208 } else if (msg_.message == WM_RBUTTONDOWN) { | |
| 209 *update_kind = winui::Input::PointerUpdateKind_RightButtonPressed; | |
| 210 } else if (msg_.message == WM_MBUTTONDOWN) { | |
| 211 *update_kind = winui::Input::PointerUpdateKind_MiddleButtonPressed; | |
| 212 } else if (msg_.message == WM_LBUTTONUP) { | |
| 213 *update_kind = winui::Input::PointerUpdateKind_LeftButtonReleased; | |
| 214 } else if (msg_.message == WM_RBUTTONUP) { | |
| 215 *update_kind = winui::Input::PointerUpdateKind_RightButtonReleased; | |
| 216 } else if (msg_.message == WM_MBUTTONUP) { | |
| 217 *update_kind = winui::Input::PointerUpdateKind_MiddleButtonReleased; | |
| 218 } | |
| 219 return S_OK; | |
| 220 } | |
| 221 | |
| 222 virtual HRESULT STDMETHODCALLTYPE get_IsLeftButtonPressed( | |
| 223 boolean* left_button_pressed) { | |
| 224 *left_button_pressed = msg_.wParam & MK_LBUTTON ? true : false; | |
| 225 return S_OK; | |
| 226 } | |
| 227 | |
| 228 virtual HRESULT STDMETHODCALLTYPE get_IsRightButtonPressed( | |
| 229 boolean* right_button_pressed) { | |
| 230 *right_button_pressed = msg_.wParam & MK_RBUTTON ? true : false; | |
| 231 return S_OK; | |
| 232 } | |
| 233 | |
| 234 virtual HRESULT STDMETHODCALLTYPE get_IsMiddleButtonPressed( | |
| 235 boolean* middle_button_pressed) { | |
| 236 *middle_button_pressed = msg_.wParam & MK_MBUTTON ? true : false; | |
| 237 return S_OK; | |
| 238 } | |
| 239 | |
| 240 virtual HRESULT STDMETHODCALLTYPE get_IsHorizontalMouseWheel( | |
| 241 boolean* is_horizontal_mouse_wheel) { | |
| 242 *is_horizontal_mouse_wheel = | |
| 243 (msg_.message == WM_MOUSEHWHEEL) ? true : false; | |
| 244 return S_OK; | |
| 245 } | |
| 246 | |
| 247 virtual HRESULT STDMETHODCALLTYPE get_MouseWheelDelta(int* delta) { | |
| 248 if (msg_.message == WM_MOUSEWHEEL || msg_.message == WM_MOUSEHWHEEL) { | |
| 249 *delta = GET_WHEEL_DELTA_WPARAM(msg_.wParam); | |
| 250 return S_OK; | |
| 251 } else { | |
| 252 return S_FALSE; | |
| 253 } | |
| 254 } | |
| 255 | |
| 256 virtual HRESULT STDMETHODCALLTYPE get_Pressure(float* pressure) { | |
| 257 return E_NOTIMPL; | |
| 258 } | |
| 259 | |
| 260 virtual HRESULT STDMETHODCALLTYPE get_IsInverted(boolean* inverted) { | |
| 261 return E_NOTIMPL; | |
| 262 } | |
| 263 | |
| 264 virtual HRESULT STDMETHODCALLTYPE get_IsEraser(boolean* is_eraser) { | |
| 265 return E_NOTIMPL; | |
| 266 } | |
| 267 | |
| 268 virtual HRESULT STDMETHODCALLTYPE get_Orientation(float* orientation) { | |
| 269 return E_NOTIMPL; | |
| 270 } | |
| 271 | |
| 272 virtual HRESULT STDMETHODCALLTYPE get_XTilt(float* x_tilt) { | |
| 273 return E_NOTIMPL; | |
| 274 } | |
| 275 | |
| 276 virtual HRESULT STDMETHODCALLTYPE get_YTilt(float* y_tilt) { | |
| 277 return E_NOTIMPL; | |
| 278 } | |
| 279 | |
| 280 virtual HRESULT STDMETHODCALLTYPE get_Twist(float* twist) { | |
| 281 return E_NOTIMPL; | |
| 282 } | |
| 283 | |
| 284 virtual HRESULT STDMETHODCALLTYPE get_ContactRect(winfoundtn::Rect* rect) { | |
| 285 return E_NOTIMPL; | |
| 286 } | |
| 287 | |
| 288 virtual HRESULT STDMETHODCALLTYPE get_ContactRectRaw(winfoundtn::Rect* rect) { | |
| 289 return E_NOTIMPL; | |
| 290 } | |
| 291 | |
| 292 virtual HRESULT STDMETHODCALLTYPE get_TouchConfidence(boolean* confidence) { | |
| 293 return E_NOTIMPL; | |
| 294 } | |
| 295 | |
| 296 virtual HRESULT STDMETHODCALLTYPE get_IsPrimary(boolean* is_primary) { | |
| 297 return E_NOTIMPL; | |
| 298 } | |
| 299 | |
| 300 virtual HRESULT STDMETHODCALLTYPE get_IsInRange(boolean* is_in_range) { | |
| 301 return E_NOTIMPL; | |
| 302 } | |
| 303 | |
| 304 virtual HRESULT STDMETHODCALLTYPE get_IsCanceled(boolean* is_canceled) { | |
| 305 return E_NOTIMPL; | |
| 306 } | |
| 307 | |
| 308 virtual HRESULT STDMETHODCALLTYPE get_IsBarrelButtonPressed( | |
| 309 boolean* is_barrel_button_pressed) { | |
| 310 return E_NOTIMPL; | |
| 311 } | |
| 312 | |
| 313 virtual HRESULT STDMETHODCALLTYPE get_IsXButton1Pressed( | |
| 314 boolean* is_xbutton1_pressed) { | |
| 315 return E_NOTIMPL; | |
| 316 } | |
| 317 | |
| 318 virtual HRESULT STDMETHODCALLTYPE get_IsXButton2Pressed( | |
| 319 boolean* is_xbutton2_pressed) { | |
| 320 return E_NOTIMPL; | |
| 321 } | |
| 322 | |
| 323 virtual HRESULT STDMETHODCALLTYPE HasUsage(uint32 usage_page, | |
| 324 uint32 usage_id, | |
| 325 boolean* has_usage) { | |
| 326 return E_NOTIMPL; | |
| 327 } | |
| 328 | |
| 329 virtual HRESULT STDMETHODCALLTYPE GetUsageValue(uint32 usage_page, | |
| 330 uint32 usage_id, | |
| 331 int32* usage_value) { | |
| 332 return E_NOTIMPL; | |
| 333 } | |
| 334 | |
| 335 // IPointerDevice implementation. | |
| 336 virtual HRESULT STDMETHODCALLTYPE get_PointerDeviceType( | |
| 337 windevs::Input::PointerDeviceType* device_type) { | |
| 338 if (msg_.message == WM_TOUCH) { | |
| 339 *device_type = windevs::Input::PointerDeviceType_Touch; | |
| 340 } else { | |
| 341 *device_type = windevs::Input::PointerDeviceType_Mouse; | |
| 342 } | |
| 343 return S_OK; | |
| 344 } | |
| 345 | |
| 346 virtual HRESULT STDMETHODCALLTYPE get_IsIntegrated(boolean* is_integrated) { | |
| 347 return E_NOTIMPL; | |
| 348 } | |
| 349 | |
| 350 virtual HRESULT STDMETHODCALLTYPE get_MaxContacts(uint32* contacts) { | |
| 351 return E_NOTIMPL; | |
| 352 } | |
| 353 | |
| 354 virtual HRESULT STDMETHODCALLTYPE get_PhysicalDeviceRect( | |
| 355 winfoundtn::Rect* rect) { | |
| 356 return E_NOTIMPL; | |
| 357 } | |
| 358 | |
| 359 virtual HRESULT STDMETHODCALLTYPE get_ScreenRect(winfoundtn::Rect* rect) { | |
| 360 return E_NOTIMPL; | |
| 361 } | |
| 362 | |
| 363 virtual HRESULT STDMETHODCALLTYPE get_SupportedUsages( | |
|
cpu_(ooo_6.6-7.5)
2014/05/14 00:49:38
same here about the type.
ananta
2014/05/14 00:59:13
Done.
| |
| 364 __FIVectorView_1_Windows__CDevices__CInput__CPointerDeviceUsage** usages) { | |
|
cpu_(ooo_6.6-7.5)
2014/05/14 00:49:38
something weird about this line.
ananta
2014/05/14 00:59:13
Done.
| |
| 365 return E_NOTIMPL; | |
| 366 } | |
| 367 | |
| 368 private: | |
| 369 MSG msg_; | |
| 370 | |
| 371 DISALLOW_COPY_AND_ASSIGN(MouseEvent); | |
| 372 }; | |
| 373 | |
| 374 // This class implements the winrt interfaces needed to support keyboard | |
| 375 // character and system character messages. | |
| 376 class KeyEvent : public mswr::RuntimeClass< | |
| 377 winui::Core::IKeyEventArgs, | |
| 378 winui::Core::ICharacterReceivedEventArgs, | |
| 379 winui::Core::IAcceleratorKeyEventArgs> { | |
| 380 public: | |
| 381 KeyEvent(const MSG& msg) | |
| 382 : msg_(msg) {} | |
| 383 | |
| 384 // IKeyEventArgs implementation. | |
| 385 virtual HRESULT STDMETHODCALLTYPE get_VirtualKey( | |
| 386 winsys::VirtualKey* virtual_key) { | |
| 387 *virtual_key = static_cast<winsys::VirtualKey>(msg_.wParam); | |
| 388 return S_OK; | |
| 389 } | |
| 390 | |
| 391 virtual HRESULT STDMETHODCALLTYPE get_KeyStatus( | |
| 392 winui::Core::CorePhysicalKeyStatus* key_status) { | |
| 393 // As per msdn documentation for the keyboard messages. | |
| 394 key_status->RepeatCount = msg_.lParam & 0x0000FFFF; | |
| 395 key_status->ScanCode = (msg_.lParam >> 16) & 0x00FF; | |
| 396 key_status->IsExtendedKey = (msg_.lParam & (1 << 24)); | |
| 397 key_status->IsMenuKeyDown = (msg_.lParam & (1 << 29)); | |
| 398 key_status->WasKeyDown = (msg_.lParam & (1 << 30)); | |
| 399 key_status->IsKeyReleased = (msg_.lParam & (1 << 31)); | |
| 400 return S_OK; | |
| 401 } | |
| 402 | |
| 403 // ICharacterReceivedEventArgs implementation. | |
| 404 virtual HRESULT STDMETHODCALLTYPE get_KeyCode(uint32* key_code) { | |
| 405 *key_code = msg_.wParam; | |
| 406 return S_OK; | |
| 407 } | |
| 408 | |
| 409 // IAcceleratorKeyEventArgs implementation. | |
| 410 virtual HRESULT STDMETHODCALLTYPE get_EventType( | |
| 411 winui::Core::CoreAcceleratorKeyEventType* event_type) { | |
| 412 if (msg_.message == WM_SYSKEYDOWN) { | |
| 413 *event_type = winui::Core::CoreAcceleratorKeyEventType_SystemKeyDown; | |
| 414 } else if (msg_.message == WM_SYSKEYUP) { | |
| 415 *event_type = winui::Core::CoreAcceleratorKeyEventType_SystemKeyUp; | |
| 416 } else if (msg_.message == WM_SYSCHAR) { | |
| 417 *event_type = winui::Core::CoreAcceleratorKeyEventType_SystemCharacter; | |
| 418 } | |
| 419 return S_OK; | |
| 420 } | |
| 421 | |
| 422 private: | |
| 423 MSG msg_; | |
| 424 }; | |
| 425 | |
| 117 // The following classes are the emulation of the WinRT system as exposed | 426 // The following classes are the emulation of the WinRT system as exposed |
| 118 // to metro applications. There is one application (ICoreApplication) which | 427 // to metro applications. There is one application (ICoreApplication) which |
| 119 // contains a series of Views (ICoreApplicationView) each one of them | 428 // contains a series of Views (ICoreApplicationView) each one of them |
| 120 // containing a CoreWindow which represents a surface that can drawn to | 429 // containing a CoreWindow which represents a surface that can drawn to |
| 121 // and that receives events. | 430 // and that receives events. |
| 122 // | 431 // |
| 123 // Here is the general dependency hierachy in terms of interfaces: | 432 // Here is the general dependency hierachy in terms of interfaces: |
| 124 // | 433 // |
| 125 // IFrameworkViewSource --> IFrameworkView | 434 // IFrameworkViewSource --> IFrameworkView |
| 126 // ^ | | 435 // ^ | |
| 127 // | | metro app | 436 // | | metro app |
| 128 // --------------------------------------------------------------------- | 437 // --------------------------------------------------------------------- |
| 129 // | | winRT system | 438 // | | winRT system |
| 130 // | v | 439 // | v |
| 131 // ICoreApplication ICoreApplicationView | 440 // ICoreApplication ICoreApplicationView |
| 132 // | | 441 // | |
| 133 // v | 442 // v |
| 134 // ICoreWindow -----> ICoreWindowInterop | 443 // ICoreWindow -----> ICoreWindowInterop |
| 135 // | | | 444 // | | |
| 136 // | | | 445 // | | |
| 137 // v V | 446 // v V |
| 138 // ICoreDispatcher <==> real HWND | 447 // ICoreDispatcher <==> real HWND |
| 139 // | 448 // |
| 140 class CoreDispacherEmulation : | 449 class CoreDispatcherEmulation : |
| 141 public mswr::RuntimeClass< | 450 public mswr::RuntimeClass< |
| 142 winui::Core::ICoreDispatcher, | 451 winui::Core::ICoreDispatcher, |
| 143 winui::Core::ICoreAcceleratorKeys> { | 452 winui::Core::ICoreAcceleratorKeys> { |
| 144 public: | 453 public: |
| 454 CoreDispatcherEmulation(InputHandler* input_handler) | |
| 455 : input_handler_(input_handler), | |
| 456 accelerator_key_event_handler_(NULL) {} | |
| 457 | |
| 145 // ICoreDispatcher implementation: | 458 // ICoreDispatcher implementation: |
| 146 virtual HRESULT STDMETHODCALLTYPE get_HasThreadAccess(boolean* value) { | 459 virtual HRESULT STDMETHODCALLTYPE get_HasThreadAccess(boolean* value) { |
| 147 return S_OK; | 460 return S_OK; |
| 148 } | 461 } |
| 149 | 462 |
| 150 virtual HRESULT STDMETHODCALLTYPE ProcessEvents( | 463 virtual HRESULT STDMETHODCALLTYPE ProcessEvents( |
| 151 winui::Core::CoreProcessEventsOption options) { | 464 winui::Core::CoreProcessEventsOption options) { |
| 152 // We don't support the other message pump modes. So we basically enter a | 465 // We don't support the other message pump modes. So we basically enter a |
| 153 // traditional message loop that we only exit a teardown. | 466 // traditional message loop that we only exit a teardown. |
| 154 if (options != winui::Core::CoreProcessEventsOption_ProcessUntilQuit) | 467 if (options != winui::Core::CoreProcessEventsOption_ProcessUntilQuit) |
| 155 return E_FAIL; | 468 return E_FAIL; |
| 156 | 469 |
| 157 MSG msg = {0}; | 470 MSG msg = {0}; |
| 158 while((::GetMessage(&msg, NULL, 0, 0) != 0) && g_window_count > 0) { | 471 while((::GetMessage(&msg, NULL, 0, 0) != 0) && g_window_count > 0) { |
| 472 // Poor mans way of dispatching input events. | |
|
cpu_(ooo_6.6-7.5)
2014/05/14 00:49:38
man's
ananta
2014/05/14 00:59:13
Done.
| |
| 473 if (input_handler_) { | |
| 474 if (msg.message >= WM_KEYFIRST && msg.message <= WM_KEYLAST) { | |
|
cpu_(ooo_6.6-7.5)
2014/05/14 00:49:38
can you put some ( ) around the tests, like
((m
ananta
2014/05/14 00:59:13
Done.
| |
| 475 if (msg.message == WM_SYSKEYDOWN || msg.message == WM_SYSKEYUP || | |
| 476 msg.message == WM_SYSCHAR) { | |
| 477 HandleSystemKeys(msg); | |
| 478 } else { | |
| 479 input_handler_->HandleKeyboardMessage(msg); | |
| 480 } | |
| 481 } else if (msg.message >= WM_MOUSEFIRST && | |
| 482 msg.message <= WM_MOUSELAST) { | |
| 483 input_handler_->HandleMouseMessage(msg); | |
| 484 } | |
| 485 } | |
| 159 ::TranslateMessage(&msg); | 486 ::TranslateMessage(&msg); |
| 160 ::DispatchMessage(&msg); | 487 ::DispatchMessage(&msg); |
| 161 } | 488 } |
| 162 // TODO(cpu): figure what to do with msg.WParam which we would normally | 489 // TODO(cpu): figure what to do with msg.WParam which we would normally |
| 163 // return here. | 490 // return here. |
| 164 return S_OK; | 491 return S_OK; |
| 165 } | 492 } |
| 166 | 493 |
| 167 virtual HRESULT STDMETHODCALLTYPE RunAsync( | 494 virtual HRESULT STDMETHODCALLTYPE RunAsync( |
| 168 winui::Core::CoreDispatcherPriority priority, | 495 winui::Core::CoreDispatcherPriority priority, |
| 169 winui::Core::IDispatchedHandler *agileCallback, | 496 winui::Core::IDispatchedHandler *agileCallback, |
| 170 ABI::Windows::Foundation::IAsyncAction** asyncAction) { | 497 ABI::Windows::Foundation::IAsyncAction** asyncAction) { |
| 171 return S_OK; | 498 return S_OK; |
| 172 } | 499 } |
| 173 | 500 |
| 174 virtual HRESULT STDMETHODCALLTYPE RunIdleAsync( | 501 virtual HRESULT STDMETHODCALLTYPE RunIdleAsync( |
| 175 winui::Core::IIdleDispatchedHandler *agileCallback, | 502 winui::Core::IIdleDispatchedHandler *agileCallback, |
| 176 winfoundtn::IAsyncAction** asyncAction) { | 503 winfoundtn::IAsyncAction** asyncAction) { |
| 177 return S_OK; | 504 return S_OK; |
| 178 } | 505 } |
| 179 | 506 |
| 180 // ICoreAcceleratorKeys implementation: | 507 // ICoreAcceleratorKeys implementation: |
| 181 virtual HRESULT STDMETHODCALLTYPE add_AcceleratorKeyActivated( | 508 virtual HRESULT STDMETHODCALLTYPE add_AcceleratorKeyActivated( |
| 182 AcceleratorKeyEventHandler* handler, | 509 AcceleratorKeyEventHandler* handler, |
| 183 EventRegistrationToken *pCookie) { | 510 EventRegistrationToken *pCookie) { |
| 184 // TODO(cpu): implement this. | 511 accelerator_key_event_handler_ = handler; |
| 512 accelerator_key_event_handler_->AddRef(); | |
| 185 return S_OK; | 513 return S_OK; |
| 186 } | 514 } |
| 187 | 515 |
| 188 virtual HRESULT STDMETHODCALLTYPE remove_AcceleratorKeyActivated( | 516 virtual HRESULT STDMETHODCALLTYPE remove_AcceleratorKeyActivated( |
| 189 EventRegistrationToken cookie) { | 517 EventRegistrationToken cookie) { |
| 518 accelerator_key_event_handler_->Release(); | |
| 519 accelerator_key_event_handler_ = NULL; | |
| 190 return S_OK; | 520 return S_OK; |
| 191 } | 521 } |
| 192 | 522 |
| 523 private: | |
| 524 bool HandleSystemKeys(const MSG& msg) { | |
| 525 mswr::ComPtr<winui::Core::IAcceleratorKeyEventArgs> event_args; | |
| 526 event_args = mswr::Make<KeyEvent>(msg); | |
| 527 accelerator_key_event_handler_->Invoke(this, event_args.Get()); | |
| 528 return true; | |
| 529 } | |
| 530 | |
| 531 InputHandler* input_handler_; | |
| 532 AcceleratorKeyEventHandler* accelerator_key_event_handler_; | |
| 193 }; | 533 }; |
| 194 | 534 |
| 195 class CoreWindowEmulation | 535 class CoreWindowEmulation |
| 196 : public mswr::RuntimeClass< | 536 : public mswr::RuntimeClass< |
| 197 mswr::RuntimeClassFlags<mswr::WinRtClassicComMix>, | 537 mswr::RuntimeClassFlags<mswr::WinRtClassicComMix>, |
| 198 winui::Core::ICoreWindow, ICoreWindowInterop> { | 538 winui::Core::ICoreWindow, ICoreWindowInterop>, |
| 539 public InputHandler { | |
| 199 public: | 540 public: |
| 200 CoreWindowEmulation() : core_hwnd_(NULL) { | 541 CoreWindowEmulation() |
| 201 dispatcher_ = mswr::Make<CoreDispacherEmulation>(); | 542 : core_hwnd_(NULL), |
| 543 mouse_moved_handler_(NULL), | |
| 544 mouse_capture_lost_handler_(NULL), | |
| 545 mouse_pressed_handler_(NULL), | |
| 546 mouse_released_handler_(NULL), | |
| 547 mouse_entered_handler_(NULL), | |
| 548 mouse_exited_handler_(NULL), | |
| 549 mouse_wheel_changed_handler_(NULL), | |
| 550 key_down_handler_(NULL), | |
| 551 key_up_handler_(NULL), | |
| 552 character_received_handler_(NULL) { | |
| 553 dispatcher_ = mswr::Make<CoreDispatcherEmulation>(this); | |
| 202 core_hwnd_ = CreateMetroTopLevelWindow(); | 554 core_hwnd_ = CreateMetroTopLevelWindow(); |
| 203 } | 555 } |
| 204 | 556 |
| 205 ~CoreWindowEmulation() { | 557 ~CoreWindowEmulation() { |
| 206 if (core_hwnd_) | 558 if (core_hwnd_) |
| 207 ::DestroyWindow(core_hwnd_); | 559 ::DestroyWindow(core_hwnd_); |
| 208 } | 560 } |
| 209 | 561 |
| 210 // ICoreWindow implementation: | 562 // ICoreWindow implementation: |
| 211 virtual HRESULT STDMETHODCALLTYPE get_AutomationHostProvider( | 563 virtual HRESULT STDMETHODCALLTYPE get_AutomationHostProvider( |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 323 } | 675 } |
| 324 | 676 |
| 325 virtual HRESULT STDMETHODCALLTYPE remove_AutomationProviderRequested( | 677 virtual HRESULT STDMETHODCALLTYPE remove_AutomationProviderRequested( |
| 326 EventRegistrationToken cookie) { | 678 EventRegistrationToken cookie) { |
| 327 return S_OK; | 679 return S_OK; |
| 328 } | 680 } |
| 329 | 681 |
| 330 virtual HRESULT STDMETHODCALLTYPE add_CharacterReceived( | 682 virtual HRESULT STDMETHODCALLTYPE add_CharacterReceived( |
| 331 CharEventHandler* handler, | 683 CharEventHandler* handler, |
| 332 EventRegistrationToken* pCookie) { | 684 EventRegistrationToken* pCookie) { |
| 333 // TODO(cpu) : implement this. | 685 character_received_handler_ = handler; |
| 686 character_received_handler_->AddRef(); | |
| 334 return S_OK; | 687 return S_OK; |
| 335 } | 688 } |
| 336 | 689 |
| 337 virtual HRESULT STDMETHODCALLTYPE remove_CharacterReceived( | 690 virtual HRESULT STDMETHODCALLTYPE remove_CharacterReceived( |
| 338 EventRegistrationToken cookie) { | 691 EventRegistrationToken cookie) { |
| 692 character_received_handler_->Release(); | |
| 693 character_received_handler_ = NULL; | |
| 339 return S_OK; | 694 return S_OK; |
| 340 } | 695 } |
| 341 | 696 |
| 342 virtual HRESULT STDMETHODCALLTYPE add_Closed( | 697 virtual HRESULT STDMETHODCALLTYPE add_Closed( |
| 343 CoreWindowEventHandler* handler, | 698 CoreWindowEventHandler* handler, |
| 344 EventRegistrationToken* pCookie) { | 699 EventRegistrationToken* pCookie) { |
| 345 return S_OK; | 700 return S_OK; |
| 346 } | 701 } |
| 347 | 702 |
| 348 virtual HRESULT STDMETHODCALLTYPE remove_Closed( | 703 virtual HRESULT STDMETHODCALLTYPE remove_Closed( |
| 349 EventRegistrationToken cookie) { | 704 EventRegistrationToken cookie) { |
| 350 return S_OK; | 705 return S_OK; |
| 351 } | 706 } |
| 352 | 707 |
| 353 virtual HRESULT STDMETHODCALLTYPE add_InputEnabled( | 708 virtual HRESULT STDMETHODCALLTYPE add_InputEnabled( |
| 354 InputEnabledEventHandler* handler, | 709 InputEnabledEventHandler* handler, |
| 355 EventRegistrationToken* pCookie) { | 710 EventRegistrationToken* pCookie) { |
| 356 return S_OK; | 711 return S_OK; |
| 357 } | 712 } |
| 358 | 713 |
| 359 virtual HRESULT STDMETHODCALLTYPE remove_InputEnabled( | 714 virtual HRESULT STDMETHODCALLTYPE remove_InputEnabled( |
| 360 EventRegistrationToken cookie) { | 715 EventRegistrationToken cookie) { |
| 361 return S_OK; | 716 return S_OK; |
| 362 } | 717 } |
| 363 | 718 |
| 364 virtual HRESULT STDMETHODCALLTYPE add_KeyDown( | 719 virtual HRESULT STDMETHODCALLTYPE add_KeyDown( |
| 365 KeyEventHandler* handler, | 720 KeyEventHandler* handler, |
| 366 EventRegistrationToken* pCookie) { | 721 EventRegistrationToken* pCookie) { |
| 367 // TODO(cpu): implement this. | 722 key_down_handler_ = handler; |
|
cpu_(ooo_6.6-7.5)
2014/05/14 00:49:38
lets use mswr::ComPtr<> for key_down_handler_ so w
ananta
2014/05/14 00:59:13
We can't do that as we need to hold the reference
| |
| 723 key_down_handler_->AddRef(); | |
| 368 return S_OK; | 724 return S_OK; |
| 369 } | 725 } |
| 370 | 726 |
| 371 virtual HRESULT STDMETHODCALLTYPE remove_KeyDown( | 727 virtual HRESULT STDMETHODCALLTYPE remove_KeyDown( |
| 372 EventRegistrationToken cookie) { | 728 EventRegistrationToken cookie) { |
| 729 key_down_handler_->Release(); | |
| 730 key_down_handler_ = NULL; | |
| 373 return S_OK; | 731 return S_OK; |
| 374 } | 732 } |
| 375 | 733 |
| 376 virtual HRESULT STDMETHODCALLTYPE add_KeyUp( | 734 virtual HRESULT STDMETHODCALLTYPE add_KeyUp( |
| 377 KeyEventHandler* handler, | 735 KeyEventHandler* handler, |
| 378 EventRegistrationToken* pCookie) { | 736 EventRegistrationToken* pCookie) { |
| 379 // TODO(cpu): implement this. | 737 key_up_handler_ = handler; |
| 738 key_up_handler_->AddRef(); | |
| 380 return S_OK; | 739 return S_OK; |
| 381 } | 740 } |
| 382 | 741 |
| 383 virtual HRESULT STDMETHODCALLTYPE remove_KeyUp( | 742 virtual HRESULT STDMETHODCALLTYPE remove_KeyUp( |
| 384 EventRegistrationToken cookie) { | 743 EventRegistrationToken cookie) { |
| 744 key_up_handler_->Release(); | |
| 745 key_up_handler_ = NULL; | |
| 385 return S_OK; | 746 return S_OK; |
| 386 } | 747 } |
| 387 | 748 |
| 388 virtual HRESULT STDMETHODCALLTYPE add_PointerCaptureLost( | 749 virtual HRESULT STDMETHODCALLTYPE add_PointerCaptureLost( |
| 389 PointerEventHandler* handler, | 750 PointerEventHandler* handler, |
| 390 EventRegistrationToken* cookie) { | 751 EventRegistrationToken* cookie) { |
| 752 mouse_capture_lost_handler_ = handler; | |
| 391 return S_OK; | 753 return S_OK; |
| 392 } | 754 } |
| 393 | 755 |
| 394 virtual HRESULT STDMETHODCALLTYPE remove_PointerCaptureLost( | 756 virtual HRESULT STDMETHODCALLTYPE remove_PointerCaptureLost( |
| 395 EventRegistrationToken cookie) { | 757 EventRegistrationToken cookie) { |
| 758 mouse_capture_lost_handler_ = NULL; | |
| 396 return S_OK; | 759 return S_OK; |
| 397 } | 760 } |
| 398 | 761 |
| 399 virtual HRESULT STDMETHODCALLTYPE add_PointerEntered( | 762 virtual HRESULT STDMETHODCALLTYPE add_PointerEntered( |
| 400 PointerEventHandler* handler, | 763 PointerEventHandler* handler, |
| 401 EventRegistrationToken* cookie) { | 764 EventRegistrationToken* cookie) { |
| 765 mouse_entered_handler_ = handler; | |
| 402 return S_OK; | 766 return S_OK; |
| 403 } | 767 } |
| 404 | 768 |
| 405 virtual HRESULT STDMETHODCALLTYPE remove_PointerEntered( | 769 virtual HRESULT STDMETHODCALLTYPE remove_PointerEntered( |
| 406 EventRegistrationToken cookie) { | 770 EventRegistrationToken cookie) { |
| 771 mouse_entered_handler_ = NULL; | |
| 407 return S_OK; | 772 return S_OK; |
| 408 } | 773 } |
| 409 | 774 |
| 410 virtual HRESULT STDMETHODCALLTYPE add_PointerExited( | 775 virtual HRESULT STDMETHODCALLTYPE add_PointerExited( |
| 411 PointerEventHandler* handler, | 776 PointerEventHandler* handler, |
| 412 EventRegistrationToken* cookie) { | 777 EventRegistrationToken* cookie) { |
| 778 mouse_exited_handler_ = handler; | |
| 413 return S_OK; | 779 return S_OK; |
| 414 } | 780 } |
| 415 | 781 |
| 416 virtual HRESULT STDMETHODCALLTYPE remove_PointerExited( | 782 virtual HRESULT STDMETHODCALLTYPE remove_PointerExited( |
| 417 EventRegistrationToken cookie) { | 783 EventRegistrationToken cookie) { |
| 784 mouse_exited_handler_ = NULL; | |
| 418 return S_OK; | 785 return S_OK; |
| 419 } | 786 } |
| 420 | 787 |
| 421 virtual HRESULT STDMETHODCALLTYPE add_PointerMoved( | 788 virtual HRESULT STDMETHODCALLTYPE add_PointerMoved( |
| 422 PointerEventHandler* handler, | 789 PointerEventHandler* handler, |
| 423 EventRegistrationToken* cookie) { | 790 EventRegistrationToken* cookie) { |
| 424 // TODO(cpu) : implement this. | 791 mouse_moved_handler_ = handler; |
| 792 mouse_moved_handler_->AddRef(); | |
| 425 return S_OK; | 793 return S_OK; |
| 426 } | 794 } |
| 427 | 795 |
| 428 virtual HRESULT STDMETHODCALLTYPE remove_PointerMoved( | 796 virtual HRESULT STDMETHODCALLTYPE remove_PointerMoved( |
| 429 EventRegistrationToken cookie) { | 797 EventRegistrationToken cookie) { |
| 798 mouse_moved_handler_->Release(); | |
| 799 mouse_moved_handler_ = NULL; | |
| 430 return S_OK; | 800 return S_OK; |
| 431 } | 801 } |
| 432 | 802 |
| 433 virtual HRESULT STDMETHODCALLTYPE add_PointerPressed( | 803 virtual HRESULT STDMETHODCALLTYPE add_PointerPressed( |
| 434 PointerEventHandler* handler, | 804 PointerEventHandler* handler, |
| 435 EventRegistrationToken* cookie) { | 805 EventRegistrationToken* cookie) { |
| 436 // TODO(cpu): implement this. | 806 mouse_pressed_handler_ = handler; |
| 807 mouse_pressed_handler_->AddRef(); | |
| 437 return S_OK; | 808 return S_OK; |
| 438 } | 809 } |
| 439 | 810 |
| 440 virtual HRESULT STDMETHODCALLTYPE remove_PointerPressed( | 811 virtual HRESULT STDMETHODCALLTYPE remove_PointerPressed( |
| 441 EventRegistrationToken cookie) { | 812 EventRegistrationToken cookie) { |
| 813 mouse_pressed_handler_->Release(); | |
| 814 mouse_pressed_handler_ = NULL; | |
| 442 return S_OK; | 815 return S_OK; |
| 443 } | 816 } |
| 444 | 817 |
| 445 virtual HRESULT STDMETHODCALLTYPE add_PointerReleased( | 818 virtual HRESULT STDMETHODCALLTYPE add_PointerReleased( |
| 446 PointerEventHandler* handler, | 819 PointerEventHandler* handler, |
| 447 EventRegistrationToken* cookie) { | 820 EventRegistrationToken* cookie) { |
| 448 // TODO(cpu): implement this. | 821 mouse_released_handler_ = handler; |
| 822 mouse_released_handler_->AddRef(); | |
| 449 return S_OK; | 823 return S_OK; |
| 450 } | 824 } |
| 451 | 825 |
| 452 virtual HRESULT STDMETHODCALLTYPE remove_PointerReleased( | 826 virtual HRESULT STDMETHODCALLTYPE remove_PointerReleased( |
| 453 EventRegistrationToken cookie) { | 827 EventRegistrationToken cookie) { |
| 828 mouse_released_handler_->Release(); | |
| 829 mouse_released_handler_ = NULL; | |
| 454 return S_OK; | 830 return S_OK; |
| 455 } | 831 } |
| 456 | 832 |
| 457 virtual HRESULT STDMETHODCALLTYPE add_TouchHitTesting( | 833 virtual HRESULT STDMETHODCALLTYPE add_TouchHitTesting( |
| 458 TouchHitTestHandler* handler, | 834 TouchHitTestHandler* handler, |
| 459 EventRegistrationToken* pCookie) { | 835 EventRegistrationToken* pCookie) { |
| 460 return S_OK; | 836 return S_OK; |
| 461 } | 837 } |
| 462 | 838 |
| 463 virtual HRESULT STDMETHODCALLTYPE remove_TouchHitTesting( | 839 virtual HRESULT STDMETHODCALLTYPE remove_TouchHitTesting( |
| 464 EventRegistrationToken cookie) { | 840 EventRegistrationToken cookie) { |
| 465 return S_OK; | 841 return S_OK; |
| 466 } | 842 } |
| 467 | 843 |
| 468 virtual HRESULT STDMETHODCALLTYPE add_PointerWheelChanged( | 844 virtual HRESULT STDMETHODCALLTYPE add_PointerWheelChanged( |
| 469 PointerEventHandler* handler, | 845 PointerEventHandler* handler, |
| 470 EventRegistrationToken* cookie) { | 846 EventRegistrationToken* cookie) { |
| 847 mouse_wheel_changed_handler_ = handler; | |
| 848 mouse_wheel_changed_handler_->AddRef(); | |
| 471 return S_OK; | 849 return S_OK; |
| 472 } | 850 } |
| 473 | 851 |
| 474 virtual HRESULT STDMETHODCALLTYPE remove_PointerWheelChanged( | 852 virtual HRESULT STDMETHODCALLTYPE remove_PointerWheelChanged( |
| 475 EventRegistrationToken cookie) { | 853 EventRegistrationToken cookie) { |
| 854 mouse_wheel_changed_handler_->Release(); | |
| 855 mouse_wheel_changed_handler_ = NULL; | |
| 476 return S_OK; | 856 return S_OK; |
| 477 } | 857 } |
| 478 | 858 |
| 479 virtual HRESULT STDMETHODCALLTYPE add_SizeChanged( | 859 virtual HRESULT STDMETHODCALLTYPE add_SizeChanged( |
| 480 SizeChangedHandler* handler, | 860 SizeChangedHandler* handler, |
| 481 EventRegistrationToken* pCookie) { | 861 EventRegistrationToken* pCookie) { |
| 482 // TODO(cpu): implement this. | 862 // TODO(cpu): implement this. |
| 483 return S_OK; | 863 return S_OK; |
| 484 } | 864 } |
| 485 | 865 |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 505 return E_FAIL; | 885 return E_FAIL; |
| 506 *hwnd = core_hwnd_; | 886 *hwnd = core_hwnd_; |
| 507 return S_OK; | 887 return S_OK; |
| 508 } | 888 } |
| 509 | 889 |
| 510 virtual HRESULT STDMETHODCALLTYPE put_MessageHandled( | 890 virtual HRESULT STDMETHODCALLTYPE put_MessageHandled( |
| 511 boolean value) { | 891 boolean value) { |
| 512 return S_OK; | 892 return S_OK; |
| 513 } | 893 } |
| 514 | 894 |
| 895 // InputHandler | |
| 896 virtual bool HandleKeyboardMessage(const MSG& msg) OVERRIDE { | |
| 897 switch (msg.message) { | |
| 898 case WM_KEYDOWN: | |
| 899 case WM_KEYUP: { | |
| 900 mswr::ComPtr<winui::Core::IKeyEventArgs> event_args; | |
| 901 event_args = mswr::Make<KeyEvent>(msg); | |
| 902 KeyEventHandler* handler = NULL; | |
| 903 if (msg.message == WM_KEYDOWN) { | |
| 904 handler = key_down_handler_; | |
| 905 } else { | |
| 906 handler = key_up_handler_; | |
| 907 } | |
| 908 handler->Invoke(this, event_args.Get()); | |
| 909 break; | |
| 910 } | |
| 911 | |
| 912 case WM_CHAR: | |
| 913 case WM_DEADCHAR: | |
| 914 case WM_UNICHAR: { | |
| 915 mswr::ComPtr<winui::Core::ICharacterReceivedEventArgs> event_args; | |
| 916 event_args = mswr::Make<KeyEvent>(msg); | |
| 917 character_received_handler_->Invoke(this, event_args.Get()); | |
| 918 break; | |
| 919 } | |
| 920 | |
| 921 default: | |
| 922 return false; | |
| 923 } | |
| 924 return true; | |
| 925 } | |
| 926 | |
| 927 virtual bool HandleMouseMessage(const MSG& msg) OVERRIDE { | |
| 928 PointerEventHandler* handler = NULL; | |
| 929 mswr::ComPtr<winui::Core::IPointerEventArgs> event_args; | |
| 930 event_args = mswr::Make<MouseEvent>(msg); | |
| 931 switch (msg.message) { | |
| 932 case WM_MOUSEMOVE: { | |
| 933 handler = mouse_moved_handler_; | |
| 934 break; | |
| 935 } | |
| 936 case WM_LBUTTONDOWN: { | |
| 937 case WM_RBUTTONDOWN: | |
| 938 case WM_MBUTTONDOWN: | |
| 939 handler = mouse_pressed_handler_; | |
| 940 break; | |
| 941 } | |
| 942 | |
| 943 case WM_LBUTTONUP: { | |
| 944 case WM_RBUTTONUP: | |
| 945 case WM_MBUTTONUP: | |
| 946 handler = mouse_released_handler_; | |
| 947 break; | |
| 948 } | |
| 949 | |
| 950 case WM_MOUSEWHEEL: { | |
| 951 case WM_MOUSEHWHEEL: | |
| 952 handler = mouse_wheel_changed_handler_; | |
| 953 break; | |
| 954 } | |
| 955 | |
| 956 default: | |
| 957 return false; | |
| 958 } | |
| 959 DCHECK(handler); | |
| 960 handler->Invoke(this, event_args.Get()); | |
| 961 return true; | |
| 962 } | |
| 963 | |
| 515 private: | 964 private: |
| 965 PointerEventHandler* mouse_moved_handler_; | |
| 966 PointerEventHandler* mouse_capture_lost_handler_; | |
| 967 PointerEventHandler* mouse_pressed_handler_; | |
| 968 PointerEventHandler* mouse_released_handler_; | |
| 969 PointerEventHandler* mouse_entered_handler_; | |
| 970 PointerEventHandler* mouse_exited_handler_; | |
| 971 PointerEventHandler* mouse_wheel_changed_handler_; | |
| 972 KeyEventHandler* key_down_handler_; | |
| 973 KeyEventHandler* key_up_handler_; | |
| 974 CharEventHandler* character_received_handler_; | |
| 516 HWND core_hwnd_; | 975 HWND core_hwnd_; |
| 517 mswr::ComPtr<winui::Core::ICoreDispatcher> dispatcher_; | 976 mswr::ComPtr<winui::Core::ICoreDispatcher> dispatcher_; |
| 518 }; | 977 }; |
| 519 | 978 |
| 520 class ActivatedEvent | 979 class ActivatedEvent |
| 521 : public mswr::RuntimeClass<winapp::Activation::IActivatedEventArgs> { | 980 : public mswr::RuntimeClass<winapp::Activation::IActivatedEventArgs> { |
| 522 public: | 981 public: |
| 523 ActivatedEvent(winapp::Activation::ActivationKind activation_kind) | 982 ActivatedEvent(winapp::Activation::ActivationKind activation_kind) |
| 524 : activation_kind_(activation_kind) { | 983 : activation_kind_(activation_kind) { |
| 525 } | 984 } |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 701 }; | 1160 }; |
| 702 | 1161 |
| 703 | 1162 |
| 704 mswr::ComPtr<winapp::Core::ICoreApplication> InitWindows7() { | 1163 mswr::ComPtr<winapp::Core::ICoreApplication> InitWindows7() { |
| 705 HRESULT hr = ::CoInitializeEx(NULL, COINIT_MULTITHREADED); | 1164 HRESULT hr = ::CoInitializeEx(NULL, COINIT_MULTITHREADED); |
| 706 if (FAILED(hr)) | 1165 if (FAILED(hr)) |
| 707 CHECK(false); | 1166 CHECK(false); |
| 708 return mswr::Make<CoreApplicationWin7Emulation>(); | 1167 return mswr::Make<CoreApplicationWin7Emulation>(); |
| 709 } | 1168 } |
| 710 | 1169 |
| OLD | NEW |