diff --git a/hello b/hello index 3f9eabf..8d52a75 100755 Binary files a/hello and b/hello differ diff --git a/ui/demo/demo.c b/ui/demo/demo.c index f2615b5..2968da6 100644 --- a/ui/demo/demo.c +++ b/ui/demo/demo.c @@ -50,7 +50,7 @@ static int g_drag_page_delta = 0; /* 页面拖拽累计位移(节流重建, * 列表态 list/list_sel 已迁 ui/demo/list/list.c(列表区 CONTAINER 子视图)持有; * 进度语义值 prog 已上收 logic/state.c(logic_prog_*)。 */ static struct { - int sw_on; int slider; char tf[32]; + int sw_on; int slider; char tf[32]; char tf_py[32]; int ck; int r1, r2; int btn[5]; int card; int tab; } g_ds = { .sw_on = 1, .slider = 40, .r1 = 1, .tab = 1 }; @@ -77,7 +77,8 @@ static meow_widget *g_dbtn_b[5]; static rect_t r_btn[5]; /* Button 五型 */ static meow_widget *g_dbtn_d; /* DISABLED 按钮(禁用不命中,无需 rect) */ static meow_widget *g_dsw; static rect_t r_dsw; /* Switch */ static meow_widget *g_dslider; static rect_t r_slider, r_slider_txt; /* Slider + 值文本 */ -static meow_widget *g_dtf; static rect_t r_dtf; /* TextField */ +static meow_widget *g_dtf; static rect_t r_dtf; /* TextField (英文) */ +static meow_widget *g_dtf_py; static rect_t r_dtf_py; /* TextField (拼音 IME 演示) */ static meow_widget *g_dcb; static rect_t r_dcb; /* Checkbox */ static meow_widget *g_dr1, *g_dr2; rect_t r_dr1, r_dr2; /* Radio 单选组 */ static meow_widget *g_dprl; static rect_t r_prl; /* ProgressBar 线性 */ @@ -197,6 +198,8 @@ static void demo_build_at(int scroll) demo_draw_slider_val, NULL); r_dtf = RX(DCL_X, SY(yb), DFW, 44); g_dtf = meow_textfield_create(r_dtf.x, r_dtf.y, r_dtf.w, r_dtf.h, "Type here...", g_ds.tf, 32, MEOW_IME_ASCII); SLOT(g_dtf, r_dtf.x, r_dtf.y, r_dtf.w, r_dtf.h); yb += 54; + /* 拼音演示:MEOW_IME_PINYIN,输入「nihao」出候选「你好」上屏 */ + r_dtf_py = RX(DCL_X, SY(yb), DFW, 44); g_dtf_py = meow_textfield_create(r_dtf_py.x, r_dtf_py.y, r_dtf_py.w, r_dtf_py.h, "拼音: nihao", g_ds.tf_py, 32, MEOW_IME_PINYIN); SLOT(g_dtf_py, r_dtf_py.x, r_dtf_py.y, r_dtf_py.w, r_dtf_py.h); yb += 54; r_dcb = RX(DCL_X, SY(yb), 34, 34); g_dcb = meow_checkbox_create(r_dcb.x, r_dcb.y); SLOT(g_dcb, r_dcb.x, r_dcb.y, r_dcb.w, r_dcb.h); r_dr1 = RX(DCR_X, SY(yb), 34, 34); g_dr1 = meow_radio_create(r_dr1.x, r_dr1.y); SLOT(g_dr1, r_dr1.x, r_dr1.y, r_dr1.w, r_dr1.h); @@ -311,6 +314,13 @@ static int demo_content_tap(int x, int y) meow_ui_invalidate(r_dtf.x, r_dtf.y, r_dtf.w, r_dtf.h); return 1; } + if (meow_widget_hit(g_dtf_py, x, y)) { + meow_textfield_activate(g_dtf_py); /* 拼音 IME */ + strncpy(g_ds.tf_py, meow_textfield_text(g_dtf_py), sizeof g_ds.tf_py - 1); + g_ds.tf_py[sizeof g_ds.tf_py - 1] = 0; + meow_ui_invalidate(r_dtf_py.x, r_dtf_py.y, r_dtf_py.w, r_dtf_py.h); + return 1; + } if (meow_widget_hit(g_dcard_btn, x, y)) { d_toggle_sel(g_dcard_btn, r_cardbtn); g_ds.card = meow_widget_selected(g_dcard_btn); return 1; } if (g_dtab) { int t = meow_tabbar_hit(g_dtab, x, y);