// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef WIN8_METRO_DRIVER_CHROME_APP_VIEW_ASH_H_ #define WIN8_METRO_DRIVER_CHROME_APP_VIEW_ASH_H_ #include #include #include #include #include "base/memory/scoped_ptr.h" #include "win8/metro_driver/direct3d_helper.h" namespace IPC { class Listener; class ChannelProxy; } class ChromeAppViewAsh : public mswr::RuntimeClass { public: ChromeAppViewAsh(); ~ChromeAppViewAsh(); // IViewProvider overrides. IFACEMETHOD(Initialize)(winapp::Core::ICoreApplicationView* view); IFACEMETHOD(SetWindow)(winui::Core::ICoreWindow* window); IFACEMETHOD(Load)(HSTRING entryPoint); IFACEMETHOD(Run)(); IFACEMETHOD(Uninitialize)(); private: HRESULT OnActivate(winapp::Core::ICoreApplicationView* view, winapp::Activation::IActivatedEventArgs* args); HRESULT OnPointerMoved(winui::Core::ICoreWindow* sender, winui::Core::IPointerEventArgs* args); HRESULT OnPointerPressed(winui::Core::ICoreWindow* sender, winui::Core::IPointerEventArgs* args); HRESULT OnPointerReleased(winui::Core::ICoreWindow* sender, winui::Core::IPointerEventArgs* args); HRESULT OnWheel(winui::Core::ICoreWindow* sender, winui::Core::IPointerEventArgs* args); HRESULT OnKeyDown(winui::Core::ICoreWindow* sender, winui::Core::IKeyEventArgs* args); HRESULT OnKeyUp(winui::Core::ICoreWindow* sender, winui::Core::IKeyEventArgs* args); HRESULT OnCharacterReceived(winui::Core::ICoreWindow* sender, winui::Core::ICharacterReceivedEventArgs* args); mswr::ComPtr window_; mswr::ComPtr view_; EventRegistrationToken activated_token_; EventRegistrationToken pointermoved_token_; EventRegistrationToken pointerpressed_token_; EventRegistrationToken pointerreleased_token_; EventRegistrationToken wheel_token_; EventRegistrationToken keydown_token_; EventRegistrationToken keyup_token_; EventRegistrationToken character_received_token_; metro_driver::Direct3DHelper direct3d_helper_; IPC::Listener* ui_channel_listener_; IPC::ChannelProxy* ui_channel_; }; #endif // WIN8_METRO_DRIVER_CHROME_APP_VIEW_ASH_H_