From 6da13c4fc0d3e61f58bb28408d6a58ba04ec37d8 Mon Sep 17 00:00:00 2001
From: CJK_mkp <113243675+CJKmkp@users.noreply.github.com>
Date: Sun, 29 Jun 2025 13:01:33 +0800
Subject: [PATCH] =?UTF-8?q?add:=E7=9B=B4=E6=8E=A5=E8=B0=83Ci=E7=82=B9?=
=?UTF-8?q?=E5=90=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Ink Canvas/MainWindow.xaml | 9 +++++++++
.../MainWindow_cs/MW_FloatingBarIcons.cs | 20 ++++++++++++++++++-
Ink Canvas/MainWindow_cs/MW_Settings.cs | 10 ++++++++++
Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs | 2 ++
Ink Canvas/Resources/Settings.cs | 2 ++
5 files changed, 42 insertions(+), 1 deletion(-)
diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml
index 593d449a..2ebb8efb 100644
--- a/Ink Canvas/MainWindow.xaml
+++ b/Ink Canvas/MainWindow.xaml
@@ -2418,6 +2418,15 @@
FontWeight="Bold"
Toggled="ToggleSwitchShowRandomAndSingleDraw_Toggled" />
+
+
+
+
diff --git a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs
index e74d36a6..03ee2b5e 100644
--- a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs
+++ b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs
@@ -23,6 +23,7 @@ using System.Text;
using System.Globalization;
using System.Windows.Data;
using System.Xml.Linq;
+using MessageBox = iNKORE.UI.WPF.Modern.Controls.MessageBox;
namespace Ink_Canvas {
public partial class MainWindow : Window {
@@ -825,7 +826,24 @@ namespace Ink_Canvas {
AnimationsHelper.HideWithSlideAndFade(BorderTools);
AnimationsHelper.HideWithSlideAndFade(BoardBorderTools);
- new RandWindow(Settings, true).ShowDialog();
+ // 检查是否启用了直接调用ClassIsland点名功能
+ if (Settings.RandSettings.DirectCallCiRand) {
+ try {
+ System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo {
+ FileName = "classisland://plugins/IslandCaller/Run",
+ UseShellExecute = true
+ });
+ }
+ catch (Exception ex) {
+ MessageBox.Show("无法调用ClassIsland点名:" + ex.Message);
+
+ // 调用失败时回退到默认的随机点名窗口
+ new RandWindow(Settings, true).ShowDialog();
+ }
+ } else {
+ // 使用默认的随机点名窗口
+ new RandWindow(Settings, true).ShowDialog();
+ }
}
private void GridInkReplayButton_MouseUp(object sender, MouseButtonEventArgs e) {
diff --git a/Ink Canvas/MainWindow_cs/MW_Settings.cs b/Ink Canvas/MainWindow_cs/MW_Settings.cs
index 982e7702..099212cf 100644
--- a/Ink Canvas/MainWindow_cs/MW_Settings.cs
+++ b/Ink Canvas/MainWindow_cs/MW_Settings.cs
@@ -1775,6 +1775,16 @@ namespace Ink_Canvas {
// 保存设置到文件
SaveSettingsToFile();
}
+
+ private void ToggleSwitchDirectCallCiRand_Toggled(object sender, RoutedEventArgs e) {
+ if (!isLoaded) return;
+
+ // 获取开关状态并保存到设置中
+ Settings.RandSettings.DirectCallCiRand = ToggleSwitchDirectCallCiRand.IsOn;
+
+ // 保存设置到文件
+ SaveSettingsToFile();
+ }
#endregion
diff --git a/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs b/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs
index 77f45dd9..d36a7f9d 100644
--- a/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs
+++ b/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs
@@ -602,6 +602,7 @@ namespace Ink_Canvas {
RandWindowOnceCloseLatencySlider.Value = Settings.RandSettings.RandWindowOnceCloseLatency;
RandWindowOnceMaxStudentsSlider.Value = Settings.RandSettings.RandWindowOnceMaxStudents;
ToggleSwitchShowRandomAndSingleDraw.IsOn = Settings.RandSettings.ShowRandomAndSingleDraw;
+ ToggleSwitchDirectCallCiRand.IsOn = Settings.RandSettings.DirectCallCiRand;
RandomDrawPanel.Visibility = Settings.RandSettings.ShowRandomAndSingleDraw ? Visibility.Visible : Visibility.Collapsed;
SingleDrawPanel.Visibility = Settings.RandSettings.ShowRandomAndSingleDraw ? Visibility.Visible : Visibility.Collapsed;
} else {
@@ -609,6 +610,7 @@ namespace Ink_Canvas {
ToggleSwitchDisplayRandWindowNamesInputBtn.IsOn = Settings.RandSettings.DisplayRandWindowNamesInputBtn;
RandWindowOnceCloseLatencySlider.Value = Settings.RandSettings.RandWindowOnceCloseLatency;
RandWindowOnceMaxStudentsSlider.Value = Settings.RandSettings.RandWindowOnceMaxStudents;
+ ToggleSwitchDirectCallCiRand.IsOn = Settings.RandSettings.DirectCallCiRand;
}
// Automation
diff --git a/Ink Canvas/Resources/Settings.cs b/Ink Canvas/Resources/Settings.cs
index 522e90f1..a5abddbc 100644
--- a/Ink Canvas/Resources/Settings.cs
+++ b/Ink Canvas/Resources/Settings.cs
@@ -437,5 +437,7 @@ namespace Ink_Canvas
public int RandWindowOnceMaxStudents { get; set; } = 10;
[JsonProperty("showRandomAndSingleDraw")]
public bool ShowRandomAndSingleDraw { get; set; } = true;
+ [JsonProperty("directCallCiRand")]
+ public bool DirectCallCiRand { get; set; } = false;
}
}
\ No newline at end of file