-
Notifications
You must be signed in to change notification settings - Fork 216
zh_CN_秋之盒开放框架API
Shunhong Zhang edited this page Apr 25, 2018
·
14 revisions
3.1 选择窗口 3.1 选择窗口 3.1 选择窗口 3.1 选择窗口 3.1 选择窗口 3.1 选择窗口 3.1 选择窗口
命名空间 | 简要说明 | 代表 |
---|---|---|
A.O |
存放开放框架共用的东西 |
Context 抽象类,BuildInfo 静态信息类 |
A.O.Extension |
秋之盒标准拓展相关的接口和抽象类 | AutumnBoxExtension |
A.O.Internal |
整个A.O的管理层,普通模块无法对其进行操作 | FrameworkManager |
A.O.Open |
提供给拓展的所有API都在此处 |
OpenApi.Log ,OpenApi.Gui
|
A.O.Script |
秋之盒脚本拓展相关的借口和管理类 | ABEScript |
开放框架的所有API都需要传入Context
作为首个参数,这个参数的主要作用在于验证API调用者身份
不过,所有秋之盒标准拓展都继承自Context
抽象类,也就是说,你可以传this进去
示例:
//获取秋之盒主窗口,调用者是本模块
OpenApi.Gui.GetMainWindow(this);
其实我更建议去阅读IGuiApi接口定义
以下所有静态函数均位于A.O.Open.OpenApi.Gui
下
以下用O.G
代称OpenApi.Gui
显示一个选择窗口 调用此API将堵塞至用户做出选择
var result = O.G.ShowChoiceBox(this,"标题","内容","左按钮文本(可选,默认取消)","右按钮文本(可选,默认确定)");
这个很好理解吧? 调用此API将堵塞至用户关闭消息窗口
O.G.ShowMessageBox(this,"标题","内容");
住:此处的ICompletable
参数请自行阅读AutumnBox.Basic.FlowFramework
源代码
O.G.ShowLoadingBox(this,可完成的对象);
拓展模块运行在非界面线程中,也就是说,在进行与界面相关操作时,会因线程不安全抛出异常,因此可以使用此API来实现在UI线程运行代码
O.G.RunOnUIThread(this,()=>{
new Window().Show();
});
另外,你也可以使用标准拓展模块的保护方法,这样就无需传入Context
(其内部仍然是调用上面的API,只不过会自动传入this作为Context)
RunOnUIThread(()=>{
new Window().Show();
});
var window = O.G.GetMainWindow(this);
此处获取的"公共资源"也就是秋之盒的资源词典中的资源
语言资源键值可查看中文语言资源
var appName = (string)O.G.GetPublicResouce(this,"AppName");
//appName: 秋之盒
如果你不想进行丑陋的显示转换,也可以使用同名的泛型方法
var appName = O.G.GetPublicResource<string>(this,"AppName");
var strCode = O.G.CurrentLanguageCode;
//中文环境下,strCode为zh-CN
//其它环境可自行搜索语言地区代码
O.G.ShowDebugWindow(this);
调用此函数,将会询问用户是否同意,如果用户不同意,则抛出UserDeniedException
O.G.RestartApp(this);
另外,你还可以尝试以管理员模式重启秋之盒
O.G.RestartAppAsAdmin(this);
同样的,会询问用户,用户不同意就抛出异常
O.G.ShutdownApp(this);
此API效果不用我说了
O.G.RefreshExtensionList(this);
var bl = O.G.IsRunAsAdmin(this);
//bl 如果为true,则说明当前程序正在以管理员模式运行