mirror of
https://github.com/libretro/RetroArch
synced 2025-02-06 09:40:06 +00:00
Move scroll_y to userdata
This commit is contained in:
parent
f4695c7547
commit
686bcf723d
@ -107,6 +107,7 @@ typedef struct mui_handle
|
||||
} categories;
|
||||
|
||||
gfx_font_raster_block_t list_block;
|
||||
float scroll_y;
|
||||
} mui_handle_t;
|
||||
|
||||
static void mui_context_reset_textures(mui_handle_t *mui, const char *iconpath)
|
||||
@ -333,7 +334,7 @@ static void mui_draw_scrollbar(unsigned width, unsigned height, float *coord_col
|
||||
total_height = height - header_height - mui->tabs_height;
|
||||
scrollbar_margin = mui->scrollbar_width;
|
||||
scrollbar_height = total_height / (content_height / total_height);
|
||||
y = total_height * menu->scroll_y / content_height;
|
||||
y = total_height * mui->scroll_y / content_height;
|
||||
|
||||
/* apply a margin on the top and bottom of the scrollbar for aestetic */
|
||||
scrollbar_height -= scrollbar_margin * 2;
|
||||
@ -427,13 +428,13 @@ static void mui_render(void *data)
|
||||
int16_t pointer_y = menu_input_pointer_state(MENU_POINTER_Y_AXIS);
|
||||
float old_accel_val, new_accel_val;
|
||||
unsigned new_pointer_val =
|
||||
(pointer_y - mui->line_height + menu->scroll_y - 16)
|
||||
(pointer_y - mui->line_height + mui->scroll_y - 16)
|
||||
/ mui->line_height;
|
||||
|
||||
menu_input_ctl(MENU_INPUT_CTL_POINTER_ACCEL_READ, &old_accel_val);
|
||||
menu_input_ctl(MENU_INPUT_CTL_POINTER_PTR, &new_pointer_val);
|
||||
|
||||
menu->scroll_y -= old_accel_val / 60.0;
|
||||
mui->scroll_y -= old_accel_val / 60.0;
|
||||
|
||||
new_accel_val = old_accel_val * 0.96;
|
||||
|
||||
@ -445,28 +446,28 @@ static void mui_render(void *data)
|
||||
int16_t mouse_y = menu_input_mouse_state(MENU_MOUSE_Y_AXIS);
|
||||
|
||||
unsigned new_pointer_val =
|
||||
(mouse_y - mui->line_height + menu->scroll_y - 16)
|
||||
(mouse_y - mui->line_height + mui->scroll_y - 16)
|
||||
/ mui->line_height;
|
||||
|
||||
menu_input_ctl(MENU_INPUT_CTL_MOUSE_PTR, &new_pointer_val);
|
||||
}
|
||||
|
||||
if (menu->scroll_y < 0)
|
||||
menu->scroll_y = 0;
|
||||
if (mui->scroll_y < 0)
|
||||
mui->scroll_y = 0;
|
||||
|
||||
bottom = menu_entries_get_end() * mui->line_height
|
||||
- height + header_height + mui->tabs_height;
|
||||
if (menu->scroll_y > bottom)
|
||||
menu->scroll_y = bottom;
|
||||
if (mui->scroll_y > bottom)
|
||||
mui->scroll_y = bottom;
|
||||
|
||||
if (menu_entries_get_end() * mui->line_height
|
||||
< height - header_height - mui->tabs_height)
|
||||
menu->scroll_y = 0;
|
||||
mui->scroll_y = 0;
|
||||
|
||||
if (menu_entries_get_end() < height / mui->line_height)
|
||||
menu_entries_set_start(0);
|
||||
else
|
||||
menu_entries_set_start(menu->scroll_y / mui->line_height);
|
||||
menu_entries_set_start(mui->scroll_y / mui->line_height);
|
||||
}
|
||||
|
||||
static void mui_render_label_value(mui_handle_t *mui,
|
||||
@ -595,7 +596,7 @@ static void mui_render_menu_list(mui_handle_t *mui,
|
||||
if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SELECTION, &selection))
|
||||
continue;
|
||||
|
||||
y = header_height - menu->scroll_y + (mui->line_height * i);
|
||||
y = header_height - mui->scroll_y + (mui->line_height * i);
|
||||
|
||||
if ((y - (int)mui->line_height) > (int)height
|
||||
|| ((y + (int)mui->line_height) < 0))
|
||||
@ -796,7 +797,7 @@ static void mui_frame(void)
|
||||
|
||||
/* highlighted entry */
|
||||
mui_render_quad(0,
|
||||
header_height - menu->scroll_y + mui->line_height *
|
||||
header_height - mui->scroll_y + mui->line_height *
|
||||
selection, width, mui->line_height,
|
||||
width, height,
|
||||
&lightblue_bg[0]);
|
||||
@ -1084,12 +1085,13 @@ static void mui_navigation_set(bool scroll)
|
||||
{
|
||||
menu_handle_t *menu = menu_driver_get_ptr();
|
||||
float scroll_pos = mui_get_scroll();
|
||||
mui_handle_t *mui = menu ? (mui_handle_t*)menu->userdata : NULL;
|
||||
|
||||
if (!menu || !scroll)
|
||||
if (!mui || !scroll)
|
||||
return;
|
||||
|
||||
menu_animation_push(10, scroll_pos,
|
||||
&menu->scroll_y, EASING_IN_OUT_QUAD, -1, NULL);
|
||||
&mui->scroll_y, EASING_IN_OUT_QUAD, -1, NULL);
|
||||
}
|
||||
|
||||
static void mui_list_set_selection(file_list_t *list)
|
||||
@ -1100,11 +1102,12 @@ static void mui_list_set_selection(file_list_t *list)
|
||||
static void mui_navigation_clear(bool pending_push)
|
||||
{
|
||||
menu_handle_t *menu = menu_driver_get_ptr();
|
||||
if (!menu)
|
||||
mui_handle_t *mui = menu ? (mui_handle_t*)menu->userdata : NULL;
|
||||
if (!mui)
|
||||
return;
|
||||
|
||||
menu_entries_set_start(0);
|
||||
menu->scroll_y = 0;
|
||||
mui->scroll_y = 0;
|
||||
}
|
||||
|
||||
static void mui_navigation_set_last(void)
|
||||
@ -1121,10 +1124,11 @@ static void mui_populate_entries(const char *path,
|
||||
const char *label, unsigned i)
|
||||
{
|
||||
menu_handle_t *menu = menu_driver_get_ptr();
|
||||
if (!menu)
|
||||
mui_handle_t *mui = menu ? (mui_handle_t*)menu->userdata : NULL;
|
||||
if (!mui)
|
||||
return;
|
||||
|
||||
menu->scroll_y = mui_get_scroll();
|
||||
mui->scroll_y = mui_get_scroll();
|
||||
}
|
||||
|
||||
static void mui_context_reset(void)
|
||||
|
@ -50,6 +50,7 @@ typedef struct
|
||||
char msgbox[4096];
|
||||
unsigned last_width;
|
||||
unsigned last_height;
|
||||
float scroll_y;
|
||||
} rgui_t;
|
||||
|
||||
#if defined(GEKKO)|| defined(PSP)
|
||||
@ -477,10 +478,10 @@ static void rgui_render(void *data)
|
||||
if (pointer_dragged)
|
||||
{
|
||||
int16_t delta_y = menu_input_pointer_state(MENU_POINTER_DELTA_Y_AXIS);
|
||||
menu->scroll_y += delta_y;
|
||||
menu_entries_set_start(-menu->scroll_y / 11 + 2);
|
||||
if (menu->scroll_y > 0)
|
||||
menu->scroll_y = 0;
|
||||
rgui->scroll_y += delta_y;
|
||||
menu_entries_set_start(-rgui->scroll_y / 11 + 2);
|
||||
if (rgui->scroll_y > 0)
|
||||
rgui->scroll_y = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -735,12 +736,13 @@ static void rgui_set_texture(void)
|
||||
|
||||
static void rgui_navigation_clear(bool pending_push)
|
||||
{
|
||||
menu_handle_t *menu = menu_driver_get_ptr();
|
||||
if (!menu)
|
||||
menu_handle_t *menu = menu_driver_get_ptr();
|
||||
rgui_t *rgui = menu ? (rgui_t*)menu->userdata : NULL;
|
||||
if (!rgui)
|
||||
return;
|
||||
|
||||
menu_entries_set_start(0);
|
||||
menu->scroll_y = 0;
|
||||
rgui->scroll_y = 0;
|
||||
}
|
||||
|
||||
static void rgui_navigation_set(bool scroll)
|
||||
|
@ -221,8 +221,6 @@ typedef struct
|
||||
{
|
||||
void *userdata;
|
||||
|
||||
float scroll_y;
|
||||
|
||||
bool push_help_screen;
|
||||
unsigned help_screen_id;
|
||||
menu_help_type_t help_screen_type;
|
||||
|
Loading…
x
Reference in New Issue
Block a user