From: hgn Date: Mon, 13 Nov 2023 01:05:00 +0000 (+0000) Subject: add escape callback to textboxes X-Git-Url: https://harrygodden.com/git/?p=vg.git;a=commitdiff_plain;h=b5edbd23d36a6f151edbcea39957357ad6144567 add escape callback to textboxes --- diff --git a/src/fonts/vg_font_thin.xcf b/src/fonts/vg_font_thin.xcf index 80cf62f..9c1915e 100644 Binary files a/src/fonts/vg_font_thin.xcf and b/src/fonts/vg_font_thin.xcf differ diff --git a/vg_console.h b/vg_console.h index 1024b82..d7f7f9f 100644 --- a/vg_console.h +++ b/vg_console.h @@ -714,7 +714,7 @@ static void _vg_console_draw(void) .up = _vg_console_on_up, .down = _vg_console_on_down, .change = _vg_console_on_update, - .enter = _vg_console_on_enter + .enter = _vg_console_on_enter, }; ui_textbox( rect_input, NULL, vg_console.input, vg_list_size(vg_console.input), 1, diff --git a/vg_imgui.h b/vg_imgui.h index 53d8472..2eb56ab 100644 --- a/vg_imgui.h +++ b/vg_imgui.h @@ -22,6 +22,7 @@ typedef i16 ui_px; typedef ui_px ui_rect[4]; +typedef ui_px ui_point[2]; typedef struct ui_vert ui_vert; enum ui_axis { @@ -169,7 +170,8 @@ struct{ void (*enter)( char *, u32 ), (*up)( char *, u32 ), (*down)( char *, u32 ), - (*change)( char *, u32 ); + (*change)( char *, u32 ), + (*escape)( void ); } callbacks; } @@ -1024,8 +1026,11 @@ static u32 v4f_u32_colour( v4f colour ){ static void ui_defocus_all(void){ if( vg_ui.focused_control_type == k_ui_control_textbox ){ SDL_StopTextInput(); + if( vg_ui.textbox.callbacks.escape ) + vg_ui.textbox.callbacks.escape(); } + vg_ui.ignore_input_frames = 2; vg_ui.focused_control_id = NULL; vg_ui.focused_control_hit = 0; vg_ui.focused_control_type = k_ui_control_none; @@ -1626,6 +1631,8 @@ static void _ui_textbox_cut(void){ static void _ui_textbox_enter(void){ if( vg_ui.focused_control_type == k_ui_control_textbox ){ + vg_ui.ignore_input_frames = 2; + if( vg_ui.textbox.callbacks.enter ) vg_ui.textbox.callbacks.enter( vg_ui.textbuf, vg_ui.textbox.len );