From 58a0b5fd115d9687a1292e5e82e6b9fa8454b930 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 19 May 2026 01:44:11 +0530 Subject: Dynamic layout for WiFi setup: landscape rotation, responsive render, highlight feedback - Render functions use axs15231b_get_width/height() instead of hardcoded coords - render_wifi_setup_list: dynamic item widths, screen-relative cancel button - render_wifi_setup_password: dynamic field/eye/keyboard from kb_get_layout() - render_wifi_setup_result: centered on screen, dynamic button placement - handle_wifi_setup_touch: matching dynamic hit areas, highlight_rect() feedback - Rotation lifecycle: enter_wifi_setup_rotation/exit wired into all entry/exit paths - display_enter_wifi_setup + READY/ERROR touch + SUCCESS auto-return + LIST cancel - Added kb_result_t typedef to keyboard.h (was only in .c) - Fixed test_keyboard.c: use computed offsets from kb_layout_t defaults - All 101 unit tests pass (touch:19, keyboard:46, wifi_setup:36) --- main/keyboard.h | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'main/keyboard.h') diff --git a/main/keyboard.h b/main/keyboard.h index 495c499..9c4118f 100644 --- a/main/keyboard.h +++ b/main/keyboard.h @@ -5,11 +5,6 @@ #include #define KB_INPUT_MAX 64 -#define KB_KEY_W 28 -#define KB_KEY_H 36 -#define KB_KEY_GAP 2 -#define KB_ROW_COUNT 4 -#define KB_START_Y 70 typedef enum { KB_ALPHA_LOWER, @@ -27,11 +22,6 @@ typedef enum { KB_ACTION_SPACE } kb_action_t; -typedef struct { - kb_action_t action; - char ch; -} kb_result_t; - typedef struct { char input[KB_INPUT_MAX + 1]; int cursor; @@ -39,7 +29,23 @@ typedef struct { kb_layer_t layer; } kb_state_t; +typedef struct { + kb_action_t action; + char ch; +} kb_result_t; + +typedef struct { + int key_w; + int key_h; + int key_gap; + int start_y; + int screen_w; + int row_count; +} kb_layout_t; + void kb_state_init(kb_state_t *st); +void kb_set_layout(const kb_layout_t *layout); +const kb_layout_t *kb_get_layout(void); int kb_get_row_keys(int row, kb_layer_t layer, const char **keys_out); kb_result_t kb_hit_test(int tx, int ty, kb_layer_t layer); void kb_apply(kb_state_t *st, kb_result_t result); -- cgit v1.2.3