summaryrefslogtreecommitdiffstats
path: root/Common/NativeApp/src/UWP
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2018-04-01 03:55:13 +0000
committerEgor Yusov <egor.yusov@gmail.com>2018-04-01 03:55:13 +0000
commitf3ac2ce9dc0ae329ac2deeed96f038e0c8e07330 (patch)
treec86dc8a42127dcab8721c80000b9e861b378d2b8 /Common/NativeApp/src/UWP
parentAdded sync interval to Present. (diff)
downloadDiligentEngine-f3ac2ce9dc0ae329ac2deeed96f038e0c8e07330.tar.gz
DiligentEngine-f3ac2ce9dc0ae329ac2deeed96f038e0c8e07330.zip
Implemented switching to fullscreen on shift+enter in UWP
Diffstat (limited to 'Common/NativeApp/src/UWP')
-rw-r--r--Common/NativeApp/src/UWP/App.cpp47
-rw-r--r--Common/NativeApp/src/UWP/App.h8
2 files changed, 53 insertions, 2 deletions
diff --git a/Common/NativeApp/src/UWP/App.cpp b/Common/NativeApp/src/UWP/App.cpp
index 6767b49..e0af485 100644
--- a/Common/NativeApp/src/UWP/App.cpp
+++ b/Common/NativeApp/src/UWP/App.cpp
@@ -103,6 +103,12 @@ void App::SetWindow(CoreWindow^ window)
window->Closed +=
ref new TypedEventHandler<CoreWindow^, CoreWindowEventArgs^>(this, &App::OnWindowClosed);
+ window->KeyDown +=
+ ref new TypedEventHandler<CoreWindow^, KeyEventArgs^>(this, &App::OnKeyDown);
+
+ window->KeyUp +=
+ ref new TypedEventHandler<CoreWindow^, KeyEventArgs^>(this, &App::OnKeyUp);
+
DisplayInformation^ currentDisplayInformation = DisplayInformation::GetForCurrentView();
currentDisplayInformation->DpiChanged +=
@@ -243,6 +249,47 @@ void App::OnDisplayContentsInvalidated(DisplayInformation^ sender, Object^ args)
GetDeviceResources()->ValidateDevice();
}
+void App::OnKeyDown(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::KeyEventArgs^ args)
+{
+ auto Key = args->VirtualKey;
+ switch(Key)
+ {
+ case VirtualKey::Escape:
+ CoreApplication::Exit();
+ break;
+
+ case VirtualKey::Enter:
+ if(m_bShiftPressed)
+ {
+ auto applicationView = Windows::UI::ViewManagement::ApplicationView::GetForCurrentView();
+ if (applicationView->IsFullScreenMode)
+ {
+ applicationView->ExitFullScreenMode();
+ }
+ else
+ {
+ applicationView->TryEnterFullScreenMode();
+ }
+ }
+ break;
+
+ case VirtualKey::Shift:
+ m_bShiftPressed = true;
+ break;
+ }
+}
+
+void App::OnKeyUp(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::KeyEventArgs^ args)
+{
+ auto Key = args->VirtualKey;
+ switch (Key)
+ {
+ case VirtualKey::Shift:
+ m_bShiftPressed = false;
+ break;
+ }
+}
+
std::shared_ptr<DX::DeviceResources> App::GetDeviceResources()
{
if (m_deviceResources != nullptr && m_deviceResources->IsDeviceRemoved())
diff --git a/Common/NativeApp/src/UWP/App.h b/Common/NativeApp/src/UWP/App.h
index b480a52..1b09441 100644
--- a/Common/NativeApp/src/UWP/App.h
+++ b/Common/NativeApp/src/UWP/App.h
@@ -57,11 +57,15 @@ namespace SampleApp
void OnOrientationChanged(Windows::Graphics::Display::DisplayInformation^ sender, Platform::Object^ args);
void OnDisplayContentsInvalidated(Windows::Graphics::Display::DisplayInformation^ sender, Platform::Object^ 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:
std::shared_ptr<DX::DeviceResources> GetDeviceResources();
std::unique_ptr<NativeAppBase> m_Main;
std::shared_ptr<DX::DeviceResources> m_deviceResources;
- bool m_windowClosed;
- bool m_windowVisible;
+ bool m_windowClosed = false;
+ bool m_windowVisible = false;
+ bool m_bShiftPressed = false;
};
}