| 
								
							 | 
							
								#pragma once
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								#include <string>
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								#include "pch.h"
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								namespace raylibUWP
							 | 
						
						
						
							| 
								
							 | 
							
								{
							 | 
						
						
						
							| 
								
							 | 
							
								    ref class App sealed : public Windows::ApplicationModel::Core::IFrameworkView
							 | 
						
						
						
							| 
								
							 | 
							
								    {
							 | 
						
						
						
							| 
								
							 | 
							
								    public:
							 | 
						
						
						
							| 
								
							 | 
							
								        App();
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								        // IFrameworkView Methods.
							 | 
						
						
						
							| 
								
							 | 
							
								        virtual void Initialize(Windows::ApplicationModel::Core::CoreApplicationView^ applicationView);
							 | 
						
						
						
							| 
								
							 | 
							
								        virtual void SetWindow(Windows::UI::Core::CoreWindow^ window);
							 | 
						
						
						
							| 
								
							 | 
							
								        virtual void Load(Platform::String^ entryPoint);
							 | 
						
						
						
							| 
								
							 | 
							
								        virtual void Run();
							 | 
						
						
						
							| 
								
							 | 
							
								        virtual void Uninitialize();
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								    protected:
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
										// Application lifecycle event handlers.
							 | 
						
						
						
							| 
								
							 | 
							
										void OnActivated(Windows::ApplicationModel::Core::CoreApplicationView^ applicationView, Windows::ApplicationModel::Activation::IActivatedEventArgs^ args);
							 | 
						
						
						
							| 
								
							 | 
							
										void OnResuming(Platform::Object^ sender, Platform::Object^ args);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
										// Window event handlers.
							 | 
						
						
						
							| 
								
							 | 
							
										void OnWindowSizeChanged(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::WindowSizeChangedEventArgs^ args);
							 | 
						
						
						
							| 
								
							 | 
							
										void OnVisibilityChanged(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::VisibilityChangedEventArgs^ args);
							 | 
						
						
						
							| 
								
							 | 
							
										void OnWindowClosed(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::CoreWindowEventArgs^ args);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
										// DisplayInformation event handlers.
							 | 
						
						
						
							| 
								
							 | 
							
										void OnDpiChanged(Windows::Graphics::Display::DisplayInformation^ sender, Platform::Object^ args);
							 | 
						
						
						
							| 
								
							 | 
							
										void OnOrientationChanged(Windows::Graphics::Display::DisplayInformation^ sender, Platform::Object^ args);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
										// Input event handlers
							 | 
						
						
						
							| 
								
							 | 
							
										void PointerPressed(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::PointerEventArgs^ args);
							 | 
						
						
						
							| 
								
							 | 
							
										void PointerReleased(Windows::UI::Core::CoreWindow ^sender, Windows::UI::Core::PointerEventArgs^ args);
							 | 
						
						
						
							| 
								
							 | 
							
										void PointerWheelChanged(Windows::UI::Core::CoreWindow ^sender, Windows::UI::Core::PointerEventArgs^ args);
							 | 
						
						
						
							| 
								
							 | 
							
										void MouseMoved(Windows::Devices::Input::MouseDevice^ mouseDevice, Windows::Devices::Input::MouseEventArgs^ args);
							 | 
						
						
						
							| 
								
							 | 
							
										void OnKeyDown(Windows::UI::Core::CoreWindow ^ sender, Windows::UI::Core::KeyEventArgs ^ args);
							 | 
						
						
						
							| 
								
							 | 
							
										void OnKeyUp(Windows::UI::Core::CoreWindow ^ sender, Windows::UI::Core::KeyEventArgs ^ args);
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
									private:
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								        bool mWindowClosed;
							 | 
						
						
						
							| 
								
							 | 
							
								        bool mWindowVisible;
							 | 
						
						
						
							| 
								
							 | 
							
								    };
							 | 
						
						
						
							| 
								
							 | 
							
								}
							 |