Files
AC707N/SDK/interface/ui/jlui/ui_page_manager.h
T
2025-12-03 11:12:34 +08:00

157 lines
4.6 KiB
C

/* Copyright(C)
* not free
* All right reserved
*
* @file ui_page_manager.h
* @brief UI卡片页面滑动管理API头文件
* @author
* @version V201
* @date 2022-12-15
*/
#ifndef __UI_PAGE_H__
#define __UI_PAGE_H__
#include "generic/list.h"
#include "system/spinlock.h"
struct ui_page {
struct list_head head;
u32 id;
u8 num;
};
struct ui_page_head {
struct list_head head;
u8 ui_page_list_total_num;
spinlock_t ui_page_list_lock;
};
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_page_init 卡片页面管理初始化
*/
/* ------------------------------------------------------------------------------------*/
void ui_page_init();
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_page_add 添加页面到卡片
*
* @param id 页面ID
*
* @return 0 正常,其他 异常
*/
/* ------------------------------------------------------------------------------------*/
int ui_page_add(u32 id);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_page_del 把页面从卡片删除
*
* @param id 待删除的页面ID
*
* @return 0 正常,其他 异常
*/
/* ------------------------------------------------------------------------------------*/
int ui_page_del(u32 id);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_page_del_by_num 通过页面号从卡片删除指定页面
*
* @param num 页面号
*
* @return 0 正常,其他异常
*/
/* ------------------------------------------------------------------------------------*/
int ui_page_del_by_num(u8 num);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_page_free 释放卡片页面管理模块
*
* @return 0 正常,其他 异常
*/
/* ------------------------------------------------------------------------------------*/
int ui_page_free();
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_page_next 获取卡片页面管理中,指定页面的下一个页面
*
* @param id 指定页面的ID
*
* @return 指定页面的下一个页面ID
*/
/* ------------------------------------------------------------------------------------*/
u32 ui_page_next(u32 id);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_page_prev 获取卡片页面管理中,指定页面的上一个页面
*
* @param id 指定页面的ID
*
* @return 指定页面的上一个页面ID
*/
/* ------------------------------------------------------------------------------------*/
u32 ui_page_prev(u32 id);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_page_list_all 打印出所有的卡片页面信息
*
* @return 0 正常,-1 卡片页面未初始化
*/
/* ------------------------------------------------------------------------------------*/
int ui_page_list_all();
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_page_search 搜索卡片页面中指定页面的链表节点元素
*
* @param id 指定页面的ID
*
* @return 指定页面的链表节点
*/
/* ------------------------------------------------------------------------------------*/
struct ui_page *ui_page_search(u32 id);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_page_has_been_init 获取卡片界面管理模块初始化状态
*
* @return true 卡片管理模块已经初始化,false 卡片管理模块未初始化
*/
/* ------------------------------------------------------------------------------------*/
int ui_page_has_been_init();
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_page_get_first 获取卡片界面链表的第一个界面节点元素
*
* @return 卡片界面链表中第一个界面的元素
*/
/* ------------------------------------------------------------------------------------*/
struct ui_page *ui_page_get_first();
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_page_list_id_modify 修改指定索引的卡片界面ID,将ID设置到第num位置
*
* @param num 索引号
* @param id 页面ID
*
* @return 0 正常,其他异常
*/
/* ------------------------------------------------------------------------------------*/
int ui_page_list_id_modify(u8 num, u32 id);
u8 get_ui_page_list_total_num();
#endif