dc11ee3fc4
2、修复sensorhub低功耗越界问题; 3、修复rcsp传输相关问题; 4、更新flash_params_v3.bin; 5、修复摄像头、科大讯飞相关问题;
855 lines
27 KiB
C
855 lines
27 KiB
C
/* Copyright(C) 2010- , JIELI TECHNOLOGY, Inc.
|
||
* All right reserved.
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @file ui_grid.h
|
||
*
|
||
* @brief 杰理UI表格控件API
|
||
*
|
||
* @author
|
||
*
|
||
* @version V1.0.0
|
||
*
|
||
* @date 2024-06-13
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
|
||
#ifndef __UI_GRID_WIDGET_H__
|
||
#define __UI_GRID_WIDGET_H__
|
||
|
||
|
||
#include "ui_animation.h"
|
||
#include "jlui/ui_core.h"
|
||
#include "jlui/control.h"
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
enum {
|
||
GRID_SCROLL_MODE,
|
||
GRID_PAGE_MODE,
|
||
};
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief 列表滚动方向
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
enum {
|
||
SCROLL_DIRECTION_NONE,
|
||
SCROLL_DIRECTION_LR,
|
||
SCROLL_DIRECTION_UD,
|
||
};
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief 自动居中类型选项
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
typedef enum {
|
||
NO_AUTO_CENTER,
|
||
AUTO_CENTER_MODE1,//滑动惯性距离小于1/2屏幕时回弹
|
||
AUTO_CENTER_MODE2,//滑动惯性较小时依然能滑向下一项
|
||
AUTO_CENTER_CUSTOM,//自定义滑动处理
|
||
} AUTO_CENTER_MODE;
|
||
|
||
// 定义列表动画类型枚举
|
||
typedef enum {
|
||
UI_ANIM_TYPE_NONE,
|
||
UI_ANIM_TYPE_ENERGY, // 惯性动画
|
||
UI_ANIM_TYPE_CENTER_AND_FLICK, // 回弹动画
|
||
} ui_anim_type_t;
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
struct ui_grid_item_info {
|
||
u8 row;
|
||
u8 col;
|
||
u8 page_mode;
|
||
u8 highlight_index;
|
||
u16 interval;
|
||
struct layout_info *info;
|
||
};
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief 列表显示/滚动区域
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
struct scroll_area {
|
||
s16 left;
|
||
s16 top;
|
||
s16 right;
|
||
s16 bottom;
|
||
};
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief 动态列表info
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
struct ui_grid_dynamic {
|
||
int dhi_index;
|
||
int dcol_num;
|
||
int drow_num;
|
||
|
||
int min_row_index;
|
||
int max_row_index;
|
||
int min_col_index;
|
||
int max_col_index;
|
||
int min_show_row_index;
|
||
int max_show_row_index;
|
||
int min_show_col_index;
|
||
int max_show_col_index;
|
||
|
||
int grid_xval;
|
||
int grid_yval;
|
||
u8 grid_col_num;
|
||
u8 grid_row_num;
|
||
u8 grid_show_row;
|
||
u8 grid_show_col;
|
||
int base_index_once;
|
||
int init_step_once;
|
||
};
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief 列表元素
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
struct ui_grid {
|
||
struct element elm;
|
||
|
||
int max_show_left;
|
||
int max_show_top;
|
||
int min_show_left;
|
||
int min_show_top;
|
||
|
||
int max_left;
|
||
int max_top;
|
||
int min_left;
|
||
int min_top;
|
||
|
||
s16 x_interval;
|
||
s16 y_interval;
|
||
|
||
char hi_index;
|
||
char touch_index;
|
||
char cur_dindex;
|
||
char onfocus;
|
||
|
||
u8 col_num;
|
||
u8 row_num;
|
||
u8 show_row;
|
||
u8 show_col;
|
||
|
||
u8 avail_item_num;
|
||
u8 ctrl_num;
|
||
char touch_hi_index;
|
||
u8 tslide;
|
||
// u8 page;
|
||
u8 page_mode: 2;
|
||
u8 slide_direction: 2;
|
||
u8 pix_scroll: 1;
|
||
u8 child_init: 1;
|
||
u8 flick_close: 1;
|
||
u8 flick_unlock: 1;
|
||
u8 flick_top: 1;
|
||
u8 center_enable: 4; //
|
||
u8 energy_status: 3;
|
||
|
||
u16 flick_distance;
|
||
|
||
u16 center_target_line; //居中目标中线位置
|
||
u16 center_next_threshold; //滑入下一项阈值
|
||
|
||
int anim_tmp;
|
||
float anim_a; //参考值 -0.04
|
||
float anim_val; //参考值2
|
||
|
||
ui_anim_t anim;
|
||
ui_anim_ready_cb_t ready_cb;
|
||
ui_anim_deleted_cb_t deleted_cb;
|
||
|
||
struct scroll_area *area;
|
||
struct scroll_area limit_area;
|
||
struct layout *item;
|
||
struct layout_info *item_info;
|
||
struct ui_grid_dynamic *dynamic;
|
||
struct position pos;
|
||
struct position down_pos;
|
||
struct draw_context dc;
|
||
struct element_touch_event *e;
|
||
const struct ui_grid_info *info;
|
||
const struct element_event_handler *handler;
|
||
u8 key_jump;
|
||
u8 key_cnt: 5; //计数
|
||
u8 key_dir: 1; //方向
|
||
u8 key_sta: 2; //状态
|
||
u8 center_item_offset; //最大偏移项数
|
||
void (*highlight_ajust)(struct ui_grid *grid, int direction);
|
||
void (*end_once)(struct ui_grid *grid);
|
||
}; //
|
||
enum {
|
||
UI_GRID_KEY_STA_CLOSE,//
|
||
UI_GRID_KEY_STA_STOP,
|
||
UI_GRID_KEY_STA_START,
|
||
UI_GRID_KEY_STA_CENTER,
|
||
};
|
||
enum {
|
||
UI_GRID_KEY_DIR_MINUS,
|
||
UI_GRID_KEY_DIR_PLUS,
|
||
};
|
||
extern const struct element_event_handler grid_elm_handler;
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief 通过ID获取表格控件句柄
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
#define ui_grid_for_id(id) \
|
||
ui_element_for_id(id, struct ui_grid)
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_enable
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
void ui_grid_enable();
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_on_focus 列表作为焦点控件
|
||
*
|
||
* @param grid 列表控件句柄
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
void ui_grid_on_focus(struct ui_grid *grid);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_lose_focus 列表不作为焦点控件
|
||
*
|
||
* @param grid 列表控件句柄
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
void ui_grid_lose_focus(struct ui_grid *grid);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_state_reset 重置列表状态
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param highlight_item 默认高亮项
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
void ui_grid_state_reset(struct ui_grid *grid, int highlight_item);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_highlight_item 设置列表高亮项
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param item 高亮项索引
|
||
* @param yes 高亮/非高亮
|
||
*
|
||
* @return 0,正常;其他,异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_highlight_item(struct ui_grid *grid, int item, bool yes);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_highlight_item_by_id 设置列表高亮项
|
||
*
|
||
* @param id 列表控件id
|
||
* @param item 高亮项索引
|
||
* @param yes 高亮/非高亮
|
||
*
|
||
* @return 0,正常;其他,异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_highlight_item_by_id(int id, int item, bool yes);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief __ui_grid_new 创建列表控件
|
||
*
|
||
* @param css 控件css属性
|
||
* @param id 控件id
|
||
* @param info 列表项信息
|
||
* @param parent 父控件句柄
|
||
*
|
||
* @return 列表句柄
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
struct ui_grid *__ui_grid_new(struct element_css1 *css, int id, struct ui_grid_item_info *info, struct element *parent);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_child_init 自动化初始化
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param info 列表子控件info
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
void ui_grid_child_init(struct ui_grid *grid, struct ui_grid_info *info);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_set_slide_direction 设置列表滑动方向
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param dir 列表滑动方向
|
||
*
|
||
* @return 0,正常;其他,异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_set_slide_direction(struct ui_grid *grid, int dir);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief grid_key_jump 静态垂直或者水平列表才能使用,用于使用按键时,
|
||
* 没有高亮项,但按下按键能看到列表跳动
|
||
* 注意:必须要初始化的回调里面,并且设置了方向之后才能调用
|
||
*
|
||
* @param grid 列表句柄
|
||
* @param en 是否使能该模式
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int grid_key_jump(struct ui_grid *grid, int en);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_set_pix_scroll 设置列表跟手滑动使能
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param enable true 跟手滑动:false 按项滚动
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_set_pix_scroll(struct ui_grid *grid, int enable);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_slide 列表滑动
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param direction 列表滑动方向
|
||
* @param steps 滑动距离
|
||
*
|
||
* @return true 成功 ;false 失败
|
||
*
|
||
* @note 自动刷新
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_slide(struct ui_grid *grid, int direction, int steps);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_slide_with_callback 静态列表滑动接口_with_callback
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param direction 列表滑动方向
|
||
* @param steps 列表滑动距离
|
||
* @param callback 滑动后回调,一般需要在回调调用redraw
|
||
*
|
||
* @return true 成功 ;false 失败
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_slide_with_callback(struct ui_grid *grid, int direction, int steps, void(*callback)(void *ctrl));
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_set_item_num 设置列表项的数量
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param item_num 项的数量
|
||
*
|
||
* @return 0,正常;其他,异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_set_item_num(struct ui_grid *grid, int item_num);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_set_scroll_area 设置列表滑动区域
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param area 滑动区域 *传入全局变量或局部静态变量
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
void ui_grid_set_scroll_area(struct ui_grid *grid, struct scroll_area *area);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_touch_item 列表触摸项
|
||
*
|
||
* @param grid 列表控件句柄
|
||
*
|
||
* @return 触摸项索引;空白区域=-1
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
static inline int ui_grid_touch_item(struct ui_grid *grid)
|
||
{
|
||
return grid->touch_index;
|
||
}
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_get_hindex 获取列表高亮项
|
||
*
|
||
* @param grid 列表控件句柄
|
||
*
|
||
* @return 静态高亮项
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_get_hindex(struct ui_grid *grid);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_cur_item 列表选中项
|
||
*
|
||
* @param grid 列表控件句柄
|
||
*
|
||
* @return 存在触摸时反回触摸项;否则返回高亮项
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
static inline int ui_grid_cur_item(struct ui_grid *grid)
|
||
{
|
||
if (grid->touch_index >= 0) {
|
||
return grid->touch_index;
|
||
}
|
||
return grid->hi_index;
|
||
}
|
||
|
||
#define ui_grid_set_item(grid, index) (grid)->hi_index = index
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_set_hi_index 设置列表高亮项
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param hi_index 高亮项索引值
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_set_hi_index(struct ui_grid *grid, int hi_index);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_flick_ctrl_close 列表自动回弹功能开关
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param flag 是否关闭标志(1关闭,0不关闭)
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
void ui_grid_flick_ctrl_close(struct ui_grid *grid, u8 flag);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_set_tslide 列表惯性/回弹滑动时间间隔
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param tslide 时间间隔ms,默认:回弹50ms 惯性40ms
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_set_tslide(struct ui_grid *grid, u8 tslide);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_set_energy 惯性滑动参数设置
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param a 惯性负加速度 默认-0.01
|
||
* @param val 惯性系数,用于压缩滑动距离,默认0.3
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_set_energy(struct ui_grid *grid, float a, float val);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_energy_auto_center 列表滑动居中使能
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param auto_center_enable MODE/DISABLE(0)
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_energy_auto_center(struct ui_grid *grid, AUTO_CENTER_MODE auto_center_mode);//是否启动滑动居中
|
||
#define grid_energy_auto_center(a, b) ui_grid_energy_auto_center(a, b)
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_auto_center_and_flick 列表自动居中对齐和回弹(固定列表和边长列表都可以用)
|
||
*
|
||
* @Params grid 列表句柄
|
||
*
|
||
* @return 0 正常;其它 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_auto_center_and_flick(struct ui_grid *grid);
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_set_energy_item_offset 设置最大偏移项的数量
|
||
*
|
||
* @param grid 列表句柄
|
||
* @param item_offset 默认值为0,设置为1时,每次滑动只能滑动1项
|
||
*
|
||
* @return
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_set_energy_item_offset(struct ui_grid *grid, int item_offset);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_set_energy_target_line 设置自动居中的目标线
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param target_line 目标线(默认值为父控件的一半;例如屏高454,项高112,间隔2,第二项高亮居中,则target_line=(112+2+(112/2))。)
|
||
*
|
||
* @return
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_set_energy_target_line(struct ui_grid *grid, int target_line);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_set_energy_next_threshold 滑动居中偏移到下一项阈值
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param next_threshold 跟随模式配置(默认值0,1000 移动距离超过父控件宽/高的10%时,居中下一项, 否则回弹)
|
||
*
|
||
* @return
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_set_energy_next_threshold(struct ui_grid *grid, int next_threshold);
|
||
|
||
int ui_grid_auto_center_set_custom_param(struct ui_grid *grid, float a, float val, u8 tslide, int target_line, int item_offset, int next_threshold, int index_mode);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_set_hi_move 设置静态列表滑动之后,刷新前,调整高亮项
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param hi_move true 使能;false 关闭
|
||
* @param hi_func 回调,可自行处理逻辑;NULL 默认逻辑
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_set_hi_move(struct ui_grid *grid, u8 hi_move, void (*hi_func)(struct ui_grid *grid, int direction));
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_set_end_once 设置列表滑动(含惯性、回弹)结束的回调函数
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param end_once 回调
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
void ui_grid_set_end_once(struct ui_grid *grid, void (*end_once)(struct ui_grid *grid));
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_dynamic_create 动态列表创建*旧接口
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param direction 滑动方向
|
||
* @param list_total 项数
|
||
* @param event_handler_cb 列表项的子控件onchange事件回调
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_dynamic_create(struct ui_grid *grid, int direction, int list_total, int (*event_handler_cb)(void *, int, int, int));
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_dynamic_release 动态列表释放*旧接口
|
||
*
|
||
* @param grid 列表控件句柄
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_dynamic_release(struct ui_grid *grid);//动态列表释放
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_dynamic_cur_item 动态列表获取选项
|
||
*
|
||
* @param grid 列表句柄
|
||
*
|
||
* @return -1 异常;有触摸,触摸项;无触摸,高亮项
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_dynamic_cur_item(struct ui_grid *grid);//动态列表获取选项
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_dynamic_set_item_by_id 修改动态列表项数*旧接口
|
||
*
|
||
* @param id 列表id
|
||
* @param count 项数
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_dynamic_set_item_by_id(int id, int count);//修改动态列表数
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_dynamic_reset 重置动态列表*旧接口
|
||
*
|
||
* @param grid
|
||
* @param index
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_dynamic_reset(struct ui_grid *grid, int index); //重置动态列表
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_init_dynamic 初始化动态列表 *新接口
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param row 行数
|
||
* @param col 列数
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_init_dynamic(struct ui_grid *grid, int *row, int *col);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_add_dynamic 增加动态项
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param row 增加行数
|
||
* @param col 增加列数
|
||
* @param redraw 1 刷新 ;0 不刷新
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_add_dynamic(struct ui_grid *grid, int *row, int *col, int redraw);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_add_dynamic_by_id 增加动态列表项数 *新接口
|
||
*
|
||
* @param id 列表id
|
||
* @param row 增加行数
|
||
* @param col 增加列数
|
||
* @param redraw 是否刷新
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_add_dynamic_by_id(int id, int *row, int *col, int redraw);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_del_dynamic 删除动态项
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param row 减少行数
|
||
* @param col 减少列数
|
||
* @param redraw 1 刷新 ;0 不刷新
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_del_dynamic(struct ui_grid *grid, int *row, int *col, int redraw);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_del_dynamic_by_id 减少动态列表项数 *新接口
|
||
*
|
||
* @param id 列表id
|
||
* @param row 减少的行数
|
||
* @param col 减少的列数
|
||
* @param redraw 是否刷新
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_del_dynamic_by_id(int id, int *row, int *col, int redraw);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_dynamic_slide 动态列表滑动
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param direction 列表滑动方向
|
||
* @param steps 列表滑动距离
|
||
*
|
||
* @return true 成功 ;false 失败
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_dynamic_slide(struct ui_grid *grid, int direction, int steps);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_slide_with_callback_dynamic 动态列表滑动
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param direction 滑动方向
|
||
* @param steps 滑动距离
|
||
* @param callback 回调函数,一般需要在回调中调用ui_core_redraw刷新
|
||
*
|
||
* @return
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_slide_with_callback_dynamic(struct ui_grid *grid, int direction, int steps, void(*callback)(void *ctrl));
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_get_hindex_dynamic 获取动态高亮项
|
||
*
|
||
* @param grid 列表控件句柄
|
||
*
|
||
* @return 动态高亮项
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_get_hindex_dynamic(struct ui_grid *grid);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_cur_item_dynamic 获取动态选择项
|
||
*
|
||
* @param grid 列表控件句柄
|
||
*
|
||
* @return 返回触摸项或高亮项
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_cur_item_dynamic(struct ui_grid *grid);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_set_hindex_dynamic 设置动态高亮项
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param dhindex 初始化时需要跳转到的动态高亮项
|
||
* @param init 释放初始化
|
||
* @param hi_index init为1时有效,表示要将dhindex设置到真实列表项的第几项
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_set_hindex_dynamic(struct ui_grid *grid, int dhindex, int init, int hi_index);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_set_base_dynamic 设置动态列表初始步进
|
||
*
|
||
* @param grid 列表控件句柄
|
||
* @param base_index_once 0~max_dynamic_index,动态列表初始化时一次性索引基础值,一般配置为ui_grid_set_hindex_dynamic函数参数的(dhindex - hi_index),如果dhindex < hi_index,则需要根据列表项本身来调整
|
||
|
||
* @param init_step_once 初始化记忆之后,在第一次刷新之前,需要移动的步进
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_set_base_dynamic(struct ui_grid *grid, u32 base_index_once, int init_step_once);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_update_by_id_dynamic 更新动态列表高亮项*新接口
|
||
*
|
||
* @param id 列表id
|
||
* @param item_sel 选中项
|
||
* @param redraw 是否刷新
|
||
*
|
||
* @return 0 正常;其他 异常
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
int ui_grid_update_by_id_dynamic(int id, int item_sel, int redraw);
|
||
|
||
|
||
/* ------------------------------------------------------------------------------------*/
|
||
/**
|
||
* @brief ui_grid_anim_set_cb 设置列表惯性起始以及结束回调
|
||
*
|
||
* @param ready_cb 惯性开始回调
|
||
* @param deleted_cb 惯性结束回调
|
||
*
|
||
*/
|
||
/* ------------------------------------------------------------------------------------*/
|
||
void ui_grid_anim_set_cb(struct ui_grid *grid, ui_anim_ready_cb_t ready_cb, ui_anim_deleted_cb_t deleted_cb);
|
||
|
||
#endif
|
||
|
||
|
||
|