projects
/
vg.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0dc955d
)
slider api change
author
hgn
<hgodden00@gmail.com>
Mon, 11 Mar 2024 15:24:32 +0000
(15:24 +0000)
committer
hgn
<hgodden00@gmail.com>
Mon, 11 Mar 2024 15:24:32 +0000
(15:24 +0000)
vg_imgui.c
patch
|
blob
|
history
vg_imgui.h
patch
|
blob
|
history
diff --git
a/vg_imgui.c
b/vg_imgui.c
index 21936cca44b9315aca8e2516027cda3b6fa6346c..08209b7d2ef44c1d3259416f529df2da3ab2ce0f 100644
(file)
--- a/
vg_imgui.c
+++ b/
vg_imgui.c
@@
-704,6
+704,14
@@
int ui_click_up( u32 mask )
return 0;
}
return 0;
}
+void ui_set_mouse_pos( ui_px x, ui_px y )
+{
+ SDL_WarpMouseInWindow( vg.window, x, y );
+ vg_ui.mouse[0] = x;
+ vg_ui.mouse[1] = y;
+ vg_ui.mouse_pos_overriden = 1;
+}
+
void ui_prerender(void)
{
int x, y;
void ui_prerender(void)
{
int x, y;
@@
-711,8
+719,12
@@
void ui_prerender(void)
vg_ui.mouse_state[0] = SDL_GetMouseState( &x, &y );
vg_ui.mouse_delta[0] = x-vg_ui.mouse[0];
vg_ui.mouse_delta[1] = y-vg_ui.mouse[1];
vg_ui.mouse_state[0] = SDL_GetMouseState( &x, &y );
vg_ui.mouse_delta[0] = x-vg_ui.mouse[0];
vg_ui.mouse_delta[1] = y-vg_ui.mouse[1];
- vg_ui.mouse[0] = x;
- vg_ui.mouse[1] = y;
+
+ if( !vg_ui.mouse_pos_overriden )
+ {
+ vg_ui.mouse[0] = x;
+ vg_ui.mouse[1] = y;
+ }
vg_ui.cur_vert = 0;
vg_ui.cur_indice = 0;
vg_ui.cur_vert = 0;
vg_ui.cur_indice = 0;
@@
-721,13
+733,16
@@
void ui_prerender(void)
vg_ui.focused_control_hit = 0;
vg_ui.cursor = k_ui_cursor_default;
vg_ui.wants_mouse = 0;
vg_ui.focused_control_hit = 0;
vg_ui.cursor = k_ui_cursor_default;
vg_ui.wants_mouse = 0;
+ vg_ui.mouse_pos_overriden = 0;
- if( vg_ui.ignore_input_frames ){
+ if( vg_ui.ignore_input_frames )
+ {
vg_ui.ignore_input_frames --;
return;
}
vg_ui.ignore_input_frames --;
return;
}
- if( ui_click_down(UI_MOUSE_LEFT)||ui_click_down(UI_MOUSE_MIDDLE) ){
+ if( ui_click_down(UI_MOUSE_LEFT)||ui_click_down(UI_MOUSE_MIDDLE) )
+ {
vg_ui.mouse_click[0] = vg_ui.mouse[0];
vg_ui.mouse_click[1] = vg_ui.mouse[1];
}
vg_ui.mouse_click[0] = vg_ui.mouse[0];
vg_ui.mouse_click[1] = vg_ui.mouse[1];
}
@@
-1284,13
+1299,22
@@
static enum ui_button_state _ui_slider(
return state;
}
return state;
}
-
void
ui_slider( ui_rect inout_panel, const char *str_label,
+
bool
ui_slider( ui_rect inout_panel, const char *str_label,
f32 min, f32 max, f32 *value, const char *format )
{
ui_rect rect, label, box;
ui_standard_widget( inout_panel, rect, 1 );
ui_label( rect, str_label, k_ui_scale, 0, box );
f32 min, f32 max, f32 *value, const char *format )
{
ui_rect rect, label, box;
ui_standard_widget( inout_panel, rect, 1 );
ui_label( rect, str_label, k_ui_scale, 0, box );
- _ui_slider( box, min, max, value, format );
+
+ enum ui_button_state mask_using =
+ k_ui_button_holding_inside |
+ k_ui_button_holding_outside |
+ k_ui_button_click;
+
+ if( _ui_slider( box, min, max, value, format ) & mask_using )
+ return 1;
+ else
+ return 0;
}
/*
}
/*
diff --git
a/vg_imgui.h
b/vg_imgui.h
index 4e725a824c37c62cc9e6448f1c0e349f4796534d..f2d4f05cdaecf84679823c21784bed8667c5dc43 100644
(file)
--- a/
vg_imgui.h
+++ b/
vg_imgui.h
@@
-192,6
+192,7
@@
struct vg_imgui
ui_px mouse[2], mouse_delta[2], mouse_click[2];
u32 mouse_state[2];
u32 ignore_input_frames;
ui_px mouse[2], mouse_delta[2], mouse_click[2];
u32 mouse_state[2];
u32 ignore_input_frames;
+ bool mouse_pos_overriden;
int wants_mouse;
ui_rect click_fader, click_fader_end;
int wants_mouse;
ui_rect click_fader, click_fader_end;
@@
-248,6
+249,7
@@
int ui_inside_rect( ui_rect rect, ui_px co[2] );
int ui_click_down( u32 mask );
int ui_clicking( u32 mask );
int ui_click_up( u32 mask );
int ui_click_down( u32 mask );
int ui_clicking( u32 mask );
int ui_click_up( u32 mask );
+void ui_set_mouse_pos( ui_px x, ui_px y );
void ui_prerender(void);
u32 ui_colour( enum ui_scheme_colour id );
void ui_prerender(void);
u32 ui_colour( enum ui_scheme_colour id );
@@
-285,7
+287,7
@@
void ui_postrender(void);
int ui_checkbox( ui_rect inout_panel, const char *str_label, i32 *data );
void ui_enum( ui_rect inout_panel, const char *str_label,
struct ui_enum_opt *options, u32 len, i32 *value );
int ui_checkbox( ui_rect inout_panel, const char *str_label, i32 *data );
void ui_enum( ui_rect inout_panel, const char *str_label,
struct ui_enum_opt *options, u32 len, i32 *value );
-
void
ui_slider( ui_rect inout_panel, const char *str_label,
+
bool
ui_slider( ui_rect inout_panel, const char *str_label,
f32 min, f32 max, f32 *value, const char *format );
void ui_colourpicker( ui_rect inout_panel, const char *str_label, v4f value );
int ui_textbox( ui_rect inout_panel, const char *label,
f32 min, f32 max, f32 *value, const char *format );
void ui_colourpicker( ui_rect inout_panel, const char *str_label, v4f value );
int ui_textbox( ui_rect inout_panel, const char *label,