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

121 lines
3.5 KiB
C

/* Copyright(C) 2010- , JIELI TECHNOLOGY, Inc.
* All right reserved.
*/
/* ------------------------------------------------------------------------------------*/
/*
* @file ui_progress.h
*
* @brief 圆弧进度条控件API接口头文件
*
* @author
*
* @version V201
*
* @date 2022-12-15
*/
/* ------------------------------------------------------------------------------------*/
#ifndef __UI_PROGRESS_WIDGET_H__
#define __UI_PROGRESS_WIDGET_H__
#include "jlui/control.h"
#include "jlui/ui_core.h"
/* ------------------------------------------------------------------------------------*/
/**
* @brief 圆弧进度条控件子控件数量定义
*/
/* ------------------------------------------------------------------------------------*/
#define PROGRESS_CHILD_NUM (CTRL_PROGRESS_CHILD_END - CTRL_PROGRESS_CHILD_BEGIN)
struct progress_highlight_info {
struct ui_ctrl_info_head head;
s16 center_x; // 旋转中心
s16 center_y;
u16 radius_big; // 圆环大半径
u16 radius_small; // 圆环小半径
u16 angle_begin; // 开始角度
u16 angle_end; // 结束角度
struct ui_image_list *img;
u16 color; // 颜色
};
/* ------------------------------------------------------------------------------------*/
/**
* @brief 圆弧进度条控件句柄结构定义
*/
/* ------------------------------------------------------------------------------------*/
struct ui_progress {
struct element elm;
struct element child_elm[PROGRESS_CHILD_NUM]; // 子控件个数 1
char source[9]; // 数据源
s16 center_x; // 旋转中心x坐标
s16 center_y; // 旋转中心y坐标
u16 radius; // 半径
u16 angle_begin;// 起始角度
u16 angle_end; // 结束角度
u8 ctrl_num; // 控件数量
char percent; // 百分比
const struct layout_info *info;
const struct progress_highlight_info *pic_info[PROGRESS_CHILD_NUM];
const struct element_event_handler *handler;
}; // 160byte
/* ------------------------------------------------------------------------------------*/
/**
* @brief 通过ID获取圆弧进度条控件句柄
*/
/* ------------------------------------------------------------------------------------*/
#define ui_progress_for_id(id) \
ui_element_for_id(id, struct ui_progress)
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_progress_enable 圆弧进度条控件使能(内部调用)
*/
/* ------------------------------------------------------------------------------------*/
void ui_progress_enable();
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_progress_set_persent_by_id 设置圆弧进度条百分比(带redraw)
*
* @param id 圆弧进度条控件ID
* @param persent 圆弧进度条显示的百分比
*
* @return 0 正常,-22控件不存在
*/
/* ------------------------------------------------------------------------------------*/
int ui_progress_set_persent_by_id(int id, int persent);
/* ------------------------------------------------------------------------------------*/
/**
* @brief ui_progress_set_persent 设置圆弧进度条百分比(不带redraw)
*
* @param progress 圆弧进度条句柄
* @param percent 圆弧进度条显示的百分比
*
* @return 0 正常,-22 控件不存在
*/
/* ------------------------------------------------------------------------------------*/
int ui_progress_set_persent(struct ui_progress *progress, int percent);
#endif