Files
MeowOS-For-R3P2/patch_v2/sdk/meow_ui_internal.h
T
MeowOS Dev 245bee2946 MeowOS for HiBy R3 Pro II — 公共发布版本(历史已重置)
• 全新单提交:清除含敏感信息的旧历史(sudo 口令、内网 IP、SSH 密钥路径、热点 SSID、设备 MAC)
• 本地开发文档/测试记录/构建脚本全部移入 gitignored 的 devdocs/ 与 scripts/build/(不入库)
• 保留:MeowOS 源码(launcher/watchdog/bootmenu/meow_svcd/SDK)、项目规范文档、mips-repo
增补组件:SDK 统一日志+通知 API、meow_svcd 服务管理器、mips-repo 软件仓库
2026-08-30 01:12:34 +08:00

66 lines
2.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* meow_ui_internal.h — SDK 内部各 TU 共享声明(不随 meow_ui.h 发布给应用)。
* 仅供 meow_ui_*.c 之间协作:渲染后端底层能力 + 输入事件队列 + 主题取用。
*/
#ifndef MEOW_UI_INTERNAL_H
#define MEOW_UI_INTERNAL_H
#include <stdint.h>
#include "meow_ui.h"
/* ---- 渲染后端(meow_ui_gfx.c)提供 ---- */
/* 把 RGBA 像素(stb_image 输出,4 通道 straight alpha)blit 进 back_buf;
* alpha 为全局不透明度 0-255(255 时仍用像素自身 alpha 做逐像素混合)。 */
void meow_gfx_blit_rgba(int x, int y, int w, int h, const uint8_t *rgba, int alpha);
/* 标记一个区域脏(供非标准绘制使用)。 */
void meow_gfx_mark_dirty(int x, int y, int w, int h);
/* 标记整帧脏(launcher 手动脏模型桥接:自绘 raw 像素后标全屏,present 走 SDK)。 */
void meow_gfx_mark_full(void);
/* 返回离屏 back_buf 指针(launcher 系统组件与 SDK 共用同一 back_buf 用)。 */
unsigned char *meow_ui_back_buf(void);
/* 实心圆角矩形(控件按钮底色用;公共 §3 只有空心 draw_rect_round)。[D3] */
void meow_gfx_fill_round(int x, int y, int w, int h, int r, uint32_t color);
/* 是否运行于真实 fb 之上(0 = 头less/离屏,qemu/宿主)。 */
int meow_gfx_is_device(void);
/* 中文/日文字库(mfont)是否已加载(状态栏「蓝牙」CJK 与回退 "BT" 二选一)。 */
int meow_gfx_mfont_ready(void);
/* ---- 输入层(meow_ui_input.c)---- */
/* 语义事件:由输入线程解析后压入队列,run/IME 循环弹出。 */
#define MEOW_EV_KEY 1 /* a=keycode, b=1 按下 / 0 抬起 */
#define MEOW_EV_TAP 2 /* a=x, b=y(触摸抬起落点) */
#define MEOW_EV_SWIPE 3 /* a=MEOW_SWIPE_*, b=距离(px) */
#define MEOW_EV_SWIPE_PROGRESS 4 /* a=按下X(t_dx), b=当前X(t_cx);dx=b-a(>0=左缘向内划=返回手势) */
typedef struct meow_input_ev {
uint8_t type;
int a, b;
} meow_input_ev;
/* 启动输入线程(幂等)。无设备时仅空转。 */
void meow_input_start(void);
/* 从队列弹出一个事件;无事件返回 0。 */
int meow_input_pop(meow_input_ev *ev);
/* 注入一条语义事件(宿主验证手势分发/进度条用;设备上无调用方)。 */
void meow_input_inject(int type, int a, int b);
/* 清空队列(IME 打开前丢弃残留触摸,避免误敲)。 */
void meow_input_drain(void);
/* ---- IME(meow_ui_ime.c)---- */
/* 当前是否显示软键盘。 */
int meow_ime_active(void);
/* 软键盘拦截一次触摸。返回 1=已消费(供 IME 转键/提交),0=未命中(透传给 app)。 */
int meow_ime_handle_tap(int x, int y);
/* 软键盘绘制覆盖层(每次 flush 前调用;覆盖底部约 40%)。 */
void meow_ime_draw(void);
/* 关闭 IME 并交付最终结果(result: 1=确认 0=取消)。 */
void meow_ime_close(int result);
#endif /* MEOW_UI_INTERNAL_H */