diff --git a/docs/screenshots/UtilitiesPage.png b/docs/screenshots/UtilitiesPage.png index 0cddbae..6cbe38f 100644 Binary files a/docs/screenshots/UtilitiesPage.png and b/docs/screenshots/UtilitiesPage.png differ diff --git a/src/res/qml/UtilitiesPage.qml b/src/res/qml/UtilitiesPage.qml index 351c437..7a10d02 100644 --- a/src/res/qml/UtilitiesPage.qml +++ b/src/res/qml/UtilitiesPage.qml @@ -42,10 +42,11 @@ MyStackViewPage { RowLayout { spacing: 18 + Layout.fillWidth: true MyPushButton { text: "Keyboard Input" - Layout.preferredWidth: 200 + Layout.fillWidth: true onClicked: { OverlayController.showKeyboard("", 601) } @@ -61,7 +62,7 @@ MyStackViewPage { MyPushButton { text: "Enter" - Layout.preferredWidth: 200 + Layout.fillWidth: true onClicked: { UtilitiesTabController.sendKeyboardEnter() } @@ -69,7 +70,7 @@ MyStackViewPage { MyPushButton { text: "Alt-Tab" - Layout.preferredWidth: 200 + Layout.fillWidth: true onClicked: { UtilitiesTabController.sendKeyboardAltTab() } @@ -77,7 +78,7 @@ MyStackViewPage { MyPushButton { text: "Backspace" - Layout.preferredWidth: 200 + Layout.fillWidth: true onClicked: { UtilitiesTabController.sendKeyboardBackspace(1) } @@ -85,11 +86,19 @@ MyStackViewPage { MyPushButton { text: "10x Backspace" - Layout.preferredWidth: 200 + Layout.fillWidth: true onClicked: { UtilitiesTabController.sendKeyboardBackspace(10) } } + + MyPushButton { + text: "Alt-Enter" + Layout.fillWidth: true + onClicked: { + UtilitiesTabController.sendKeyboardAltEnter() + } + } } } } diff --git a/src/tabcontrollers/KeyboardInput.h b/src/tabcontrollers/KeyboardInput.h index cb1226a..8821552 100644 --- a/src/tabcontrollers/KeyboardInput.h +++ b/src/tabcontrollers/KeyboardInput.h @@ -17,6 +17,7 @@ public: virtual void sendKeyboardEnter() = 0; virtual void sendKeyboardBackspace( const int count ) = 0; virtual void sendKeyboardAltTab() = 0; + virtual void sendKeyboardAltEnter() = 0; virtual void sendMediaNextSong() = 0; virtual void sendMediaPreviousSong() = 0; virtual void sendMediaPausePlay() = 0; diff --git a/src/tabcontrollers/UtilitiesTabController.cpp b/src/tabcontrollers/UtilitiesTabController.cpp index 948492e..9fd8246 100644 --- a/src/tabcontrollers/UtilitiesTabController.cpp +++ b/src/tabcontrollers/UtilitiesTabController.cpp @@ -78,6 +78,11 @@ void UtilitiesTabController::sendKeyboardEnter() keyboardInput->sendKeyboardEnter(); } +void UtilitiesTabController::sendKeyboardAltEnter() +{ + keyboardInput->sendKeyboardAltEnter(); +} + void UtilitiesTabController::sendKeyboardAltTab() { keyboardInput->sendKeyboardAltTab(); diff --git a/src/tabcontrollers/UtilitiesTabController.h b/src/tabcontrollers/UtilitiesTabController.h index d73f8e8..bf41f6b 100644 --- a/src/tabcontrollers/UtilitiesTabController.h +++ b/src/tabcontrollers/UtilitiesTabController.h @@ -69,6 +69,7 @@ public slots: void sendKeyboardInput( QString input ); void sendKeyboardEnter(); void sendKeyboardAltTab(); + void sendKeyboardAltEnter(); void sendKeyboardBackspace( const int count ); void sendMediaNextSong(); void sendMediaPreviousSong(); diff --git a/src/tabcontrollers/keyboardinput/KeyboardInputDummy.cpp b/src/tabcontrollers/keyboardinput/KeyboardInputDummy.cpp index f9b78c8..bb3f750 100644 --- a/src/tabcontrollers/keyboardinput/KeyboardInputDummy.cpp +++ b/src/tabcontrollers/keyboardinput/KeyboardInputDummy.cpp @@ -28,6 +28,11 @@ void KeyboardInputDummy::sendKeyboardAltTab() // noop } +void KeyboardInputDummy::sendKeyboardAltEnter() +{ + // noop +} + void KeyboardInputDummy::sendMediaNextSong() { // noop diff --git a/src/tabcontrollers/keyboardinput/KeyboardInputDummy.h b/src/tabcontrollers/keyboardinput/KeyboardInputDummy.h index cf63f1f..f67882e 100644 --- a/src/tabcontrollers/keyboardinput/KeyboardInputDummy.h +++ b/src/tabcontrollers/keyboardinput/KeyboardInputDummy.h @@ -13,6 +13,7 @@ public: virtual void sendKeyboardEnter() override; virtual void sendKeyboardBackspace( const int count ) override; virtual void sendKeyboardAltTab() override; + virtual void sendKeyboardAltEnter() override; virtual void sendMediaNextSong() override; virtual void sendMediaPreviousSong() override; virtual void sendMediaPausePlay() override; diff --git a/src/tabcontrollers/keyboardinput/KeyboardInputWindows.cpp b/src/tabcontrollers/keyboardinput/KeyboardInputWindows.cpp index 8e5a84a..4dd2585 100644 --- a/src/tabcontrollers/keyboardinput/KeyboardInputWindows.cpp +++ b/src/tabcontrollers/keyboardinput/KeyboardInputWindows.cpp @@ -234,11 +234,13 @@ a music player. */ void KeyboardInputWindows::sendKeyboardAltTab() { - // VK_MENU is Alt. - const auto pressAlt = createInputStruct( VK_MENU, KeyStatus::Down ); - const auto pressTab = createInputStruct( VK_TAB, KeyStatus::Down ); - const auto releaseAlt = createInputStruct( VK_MENU, KeyStatus::Up ); - const auto releaseTab = createInputStruct( VK_TAB, KeyStatus::Up ); + constexpr auto altKey = VK_MENU; + constexpr auto tabKey = VK_TAB; + + const auto pressAlt = createInputStruct( altKey, KeyStatus::Down ); + const auto pressTab = createInputStruct( tabKey, KeyStatus::Down ); + const auto releaseAlt = createInputStruct( altKey, KeyStatus::Up ); + const auto releaseTab = createInputStruct( tabKey, KeyStatus::Up ); constexpr auto numberOfActions = 4; @@ -248,6 +250,30 @@ void KeyboardInputWindows::sendKeyboardAltTab() sendKeyboardInputRaw( numberOfActions, actions ); } +/*! +Sends an Alt + Tab combination to Windows. + +Used for toggling full screen on games and various applications that appear on +the desktop. +*/ +void KeyboardInputWindows::sendKeyboardAltEnter() +{ + constexpr auto altKey = VK_MENU; + constexpr auto enterKey = VK_RETURN; + + const auto pressAlt = createInputStruct( altKey, KeyStatus::Down ); + const auto pressEnter = createInputStruct( enterKey, KeyStatus::Down ); + const auto releaseAlt = createInputStruct( altKey, KeyStatus::Up ); + const auto releaseEnter = createInputStruct( enterKey, KeyStatus::Up ); + + constexpr auto numberOfActions = 4; + + INPUT actions[numberOfActions] + = { pressAlt, pressEnter, releaseAlt, releaseEnter }; + + sendKeyboardInputRaw( numberOfActions, actions ); +} + /*! Sends a media key Next Song button to Windows. */ diff --git a/src/tabcontrollers/keyboardinput/KeyboardInputWindows.h b/src/tabcontrollers/keyboardinput/KeyboardInputWindows.h index 12ceb44..cfed120 100644 --- a/src/tabcontrollers/keyboardinput/KeyboardInputWindows.h +++ b/src/tabcontrollers/keyboardinput/KeyboardInputWindows.h @@ -13,6 +13,7 @@ public: virtual void sendKeyboardEnter() override; virtual void sendKeyboardBackspace( const int count ) override; virtual void sendKeyboardAltTab() override; + virtual void sendKeyboardAltEnter() override; virtual void sendMediaNextSong() override; virtual void sendMediaPreviousSong() override; virtual void sendMediaPausePlay() override;