-
Notifications
You must be signed in to change notification settings - Fork 5
接口说明
Important
如果需要更多公共接口,请提交 issue 请求,请勿直接修改
property:
-
is-darkmode
(out bool) -
surrealism-ui-default-theme
(out Themes) surrealism 组件主题 -
image
详见ui/assets/image/image_token.slint
-
font
详见ui/logic/style_token.slint
-
color
详见ui/logic/style_token.slint
function:
set-display-mode(ColorScheme)
-
switch-display-mode()
切换日夜模式
function:
-
navigate-to(ViewName)
: 与Controller接口同义,下同 clean-navigate-to(ViewName)
replace-navigate-to(ViewName)
prior-view()
ViewName (enum):
DiscoveryPage
SearchPage
HistoryPage
MyEventPage
DetailPage
AboutPage
SettingPage
LoginOverlay
MenuOverlay
property:
-
is-login
(out bool)
function:
-
request-login()
: 与Controller接口同义,下同 request-logout()
function:
show-message(string, MessageType)
MessageType (enum):
Info
Warning
Error
请勿自行创建 manager 及 view 的实例
拥有各 manager 和 view,C++层的桥梁,每个类都会存在一个对 UiBridge 的引用
getViewManager()
getAccountManager()
getMessageManager()
template<typename ViewType> T& getView(ViewName target)
负责管理窗口的显示,负责调用部分 on* 接口
navigateTo(ViewName newView)
cleanNavigateTo(ViewName newView)
replaceNavigateTo(ViewName newView)
priorView()
isVisible(ViewName target)
负责登录请求和刷新 Token,负责调用部分 on* 接口
isLogin()
requestLogin()
requestLogout()
getUserInfo()
负责在 UI 层展示信息,最好不要太长
-
showMessage(std::string content,MessageType type,std::chrono::milliseconds timeout)
-
type
: 与 MessageManager 中要求的 MessageType 相同 -
timeout
: 信息显示的时长
-
每个 view 均将 BasicView 作为基类,继承8个接口,会在相应时间被调用,保证在主线程上调用,详细请见 src/Controller/Core/BasicView.h
onCreate()
onStart()
onLogin()
onShow()
onHide()
onLogout()
onStop()
onDestroy()
模板类,作为基类,提供访问对应 global 的能力,重载了 ->
,使用方式:
auto& self = *this;
self->(some functions here)
包含头文件 Controller/AsyncExectuor.hh
,该类允许在普通函数中调用协程并在协程完成时 在主线程中 调用回调。
使用单例指针 evento::executor()
调用内部公有方法
-
template<typename T, typename CompletionCallback> void asyncExecute(Task<T> task, CompletionCallback&& callback);
-
task
: Awaiter,即形如coro()
协程的 调用,可使用&&
或||
重载 同时 调用多个协程 -
callback
:void(T)
类型的 函数对象,T
为协程返回类型,协程完成时在主线程被调用
-
-
template<typename TaskFunc, typename CompletionCallback> void asyncExecute(TaskFunc&& func, CompletionCallback&& callback, std::chrono::steady_clock::duration interval, int flag = TimerFlag::Immediate | TimerFlag::Periodic);
-
func
:Task<void>()
类型的 函数对象,本函数会根据flag以相应的模式完成对func
的定时调用 -
callback
:void(T)
类型的 函数对象,T
为协程返回类型,协程完成时在主线程被调用 -
flag
: 一个枚举值,用以明确定时任务的执行模式-
Once
: 只执行一次任务 -
Periodic
: 每隔interval
时间执行一次任务 -
Immediate
: 调用时执行第一次任务 -
Delay
: 调用后interval
时间执行第一次任务
执行策略 必须 使用
|
符号组合两种枚举值,断言禁止出现Once | Periodic
和Immediate | Delay
两种特定组合 -
-
包含头文件 Infrastructure/IPC/SocketClient.h
可以使用系统托盘进行系统消息推送,使用 evento::ipc()
全局单例对象和系统托盘通信,可使用的接口如下:
startTray()
:开始执行托盘子进程,并建立 socket 连接
exitTray()
:托盘退出
showOrUpdateMessage(int messageId, std::string const& message, std::chrono::steady_clock::time_point time)
:在 time
时刻进行消息推送,对于同一个消息id,多次调用等同修改消息内容和消息推送时间
cancelMessage(int messageId)
:取消指定消息的推送任务