feat: Better-Seewo v2.0.0 - 希沃白板功能增强插件
- Fluent Design 风格 UI,深色/浅色主题切换 - 平滑过渡动画(页面切换、按钮交互、状态变化) - 五大核心功能:安装管理、墨迹管理、格式转换、触摸设置、激活管理 - 基于 dotnetCampus.EasiPlugin.Sdk v2.1.1-alpha.3 插件框架 - WPF 安装向导(欢迎页 -> 安装页 -> 完成页)
This commit is contained in:
126
Better-EN5/Program.cs
Normal file
126
Better-EN5/Program.cs
Normal file
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
* 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user