add escape callback to textboxes
[vg.git] / vg_imgui.h
index 53d8472302f8f3f5e6acb07a81e1860d654a5084..2eb56ab9cbdde95443064280054b218793d9bc12 100644 (file)
@@ -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 );