diff --git a/VoidLink/Base.lproj/iPad.storyboard b/VoidLink/Base.lproj/iPad.storyboard index b3f02769..bb8d1122 100644 --- a/VoidLink/Base.lproj/iPad.storyboard +++ b/VoidLink/Base.lproj/iPad.storyboard @@ -60,7 +60,7 @@ - + @@ -581,7 +581,7 @@ - + @@ -847,27 +847,6 @@ - - - - - - - - - - - - - @@ -930,10 +909,31 @@ + + + + + + + + + + + + + - + @@ -1033,7 +1033,7 @@ - + diff --git a/VoidLink/Input/StreamView.h b/VoidLink/Input/StreamView.h index 6b7943c6..1fff07fc 100644 --- a/VoidLink/Input/StreamView.h +++ b/VoidLink/Input/StreamView.h @@ -22,7 +22,7 @@ - (void)userInteractionEnded; - (void)streamExitRequested; - (void)toggleStatsOverlay; -- (void)localMousePointerMode; +- (void)toggleMouseCapture; - (void)toggleMouseVisible; @end diff --git a/VoidLink/Input/StreamView.m b/VoidLink/Input/StreamView.m index cf7b9963..29e8636d 100644 --- a/VoidLink/Input/StreamView.m +++ b/VoidLink/Input/StreamView.m @@ -828,7 +828,7 @@ static const double X1_MOUSE_SPEED_DIVISOR = 2.5; [interactionDelegate toggleStatsOverlay]; break; case UIKeyboardHIDUsageKeyboardM: - [interactionDelegate localMousePointerMode]; + [interactionDelegate toggleMouseCapture]; break; case UIKeyboardHIDUsageKeyboardC: [interactionDelegate toggleMouseVisible]; diff --git a/VoidLink/Localization/Localizable.xcstrings b/VoidLink/Localization/Localizable.xcstrings index c12b0448..b6719d24 100644 --- a/VoidLink/Localization/Localizable.xcstrings +++ b/VoidLink/Localization/Localizable.xcstrings @@ -1641,6 +1641,64 @@ } } }, + "externalDisplayModeStackDoc" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "https://voidlink.yuque.com/org-wiki-voidlink-znirha/fa3tgr/bu3hki4pezy93g6r?singleDoc# " + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "https://voidlink.yuque.com/org-wiki-voidlink-znirha/fa3tgr/cqbse6t4o6f9hil1?singleDoc#" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "https://voidlink.yuque.com/org-wiki-voidlink-znirha/fa3tgr/cqbse6t4o6f9hil1?singleDoc#" + } + }, + "zh-HK" : { + "stringUnit" : { + "state" : "translated", + "value" : "https://voidlink.yuque.com/org-wiki-voidlink-znirha/fa3tgr/cqbse6t4o6f9hil1?singleDoc#" + } + } + } + }, + "externalDisplayModeStackTip" : { + "extractionState" : "manual", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Select “Stage Manager” to enable full screen external display.\n\nKeyboard Shortcuts for VoidLink (Desktop Mode):\n\nCtrl + Alt + Shift + Q — Disconnect the current session\n\nCtrl + Alt + Shift + S — Toggle the statistics overlay style\n\nCtrl + Alt + Shift + M — Toggle mouse capture mode\n\nCtrl + Alt + Shift + C — Toggle mouse pointer visibility\n" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "needs_review", + "value" : "VoidLink 桌面模式快捷键:\n\n- Ctrl + Alt + Shift + Q — 断开当前会话\n\n- Ctrl + Alt + Shift + S — 切换性能信息叠加样式\n\n- Ctrl + Alt + Shift + M — 切换鼠标指针捕获模式\n\n- Ctrl + Alt + Shift + C — 切换鼠标指针可见性" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "needs_review", + "value" : "VoidLink 桌面模式快捷鍵:\n\nCtrl + Alt + Shift + Q — 中斷目前連線\n\nCtrl + Alt + Shift + S — 切換統計資訊覆蓋樣式\n\nCtrl + Alt + Shift + M — 切換滑鼠指標捕捉模式\n\nCtrl + Alt + Shift + C — 切換滑鼠指標可見性" + } + }, + "zh-HK" : { + "stringUnit" : { + "state" : "needs_review", + "value" : "VoidLink 桌面模式快捷鍵:\n\nCtrl + Alt + Shift + Q — 中斷目前連線\n\nCtrl + Alt + Shift + S — 切換統計資訊覆蓋樣式\n\nCtrl + Alt + Shift + M — 切換滑鼠指標捕捉模式\n\nCtrl + Alt + Shift + C — 切換滑鼠指標可見性" + } + } + } + }, "Failed to import profiles" : { "extractionState" : "manual", "localizations" : { @@ -4608,13 +4666,13 @@ "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "- 觸控板:拖曳方式與 Windows 筆記型電腦觸控板完全相同。快速輕點兩下,從第二次輕點開始進入拖曳模式。\n\n- 原生觸控:即多點觸控傳遞,macOS 不支援。\n\n- 絕對觸控:在 macOS 上提供類似觸控螢幕的體驗。" + "value" : "- 觸控板:拖曳方式與 Windows 筆記型電腦觸控板完全相同。快速輕點兩下,從第二次輕點開始進入拖曳模式。\n\n- 多点觸控:macOS 不支援。\n\n- 單點滑鼠:在 macOS 上提供類似觸控螢幕的體驗。" } }, "zh-HK" : { "stringUnit" : { "state" : "translated", - "value" : "- 觸控板:拖曳方式與 Windows 筆記型電腦觸控板完全相同。快速輕點兩下,從第二次輕點開始進入拖曳模式。\n\n- 原生觸控:即多點觸控傳遞,macOS 不支援。\n\n- 絕對觸控:在 macOS 上提供類似觸控螢幕的體驗。" + "value" : "- 觸控板:拖曳方式與 Windows 筆記型電腦觸控板完全相同。快速輕點兩下,從第二次輕點開始進入拖曳模式。\n\n- 多点觸控:macOS 不支援。\n\n- 單點滑鼠:在 macOS 上提供類似觸控螢幕的體驗。" } } } diff --git a/VoidLink/ViewControllers/MainFrameViewController.m b/VoidLink/ViewControllers/MainFrameViewController.m index fb22b5f6..95d2c879 100644 --- a/VoidLink/ViewControllers/MainFrameViewController.m +++ b/VoidLink/ViewControllers/MainFrameViewController.m @@ -1135,7 +1135,7 @@ static NSMutableSet* hostList; else [revealController buttonsNotInStreaming]; DataManager* dataMan = [[DataManager alloc] init]; - TemporarySettings* currentSettings = [dataMan getSettings]; + // TemporarySettings* currentSettings = [dataMan getSettings]; [streamFrameViewController setUserInteractionEnabledForStreamView:!_settingsExpandedInStreamView || position == FrontViewPositionLeft]; [settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.resolutionStack]; diff --git a/VoidLink/ViewControllers/SettingsViewController.m b/VoidLink/ViewControllers/SettingsViewController.m index e855b86d..c60fd7e2 100644 --- a/VoidLink/ViewControllers/SettingsViewController.m +++ b/VoidLink/ViewControllers/SettingsViewController.m @@ -1009,6 +1009,11 @@ BOOL isCustomResolution(CGSize res) { showOnlineDocAction = true; onlineDocLink = [LocalizationHelper localizedStringForKey:@"onScreenWidgetStackDoc"]; } + if([sender.superview.accessibilityIdentifier isEqualToString: @"externalDisplayModeStack"]){ + tipText = [LocalizationHelper localizedStringForKey:@"externalDisplayModeStackTip"]; + showOnlineDocAction = true; + onlineDocLink = [LocalizationHelper localizedStringForKey:@"externalDisplayModeStackDoc"]; + } UIAlertController *tipsAlertController = [UIAlertController alertControllerWithTitle: [LocalizationHelper localizedStringForKey:@"Tips"] message: [LocalizationHelper localizedStringForKey:@"%@", tipText] preferredStyle:UIAlertControllerStyleAlert]; diff --git a/VoidLink/mul.lproj/iPad.xcstrings b/VoidLink/mul.lproj/iPad.xcstrings index b5710063..44f9e595 100644 --- a/VoidLink/mul.lproj/iPad.xcstrings +++ b/VoidLink/mul.lproj/iPad.xcstrings @@ -3068,37 +3068,37 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "台前调度" + "value" : "台前调度(可全屏)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "幕前調度" + "value" : "幕前調度(可全螢幕)" } }, "zh-HK" : { "stringUnit" : { "state" : "translated", - "value" : "幕前調度" + "value" : "幕前調度(可全螢幕)" } } } }, "VWB-YB-Ptj.segmentTitles[1]" : { - "comment" : "Class = \"UISegmentedControl\"; VWB-YB-Ptj.segmentTitles[1] = \"AirPlay\"; ObjectID = \"VWB-YB-Ptj\";", + "comment" : "Class = \"UISegmentedControl\"; VWB-YB-Ptj.segmentTitles[1] = \"AirPlay (mirroring)\"; ObjectID = \"VWB-YB-Ptj\";", "extractionState" : "extracted_with_value", "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "AirPlay" + "value" : "AirPlay (mirroring)" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "隔空播放" + "state" : "needs_review", + "value" : "隔空播放(镜像)" } }, "zh-Hant" : { @@ -3109,7 +3109,7 @@ }, "zh-HK" : { "stringUnit" : { - "state" : "translated", + "state" : "needs_review", "value" : "螢幕鏡像輸出" } } diff --git a/VoidLink/mul.lproj/iPhone.xcstrings b/VoidLink/mul.lproj/iPhone.xcstrings index a26d0f7f..32b2c72c 100644 --- a/VoidLink/mul.lproj/iPhone.xcstrings +++ b/VoidLink/mul.lproj/iPhone.xcstrings @@ -2834,19 +2834,19 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "台前调度" + "value" : "台前调度(可全屏)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "幕前調度" + "value" : "幕前調度(可全螢幕)" } }, "zh-HK" : { "stringUnit" : { "state" : "translated", - "value" : "幕前調度" + "value" : "幕前調度(可全螢幕)" } } } @@ -2864,7 +2864,7 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隔空播放" + "value" : "隔空播放(镜像)" } }, "zh-Hant" : {