157 lines
4.6 KiB
C
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
|
|
|