mcu_ab568x/app/platform/gui/components/compo_qrcodebox.h
2025-05-30 18:03:10 +08:00

64 lines
1.9 KiB
C

#ifndef _COMPO_QRCODEBOX_H
#define _COMPO_QRCODEBOX_H
#define QR_LEVEL_L 0 //7%的字码可被修正
#define QR_LEVEL_M 1 //15%的字码可被修正
#define QR_LEVEL_Q 2 //25%的字码可被修正
#define QR_LEVEL_H 3 //30%的字码可被修正
typedef struct compo_qrcodebox_t_ {
COMPO_STRUCT_COMMON;
widget_rect_t *bg;
widget_qrcode_t *qrcode;
} compo_qrcodebox_t;
/**
* @brief 创建一个码
* @param[in] frm : 窗体指针
* @param[in] qr_type : 二维码或条形码
* @param[in] max_ch_cnt : 最大字符长度
* @return 返回码
**/
compo_qrcodebox_t *compo_qrcodebox_create(compo_form_t *frm, u8 qr_type, u16 max_ch_cnt);
/**
* @brief 创建一个码-高度调整
* @param[in] frm : 窗体指针
* @param[in] qr_type : 二维码或条形码
* @param[in] max_ch_cnt : 最大字符长度
* @return 返回码
**/
compo_qrcodebox_t *compo_qrcodebox_y_create(compo_form_t *frm, u8 qr_type, u16 max_ch_cnt,s16 y);
/**
* @brief 设置码的内容
* @param[in] qrcodebox : 码指针
* @param[in] str : 字符内容
**/
void compo_qrcodebox_set(compo_qrcodebox_t *qrcodebox, const char *str);
/**
* @brief 设置最小单位宽度
* @param[in] qrcodebox : 码指针
* @param[in] bit_wid : 最小宽度
**/
void compo_qrcodebox_set_bitwid(compo_qrcodebox_t *qrcodebox, u16 qr_wid);
/**
* @brief 设置最小单位宽度
* @param[in] qrcodebox : 码指针
* @param[in] bit_wid : 设置要显示宽度(高度=宽度)
**/
void compo_qrcodebox_set_bitwid_by_qrwid(compo_qrcodebox_t *qrcodebox, u16 qr_wid);
/**
* @brief 设置码的内容
* @param[in] qrcodebox : 码指针
* @param[in] level: 纠错等级
**/
void compo_qrcodebox_set_level(compo_qrcodebox_t *qrcodebox, u8 level);
void compo_qrcodebox_pos(compo_qrcodebox_t *qrcodebox, s16 x, s16 y);
void compo_qrcodebox_set_rect_size(compo_qrcodebox_t *qrcodebox, u16 wid, u16 hei);
#endif