Files
AC707N/SDK/apps/watch/include/ui/jlui_app/ui_api.h
T
2025-12-03 11:12:34 +08:00

333 lines
10 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.
#ifndef _JLUI_API_H_
#define _JLUI_API_H_
#include "app_config.h"
#include "ui/lcd/lcd_drive.h"
#include "jlui/ui.h"
#include "jlui_app/ui_style.h"
#include "app_msg.h"
#if CONFIG_JL_UI_ENABLE
#define KEY_CHANGE_PAGE APP_MSG_CHANGE_MODE
#define KEY_OK APP_MSG_LCD_OK
enum {
//按键会经过ui的消息 请放这里
KEY_UI_HOME = 0x40,
KEY_UI_SHORTCUT,
KEY_UI_POWEROFF,
KEY_UI_MENU_LIST,
KEY_UI_MINUS,
KEY_UI_PLUS,
KEY_UI_TRIPLE_CLICK,
};
#define GRT_CUR_MENU (0)
#define GET_MAIN_MENU (1)
#define CURR_WINDOW_MAIN (0)
enum ui_devices_type {
LED_7,
LCD_SEG3X9,
TFT_LCD,//彩屏
DOT_LCD,//点阵屏
};
//板级配置数据结构
struct ui_devices_cfg {
enum ui_devices_type type;
void *private_data;
};
struct touch_event {
int event;
int x;
int y;
int has_energy;
};
extern const struct ui_devices_cfg ui_cfg_data;
//led7 api
#if (TCFG_UI_ENABLE&&(CONFIG_UI_STYLE == STYLE_JL_LED7))
extern int led7_ui_init(const struct ui_devices_cfg *ui_cfg);
extern void ui_set_main_menu(enum ui_menu_main menu);
extern void ui_menu_reflash(u8 break_in);//break_in 是否打断显示,例如显示设置过程中需要刷新新界面。是是否打断设置界面显示
extern u8 ui_get_app_menu(u8);
extern void ui_set_led(u8 app_menu, u8 on, u8 phase, u16 highlight, u16 period);
extern void ui_set_auto_reflash(u32 msec);//自动刷新主页
extern void ui_close_main_menu();
extern void ui_set_tmp_menu(u8 app_menu, u16 ret_time, s32 arg, void (*timeout_cb)(u8 menu));
extern void ui_common(void *hd, void *private, u8 menu, u32 arg);//公共显示
#endif // #if (TCFG_UI_ENABLE&&(CONFIG_UI_STYLE == STYLE_JL_LED7))
//lcd api
//
extern int lcd_ui_init(void *arg);
extern int ui_hide_main(int id);
extern int ui_show_main(int id);
extern u8 get_need_password();
extern void set_need_password(u8 flag);
extern u8 get_screen_saver_status();
extern void ui_screen_recover(u8 recover_cur_page);
extern void ui_screen_saver(void *p);
extern int get_cur_srreen_width_and_height(u16 *screen_width, u16 *screen_height);
extern int get_cur_srreen_radius_and_fill_argb(u16 *screen_radius, u32 *screen_fill_argb);
extern u8 get_return_index();
extern u8 ui_return_page_pop(u8 dir);
extern int ui_return_page_pop_spec(u32 page_id); // 跳转到指定页面,清除中间的page记录
extern u8 ui_return_page_sub();
extern u8 ui_return_page_add(int page_id);
extern u32 ui_return_page_id();
extern u32 ui_return_prev_page_id(void);
extern void ui_return_page_push(int page_id);
extern void ui_return_page_clear();
extern void ui_return_page_del(int page_id);
/*
int (*entry)(int); // 返回trueentry回调里面自定义处理;返回false或者回调为NULL,默认显示page
int (*exit)(int); // 返回trueexit回调里面自定义处理;返回false或者回调为NULL,默认清除记录
*/
extern int ui_preemption_page_push(int page_id, int (*entry)(int), int (*exit)(int), u8 priority);
extern int ui_preemption_page_pop(int page_id);
extern int ui_preemption_page_del(int page_id);
extern int ui_preemption_page_check(void);
u32 ui_menu_enter_anim_enable();
u32 ui_menu_enter_anim_disable();
u32 ui_menu_enter_anim_flag_get();
extern int ui_auto_sw_page_effect_post(int curr_win, int next_win, u16 effect_mode, void *user_effect, void *effect_priv);
enum {
SCALE_EFFECT_OUT,
SCALE_EFFECT_IN,
};
extern int ui_page_scale_effect_post(int curr_win, int next_win, int dir);
typedef enum {
SLIDE_MODE_OFF,
SLIDE_MODE_NOT_RIGHT_ALL,
SLIDE_MODE_NOT_RIGHT_FIRST,
SLIDE_MODE_NOT_LOOP,
} CARD_SLIDE_MODE;
#define SIDEBAR_LEFT_IN_FIRST_PAGE 1
#define SIDEBAR_LEFT_IN_ALL_PAGE 2
extern int ui_page_manager_mode_set(u8 mode);
extern int ui_page_manager_mode_get(void);
extern void ui_card_enable(void);
extern void ui_card_disable(void);
extern u8 ui_card_get_move_mode();
extern void ui_card_set_move_mode(u8 mode);
extern int ui_show_window_slide(u32 page_id, int mode, int step);
extern int ui_server_msg_post(const char *msg, ...);
extern int ui_hide_curr_main();
extern int ui_touch_msg_post(struct touch_event *event);
extern int ui_touch_msg_post_withcallback(struct touch_event *event, void (*cb)(u8 finish));
extern int ui_key_msg_post(int msg);
extern void key_ui_takeover(u8 on);
extern int key_is_ui_takeover();
extern void ui_touch_timer_delete();
extern void ui_touch_timer_start();
extern void ui_auto_shut_down_modify(void);
extern void ui_auto_shut_down_re_run(void);
extern void ui_auto_shut_down_enable(void);
extern u8 ui_auto_shut_down_disable(void);
extern void ui_set_shut_down_time(u16 time);
extern int ui_get_shut_down_time();
extern void ui_set_shut_down_time_ms(u32 time_ms);
extern int ui_get_shut_down_time_ms();
extern u32 *get_ui_mem_id();
extern u32 get_ui_mem_id_size();
extern void set_ui_open_flag(u8 flag);
extern u8 get_ui_open_flag();
extern u8 get_ui_init_status();
extern void ui_backlight_close(void);
extern void ui_backlight_open(u8 recover_cur_page);
extern int watch_get_style();
extern int watch_set_style(int style);
extern void ui_auto_goto_dial_enable(void);
extern void ui_auto_goto_dial_disable(void);
extern void ui_send_event(u16 event, u32 val);
extern void ui_moto_run(u8 run_mode);
extern void cs_ui_popup_page(u32 page_id);
//表盘管理
extern void watch_set_need_reload(u8 need);
extern int watch_set_style(int style);
extern int watch_set_style_by_name(char *name);
extern int watch_get_style();
extern int watch_get_style_by_name(char *name);
extern char *watch_get_item(int style);
extern int watch_get_items_num();
extern char *watch_get_full_path();
extern char *watch_get_cur_path();
extern char *watch_get_root_path();
extern int watch_get_cur_path_len();
//表盘背景管理
extern u32 watch_bgp_get_nums();
extern char *watch_bgp_get_item(u8 sel_item);
extern char *watch_bgp_get_name(int item);
extern char *watch_bgp_add(char *bgp);
extern int watch_bgp_del(char *bgp);
extern int watch_bgp_set_related(char *bgp, u8 cur_watch, u8 del);
extern char *watch_bgp_get_related(u8 cur_watch);
extern char *watch_bgp_get_related_path(u8 cur_watch);
extern int watch_bgp_related_del_all(char *bgp);
extern int watch_bgp_get_index(char *bgp_name);
extern char *watch_bgp_get_item_without_path(s8 sel_item);
//多页面显示
extern int ui_show_multi_page();
extern int ui_hide_multi_page();
//=================================================================================//
// UI API //
//=================================================================================//
#if (TCFG_UI_ENABLE)
#if(CONFIG_UI_STYLE == STYLE_JL_LED7)//led7 显示
#define UI_INIT(a) led7_ui_init(a)
#define UI_SHOW_WINDOW(a) ui_set_main_menu(a)
#define UI_HIDE_WINDOW(...) ui_close_main_menu()
#define UI_HIDE_CURR_WINDOW() ui_close_main_menu()
#define UI_GET_WINDOW_ID() ui_get_app_menu(GET_MAIN_MENU)
#define UI_GET_CURR_MENU() ui_get_app_menu(GRT_CUR_MENU)
#define UI_REFLASH_WINDOW(a) ui_menu_reflash(a)
#define UI_SHOW_MENU ui_set_tmp_menu
#define UI_MSG_POST(...)
#else
#if (CONFIG_LVGL_UI_ENABLE)
#define UI_INIT(...)
#define UI_SHOW_WINDOW(...)
#define UI_HIDE_WINDOW(...)
#define UI_GET_WINDOW_ID() (-1)
#define UI_HIDE_CURR_WINDOW()
#define UI_SHOW_MENU(...)
#define UI_MSG_POST(...)
#define UI_REFLASH_WINDOW(a)
#define UI_MOTO_RUN(...)
#define UI_WINDOW_BACK_PUSH(a)
#define UI_WINDOW_BACK_SHOW(a)
#define UI_WINDOW_BACK_SPEC_SHOW(a)
#define UI_WINDOW_BACK_CLEAN()
#define UI_WINDOW_BACK_SUB()
#define UI_WINDOW_BACK_INDEX()
#define UI_WINDOW_BACK_DEL(a)
#define UI_WINDOW_PREEMPTION_POSH(a,b,c,d) (-1)
#define UI_WINDOW_PREEMPTION_DEL(a)
#define UI_WINDOW_PREEMPTION_POP(a)
#define UI_WINDOW_PREEMPTION_CHECK() (false)
/*#define platform_get_file(a)*/
#else
#define UI_INIT(a) lcd_ui_init(a)
#define UI_SHOW_WINDOW(a) ui_show_main(a)
#define UI_HIDE_WINDOW(a) ui_hide_main(a)
#define UI_HIDE_CURR_WINDOW() ui_hide_curr_main()
#define UI_GET_WINDOW_ID() ui_get_current_window_id()
#define UI_MSG_POST ui_server_msg_post
#define UI_SHOW_MENU(...)
#define UI_GET_CURR_MENU()
#define UI_REFLASH_WINDOW(a)
#define UI_MOTO_RUN(a) ui_moto_run(a)
#define UI_WINDOW_BACK_PUSH(a) ui_return_page_push(a)
#define UI_WINDOW_BACK_SHOW(a) ui_return_page_pop(a)
#define UI_WINDOW_BACK_SPEC_SHOW(a) ui_return_page_pop_spec(a)
#define UI_WINDOW_BACK_CLEAN() ui_return_page_clear()
#define UI_WINDOW_BACK_ADD(a) ui_return_page_add(a)
#define UI_WINDOW_BACK_SUB() ui_return_page_sub()
#define UI_WINDOW_BACK_INDEX() get_return_index()
#define UI_WINDOW_BACK_DEL(a) ui_return_page_del(a)
#define UI_WINDOW_PREEMPTION_POSH(a,b,c,d) ui_preemption_page_push(a,b,c,d)
#define UI_WINDOW_PREEMPTION_POP(a) ui_preemption_page_pop(a)
#define UI_WINDOW_PREEMPTION_DEL(a) ui_preemption_page_del(a)
#define UI_WINDOW_PREEMPTION_CHECK() ui_preemption_page_check()
#define CS_UI_POPUP_PAGE(a) cs_ui_popup_page(a)
#define UI_SHOW_MULTI_PAGE() ui_show_multi_page()
#define UI_HIDE_MULTI_PAGE() ui_hide_multi_page()
#endif
#endif
#else
//common api lcd屏和led7 通用api
#define UI_INIT(...)
#define UI_SHOW_WINDOW(...)
#define UI_HIDE_WINDOW(...)
#define UI_GET_WINDOW_ID() (-1)
#define UI_HIDE_CURR_WINDOW()
#define UI_SHOW_MENU(...)
#define UI_MSG_POST(...)
#define UI_REFLASH_WINDOW(a)
#define UI_MOTO_RUN(...)
#define UI_WINDOW_BACK_PUSH(a)
#define UI_WINDOW_BACK_SHOW(a)
#define UI_WINDOW_BACK_SPEC_SHOW(a)
#define UI_WINDOW_BACK_CLEAN()
#define UI_WINDOW_BACK_SUB()
#define UI_WINDOW_BACK_INDEX()
#define UI_WINDOW_BACK_DEL(a)
#define UI_WINDOW_PREEMPTION_POSH(a,b,c,d) (-1)
#define UI_WINDOW_PREEMPTION_DEL(a)
#define UI_WINDOW_PREEMPTION_POP(a)
#define UI_WINDOW_PREEMPTION_CHECK() (false)
#define CS_UI_POPUP_PAGE(a)
#endif /* #if TCFG_UI_ENABLE */
// UI抢占显示,最大PAGE_PREEMPTION_MAX-1
#define UI_WINDOW_PREEMPTION_TYPE_TIMER_COUNTDOWN 1 // 计时器
#define UI_WINDOW_PREEMPTION_TYPE_ALARM 2 // 闹钟
#define UI_WINDOW_PREEMPTION_TYPE_PHONE 3 // 电话
#define UI_WINDOW_PREEMPTION_TYPE_CHARGE 3 // 充电
#define UI_WINDOW_PREEMPTION_TYPE_SPORT 4 // 锻炼
#define UI_WINDOW_PREEMPTION_TYPE_DETECTION 4 // 久坐提醒
#define UI_WINDOW_PREEMPTION_TYPE_FALL 4 // 跌倒检测
#define UI_WINDOW_PREEMPTION_TYPE_UPGRADE 5 // 升级
#define UI_WINDOW_PREEMPTION_TYPE_PC 5 // PC
#define UI_WINDOW_PREEMPTION_TYPE_POWEROFF 6 // 关机
#define UI_WINDOW_PREEMPTION_TYPE_POP_UP 7 // 开关盖
#endif // #if CONFIG_JL_UI_ENABLE
#endif