mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-07-02 16:39:14 +02:00
Compare commits
3 Commits
main
...
copilot/fi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
148acca256 | ||
|
|
11e6c70350 | ||
|
|
6fc426735f |
@@ -12,12 +12,18 @@ enum class RecordingFormat
|
||||
|
||||
DWORD g_ToggleKey = (HOTKEYF_CONTROL << 8)| '1';
|
||||
DWORD g_LiveZoomToggleKey = ((HOTKEYF_CONTROL) << 8)| '4';
|
||||
DWORD g_LiveZoomDrawKey = ((HOTKEYF_CONTROL | HOTKEYF_SHIFT) << 8) | '4';
|
||||
DWORD g_DrawToggleKey = ((HOTKEYF_CONTROL) << 8)| '2';
|
||||
DWORD g_BreakToggleKey = ((HOTKEYF_CONTROL) << 8)| '3';
|
||||
DWORD g_DemoTypeToggleKey = ((HOTKEYF_CONTROL) << 8) | '7';
|
||||
DWORD g_DemoTypeResetKey = ((HOTKEYF_CONTROL | HOTKEYF_SHIFT) << 8) | '7';
|
||||
DWORD g_RecordToggleKey = ((HOTKEYF_CONTROL) << 8) | '5';
|
||||
DWORD g_RecordCropKey = ((HOTKEYF_CONTROL | HOTKEYF_SHIFT) << 8) | '5';
|
||||
DWORD g_RecordWindowKey = ((HOTKEYF_CONTROL | HOTKEYF_ALT) << 8) | '5';
|
||||
DWORD g_SnipToggleKey = ((HOTKEYF_CONTROL) << 8) | '6';
|
||||
DWORD g_SnipSaveKey = ((HOTKEYF_CONTROL | HOTKEYF_SHIFT) << 8) | '6';
|
||||
DWORD g_SnipPanoramaToggleKey = ((HOTKEYF_CONTROL) << 8) | '8';
|
||||
DWORD g_SnipPanoramaSaveKey = ((HOTKEYF_CONTROL | HOTKEYF_SHIFT) << 8) | '8';
|
||||
DWORD g_SnipOcrToggleKey = ((HOTKEYF_CONTROL | HOTKEYF_ALT) << 8) | '6';
|
||||
|
||||
DWORD g_ShowExpiredTime = 1;
|
||||
@@ -67,10 +73,15 @@ DWORD g_TrimDialogVolume = 70; // 0-100 volume level for trim dialog preview
|
||||
REG_SETTING RegSettings[] = {
|
||||
{ L"ToggleKey", SETTING_TYPE_DWORD, 0, &g_ToggleKey, static_cast<DOUBLE>(g_ToggleKey) },
|
||||
{ L"LiveZoomToggleKey", SETTING_TYPE_DWORD, 0, &g_LiveZoomToggleKey, static_cast<DOUBLE>(g_LiveZoomToggleKey) },
|
||||
{ L"LiveZoomDrawKey", SETTING_TYPE_DWORD, 0, &g_LiveZoomDrawKey, static_cast<DOUBLE>(g_LiveZoomDrawKey) },
|
||||
{ L"DrawToggleKey", SETTING_TYPE_DWORD, 0, &g_DrawToggleKey, static_cast<DOUBLE>(g_DrawToggleKey) },
|
||||
{ L"RecordToggleKey", SETTING_TYPE_DWORD, 0, &g_RecordToggleKey, static_cast<DOUBLE>(g_RecordToggleKey) },
|
||||
{ L"RecordCropKey", SETTING_TYPE_DWORD, 0, &g_RecordCropKey, static_cast<DOUBLE>(g_RecordCropKey) },
|
||||
{ L"RecordWindowKey", SETTING_TYPE_DWORD, 0, &g_RecordWindowKey, static_cast<DOUBLE>(g_RecordWindowKey) },
|
||||
{ L"SnipToggleKey", SETTING_TYPE_DWORD, 0, &g_SnipToggleKey, static_cast<DOUBLE>(g_SnipToggleKey) },
|
||||
{ L"SnipSaveKey", SETTING_TYPE_DWORD, 0, &g_SnipSaveKey, static_cast<DOUBLE>(g_SnipSaveKey) },
|
||||
{ L"SnipPanoramaToggleKey", SETTING_TYPE_DWORD, 0, &g_SnipPanoramaToggleKey, static_cast<DOUBLE>(g_SnipPanoramaToggleKey) },
|
||||
{ L"SnipPanoramaSaveKey", SETTING_TYPE_DWORD, 0, &g_SnipPanoramaSaveKey, static_cast<DOUBLE>(g_SnipPanoramaSaveKey) },
|
||||
{ L"SnipOcrToggleKey", SETTING_TYPE_DWORD, 0, &g_SnipOcrToggleKey, static_cast<DOUBLE>(g_SnipOcrToggleKey) },
|
||||
{ L"PenColor", SETTING_TYPE_DWORD, 0, &g_PenColor, static_cast<DOUBLE>(g_PenColor) },
|
||||
{ L"PenWidth", SETTING_TYPE_DWORD, 0, &g_RootPenWidth, static_cast<DOUBLE>(g_RootPenWidth) },
|
||||
@@ -79,6 +90,7 @@ REG_SETTING RegSettings[] = {
|
||||
{ L"BreakBackgroundColor", SETTING_TYPE_DWORD, 0, &g_BreakBackgroundColor, static_cast<DOUBLE>(g_BreakBackgroundColor) },
|
||||
{ L"BreakTimerKey", SETTING_TYPE_DWORD, 0, &g_BreakToggleKey, static_cast<DOUBLE>(g_BreakToggleKey) },
|
||||
{ L"DemoTypeToggleKey", SETTING_TYPE_DWORD, 0, &g_DemoTypeToggleKey, static_cast<DOUBLE>(g_DemoTypeToggleKey) },
|
||||
{ L"DemoTypeResetKey", SETTING_TYPE_DWORD, 0, &g_DemoTypeResetKey, static_cast<DOUBLE>(g_DemoTypeResetKey) },
|
||||
{ L"DemoTypeFile", SETTING_TYPE_STRING, sizeof( g_DemoTypeFile ), g_DemoTypeFile, static_cast<DOUBLE>(0) },
|
||||
{ L"DemoTypeSpeedSlider", SETTING_TYPE_DWORD, 0, &g_DemoTypeSpeedSlider, static_cast<DOUBLE>(g_DemoTypeSpeedSlider) },
|
||||
{ L"DemoTypeUserDrivenMode", SETTING_TYPE_BOOLEAN, 0, &g_DemoTypeUserDriven, static_cast<DOUBLE>(g_DemoTypeUserDriven) },
|
||||
|
||||
@@ -165,12 +165,18 @@ const float STRONG_BLUR_RADIUS = 40;
|
||||
|
||||
DWORD g_ToggleMod;
|
||||
DWORD g_LiveZoomToggleMod;
|
||||
DWORD g_LiveZoomDrawMod;
|
||||
DWORD g_DrawToggleMod;
|
||||
DWORD g_BreakToggleMod;
|
||||
DWORD g_DemoTypeToggleMod;
|
||||
DWORD g_DemoTypeResetMod;
|
||||
DWORD g_RecordToggleMod;
|
||||
DWORD g_RecordCropMod;
|
||||
DWORD g_RecordWindowMod;
|
||||
DWORD g_SnipToggleMod;
|
||||
DWORD g_SnipSaveMod;
|
||||
DWORD g_SnipPanoramaToggleMod;
|
||||
DWORD g_SnipPanoramaSaveMod;
|
||||
DWORD g_SnipOcrToggleMod;
|
||||
|
||||
BOOLEAN g_ZoomOnLiveZoom = FALSE;
|
||||
@@ -3288,30 +3294,43 @@ void RegisterAllHotkeys(HWND hWnd)
|
||||
if (g_ToggleKey) registerHotkey( ZOOM_HOTKEY, g_ToggleMod, g_ToggleKey & 0xFF );
|
||||
if (g_LiveZoomToggleKey) {
|
||||
registerHotkey( LIVE_HOTKEY, g_LiveZoomToggleMod, g_LiveZoomToggleKey & 0xFF );
|
||||
registerHotkey( LIVE_DRAW_HOTKEY, ( g_LiveZoomToggleMod ^ MOD_SHIFT ), g_LiveZoomToggleKey & 0xFF );
|
||||
}
|
||||
if (g_LiveZoomDrawKey) {
|
||||
registerHotkey( LIVE_DRAW_HOTKEY, g_LiveZoomDrawMod, g_LiveZoomDrawKey & 0xFF );
|
||||
}
|
||||
if (g_DrawToggleKey) registerHotkey( DRAW_HOTKEY, g_DrawToggleMod, g_DrawToggleKey & 0xFF );
|
||||
if (g_BreakToggleKey) registerHotkey( BREAK_HOTKEY, g_BreakToggleMod, g_BreakToggleKey & 0xFF );
|
||||
if (g_DemoTypeToggleKey) {
|
||||
registerHotkey( DEMOTYPE_HOTKEY, g_DemoTypeToggleMod, g_DemoTypeToggleKey & 0xFF );
|
||||
registerHotkey( DEMOTYPE_RESET_HOTKEY, ( g_DemoTypeToggleMod ^ MOD_SHIFT ), g_DemoTypeToggleKey & 0xFF );
|
||||
}
|
||||
if (g_DemoTypeResetKey) {
|
||||
registerHotkey( DEMOTYPE_RESET_HOTKEY, g_DemoTypeResetMod, g_DemoTypeResetKey & 0xFF );
|
||||
}
|
||||
if (g_SnipToggleKey) {
|
||||
registerHotkey( SNIP_HOTKEY, g_SnipToggleMod, g_SnipToggleKey & 0xFF );
|
||||
registerHotkey( SNIP_SAVE_HOTKEY, ( g_SnipToggleMod ^ MOD_SHIFT ), g_SnipToggleKey & 0xFF );
|
||||
}
|
||||
if (g_SnipSaveKey) {
|
||||
registerHotkey( SNIP_SAVE_HOTKEY, g_SnipSaveMod, g_SnipSaveKey & 0xFF );
|
||||
}
|
||||
if( g_SnipPanoramaToggleKey &&
|
||||
(g_SnipPanoramaToggleKey != g_SnipToggleKey || g_SnipPanoramaToggleMod != g_SnipToggleMod) ) {
|
||||
registerHotkey( SNIP_PANORAMA_HOTKEY, g_SnipPanoramaToggleMod | MOD_NOREPEAT, g_SnipPanoramaToggleKey & 0xFF );
|
||||
registerHotkey( SNIP_PANORAMA_SAVE_HOTKEY, ( g_SnipPanoramaToggleMod ^ MOD_SHIFT ) | MOD_NOREPEAT, g_SnipPanoramaToggleKey & 0xFF );
|
||||
}
|
||||
if (g_SnipPanoramaSaveKey &&
|
||||
(g_SnipPanoramaSaveKey != g_SnipSaveKey || g_SnipPanoramaSaveMod != g_SnipSaveMod)) {
|
||||
registerHotkey( SNIP_PANORAMA_SAVE_HOTKEY, g_SnipPanoramaSaveMod | MOD_NOREPEAT, g_SnipPanoramaSaveKey & 0xFF );
|
||||
}
|
||||
if (g_SnipOcrToggleKey) {
|
||||
registerHotkey( SNIP_OCR_HOTKEY, g_SnipOcrToggleMod, g_SnipOcrToggleKey & 0xFF );
|
||||
}
|
||||
if (g_RecordToggleKey) {
|
||||
registerHotkey( RECORD_HOTKEY, g_RecordToggleMod | MOD_NOREPEAT, g_RecordToggleKey & 0xFF );
|
||||
registerHotkey( RECORD_CROP_HOTKEY, ( g_RecordToggleMod ^ MOD_SHIFT ) | MOD_NOREPEAT, g_RecordToggleKey & 0xFF );
|
||||
registerHotkey( RECORD_WINDOW_HOTKEY, ( g_RecordToggleMod ^ MOD_ALT ) | MOD_NOREPEAT, g_RecordToggleKey & 0xFF );
|
||||
}
|
||||
if (g_RecordCropKey) {
|
||||
registerHotkey( RECORD_CROP_HOTKEY, g_RecordCropMod | MOD_NOREPEAT, g_RecordCropKey & 0xFF );
|
||||
}
|
||||
if (g_RecordWindowKey) {
|
||||
registerHotkey( RECORD_WINDOW_HOTKEY, g_RecordWindowMod | MOD_NOREPEAT, g_RecordWindowKey & 0xFF );
|
||||
}
|
||||
|
||||
// Note: COPY_IMAGE_HOTKEY, COPY_CROP_HOTKEY (Ctrl+C, Ctrl+Shift+C) and
|
||||
@@ -5322,6 +5341,11 @@ INT_PTR CALLBACK OptionsProc( HWND hDlg, UINT message,
|
||||
g_BreakTimeout = newTimeout;
|
||||
g_ToggleKey = newToggleKey;
|
||||
g_LiveZoomToggleKey = newLiveZoomToggleKey;
|
||||
// In standalone mode, secondary hotkeys are always derived from the primary key
|
||||
// since the dialog does not expose controls for independent configuration.
|
||||
// Independent configuration of secondary keys is only available in PowerToys mode.
|
||||
g_LiveZoomDrawKey = (newLiveZoomToggleKey & 0xFF) | (((newLiveZoomToggleKey >> 8) ^ HOTKEYF_SHIFT) << 8);
|
||||
g_LiveZoomDrawMod = newLiveZoomToggleMod ^ MOD_SHIFT;
|
||||
g_ToggleMod = newToggleMod;
|
||||
g_DrawToggleKey = newDrawToggleKey;
|
||||
g_DrawToggleMod = newDrawToggleMod;
|
||||
@@ -5329,12 +5353,22 @@ INT_PTR CALLBACK OptionsProc( HWND hDlg, UINT message,
|
||||
g_BreakToggleMod = newBreakToggleMod;
|
||||
g_DemoTypeToggleKey = newDemoTypeToggleKey;
|
||||
g_DemoTypeToggleMod = newDemoTypeToggleMod;
|
||||
g_DemoTypeResetKey = (newDemoTypeToggleKey & 0xFF) | (((newDemoTypeToggleKey >> 8) ^ HOTKEYF_SHIFT) << 8);
|
||||
g_DemoTypeResetMod = newDemoTypeToggleMod ^ MOD_SHIFT;
|
||||
g_RecordToggleKey = newRecordToggleKey;
|
||||
g_RecordToggleMod = newRecordToggleMod;
|
||||
g_RecordCropKey = (newRecordToggleKey & 0xFF) | (((newRecordToggleKey >> 8) ^ HOTKEYF_SHIFT) << 8);
|
||||
g_RecordCropMod = newRecordToggleMod ^ MOD_SHIFT;
|
||||
g_RecordWindowKey = (newRecordToggleKey & 0xFF) | (((newRecordToggleKey >> 8) ^ HOTKEYF_ALT) << 8);
|
||||
g_RecordWindowMod = newRecordToggleMod ^ MOD_ALT;
|
||||
g_SnipToggleKey = newSnipToggleKey;
|
||||
g_SnipToggleMod = newSnipToggleMod;
|
||||
g_SnipSaveKey = (newSnipToggleKey & 0xFF) | (((newSnipToggleKey >> 8) ^ HOTKEYF_SHIFT) << 8);
|
||||
g_SnipSaveMod = newSnipToggleMod ^ MOD_SHIFT;
|
||||
g_SnipPanoramaToggleKey = newSnipPanoramaToggleKey;
|
||||
g_SnipPanoramaToggleMod = newSnipPanoramaToggleMod;
|
||||
g_SnipPanoramaSaveKey = (newSnipPanoramaToggleKey & 0xFF) | (((newSnipPanoramaToggleKey >> 8) ^ HOTKEYF_SHIFT) << 8);
|
||||
g_SnipPanoramaSaveMod = newSnipPanoramaToggleMod ^ MOD_SHIFT;
|
||||
g_SnipOcrToggleKey = newSnipOcrToggleKey;
|
||||
g_SnipOcrToggleMod = newSnipOcrToggleMod;
|
||||
reg.WriteRegSettings( RegSettings );
|
||||
@@ -7216,13 +7250,19 @@ LRESULT APIENTRY MainWndProc(
|
||||
|
||||
g_ToggleMod = GetKeyMod( g_ToggleKey );
|
||||
g_LiveZoomToggleMod = GetKeyMod( g_LiveZoomToggleKey );
|
||||
g_LiveZoomDrawMod = GetKeyMod( g_LiveZoomDrawKey );
|
||||
g_DrawToggleMod = GetKeyMod( g_DrawToggleKey );
|
||||
g_BreakToggleMod = GetKeyMod( g_BreakToggleKey );
|
||||
g_DemoTypeToggleMod = GetKeyMod( g_DemoTypeToggleKey );
|
||||
g_DemoTypeResetMod = GetKeyMod( g_DemoTypeResetKey );
|
||||
g_SnipToggleMod = GetKeyMod( g_SnipToggleKey );
|
||||
g_SnipSaveMod = GetKeyMod( g_SnipSaveKey );
|
||||
g_SnipPanoramaToggleMod = GetKeyMod( g_SnipPanoramaToggleKey );
|
||||
g_SnipPanoramaSaveMod = GetKeyMod( g_SnipPanoramaSaveKey );
|
||||
g_SnipOcrToggleMod = GetKeyMod( g_SnipOcrToggleKey );
|
||||
g_RecordToggleMod = GetKeyMod( g_RecordToggleKey );
|
||||
g_RecordCropMod = GetKeyMod( g_RecordCropKey );
|
||||
g_RecordWindowMod = GetKeyMod( g_RecordWindowKey );
|
||||
|
||||
if( !g_OptionsShown && !g_StartedByPowerToys ) {
|
||||
// First run should show options when running as standalone. If not running as standalone,
|
||||
@@ -7240,13 +7280,19 @@ LRESULT APIENTRY MainWndProc(
|
||||
showOptions = TRUE;
|
||||
|
||||
} else if( g_LiveZoomToggleKey &&
|
||||
(!RegisterHotKey( hWnd, LIVE_HOTKEY, g_LiveZoomToggleMod, g_LiveZoomToggleKey & 0xFF) ||
|
||||
!RegisterHotKey(hWnd, LIVE_DRAW_HOTKEY, (g_LiveZoomToggleMod ^ MOD_SHIFT), g_LiveZoomToggleKey & 0xFF))) {
|
||||
!RegisterHotKey( hWnd, LIVE_HOTKEY, g_LiveZoomToggleMod, g_LiveZoomToggleKey & 0xFF)) {
|
||||
|
||||
MessageBox( hWnd, L"The specified live-zoom toggle hotkey is already in use.\nSelect a different zoom toggle hotkey.",
|
||||
APPNAME, MB_ICONERROR );
|
||||
showOptions = TRUE;
|
||||
|
||||
} else if( g_LiveZoomDrawKey &&
|
||||
!RegisterHotKey(hWnd, LIVE_DRAW_HOTKEY, g_LiveZoomDrawMod, g_LiveZoomDrawKey & 0xFF)) {
|
||||
|
||||
MessageBox( hWnd, L"The specified live-zoom draw hotkey is already in use.\nSelect a different live-zoom draw hotkey.",
|
||||
APPNAME, MB_ICONERROR );
|
||||
showOptions = TRUE;
|
||||
|
||||
} else if( g_DrawToggleKey && !RegisterHotKey( hWnd, DRAW_HOTKEY, g_DrawToggleMod, g_DrawToggleKey & 0xFF )) {
|
||||
|
||||
MessageBox( hWnd, L"The specified draw w/out zoom hotkey is already in use.\nSelect a different draw w/out zoom hotkey.",
|
||||
@@ -7262,32 +7308,54 @@ LRESULT APIENTRY MainWndProc(
|
||||
|
||||
}
|
||||
else if( g_DemoTypeToggleKey &&
|
||||
(!RegisterHotKey( hWnd, DEMOTYPE_HOTKEY, g_DemoTypeToggleMod, g_DemoTypeToggleKey & 0xFF ) ||
|
||||
!RegisterHotKey(hWnd, DEMOTYPE_RESET_HOTKEY, (g_DemoTypeToggleMod ^ MOD_SHIFT), g_DemoTypeToggleKey & 0xFF))) {
|
||||
!RegisterHotKey( hWnd, DEMOTYPE_HOTKEY, g_DemoTypeToggleMod, g_DemoTypeToggleKey & 0xFF )) {
|
||||
|
||||
MessageBox( hWnd, L"The specified live-type hotkey is already in use.\nSelect a different live-type hotkey.",
|
||||
APPNAME, MB_ICONERROR );
|
||||
showOptions = TRUE;
|
||||
|
||||
}
|
||||
else if (g_DemoTypeResetKey &&
|
||||
!RegisterHotKey(hWnd, DEMOTYPE_RESET_HOTKEY, g_DemoTypeResetMod, g_DemoTypeResetKey & 0xFF)) {
|
||||
|
||||
MessageBox( hWnd, L"The specified live-type reset hotkey is already in use.\nSelect a different live-type reset hotkey.",
|
||||
APPNAME, MB_ICONERROR );
|
||||
showOptions = TRUE;
|
||||
|
||||
}
|
||||
else if (g_SnipToggleKey &&
|
||||
(!RegisterHotKey(hWnd, SNIP_HOTKEY, g_SnipToggleMod, g_SnipToggleKey & 0xFF) ||
|
||||
!RegisterHotKey(hWnd, SNIP_SAVE_HOTKEY, (g_SnipToggleMod ^ MOD_SHIFT), g_SnipToggleKey & 0xFF))) {
|
||||
!RegisterHotKey(hWnd, SNIP_HOTKEY, g_SnipToggleMod, g_SnipToggleKey & 0xFF)) {
|
||||
|
||||
MessageBox(hWnd, L"The specified snip hotkey is already in use.\nSelect a different snip hotkey.",
|
||||
APPNAME, MB_ICONERROR);
|
||||
showOptions = TRUE;
|
||||
|
||||
}
|
||||
else if (g_SnipSaveKey &&
|
||||
!RegisterHotKey(hWnd, SNIP_SAVE_HOTKEY, g_SnipSaveMod, g_SnipSaveKey & 0xFF)) {
|
||||
|
||||
MessageBox(hWnd, L"The specified snip save hotkey is already in use.\nSelect a different snip save hotkey.",
|
||||
APPNAME, MB_ICONERROR);
|
||||
showOptions = TRUE;
|
||||
|
||||
}
|
||||
else if (g_SnipPanoramaToggleKey &&
|
||||
(g_SnipPanoramaToggleKey != g_SnipToggleKey || g_SnipPanoramaToggleMod != g_SnipToggleMod) &&
|
||||
(!RegisterHotKey(hWnd, SNIP_PANORAMA_HOTKEY, g_SnipPanoramaToggleMod | MOD_NOREPEAT, g_SnipPanoramaToggleKey & 0xFF) ||
|
||||
!RegisterHotKey(hWnd, SNIP_PANORAMA_SAVE_HOTKEY, ( g_SnipPanoramaToggleMod ^ MOD_SHIFT ) | MOD_NOREPEAT, g_SnipPanoramaToggleKey & 0xFF))) {
|
||||
!RegisterHotKey(hWnd, SNIP_PANORAMA_HOTKEY, g_SnipPanoramaToggleMod | MOD_NOREPEAT, g_SnipPanoramaToggleKey & 0xFF)) {
|
||||
|
||||
MessageBox(hWnd, L"The specified panorama snip hotkey is already in use.\nSelect a different panorama snip hotkey.",
|
||||
APPNAME, MB_ICONERROR);
|
||||
showOptions = TRUE;
|
||||
|
||||
}
|
||||
else if (g_SnipPanoramaSaveKey &&
|
||||
(g_SnipPanoramaSaveKey != g_SnipSaveKey || g_SnipPanoramaSaveMod != g_SnipSaveMod) &&
|
||||
!RegisterHotKey(hWnd, SNIP_PANORAMA_SAVE_HOTKEY, g_SnipPanoramaSaveMod | MOD_NOREPEAT, g_SnipPanoramaSaveKey & 0xFF)) {
|
||||
|
||||
MessageBox(hWnd, L"The specified panorama snip save hotkey is already in use.\nSelect a different panorama snip save hotkey.",
|
||||
APPNAME, MB_ICONERROR);
|
||||
showOptions = TRUE;
|
||||
|
||||
}
|
||||
else if (g_SnipOcrToggleKey &&
|
||||
!RegisterHotKey(hWnd, SNIP_OCR_HOTKEY, g_SnipOcrToggleMod, g_SnipOcrToggleKey & 0xFF)) {
|
||||
@@ -7298,14 +7366,26 @@ LRESULT APIENTRY MainWndProc(
|
||||
|
||||
}
|
||||
else if (g_RecordToggleKey &&
|
||||
(!RegisterHotKey(hWnd, RECORD_HOTKEY, g_RecordToggleMod | MOD_NOREPEAT, g_RecordToggleKey & 0xFF) ||
|
||||
!RegisterHotKey(hWnd, RECORD_CROP_HOTKEY, (g_RecordToggleMod ^ MOD_SHIFT) | MOD_NOREPEAT, g_RecordToggleKey & 0xFF) ||
|
||||
!RegisterHotKey(hWnd, RECORD_WINDOW_HOTKEY, (g_RecordToggleMod ^ MOD_ALT) | MOD_NOREPEAT, g_RecordToggleKey & 0xFF))) {
|
||||
!RegisterHotKey(hWnd, RECORD_HOTKEY, g_RecordToggleMod | MOD_NOREPEAT, g_RecordToggleKey & 0xFF)) {
|
||||
|
||||
MessageBox(hWnd, L"The specified record hotkey is already in use.\nSelect a different record hotkey.",
|
||||
APPNAME, MB_ICONERROR);
|
||||
showOptions = TRUE;
|
||||
}
|
||||
else if (g_RecordCropKey &&
|
||||
!RegisterHotKey(hWnd, RECORD_CROP_HOTKEY, g_RecordCropMod | MOD_NOREPEAT, g_RecordCropKey & 0xFF)) {
|
||||
|
||||
MessageBox(hWnd, L"The specified record crop hotkey is already in use.\nSelect a different record crop hotkey.",
|
||||
APPNAME, MB_ICONERROR);
|
||||
showOptions = TRUE;
|
||||
}
|
||||
else if (g_RecordWindowKey &&
|
||||
!RegisterHotKey(hWnd, RECORD_WINDOW_HOTKEY, g_RecordWindowMod | MOD_NOREPEAT, g_RecordWindowKey & 0xFF)) {
|
||||
|
||||
MessageBox(hWnd, L"The specified record window hotkey is already in use.\nSelect a different record window hotkey.",
|
||||
APPNAME, MB_ICONERROR);
|
||||
showOptions = TRUE;
|
||||
}
|
||||
if( showOptions ) {
|
||||
|
||||
SendMessage( hWnd, WM_COMMAND, IDC_OPTIONS, 0 );
|
||||
@@ -9772,13 +9852,19 @@ LRESULT APIENTRY MainWndProc(
|
||||
UnregisterAllHotkeys(hWnd);
|
||||
g_ToggleMod = GetKeyMod(g_ToggleKey);
|
||||
g_LiveZoomToggleMod = GetKeyMod(g_LiveZoomToggleKey);
|
||||
g_LiveZoomDrawMod = GetKeyMod(g_LiveZoomDrawKey);
|
||||
g_DrawToggleMod = GetKeyMod(g_DrawToggleKey);
|
||||
g_BreakToggleMod = GetKeyMod(g_BreakToggleKey);
|
||||
g_DemoTypeToggleMod = GetKeyMod(g_DemoTypeToggleKey);
|
||||
g_DemoTypeResetMod = GetKeyMod(g_DemoTypeResetKey);
|
||||
g_SnipToggleMod = GetKeyMod(g_SnipToggleKey);
|
||||
g_SnipSaveMod = GetKeyMod(g_SnipSaveKey);
|
||||
g_SnipPanoramaToggleMod = GetKeyMod(g_SnipPanoramaToggleKey);
|
||||
g_SnipPanoramaSaveMod = GetKeyMod(g_SnipPanoramaSaveKey);
|
||||
g_SnipOcrToggleMod = GetKeyMod(g_SnipOcrToggleKey);
|
||||
g_RecordToggleMod = GetKeyMod(g_RecordToggleKey);
|
||||
g_RecordCropMod = GetKeyMod(g_RecordCropKey);
|
||||
g_RecordWindowMod = GetKeyMod(g_RecordWindowKey);
|
||||
BOOL showOptions = FALSE;
|
||||
if (g_ToggleKey)
|
||||
{
|
||||
@@ -9793,8 +9879,7 @@ LRESULT APIENTRY MainWndProc(
|
||||
}
|
||||
if (g_LiveZoomToggleKey)
|
||||
{
|
||||
if (!RegisterHotKey(hWnd, LIVE_HOTKEY, g_LiveZoomToggleMod, g_LiveZoomToggleKey & 0xFF) ||
|
||||
!RegisterHotKey(hWnd, LIVE_DRAW_HOTKEY, g_LiveZoomToggleMod ^ MOD_SHIFT, g_LiveZoomToggleKey & 0xFF))
|
||||
if (!RegisterHotKey(hWnd, LIVE_HOTKEY, g_LiveZoomToggleMod, g_LiveZoomToggleKey & 0xFF))
|
||||
{
|
||||
if(!g_StartedByPowerToys)
|
||||
{
|
||||
@@ -9803,6 +9888,17 @@ LRESULT APIENTRY MainWndProc(
|
||||
showOptions = TRUE;
|
||||
}
|
||||
}
|
||||
if (g_LiveZoomDrawKey)
|
||||
{
|
||||
if (!RegisterHotKey(hWnd, LIVE_DRAW_HOTKEY, g_LiveZoomDrawMod, g_LiveZoomDrawKey & 0xFF))
|
||||
{
|
||||
if(!g_StartedByPowerToys)
|
||||
{
|
||||
MessageBox(hWnd, L"The specified live-zoom draw hotkey is already in use.\nSelect a different live-zoom draw hotkey.", APPNAME, MB_ICONERROR);
|
||||
}
|
||||
showOptions = TRUE;
|
||||
}
|
||||
}
|
||||
if (g_DrawToggleKey)
|
||||
{
|
||||
if (!RegisterHotKey(hWnd, DRAW_HOTKEY, g_DrawToggleMod, g_DrawToggleKey & 0xFF))
|
||||
@@ -9827,8 +9923,7 @@ LRESULT APIENTRY MainWndProc(
|
||||
}
|
||||
if (g_DemoTypeToggleKey)
|
||||
{
|
||||
if (!RegisterHotKey(hWnd, DEMOTYPE_HOTKEY, g_DemoTypeToggleMod, g_DemoTypeToggleKey & 0xFF) ||
|
||||
!RegisterHotKey(hWnd, DEMOTYPE_RESET_HOTKEY, (g_DemoTypeToggleMod ^ MOD_SHIFT), g_DemoTypeToggleKey & 0xFF))
|
||||
if (!RegisterHotKey(hWnd, DEMOTYPE_HOTKEY, g_DemoTypeToggleMod, g_DemoTypeToggleKey & 0xFF))
|
||||
{
|
||||
if(!g_StartedByPowerToys)
|
||||
{
|
||||
@@ -9837,10 +9932,20 @@ LRESULT APIENTRY MainWndProc(
|
||||
showOptions = TRUE;
|
||||
}
|
||||
}
|
||||
if (g_DemoTypeResetKey)
|
||||
{
|
||||
if (!RegisterHotKey(hWnd, DEMOTYPE_RESET_HOTKEY, g_DemoTypeResetMod, g_DemoTypeResetKey & 0xFF))
|
||||
{
|
||||
if(!g_StartedByPowerToys)
|
||||
{
|
||||
MessageBox(hWnd, L"The specified live-type reset hotkey is already in use.\nSelect a different live-type reset hotkey.", APPNAME, MB_ICONERROR);
|
||||
}
|
||||
showOptions = TRUE;
|
||||
}
|
||||
}
|
||||
if (g_SnipToggleKey)
|
||||
{
|
||||
if (!RegisterHotKey(hWnd, SNIP_HOTKEY, g_SnipToggleMod, g_SnipToggleKey & 0xFF) ||
|
||||
!RegisterHotKey(hWnd, SNIP_SAVE_HOTKEY, (g_SnipToggleMod ^ MOD_SHIFT), g_SnipToggleKey & 0xFF))
|
||||
if (!RegisterHotKey(hWnd, SNIP_HOTKEY, g_SnipToggleMod, g_SnipToggleKey & 0xFF))
|
||||
{
|
||||
if(!g_StartedByPowerToys)
|
||||
{
|
||||
@@ -9849,11 +9954,21 @@ LRESULT APIENTRY MainWndProc(
|
||||
showOptions = TRUE;
|
||||
}
|
||||
}
|
||||
if (g_SnipSaveKey)
|
||||
{
|
||||
if (!RegisterHotKey(hWnd, SNIP_SAVE_HOTKEY, g_SnipSaveMod, g_SnipSaveKey & 0xFF))
|
||||
{
|
||||
if(!g_StartedByPowerToys)
|
||||
{
|
||||
MessageBox(hWnd, L"The specified snip save hotkey is already in use.\nSelect a different snip save hotkey.", APPNAME, MB_ICONERROR);
|
||||
}
|
||||
showOptions = TRUE;
|
||||
}
|
||||
}
|
||||
if (g_SnipPanoramaToggleKey &&
|
||||
(g_SnipPanoramaToggleKey != g_SnipToggleKey || g_SnipPanoramaToggleMod != g_SnipToggleMod))
|
||||
{
|
||||
if (!RegisterHotKey(hWnd, SNIP_PANORAMA_HOTKEY, g_SnipPanoramaToggleMod | MOD_NOREPEAT, g_SnipPanoramaToggleKey & 0xFF) ||
|
||||
!RegisterHotKey(hWnd, SNIP_PANORAMA_SAVE_HOTKEY, ( g_SnipPanoramaToggleMod ^ MOD_SHIFT ) | MOD_NOREPEAT, g_SnipPanoramaToggleKey & 0xFF))
|
||||
if (!RegisterHotKey(hWnd, SNIP_PANORAMA_HOTKEY, g_SnipPanoramaToggleMod | MOD_NOREPEAT, g_SnipPanoramaToggleKey & 0xFF))
|
||||
{
|
||||
if(!g_StartedByPowerToys)
|
||||
{
|
||||
@@ -9862,6 +9977,18 @@ LRESULT APIENTRY MainWndProc(
|
||||
showOptions = TRUE;
|
||||
}
|
||||
}
|
||||
if (g_SnipPanoramaSaveKey &&
|
||||
(g_SnipPanoramaSaveKey != g_SnipSaveKey || g_SnipPanoramaSaveMod != g_SnipSaveMod))
|
||||
{
|
||||
if (!RegisterHotKey(hWnd, SNIP_PANORAMA_SAVE_HOTKEY, g_SnipPanoramaSaveMod | MOD_NOREPEAT, g_SnipPanoramaSaveKey & 0xFF))
|
||||
{
|
||||
if(!g_StartedByPowerToys)
|
||||
{
|
||||
MessageBox(hWnd, L"The specified panorama snip save hotkey is already in use.\nSelect a different panorama snip save hotkey.", APPNAME, MB_ICONERROR);
|
||||
}
|
||||
showOptions = TRUE;
|
||||
}
|
||||
}
|
||||
if (g_SnipOcrToggleKey)
|
||||
{
|
||||
if (!RegisterHotKey(hWnd, SNIP_OCR_HOTKEY, g_SnipOcrToggleMod, g_SnipOcrToggleKey & 0xFF))
|
||||
@@ -9875,9 +10002,7 @@ LRESULT APIENTRY MainWndProc(
|
||||
}
|
||||
if (g_RecordToggleKey)
|
||||
{
|
||||
if (!RegisterHotKey(hWnd, RECORD_HOTKEY, g_RecordToggleMod | MOD_NOREPEAT, g_RecordToggleKey & 0xFF) ||
|
||||
!RegisterHotKey(hWnd, RECORD_CROP_HOTKEY, (g_RecordToggleMod ^ MOD_SHIFT) | MOD_NOREPEAT, g_RecordToggleKey & 0xFF) ||
|
||||
!RegisterHotKey(hWnd, RECORD_WINDOW_HOTKEY, (g_RecordToggleMod ^ MOD_ALT) | MOD_NOREPEAT, g_RecordToggleKey & 0xFF))
|
||||
if (!RegisterHotKey(hWnd, RECORD_HOTKEY, g_RecordToggleMod | MOD_NOREPEAT, g_RecordToggleKey & 0xFF))
|
||||
{
|
||||
if(!g_StartedByPowerToys)
|
||||
{
|
||||
@@ -9886,6 +10011,28 @@ LRESULT APIENTRY MainWndProc(
|
||||
showOptions = TRUE;
|
||||
}
|
||||
}
|
||||
if (g_RecordCropKey)
|
||||
{
|
||||
if (!RegisterHotKey(hWnd, RECORD_CROP_HOTKEY, g_RecordCropMod | MOD_NOREPEAT, g_RecordCropKey & 0xFF))
|
||||
{
|
||||
if(!g_StartedByPowerToys)
|
||||
{
|
||||
MessageBox(hWnd, L"The specified record crop hotkey is already in use.\nSelect a different record crop hotkey.", APPNAME, MB_ICONERROR);
|
||||
}
|
||||
showOptions = TRUE;
|
||||
}
|
||||
}
|
||||
if (g_RecordWindowKey)
|
||||
{
|
||||
if (!RegisterHotKey(hWnd, RECORD_WINDOW_HOTKEY, g_RecordWindowMod | MOD_NOREPEAT, g_RecordWindowKey & 0xFF))
|
||||
{
|
||||
if(!g_StartedByPowerToys)
|
||||
{
|
||||
MessageBox(hWnd, L"The specified record window hotkey is already in use.\nSelect a different record window hotkey.", APPNAME, MB_ICONERROR);
|
||||
}
|
||||
showOptions = TRUE;
|
||||
}
|
||||
}
|
||||
if (showOptions)
|
||||
{
|
||||
// To open the PowerToys settings in the ZoomIt page.
|
||||
|
||||
@@ -67,13 +67,19 @@ namespace winrt::PowerToys::ZoomItSettingsInterop::implementation
|
||||
std::map<std::wstring, unsigned int> settings_with_special_semantics = {
|
||||
{ L"ToggleKey", SPECIAL_SEMANTICS_SHORTCUT },
|
||||
{ L"LiveZoomToggleKey", SPECIAL_SEMANTICS_SHORTCUT },
|
||||
{ L"LiveZoomDrawKey", SPECIAL_SEMANTICS_SHORTCUT },
|
||||
{ L"DrawToggleKey", SPECIAL_SEMANTICS_SHORTCUT },
|
||||
{ L"RecordToggleKey", SPECIAL_SEMANTICS_SHORTCUT },
|
||||
{ L"RecordCropKey", SPECIAL_SEMANTICS_SHORTCUT },
|
||||
{ L"RecordWindowKey", SPECIAL_SEMANTICS_SHORTCUT },
|
||||
{ L"SnipToggleKey", SPECIAL_SEMANTICS_SHORTCUT },
|
||||
{ L"SnipSaveKey", SPECIAL_SEMANTICS_SHORTCUT },
|
||||
{ L"SnipOcrToggleKey", SPECIAL_SEMANTICS_SHORTCUT },
|
||||
{ L"SnipPanoramaToggleKey", SPECIAL_SEMANTICS_SHORTCUT },
|
||||
{ L"SnipPanoramaSaveKey", SPECIAL_SEMANTICS_SHORTCUT },
|
||||
{ L"BreakTimerKey", SPECIAL_SEMANTICS_SHORTCUT },
|
||||
{ L"DemoTypeToggleKey", SPECIAL_SEMANTICS_SHORTCUT },
|
||||
{ L"DemoTypeResetKey", SPECIAL_SEMANTICS_SHORTCUT },
|
||||
{ L"PenColor", SPECIAL_SEMANTICS_COLOR },
|
||||
{ L"BreakPenColor", SPECIAL_SEMANTICS_COLOR },
|
||||
{ L"Font", SPECIAL_SEMANTICS_LOG_FONT },
|
||||
|
||||
@@ -19,47 +19,77 @@ namespace Microsoft.PowerToys.Settings.UI.Library
|
||||
[CmdConfigureIgnore]
|
||||
public static HotkeySettings DefaultLiveZoomToggleKey => new HotkeySettings(false, true, false, false, '4'); // Ctrl+4
|
||||
|
||||
[CmdConfigureIgnore]
|
||||
public static HotkeySettings DefaultLiveZoomDrawKey => new HotkeySettings(false, true, false, true, '4'); // Ctrl+Shift+4
|
||||
|
||||
[CmdConfigureIgnore]
|
||||
public static HotkeySettings DefaultDrawToggleKey => new HotkeySettings(false, true, false, false, '2'); // Ctrl+2
|
||||
|
||||
[CmdConfigureIgnore]
|
||||
public static HotkeySettings DefaultRecordToggleKey => new HotkeySettings(false, true, false, false, '5'); // Ctrl+5
|
||||
|
||||
[CmdConfigureIgnore]
|
||||
public static HotkeySettings DefaultRecordCropKey => new HotkeySettings(false, true, false, true, '5'); // Ctrl+Shift+5
|
||||
|
||||
[CmdConfigureIgnore]
|
||||
public static HotkeySettings DefaultRecordWindowKey => new HotkeySettings(false, true, true, false, '5'); // Ctrl+Alt+5
|
||||
|
||||
[CmdConfigureIgnore]
|
||||
public static HotkeySettings DefaultSnipToggleKey => new HotkeySettings(false, true, false, false, '6'); // Ctrl+6
|
||||
|
||||
[CmdConfigureIgnore]
|
||||
public static HotkeySettings DefaultSnipSaveKey => new HotkeySettings(false, true, false, true, '6'); // Ctrl+Shift+6
|
||||
|
||||
[CmdConfigureIgnore]
|
||||
public static HotkeySettings DefaultSnipOcrToggleKey => new HotkeySettings(false, true, true, false, '6'); // Ctrl+Alt+6
|
||||
|
||||
[CmdConfigureIgnore]
|
||||
public static HotkeySettings DefaultSnipPanoramaToggleKey => new HotkeySettings(false, true, false, false, '8'); // Ctrl+8
|
||||
|
||||
[CmdConfigureIgnore]
|
||||
public static HotkeySettings DefaultSnipPanoramaSaveKey => new HotkeySettings(false, true, false, true, '8'); // Ctrl+Shift+8
|
||||
|
||||
[CmdConfigureIgnore]
|
||||
public static HotkeySettings DefaultBreakTimerKey => new HotkeySettings(false, true, false, false, '3'); // Ctrl+3
|
||||
|
||||
[CmdConfigureIgnore]
|
||||
public static HotkeySettings DefaultDemoTypeToggleKey => new HotkeySettings(false, true, false, false, '7'); // Ctrl+7
|
||||
|
||||
[CmdConfigureIgnore]
|
||||
public static HotkeySettings DefaultDemoTypeResetKey => new HotkeySettings(false, true, false, true, '7'); // Ctrl+Shift+7
|
||||
|
||||
public KeyboardKeysProperty ToggleKey { get; set; }
|
||||
|
||||
public KeyboardKeysProperty LiveZoomToggleKey { get; set; }
|
||||
|
||||
public KeyboardKeysProperty LiveZoomDrawKey { get; set; }
|
||||
|
||||
public KeyboardKeysProperty DrawToggleKey { get; set; }
|
||||
|
||||
public KeyboardKeysProperty RecordToggleKey { get; set; }
|
||||
|
||||
public KeyboardKeysProperty RecordCropKey { get; set; }
|
||||
|
||||
public KeyboardKeysProperty RecordWindowKey { get; set; }
|
||||
|
||||
public KeyboardKeysProperty SnipToggleKey { get; set; }
|
||||
|
||||
public KeyboardKeysProperty SnipSaveKey { get; set; }
|
||||
|
||||
public KeyboardKeysProperty SnipOcrToggleKey { get; set; }
|
||||
|
||||
public KeyboardKeysProperty SnipPanoramaToggleKey { get; set; }
|
||||
|
||||
public KeyboardKeysProperty SnipPanoramaSaveKey { get; set; }
|
||||
|
||||
public KeyboardKeysProperty BreakTimerKey { get; set; }
|
||||
|
||||
public StringProperty Font { get; set; }
|
||||
|
||||
public KeyboardKeysProperty DemoTypeToggleKey { get; set; }
|
||||
|
||||
public KeyboardKeysProperty DemoTypeResetKey { get; set; }
|
||||
|
||||
public StringProperty Font { get; set; }
|
||||
|
||||
public StringProperty DemoTypeFile { get; set; }
|
||||
|
||||
public IntProperty DemoTypeSpeedSlider { get; set; }
|
||||
|
||||
@@ -83,10 +83,10 @@
|
||||
IsExpanded="True">
|
||||
<controls:ShortcutControl HotkeySettings="{x:Bind ViewModel.LiveZoomToggleKey, Mode=TwoWay}" />
|
||||
<tkcontrols:SettingsExpander.Items>
|
||||
<tkcontrols:SettingsCard>
|
||||
<tkcontrols:SettingsCard.Description>
|
||||
<tkcontrols:MarkdownTextBlock Config="{StaticResource DescriptionTextMarkdownConfig}" Text="{x:Bind ViewModel.LiveZoomToggleKeyDraw, Mode=OneWay, Converter={StaticResource HotkeySettingsToLocalizedStringConverter}, ConverterParameter=ZoomIt_LiveZoom_Shortcut_Draw}" />
|
||||
</tkcontrols:SettingsCard.Description>
|
||||
<tkcontrols:SettingsCard
|
||||
Name="ZoomItLiveZoomDrawShortcut"
|
||||
x:Uid="ZoomIt_LiveZoom_Shortcut_Draw">
|
||||
<controls:ShortcutControl HotkeySettings="{x:Bind ViewModel.LiveZoomToggleKeyDraw, Mode=TwoWay}" />
|
||||
</tkcontrols:SettingsCard>
|
||||
</tkcontrols:SettingsExpander.Items>
|
||||
</tkcontrols:SettingsExpander>
|
||||
@@ -157,9 +157,14 @@
|
||||
ThumbToolTipValueConverter="{StaticResource ZoomItTypeSpeedSliderConverter}"
|
||||
Value="{x:Bind ViewModel.DemoTypeSpeedSlider, Mode=TwoWay}" />
|
||||
</tkcontrols:SettingsCard>
|
||||
<tkcontrols:SettingsCard Name="ZoomItDemoTypeShortcutReset">
|
||||
<tkcontrols:SettingsCard
|
||||
Name="ZoomItDemoTypeShortcutReset"
|
||||
x:Uid="ZoomIt_DemoType_Shortcut_Reset">
|
||||
<controls:ShortcutControl HotkeySettings="{x:Bind ViewModel.DemoTypeToggleKeyReset, Mode=TwoWay}" />
|
||||
</tkcontrols:SettingsCard>
|
||||
<tkcontrols:SettingsCard>
|
||||
<tkcontrols:SettingsCard.Description>
|
||||
<tkcontrols:MarkdownTextBlock Config="{StaticResource DescriptionTextMarkdownConfig}" Text="{x:Bind ViewModel.DemoTypeToggleKeyReset, Mode=OneWay, Converter={StaticResource HotkeySettingsToLocalizedStringConverter}, ConverterParameter=ZoomIt_DemoTypeFAQ}" />
|
||||
<tkcontrols:MarkdownTextBlock x:Uid="ZoomIt_DemoTypeFAQ" Config="{StaticResource DescriptionTextMarkdownConfig}" />
|
||||
</tkcontrols:SettingsCard.Description>
|
||||
</tkcontrols:SettingsCard>
|
||||
</tkcontrols:SettingsExpander.Items>
|
||||
@@ -301,14 +306,15 @@
|
||||
SelectedValue="{x:Bind ViewModel.RecordMicrophoneDeviceId, Mode=TwoWay}"
|
||||
SelectedValuePath="Item1" />
|
||||
</tkcontrols:SettingsCard>
|
||||
<tkcontrols:SettingsCard>
|
||||
<tkcontrols:SettingsCard.Description>
|
||||
<StackPanel Orientation="Vertical" Spacing="4">
|
||||
<tkcontrols:MarkdownTextBlock Config="{StaticResource DescriptionTextMarkdownConfig}" Text="{x:Bind ViewModel.RecordToggleKey, Mode=OneWay, Converter={StaticResource HotkeySettingsToLocalizedStringConverter}, ConverterParameter=ZoomIt_Record_Shortcut_FullScreen}" />
|
||||
<tkcontrols:MarkdownTextBlock Config="{StaticResource DescriptionTextMarkdownConfig}" Text="{x:Bind ViewModel.RecordToggleKeyCrop, Mode=OneWay, Converter={StaticResource HotkeySettingsToLocalizedStringConverter}, ConverterParameter=ZoomIt_Record_Shortcut_Crop}" />
|
||||
<tkcontrols:MarkdownTextBlock Config="{StaticResource DescriptionTextMarkdownConfig}" Text="{x:Bind ViewModel.RecordToggleKeyWindow, Mode=OneWay, Converter={StaticResource HotkeySettingsToLocalizedStringConverter}, ConverterParameter=ZoomIt_Record_Shortcut_Window}" />
|
||||
</StackPanel>
|
||||
</tkcontrols:SettingsCard.Description>
|
||||
<tkcontrols:SettingsCard
|
||||
Name="ZoomItRecordCropShortcut"
|
||||
x:Uid="ZoomIt_Record_Shortcut_Crop">
|
||||
<controls:ShortcutControl HotkeySettings="{x:Bind ViewModel.RecordToggleKeyCrop, Mode=TwoWay}" />
|
||||
</tkcontrols:SettingsCard>
|
||||
<tkcontrols:SettingsCard
|
||||
Name="ZoomItRecordWindowShortcut"
|
||||
x:Uid="ZoomIt_Record_Shortcut_Window">
|
||||
<controls:ShortcutControl HotkeySettings="{x:Bind ViewModel.RecordToggleKeyWindow, Mode=TwoWay}" />
|
||||
</tkcontrols:SettingsCard>
|
||||
</tkcontrols:SettingsExpander.Items>
|
||||
</tkcontrols:SettingsExpander>
|
||||
@@ -318,11 +324,13 @@
|
||||
Name="ZoomItSnipShortcut"
|
||||
x:Uid="ZoomIt_Snip_Shortcut"
|
||||
HeaderIcon="{ui:FontIcon Glyph=}">
|
||||
<tkcontrols:SettingsCard.Description>
|
||||
<tkcontrols:MarkdownTextBlock Config="{StaticResource DescriptionTextMarkdownConfig}" Text="{x:Bind ViewModel.SnipToggleKeySave, Mode=OneWay, Converter={StaticResource HotkeySettingsToLocalizedStringConverter}, ConverterParameter=ZoomIt_Snip_Shortcut_Save}" />
|
||||
</tkcontrols:SettingsCard.Description>
|
||||
<controls:ShortcutControl HotkeySettings="{x:Bind ViewModel.SnipToggleKey, Mode=TwoWay}" />
|
||||
</tkcontrols:SettingsCard>
|
||||
<tkcontrols:SettingsCard
|
||||
Name="ZoomItSnipSaveShortcut"
|
||||
x:Uid="ZoomIt_Snip_Shortcut_Save">
|
||||
<controls:ShortcutControl HotkeySettings="{x:Bind ViewModel.SnipToggleKeySave, Mode=TwoWay}" />
|
||||
</tkcontrols:SettingsCard>
|
||||
<tkcontrols:SettingsCard
|
||||
Name="ZoomItSnipOcrShortcut"
|
||||
x:Uid="ZoomIt_SnipOcr_Shortcut"
|
||||
@@ -336,10 +344,10 @@
|
||||
IsExpanded="True">
|
||||
<controls:ShortcutControl MinWidth="{StaticResource SettingActionControlMinWidth}" HotkeySettings="{x:Bind ViewModel.SnipPanoramaToggleKey, Mode=TwoWay}" />
|
||||
<tkcontrols:SettingsExpander.Items>
|
||||
<tkcontrols:SettingsCard>
|
||||
<tkcontrols:SettingsCard.Description>
|
||||
<tkcontrols:MarkdownTextBlock Config="{StaticResource DescriptionTextMarkdownConfig}" Text="{x:Bind ViewModel.SnipPanoramaToggleKeySave, Mode=OneWay, Converter={StaticResource HotkeySettingsToLocalizedStringConverter}, ConverterParameter=ZoomIt_Panorama_Shortcut_Save}" />
|
||||
</tkcontrols:SettingsCard.Description>
|
||||
<tkcontrols:SettingsCard
|
||||
Name="ZoomItPanoramaSaveShortcut"
|
||||
x:Uid="ZoomIt_Panorama_Shortcut_Save">
|
||||
<controls:ShortcutControl HotkeySettings="{x:Bind ViewModel.SnipPanoramaToggleKeySave, Mode=TwoWay}" />
|
||||
</tkcontrols:SettingsCard>
|
||||
</tkcontrols:SettingsExpander.Items>
|
||||
</tkcontrols:SettingsExpander>
|
||||
|
||||
@@ -4592,6 +4592,9 @@ Press **Ctrl + Shift** to crop before copying or saving.</value>
|
||||
<data name="ZoomIt_LiveZoom_Shortcut.Header" xml:space="preserve">
|
||||
<value>Live Zoom activation</value>
|
||||
</data>
|
||||
<data name="ZoomIt_LiveZoom_Shortcut_Draw.Header" xml:space="preserve">
|
||||
<value>Live drawing activation</value>
|
||||
</data>
|
||||
<data name="ZoomIt_DrawGroup.Header" xml:space="preserve">
|
||||
<value>Draw</value>
|
||||
</data>
|
||||
@@ -4651,11 +4654,14 @@ In auto mode, control returns automatically after completion.
|
||||
At the end of the file, ZoomIt reloads the file and restarts from the beginning.
|
||||
Press the hotkey with **Shift** in the opposite mode to step back to the previous **[end]** marker.
|
||||
|
||||
Press **{0}** to reset DemoType and start from the beginning.</value>
|
||||
Use the **DemoType reset** hotkey to reset DemoType and start from the beginning.</value>
|
||||
</data>
|
||||
<data name="ZoomIt_DemoType_Shortcut.Header" xml:space="preserve">
|
||||
<value>DemoType activation</value>
|
||||
</data>
|
||||
<data name="ZoomIt_DemoType_Shortcut_Reset.Header" xml:space="preserve">
|
||||
<value>DemoType reset</value>
|
||||
</data>
|
||||
<data name="ZoomIt_DemoType_File.Header" xml:space="preserve">
|
||||
<value>Input file</value>
|
||||
</data>
|
||||
@@ -4785,6 +4791,12 @@ The break timer font matches the text font.</value>
|
||||
<data name="ZoomIt_Record_Shortcut.Header" xml:space="preserve">
|
||||
<value>Record activation</value>
|
||||
</data>
|
||||
<data name="ZoomIt_Record_Shortcut_Crop.Header" xml:space="preserve">
|
||||
<value>Record a portion of the screen</value>
|
||||
</data>
|
||||
<data name="ZoomIt_Record_Shortcut_Window.Header" xml:space="preserve">
|
||||
<value>Record a specific window</value>
|
||||
</data>
|
||||
<data name="ZoomIt_Record_Shortcut_FullScreen" xml:space="preserve">
|
||||
<value>Press **{0}** to start or stop screen or zoom recording</value>
|
||||
</data>
|
||||
@@ -4827,12 +4839,18 @@ The break timer font matches the text font.</value>
|
||||
<data name="ZoomIt_Snip_Shortcut.Header" xml:space="preserve">
|
||||
<value>Snip activation</value>
|
||||
</data>
|
||||
<data name="ZoomIt_Snip_Shortcut_Save.Header" xml:space="preserve">
|
||||
<value>Save snip to file</value>
|
||||
</data>
|
||||
<data name="ZoomIt_Snip_Shortcut_Save" xml:space="preserve">
|
||||
<value>Press **{0}** to save the snip to a file</value>
|
||||
</data>
|
||||
<data name="ZoomIt_Panorama_Shortcut_Save" xml:space="preserve">
|
||||
<value>Press **{0}** to save the scrolling screenshot to a file</value>
|
||||
</data>
|
||||
<data name="ZoomIt_Panorama_Shortcut_Save.Header" xml:space="preserve">
|
||||
<value>Save scrolling screenshot to file</value>
|
||||
</data>
|
||||
<data name="ZoomIt_SnipOcr_Shortcut.Header" xml:space="preserve">
|
||||
<value>Text recognition and extraction</value>
|
||||
</data>
|
||||
|
||||
@@ -237,7 +237,6 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
{
|
||||
_zoomItSettings.Properties.LiveZoomToggleKey.Value = value ?? ZoomItProperties.DefaultLiveZoomToggleKey;
|
||||
OnPropertyChanged(nameof(LiveZoomToggleKey));
|
||||
OnPropertyChanged(nameof(LiveZoomToggleKeyDraw));
|
||||
NotifySettingsChanged();
|
||||
}
|
||||
}
|
||||
@@ -245,21 +244,15 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
|
||||
public HotkeySettings LiveZoomToggleKeyDraw
|
||||
{
|
||||
get
|
||||
get => _zoomItSettings.Properties.LiveZoomDrawKey.Value;
|
||||
set
|
||||
{
|
||||
var baseKey = _zoomItSettings.Properties.LiveZoomToggleKey.Value;
|
||||
if (baseKey == null)
|
||||
if (_zoomItSettings.Properties.LiveZoomDrawKey.Value != value)
|
||||
{
|
||||
return null;
|
||||
_zoomItSettings.Properties.LiveZoomDrawKey.Value = value ?? ZoomItProperties.DefaultLiveZoomDrawKey;
|
||||
OnPropertyChanged(nameof(LiveZoomToggleKeyDraw));
|
||||
NotifySettingsChanged();
|
||||
}
|
||||
|
||||
// XOR with Shift: if Shift is present, remove it; if absent, add it
|
||||
return new HotkeySettings(
|
||||
baseKey.Win,
|
||||
baseKey.Ctrl,
|
||||
baseKey.Alt,
|
||||
!baseKey.Shift, // XOR with Shift
|
||||
baseKey.Code);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -286,8 +279,6 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
{
|
||||
_zoomItSettings.Properties.RecordToggleKey.Value = value ?? ZoomItProperties.DefaultRecordToggleKey;
|
||||
OnPropertyChanged(nameof(RecordToggleKey));
|
||||
OnPropertyChanged(nameof(RecordToggleKeyCrop));
|
||||
OnPropertyChanged(nameof(RecordToggleKeyWindow));
|
||||
NotifySettingsChanged();
|
||||
}
|
||||
}
|
||||
@@ -295,41 +286,29 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
|
||||
public HotkeySettings RecordToggleKeyCrop
|
||||
{
|
||||
get
|
||||
get => _zoomItSettings.Properties.RecordCropKey.Value;
|
||||
set
|
||||
{
|
||||
var baseKey = _zoomItSettings.Properties.RecordToggleKey.Value;
|
||||
if (baseKey == null)
|
||||
if (_zoomItSettings.Properties.RecordCropKey.Value != value)
|
||||
{
|
||||
return null;
|
||||
_zoomItSettings.Properties.RecordCropKey.Value = value ?? ZoomItProperties.DefaultRecordCropKey;
|
||||
OnPropertyChanged(nameof(RecordToggleKeyCrop));
|
||||
NotifySettingsChanged();
|
||||
}
|
||||
|
||||
// XOR with Shift: if Shift is present, remove it; if absent, add it
|
||||
return new HotkeySettings(
|
||||
baseKey.Win,
|
||||
baseKey.Ctrl,
|
||||
baseKey.Alt,
|
||||
!baseKey.Shift, // XOR with Shift
|
||||
baseKey.Code);
|
||||
}
|
||||
}
|
||||
|
||||
public HotkeySettings RecordToggleKeyWindow
|
||||
{
|
||||
get
|
||||
get => _zoomItSettings.Properties.RecordWindowKey.Value;
|
||||
set
|
||||
{
|
||||
var baseKey = _zoomItSettings.Properties.RecordToggleKey.Value;
|
||||
if (baseKey == null)
|
||||
if (_zoomItSettings.Properties.RecordWindowKey.Value != value)
|
||||
{
|
||||
return null;
|
||||
_zoomItSettings.Properties.RecordWindowKey.Value = value ?? ZoomItProperties.DefaultRecordWindowKey;
|
||||
OnPropertyChanged(nameof(RecordToggleKeyWindow));
|
||||
NotifySettingsChanged();
|
||||
}
|
||||
|
||||
// XOR with Alt: if Alt is present, remove it; if absent, add it
|
||||
return new HotkeySettings(
|
||||
baseKey.Win,
|
||||
baseKey.Ctrl,
|
||||
!baseKey.Alt, // XOR with Alt
|
||||
baseKey.Shift,
|
||||
baseKey.Code);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -342,7 +321,6 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
{
|
||||
_zoomItSettings.Properties.SnipToggleKey.Value = value ?? ZoomItProperties.DefaultSnipToggleKey;
|
||||
OnPropertyChanged(nameof(SnipToggleKey));
|
||||
OnPropertyChanged(nameof(SnipToggleKeySave));
|
||||
NotifySettingsChanged();
|
||||
}
|
||||
}
|
||||
@@ -350,20 +328,15 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
|
||||
public HotkeySettings SnipToggleKeySave
|
||||
{
|
||||
get
|
||||
get => _zoomItSettings.Properties.SnipSaveKey.Value;
|
||||
set
|
||||
{
|
||||
var baseKey = _zoomItSettings.Properties.SnipToggleKey.Value;
|
||||
if (baseKey == null)
|
||||
if (_zoomItSettings.Properties.SnipSaveKey.Value != value)
|
||||
{
|
||||
return null;
|
||||
_zoomItSettings.Properties.SnipSaveKey.Value = value ?? ZoomItProperties.DefaultSnipSaveKey;
|
||||
OnPropertyChanged(nameof(SnipToggleKeySave));
|
||||
NotifySettingsChanged();
|
||||
}
|
||||
|
||||
return new HotkeySettings(
|
||||
baseKey.Win,
|
||||
baseKey.Ctrl,
|
||||
baseKey.Alt,
|
||||
!baseKey.Shift, // Toggle Shift: if Shift is present, remove it; if absent, add it
|
||||
baseKey.Code);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -390,7 +363,6 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
{
|
||||
_zoomItSettings.Properties.SnipPanoramaToggleKey.Value = value ?? ZoomItProperties.DefaultSnipPanoramaToggleKey;
|
||||
OnPropertyChanged(nameof(SnipPanoramaToggleKey));
|
||||
OnPropertyChanged(nameof(SnipPanoramaToggleKeySave));
|
||||
NotifySettingsChanged();
|
||||
}
|
||||
}
|
||||
@@ -398,20 +370,15 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
|
||||
public HotkeySettings SnipPanoramaToggleKeySave
|
||||
{
|
||||
get
|
||||
get => _zoomItSettings.Properties.SnipPanoramaSaveKey.Value;
|
||||
set
|
||||
{
|
||||
var baseKey = _zoomItSettings.Properties.SnipPanoramaToggleKey.Value;
|
||||
if (baseKey == null)
|
||||
if (_zoomItSettings.Properties.SnipPanoramaSaveKey.Value != value)
|
||||
{
|
||||
return null;
|
||||
_zoomItSettings.Properties.SnipPanoramaSaveKey.Value = value ?? ZoomItProperties.DefaultSnipPanoramaSaveKey;
|
||||
OnPropertyChanged(nameof(SnipPanoramaToggleKeySave));
|
||||
NotifySettingsChanged();
|
||||
}
|
||||
|
||||
return new HotkeySettings(
|
||||
baseKey.Win,
|
||||
baseKey.Ctrl,
|
||||
baseKey.Alt,
|
||||
!baseKey.Shift, // Toggle Shift: if Shift is present, remove it; if absent, add it
|
||||
baseKey.Code);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -438,7 +405,6 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
{
|
||||
_zoomItSettings.Properties.DemoTypeToggleKey.Value = value ?? ZoomItProperties.DefaultDemoTypeToggleKey;
|
||||
OnPropertyChanged(nameof(DemoTypeToggleKey));
|
||||
OnPropertyChanged(nameof(DemoTypeToggleKeyReset));
|
||||
NotifySettingsChanged();
|
||||
}
|
||||
}
|
||||
@@ -446,21 +412,15 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
|
||||
|
||||
public HotkeySettings DemoTypeToggleKeyReset
|
||||
{
|
||||
get
|
||||
get => _zoomItSettings.Properties.DemoTypeResetKey.Value;
|
||||
set
|
||||
{
|
||||
var baseKey = _zoomItSettings.Properties.DemoTypeToggleKey.Value;
|
||||
if (baseKey == null)
|
||||
if (_zoomItSettings.Properties.DemoTypeResetKey.Value != value)
|
||||
{
|
||||
return null;
|
||||
_zoomItSettings.Properties.DemoTypeResetKey.Value = value ?? ZoomItProperties.DefaultDemoTypeResetKey;
|
||||
OnPropertyChanged(nameof(DemoTypeToggleKeyReset));
|
||||
NotifySettingsChanged();
|
||||
}
|
||||
|
||||
// XOR with Shift: if Shift is present, remove it; if absent, add it
|
||||
return new HotkeySettings(
|
||||
baseKey.Win,
|
||||
baseKey.Ctrl,
|
||||
baseKey.Alt,
|
||||
!baseKey.Shift, // XOR with Shift
|
||||
baseKey.Code);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user