Add 'sdk/' from commit '2e7561d74f75de05dd7fb362f203f600afb451d7'
git-subtree-dir: sdk git-subtree-mainline:17a972d46fgit-subtree-split:2e7561d74f
This commit is contained in:
commit
f44e3bc6d0
85 files changed
+23811
No files matched your search
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* meow_ui_ime.h — SDK 输入法(§5.1,B1):内置触屏软键盘。
|
||||
*
|
||||
* 原 meow_ui.h 拆分的一部分(ime 模块)。仅英文 QWERTY / 数字 / 中文拼音(ASCII/NUM/PINYIN)。
|
||||
* 输入事件循环/触摸命中优先级见 meow_ui_input.h 相关约定(IME 弹出时吞触摸)。
|
||||
*/
|
||||
#ifndef MEOW_UI_IME_H
|
||||
#define MEOW_UI_IME_H
|
||||
|
||||
#include "meow_ui_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* ============================================================ */
|
||||
/* §5.1 输入法(IME)—— 内置触屏软键盘(仅英文 QWERTY / 数字,ASCII) */
|
||||
/* ============================================================ */
|
||||
/* 输入法模式(尾部追加枚举:ASCII/NUM 值不变,零 ABI 回归)。PINYIN=中文拼音(meow_ui_ime.c)。 */
|
||||
typedef enum { MEOW_IME_ASCII, MEOW_IME_NUM, MEOW_IME_PINYIN } meow_ime_mode;
|
||||
|
||||
typedef struct meow_ime_ctx {
|
||||
meow_ime_mode mode;
|
||||
char buf[256]; /* 输入缓冲(初始值可预填) */
|
||||
int maxlen; /* 最大字符数(含 NUL 预算) */
|
||||
void (*on_change)(const char *text, void *ctx); /* 每次字符变化回调一次 */
|
||||
void *ctx;
|
||||
} meow_ime_ctx;
|
||||
|
||||
/* 阻塞:弹出键盘直到关闭(ESC / 点背景取消);回车=只提交不关闭(内容经 on_change 实时同步)。
|
||||
* 关闭路径返回 0(取消);提交内容经 on_change 回调逐键同步,不依赖返回值回填 buf。 */
|
||||
int meow_ui_text_input(meow_ime_ctx *ctx);
|
||||
|
||||
/* 非阻塞:返回后 app 在 on_tick 里轮询 meow_ime_active()/meow_ime_text() */
|
||||
void meow_ui_text_input_async(meow_ime_ctx *ctx);
|
||||
int meow_ime_active(void);
|
||||
const char *meow_ime_text(void);
|
||||
|
||||
/* 拼音模式组合态:当前拼音组合串(去声调小写,如 "nihao")供 App 渲染字段预览;
|
||||
* 无组合(或非拼音模式)返回 ""。组合串是 IME 内部态,不写入字段(§4.2)。 */
|
||||
const char *meow_ime_composition(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* MEOW_UI_IME_H */
|
||||
Reference in new issue
Block a user