mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-10-14 01:21:57 +00:00
feat(ui-lvgl): 320x240 browser simulator, compose field fixes
Simulator: SIM_UI=lvgl variants/sim/build_wasm.sh builds ui-lvgl for the browser. SimLcdDisplay blits LVGL's RGB565 flush to a 320x240 canvas and LvglPort.h's sim branch feeds the mouse in as touch; LVGL comes from the L2 env's libdeps, its objects cached in web/build/obj_lvgl/. web/lvgl.html runs it beside a ui-new peer on a direct link, with a window.sim API for headless checks. New hooks: sim_lcd_touch, sim_lcd_button, sim_test_send_channel_msg. Compose: the theme's padding left less than one line in the field, so it scrolled vertically and text jumped; pad it to fit exactly one line. The cursor is drawn only while FOCUSED, now set while the keyboard is up. With the keyboard up the screen header hides so the conversation keeps a message in view; the accent popup stays inside the keyboard, clear of the field; channel bubbles put the age next to the sender (one line shorter); the thread scrollbar shows only while scrolling. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -456,6 +456,18 @@ extern "C" EMSCRIPTEN_KEEPALIVE int sim_test_send_msg_to_first_contact(const cha
|
||||
return the_mesh.sendMessage(ci, ts, 0, text, expected_ack, est_timeout);
|
||||
}
|
||||
|
||||
// Sends `text` on group channel `channel_idx` (0 = Public) via
|
||||
// BaseChatMesh::sendGroupMessage() -- what CMD_SEND_CHANNEL_TXT_MSG calls --
|
||||
// so a peer instance can post into a channel another instance is viewing
|
||||
// (web/lvgl.html). Returns 1 if sent, 0 if not (no such channel / not ready).
|
||||
extern "C" EMSCRIPTEN_KEEPALIVE int sim_test_send_channel_msg(int channel_idx, const char* text) {
|
||||
if (!g_sim_ready || !text) return 0;
|
||||
ChannelDetails ch;
|
||||
if (!the_mesh.getChannel(channel_idx, ch)) return 0;
|
||||
return the_mesh.sendGroupMessage(rtc_clock.getCurrentTime(), ch.channel,
|
||||
the_mesh.getNodeName(), text, strlen(text)) ? 1 : 0;
|
||||
}
|
||||
|
||||
// How many contacts this instance has discovered so far (any type) -- lets
|
||||
// the JS ether-tick loop poll "has advert propagation finished yet" without
|
||||
// guessing a fixed timeout.
|
||||
|
||||
Reference in New Issue
Block a user