Files
Better-Seewo/Better-EN5/Program.cs
miao-moe 8dd1eed519 feat: Better-Seewo v2.0.0 - 希沃白板功能增强插件
- Fluent Design 风格 UI,深色/浅色主题切换
- 平滑过渡动画(页面切换、按钮交互、状态变化)
- 五大核心功能:安装管理、墨迹管理、格式转换、触摸设置、激活管理
- 基于 dotnetCampus.EasiPlugin.Sdk v2.1.1-alpha.3 插件框架
- WPF 安装向导(欢迎页 -> 安装页 -> 完成页)
2026-06-28 06:51:35 +00:00

127 lines
4.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* Program.cs
* Better-Seewo EN5 增强插件入口点
* 所属项目Better-Seewo
* 作者:雾启工作室
*
* 说明:
* 本文件是希沃白板 EN5 增强插件的主入口,继承 EasiPlugin 基类。
* 在 OnRunningAsync 中完成以下初始化工作:
* 1. 检测并排除云课模式运行环境
* 2. 延迟 3 秒等待白板完全就绪
* 3. 通过 IUIItemManager 向 BoardEditMenu 注入三个菜单项
*/
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using dotnetCampus.EasiPlugin;
using Better_Seewo.Better_EN5.UI;
namespace Better_Seewo.Better_EN5
{
/// <summary>
/// Better-Seewo EN5 增强插件主类
/// 继承 EasiPlugin 基类,作为希沃白板 EN5 的功能增强插件入口
/// </summary>
public class Program : EasiPlugin
{
/// <summary>
/// 中英文双语资源字典
/// 用于菜单项标题等多语言支持
/// </summary>
private DictionaryLanguageSource _languageSource;
/// <summary>
/// 三个菜单项实例
/// </summary>
private ExportInkMenuItem _exportInkMenuItem;
private ImportInkMenuItem _importInkMenuItem;
private ManagerMenuItem _managerMenuItem;
/// <summary>
/// 插件运行入口
/// 当希沃白板 EN5 加载本插件时调用此方法
/// </summary>
protected override async Task OnRunningAsync()
{
// 检测是否为云课模式,如果是则不加载插件
// 云课模式下部分插件 API 不可用,直接退出避免异常
if (EN.CommandOptions.IsCloud)
{
return;
}
// 延迟 3 秒启动,确保白板界面和各项服务已完全就绪
await Task.Delay(3000);
// 初始化中英文双语资源
InitializeLanguageSource();
// 创建三个菜单项实例
_exportInkMenuItem = new ExportInkMenuItem(_languageSource);
_importInkMenuItem = new ImportInkMenuItem(_languageSource);
_managerMenuItem = new ManagerMenuItem(_languageSource);
// 注册所有菜单项到白板编辑菜单
RegisterMenuItems();
}
/// <summary>
/// 初始化中英文双语资源字典
/// 提供菜单项标题的中文和英文翻译
/// </summary>
private void InitializeLanguageSource()
{
var dictionary = new Dictionary<string, string>
{
// 导出墨迹菜单项标题
{ "ExportInk.Title", "导出墨迹" },
{ "ExportInk.Title.en", "Export Ink" },
// 导入墨迹菜单项标题
{ "ImportInk.Title", "导入墨迹" },
{ "ImportInk.Title.en", "Import Ink" },
// 管理器菜单项标题
{ "Manager.Title", "Better-Seewo 管理" },
{ "Manager.Title.en", "Better-Seewo Manager" },
};
_languageSource = new DictionaryLanguageSource(dictionary);
}
/// <summary>
/// 注册所有菜单项到白板的 BoardEditMenu
/// 通过 IUIItemManager 接口向编辑菜单栏注入自定义功能按钮
/// </summary>
private void RegisterMenuItems()
{
// 获取白板 UI 项管理器
var uiItemManager = EN.GetService<IUIItemManager>();
// 依次注册三个菜单项
uiItemManager.AddMenuItem(_exportInkMenuItem);
uiItemManager.AddMenuItem(_importInkMenuItem);
uiItemManager.AddMenuItem(_managerMenuItem);
}
/// <summary>
/// 取消注册所有菜单项
/// 在插件卸载或白板关闭时调用,从菜单栏移除已注入的菜单项
/// </summary>
private void UnregisterMenuItems()
{
// 获取白板 UI 项管理器
var uiItemManager = EN.GetService<IUIItemManager>();
// 依次移除三个菜单项
uiItemManager.RemoveMenuItem(_exportInkMenuItem);
uiItemManager.RemoveMenuItem(_importInkMenuItem);
uiItemManager.RemoveMenuItem(_managerMenuItem);
}
}
}