Files
arcs/apps-ui/apps/llm/views/lisa_ui_keyboard_input.h
2026-08-13 16:50:52 +08:00

114 lines
2.9 KiB
C

/**
* @file lisa_ui_keyboard_input.h
* @brief 通用键盘输入组件
* @description 提供一个全屏的键盘输入界面,支持密码输入模式
*/
#ifndef __LISA_UI_KEYBOARD_INPUT_H__
#define __LISA_UI_KEYBOARD_INPUT_H__
#ifdef __cplusplus
extern "C" {
#endif
#include "lvgl.h"
/**
* @brief 键盘输入确认回调函数类型
* @param text 输入的文本内容
* @param user_data 用户数据
*/
typedef void (*lisa_ui_keyboard_input_confirm_cb_t)(const char *text, void *user_data);
/**
* @brief 键盘输入取消回调函数类型
* @param user_data 用户数据
*/
typedef void (*lisa_ui_keyboard_input_cancel_cb_t)(void *user_data);
/**
* @brief 创建键盘输入组件
* @param parent 父对象
* @return lv_obj_t* 创建的键盘输入对象
*/
lv_obj_t *lisa_ui_keyboard_input_create(lv_obj_t *parent);
/**
* @brief 设置标题文本
* @param obj 键盘输入对象
* @param title 标题文本
*/
void lisa_ui_keyboard_input_set_title(lv_obj_t *obj, const char *title);
/**
* @brief 设置输入框提示文本
* @param obj 键盘输入对象
* @param placeholder 提示文本
*/
void lisa_ui_keyboard_input_set_placeholder(lv_obj_t *obj, const char *placeholder);
/**
* @brief 设置输入框标签文本 (如"密码:"、"用户名:"等)
* @param obj 键盘输入对象
* @param label 标签文本
*/
void lisa_ui_keyboard_input_set_label(lv_obj_t *obj, const char *label);
/**
* @brief 设置密码模式
* @param obj 键盘输入对象
* @param enable true=密码模式, false=普通模式
*/
void lisa_ui_keyboard_input_set_password_mode(lv_obj_t *obj, bool enable);
/**
* @brief 设置确认回调
* @param obj 键盘输入对象
* @param confirm_cb 确认回调函数
* @param user_data 用户数据
*/
void lisa_ui_keyboard_input_set_confirm_cb(lv_obj_t *obj,
lisa_ui_keyboard_input_confirm_cb_t confirm_cb,
void *user_data);
/**
* @brief 设置取消回调
* @param obj 键盘输入对象
* @param cancel_cb 取消回调函数
* @param user_data 用户数据
*/
void lisa_ui_keyboard_input_set_cancel_cb(lv_obj_t *obj,
lisa_ui_keyboard_input_cancel_cb_t cancel_cb,
void *user_data);
/**
* @brief 显示键盘输入界面
* @param obj 键盘输入对象
*/
void lisa_ui_keyboard_input_show(lv_obj_t *obj);
/**
* @brief 隐藏键盘输入界面
* @param obj 键盘输入对象
*/
void lisa_ui_keyboard_input_hide(lv_obj_t *obj);
/**
* @brief 获取输入的文本
* @param obj 键盘输入对象
* @return const char* 输入的文本
*/
const char *lisa_ui_keyboard_input_get_text(lv_obj_t *obj);
/**
* @brief 清空输入框
* @param obj 键盘输入对象
*/
void lisa_ui_keyboard_input_clear(lv_obj_t *obj);
#ifdef __cplusplus
}
#endif
#endif /* __LISA_UI_KEYBOARD_INPUT_H__ */