工具生成API接口文档
本文档详细描述了由UI设计工具自动生成的C语言API接口,包括资源管理、页面管理、事件处理等核心功能模块。
本章目录
- 1. 资源管理接口 (gui_res)
- 2. 页面相关接口 (gui_guider)
- 3. 页面初始化接口 (gui_scr)
- 4. 事件处理接口 (gui_events)
- 5. 字体资源接口 (gui_fonts)
- 6. 图片资源接口 (gui_images)
- 7. 控件组接口 (gui_group)
- 8. 国际化接口 (i18n)
- 9. 模型绑定接口 (gui_msg)
- 10. 时间轴动画接口 (gui_timelines)
本章正文
资源管理接口 (gui_res)
概述
提供对应用程序资源的访问,包括资源路径获取和事件回调函数管理。
主要接口
gui_get_res_path
/**
* 获取指定ID资源的路径
* @param id 资源ID
* @return 资源路径字符串指针
*/
char * gui_get_res_path(int32_t id)
gui_get_event_cb
/**
* 获取指定ID事件的回调函数
* @param id 事件ID
* @return 事件回调函数指针
*/
lv_event_cb_t gui_get_event_cb(int32_t id)
res_event_$eventName$
在
工程
-事件
中,添加的事件,所生成对应的事件回调,弱函数,可在custom
中实现强函数。
/**
* 事件回调弱函数
* @param e LVGL事件对象指针
*/
void res_event_$eventName$(lv_event_t *e);
页面相关接口 (gui_guider)
概述
管理应用程序中的页面加载、切换和生命周期。
主要接口
ui_load_scr_anim
/**
* 加载页面并应用指定动画效果
* @param ui UI上下文指针
* @param screen 目标页面指针
* @param anim_type 动画类型
* @param time 动画持续时间
* @param delay 动画延迟时间
* @param is_clean 是否清理旧页面(lv_obj_clear(scr))
* @param auto_del 是否自动删除
* @param is_push_satck 是否推入页面栈
*/
void ui_load_scr_anim(lv_ui *ui, gui_scr_t *screen, lv_scr_load_anim_t anim_type, uint32_t time,
uint32_t delay, bool is_clean, bool auto_del, bool is_push_satck)
ui_scr_stack_pop_anim
/**
* 从页面栈中弹出页面并加载,可应用动画效果
* @param ui UI上下文指针
* @param anim_type 动画类型
* @param time 动画持续时间
* @param delay 动画延迟时间
* @param is_clean 是否清理旧页面(lv_obj_clear(scr))
* @param auto_del 是否自动删除
* @param is_push_satck 是否推入页面栈
*/
void ui_scr_stack_pop_anim(lv_ui *ui, lv_scr_load_anim_t anim_type, uint32_t time, uint32_t delay,
bool is_clean, bool auto_del, bool is_push_satck)
ui_get_scr
/**
* 获取指定ID的页面
* @param scr_id 页面ID
* @return 页面结构体指针
*/
gui_scr_t * ui_get_scr(int32_t scr_id)
ui_get_setup_scr
/**
* 获取已初始化的指定ID页面
* @param scr_id 页面ID
* @return 已初始化页面结构体指针
*/
gui_scr_t * ui_get_setup_scr(int32_t scr_id)
ui_is_act_scr
/**
* 判断指定页面是否为当前活动页面
* @param scr_id 页面ID
* @return 如果是活动页面返回true,否则返回false
*/
bool ui_is_act_scr(int32_t scr_id)
setup_ui
/**
* 初始化整个UI系统
* @param ui UI上下文指针
*/
void setup_ui(lv_ui *ui)
setup_scr_$pageName$
/**
* 页面初始化函数声明
* @param ui UI上下文指针
* @return 页面对象指针
*/
lv_obj_t * setup_scr_$pageName$(lv_ui *ui)
unload_scr_$pageName$
/**
* 页面卸载函数声明
* @param ui UI上下文指针
*/
void unload_scr_$pageName$(lv_ui *ui)
页面初始化接口 (gui_scr)
概述
包含页面创建和销毁的具体实现,控件样式初始化,页面管理初始化。
主要接口
setup_scr_$pageName$
/**
* 页面初始化实现,在对应的setup_scr_$pageName$.c文件中定义
* @param ui UI上下文指针
* @return 页面对象指针
*/
lv_obj_t * setup_scr_$pageName$(lv_ui *ui)
unload_scr_$pageName$
/**
* 页面卸载实现,在对应的setup_scr_$pageName$.c文件中定义
* @param ui UI上下文指针
*/
void unload_scr_$pageName$(lv_ui *ui)
ui_style_init
/**
* 初始化控件默认样式变量(ui_style.h)
*/
void ui_style_init(void)
ui_style_set
/**
* 给控件设置默认样式(ui_style.h)
* @param obj 控件对象指针
* @param type 控件类型
*/
void ui_style_set(lv_obj_t * obj, gui_ctrl_type_t type)
ui_scr_manager_init
/**
* 初始化页面管理(ui_scr_manager.h)
*/
void ui_scr_manager_init(void)
事件处理接口 (gui_events)
概述
用于初始化和管理用户界面事件,包括事件初始化,事件回调函数管理,多国语言刷新,页面加载/卸载回调函数管理。
主要接口
events_init
/**
* 初始化全局事件(events_init.h)
* @param ui UI上下文指针
*/
void events_init(lv_ui *ui)
events_init_$pageName$
/**
* 初始化指定页面的事件(events_init.h)
* @param ui UI上下文指针
*/
void events_init_$pageName$(lv_ui *ui)
i18n_refresh_texts
/**
* 刷新指定页面的多国语言文本(i18n_handler.h)
* @param scr_id 页面ID
*/
void i18n_refresh_texts(int32_t scr_id)
i18n_refresh_all_texts
/**
* 刷新所有已初始化页面的多国语言文本(i18n_handler.h)
*/
void i18n_refresh_all_texts()
gui_scr_action_cb
该函数为弱函数,可由用户自己实现强函数。
/**
* 页面加载/卸载回调函数(screen_handler.h)
* @param id 页面ID
* @param action 页面操作类型
*/
GUI_WEAKREF void gui_scr_action_cb(gui_screen_id_t id, gui_screen_action_t action)
字体资源接口 (gui_fonts)
概述
用于初始化程序中使用的字体资源。
主要接口
init_gui_fonts
/**
* 初始化应用程序中使用的所有字体
*/
void init_gui_fonts()
图片资源接口 (gui_images)
概述
用于声明和管理应用程序中的图片资源,包括普通图片和Lottie动画。
主要接口
LV_IMG_DECLARE
/**
* 声明图片资源,每个图片C文件都有对应的_$image_name$_(alpha).c文件
*/
LV_IMG_DECLARE(_Menu_14Sleep_alpha111x88)
LV_LOT_DECLARE
/**
* 声明Lottie动画资源,每个Lottie C文件都有对应的$lottie_name$.c文件
*/
#define LV_LOT_DECLARE(array_name) const uint8_t array_name[];
LV_LOT_DECLARE(lottie_daku)
控件组接口 (gui_group)
概述
用于创建和管理控件组,便于对一组控件进行统一操作。
主要接口
gui_group_init
/**
* 初始化控件组
*/
void gui_group_init()
gui_group_set_default
/**
* 设置默认控件组
* @param group 控件组指针
*/
void gui_group_set_default(lv_group_t *group)
gui_group_add_obj
/**
* 添加或移除控件到控件组
* @param group 控件组指针
* @param obj 控件对象指针
* @param is_add true表示添加,false表示移除
*/
void gui_group_add_obj(lv_group_t *group, lv_obj_t *obj, bool is_add)
国际化接口 (i18n)
概述
用于处理应用程序的多语言支持。
主要接口
lv_i18n_get_text
/**
* 获取指定原始文本的翻译文本
* @param msg_id 原始文本
* @return 翻译后的文本字符串
*/
const char * lv_i18n_get_text(const char * msg_id)
lv_i18n_get_text_plural
/**
* 获取指定原始文本的复数形式翻译文本
* @param msg_id 原始文本
* @param num 数量
* @return 根据数量确定的翻译文本
*/
const char * lv_i18n_get_text_plural(const char * msg_id, int num)
lv_i18n_get_current_locale
/**
* 获取当前语言设置
* @return 当前语言代码字符串
*/
const char * lv_i18n_get_current_locale(void)
_ 和 _p 和 _font
/**
* 获取翻译文本和字体的宏定义
*/
#define _(text) lv_i18n_get_text(text)
#define _p(text, num) lv_i18n_get_text_plural(text, num)
#define _font(text) lv_i18n_get_font(text)
模型绑定接口 (gui_msg)
概述
用于处理数据模型与界面控件之间的绑定,实现数据驱动的界面更新。
主要接口
gui_msg_init
/**
* 初始化模型绑定系统
*/
void gui_msg_init()
gui_msg_init_ui
/**
* 初始化UI绑定
*/
void gui_msg_init_ui()
gui_msg_init_events
/**
* 初始化事件绑定
*/
void gui_msg_init_events()
gui_msg_unsubscribe
/**
* 取消订阅所有模型绑定
*/
void gui_msg_unsubscribe()
gui_msg_send
/**
* 发送模型消息
* @param msg_id 消息ID
* @param value 消息值指针
* @param len 消息值长度(只有消息类型为数组时传入才有意义)
* @return 消息发送状态
*/
gui_msg_status_t gui_msg_send(int32_t msg_id, void * value, int32_t len)
gui_msg_get_send_status
/**
* 获取当前模型发送状态
* @return 消息发送状态
*/
gui_msg_send_status_t gui_msg_get_send_status()
gui_msg_get
该函数为弱函数,可由用户自己实现强函数。
/**
* 获取指定ID的模型数据
* @param msg_id 消息ID
* @return 模型数据指针
*/
gui_msg_data_t * gui_msg_get(int32_t msg_id)
// 工具生成的默认实现
gui_msg_data_t * gui_msg_get_guider(int32_t msg_id);
gui_msg_action_change
该函数为弱函数,可由用户自己实现强函数。
/**
* 修改模型动作
* @param msg_id 消息ID
* @param access 访问动作类型
* @param data 数据指针
* @param type 数据类型
*/
void gui_msg_action_change(int32_t msg_id, gui_msg_action_t access, gui_msg_data_t * data, gui_msg_data_type_t type)
// 工具生成的默认实现
void gui_msg_action_change_guider(int32_t msg_id, gui_msg_action_t access, gui_msg_data_t * data, gui_msg_data_type_t type);
gui_msg_subscribe_change
该函数为弱函数,可由用户自己实现强函数。
/**
* 修改模型订阅状态
* @param msg_id 消息ID
* @param sub_type 订阅类型
*/
void gui_msg_subscribe_change(int32_t msg_id, gui_msg_subscribe_t sub_type)
// 工具生成的默认实现
void gui_msg_subscribe_change_guider(int32_t msg_id, gui_msg_subscribe_t sub_type);
gui_msg_get_subject
/**
* 获取订阅对象中的subject
* @param msg_id 消息ID
* @return subject对象指针
*/
lv_subject_t * gui_msg_get_subject(int32_t msg_id)
gui_msg_get_sub
/**
* 获取订阅对象
* @param msg_id 消息ID
* @return 订阅对象指针
*/
gui_msg_sub_t * gui_msg_get_sub(int32_t msg_id)
gui_msg_create_sub
/**
* 创建订阅对象
* @param msg_id 消息ID
* @return 订阅对象指针
*/
gui_msg_sub_t * gui_msg_create_sub(int32_t msg_id)
gui_msg_get_data
/**
* 获取模型数据
* @return 模型数据指针
*/
gui_msg_data_t * gui_msg_get_data()
gui_msg_get_data_type
/**
* 获取指定模型的数据类型
* @param msg_id 消息ID
* @return 数据类型
*/
gui_msg_data_type_t gui_msg_get_data_type(int32_t msg_id)
gui_msg_get_data_array_type
/**
* 获取指定模型数据的数组类型
* @param msg_id 消息ID
* @return 数组类型
*/
gui_msg_array_type_t gui_msg_get_data_array_type(int32_t msg_id)
gui_msg_get_name
/**
* 获取模型名称
* @param msg_id 消息ID
* @return 模型名称字符串
*/
char * gui_msg_get_name(int32_t msg_id)
gui_msg_has_observer
/**
* 判断是否订阅
* @param subject subject对象指针
* @param cb 观察者回调函数指针
* @param obj 控件对象指针
* @param user_data 用户数据指针
* @return 如果有观察者返回true,否则返回false
*/
bool gui_msg_has_observer(lv_subject_t * subject, lv_observer_cb_t cb, lv_obj_t * obj, void * user_data)
gui_msg_setup_component
/**
* 设置控件的消息订阅
* @param subscribe_enabled 是否启用订阅
* @param event_enabled 是否启用事件
* @param subject subject对象指针
* @param target_obj 目标控件对象指针
* @param msg_data 消息数据指针
* @param observer_cb 观察者回调函数指针
* @param msg_id 消息ID
* @param msg_action 消息动作类型
* @param data_type 数据类型
* @param event_cb 事件回调函数指针
*/
void gui_msg_setup_component(bool subscribe_enabled, bool event_enabled, lv_subject_t *subject, lv_obj_t *target_obj, gui_msg_data_t *msg_data, lv_observer_cb_t observer_cb, int32_t msg_id, gui_msg_action_t msg_action, gui_msg_data_type_t data_type, lv_event_cb_t event_cb)
gui_$msgName$_msg.h
每个消息模型的接口
// gui_$msgName$_msg.h
//初始化模型绑定
void gui_$msgName$_msg_init(lv_ui *ui);
//初始化UI
void gui_$msgName$_msg_init_ui();
//初始化控件事件,订阅模型消息
void gui_$msgName$_msg_init_events();
//取消订阅所有模型绑定
void gui_$msgName$_msg_unsubscribe();
//发送模型消息
gui_msg_status_t gui_$msgName$_msg_send(int32_t msg_id, void * value, int32_t len);
时间轴动画接口 (gui_timelines)
概述
用于创建和管理复杂的时间轴动画,执行多个动画。
主要接口
gui_timelines_init
/**
* 初始化时间轴动画
* @param ui UI上下文指针
*/
void gui_timelines_init(lv_ui *ui)
gui_timelines_stop
/**
* 停止所有时间轴动画
*/
void gui_timelines_stop()
gui_timelines_delete
/**
* 删除所有时间轴动画
*/
void gui_timelines_delete()
gui_anim_set_var
/**
* 设置动画变量
* @param anim 动画对象指针
* @param obj 控件对象指针
* @param exec_cb 执行回调函数指针
* @param data 动画数据
*/
void gui_anim_set_var(lv_anim_t *anim, lv_obj_t *obj, lv_anim_exec_xcb_t exec_cb, gui_anim_data_t data)
gui_timeline_start
/**
* 启动指定的时间轴动画
* @param timeline 时间轴对象指针
*/
void gui_timeline_start(gui_timeline_t *timeline)
gui_timeline_stop
/**
* 停止指定的时间轴动画
* @param timeline 时间轴对象指针
*/
void gui_timeline_stop(gui_timeline_t *timeline)
gui_timeline_delete
/**
* 删除指定的时间轴动画
* @param timeline 时间轴对象指针
*/
void gui_timeline_delete(gui_timeline_t *timeline)
gui_timeline_set_period
/**
* 设置时间轴动画的周期
* @param timeline 时间轴对象指针
* @param period 周期时间(毫秒)
*/
void gui_timeline_set_period(gui_timeline_t *timeline, uint32_t period)
gui_timeline_set_repeat_count
/**
* 设置时间轴动画的重复次数
* @param timeline 时间轴对象指针
* @param count 重复次数(-1表示无限循环)
*/
void gui_timeline_set_repeat_count(gui_timeline_t *timeline, int32_t count)
gui_anim_set__$prop/style$
/**
* 设置控件属性/样式的动画回调函数
* @param var 动画变量指针
* @param v 当前动画值
*/
void gui_anim_set_$prop/style$(void * var, int32_t v);
gui_$timelineName$_timeline.h
每个时间轴动画的接口
// gui_$timelineName$_timeline.h
//初始化时间轴动画
extern int32_t gui_$timelineName$_timeline_init(lv_ui *ui)