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

187 lines
6.2 KiB
C

/* Copyright(C) 2010- , JIELI TECHNOLOGY, Inc.
* All right reserved.
*/
/* ------------------------------------------------------------------------------------*/
/*
* @file ui_progress_multi.h
*
* @brief 多重圆弧进度条控件API接口头文件
*
* @author
*
* @version V201
*
* @date 2022-12-15
*/
/* ------------------------------------------------------------------------------------*/
#ifndef __UI_PROGRESS_MULTI_WIDGET_H__
#define __UI_PROGRESS_MULTI_WIDGET_H__
#include "jlui/control.h"
#include "jlui/ui_core.h"
/* ------------------------------------------------------------------------------------*/
/**
* @brief 多重圆弧进度条控件子控件数量定义
*/
/* ------------------------------------------------------------------------------------*/
#define MULTIPROGRESS_CHILD_NUM (CTRL_MULTIPROGRESS_CHILD_END - CTRL_MULTIPROGRESS_CHILD_BEGIN)
struct multiprogress_highlight_info {
struct ui_ctrl_info_head head;
u16 number;
s16 center_x; // 圆环中心
s16 center_y;
u16 radius0_big; // 第一圈圆环大、小半径,颜色
u16 radius0_small;
u16 color0;
u16 radius1_big; // 第二圈圆环大、小半径、颜色
u16 radius1_small;
u16 color1;
u16 radius2_big; // 第三圈圆环大、小半径、颜色
u16 radius2_small;
u16 color2;
u16 angle_begin; // 开始、结束角度
u16 angle_end;
struct ui_image_list *img;
};
/* ------------------------------------------------------------------------------------*/
/**
* @brief 多重圆弧进度条控件句柄结构定义
*/
/* ------------------------------------------------------------------------------------*/
struct ui_multiprogress {
struct element elm;
struct element child_elm[MULTIPROGRESS_CHILD_NUM]; // 子控件元素 1
char source[9]; // 数据源
s16 center_x; // 中心x坐标
s16 center_y; // 中心y坐标
u16 angle_begin; // 进度条的起始角度
u16 angle_end; // 进度条的结束角度
u16 radius; // 半径
u8 ctrl_num; // 控件数量,从flash读进来
char percent[3]; // 百分比(三个进度条)
const struct layout_info *info;
const struct multiprogress_highlight_info *pic_info[MULTIPROGRESS_CHILD_NUM];
const struct element_event_handler *handler;
}; // 164byte
/* ------------------------------------------------------------------------------------*/
/**
* @brief 通过ID获取多重圆弧进度条控件句柄
*/
/* ------------------------------------------------------------------------------------*/
#define ui_multiprogress_for_id(id) \
ui_element_for_id(id, struct ui_multiprogress)
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_multiprogress_enable 多重进度条控件使能(内部调用)
*/
/* ------------------------------------------------------------------------------------*/
void ui_multiprogress_enable();
int ui_multiprogress_set_persent_by_id(int id, int persent);
int ui_multiprogress_set_second_persent_by_id(int id, int percent);
int ui_multiprogress_set_third_persent_by_id(int id, int percent);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_multiprogress_set_persent_by_id 设置第一个进度条的百分比(待redraw)
*
* @param id 多重进度条控件ID
* @param persent 第一个进度条显示的百分比
*
* @return 0 正常,-22 控件不存在
*/
/* ------------------------------------------------------------------------------------*/
int ui_multiprogress_set_persent_by_id(int id, int persent); // 第一个进度条
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_multiprogress_set_second_persent_by_id 设置第二个进度条的百分比(待redraw)
*
* @param id 多重进度条控件ID
* @param persent 第二个进度条显示的百分比
*
* @return 0 正常,-22 控件不存在
*/
/* ------------------------------------------------------------------------------------*/
int ui_multiprogress_set_second_persent_by_id(int id, int percent); // 第二个进度条
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_multiprogress_set_third_persent_by_id 设置第三个进度条的百分比(待redraw)
*
* @param id 多重进度条控件ID
* @param persent 第三个进度条显示的百分比
*
* @return 0 正常,-22 控件不存在
*/
/* ------------------------------------------------------------------------------------*/
int ui_multiprogress_set_third_persent_by_id(int id, int percent); // 第三个进度条
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_multiprogress_set_persent 设置多重圆弧进度条第一个的百分比(不带redraw)
*
* @param multiprogress 多重圆弧进度条句柄
* @param percent 第一个圆弧进度条百分比
*
* @return 0 正常,-22 控件不存在
*/
/* ------------------------------------------------------------------------------------*/
int ui_multiprogress_set_persent(struct ui_multiprogress *multiprogress, int percent);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_multiprogress_set_second_persent 设置多重圆弧进度条第二个的百分比(不带redraw)
*
* @param multiprogress 多重圆弧进度条句柄
* @param percent 第二个圆弧进度条百分比
*
* @return 0 正常,-22 控件不存在
*/
/* ------------------------------------------------------------------------------------*/
int ui_multiprogress_set_second_persent(struct ui_multiprogress *multiprogress, int percent);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_multiprogress_set_third_persent 设置多重圆弧进度条第三个的百分比(不带redraw)
*
* @param multiprogress 多重圆弧进度条句柄
* @param percent 第三个圆弧进度条百分比
*
* @return 0 正常,-22 控件不存在
*/
/* ------------------------------------------------------------------------------------*/
int ui_multiprogress_set_third_persent(struct ui_multiprogress *multiprogress, int percent);
#endif