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;
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.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;
}
- 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];
}
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 );
- _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;
}
/*