Make window_dropdown_show_text() use ScreenCoordsXY

This commit is contained in:
Tulio Leao 2020-05-01 15:58:36 -03:00
parent 4933785b1c
commit d0704baab2
11 changed files with 30 additions and 28 deletions

View File

@ -36,7 +36,8 @@ bool dropdown_is_disabled(int32_t index);
void dropdown_set_checked(int32_t index, bool value);
void dropdown_set_disabled(int32_t index, bool value);
void window_dropdown_show_text(int32_t x, int32_t y, int32_t extray, uint8_t colour, uint8_t flags, size_t num_items);
void window_dropdown_show_text(
const ScreenCoordsXY& screenPos, int32_t extray, uint8_t colour, uint8_t flags, size_t num_items);
void window_dropdown_show_text_custom_width(
const ScreenCoordsXY& screenPos, int32_t extray, uint8_t colour, uint8_t custom_height, uint8_t flags, size_t num_items,
int32_t width);

View File

@ -134,7 +134,7 @@ static rct_window_event_list window_dropdown_events = {
* @param num_items (bx)
* @param colour (al)
*/
void window_dropdown_show_text(int32_t x, int32_t y, int32_t extray, uint8_t colour, uint8_t flags, size_t num_items)
void window_dropdown_show_text(const ScreenCoordsXY& screenPos, int32_t extray, uint8_t colour, uint8_t flags, size_t num_items)
{
int32_t string_width, max_string_width;
char buffer[256];
@ -149,7 +149,7 @@ void window_dropdown_show_text(int32_t x, int32_t y, int32_t extray, uint8_t col
max_string_width = std::max(string_width, max_string_width);
}
window_dropdown_show_text_custom_width({ x, y }, extray, colour, 0, flags, num_items, max_string_width + 3);
window_dropdown_show_text_custom_width(screenPos, extray, colour, 0, flags, num_items, max_string_width + 3);
}
/**

View File

@ -607,7 +607,7 @@ void window_editor_object_selection_mousedown(rct_window* w, rct_widgetindex wid
}
window_dropdown_show_text(
w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top + 1,
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1,
w->colours[widget->colour], DROPDOWN_FLAG_STAY_OPEN, _numSourceGameItems + numSelectionItems);
for (int32_t i = 0; i < _numSourceGameItems; i++)

View File

@ -1331,7 +1331,7 @@ static void window_options_mousedown(rct_window* w, rct_widgetindex widgetIndex,
}
window_dropdown_show_text(
w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top + 1,
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1,
w->colours[1], DROPDOWN_FLAG_STAY_OPEN, num_items);
dropdown_set_checked(static_cast<int32_t>(title_get_current_sequence()), true);

View File

@ -697,7 +697,8 @@ static void window_park_entrance_mousedown(rct_window* w, rct_widgetindex widget
gDropdownItemsArgs[0] = STR_CLOSE_PARK;
gDropdownItemsArgs[1] = STR_OPEN_PARK;
window_dropdown_show_text(
w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top + 1, w->colours[1], 0, 2);
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, w->colours[1], 0,
2);
if (park_is_open())
{

View File

@ -2254,7 +2254,7 @@ static void window_ride_show_open_dropdown(rct_window* w, rct_widget* widget)
window_ride_set_dropdown(info, RIDE_STATUS_TESTING, STR_TEST_RIDE);
window_ride_set_dropdown(info, RIDE_STATUS_OPEN, STR_OPEN_RIDE);
window_dropdown_show_text(
w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top + 1, w->colours[1], 0,
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, w->colours[1], 0,
info.NumItems);
dropdown_set_checked(info.CheckedIndex, true);
gDropdownDefaultIndex = info.DefaultIndex;
@ -2297,7 +2297,7 @@ static void window_ride_show_ride_type_dropdown(rct_window* w, rct_widget* widge
rct_widget* dropdownWidget = widget - 1;
window_dropdown_show_text(
w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top,
{ w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top },
dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], DROPDOWN_FLAG_STAY_OPEN, RIDE_TYPE_COUNT);
// Find the current ride type in the ordered list.
@ -4047,7 +4047,7 @@ static void window_ride_maintenance_mousedown(rct_window* w, rct_widgetindex wid
else
{
window_dropdown_show_text(
w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top,
{ w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top },
dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], DROPDOWN_FLAG_STAY_OPEN, num_items);
num_items = 1;
@ -5547,7 +5547,7 @@ static void window_ride_measurements_mousedown(rct_window* w, rct_widgetindex wi
gDropdownItemsFormat[1] = STR_SAVE_TRACK_DESIGN_WITH_SCENERY_ITEM;
window_dropdown_show_text(
w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top + 1, w->colours[1],
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, w->colours[1],
DROPDOWN_FLAG_STAY_OPEN, 2);
gDropdownDefaultIndex = 0;
if (gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER)

View File

@ -320,7 +320,7 @@ static void window_ride_list_mousedown(rct_window* w, rct_widgetindex widgetInde
gDropdownItemsFormat[0] = STR_CLOSE_ALL;
gDropdownItemsFormat[1] = STR_OPEN_ALL;
window_dropdown_show_text(
w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top, w->colours[1], 0, 2);
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top, w->colours[1], 0, 2);
}
else if (widgetIndex == WIDX_INFORMATION_TYPE_DROPDOWN)
{

View File

@ -284,7 +284,7 @@ static void window_server_list_scroll_mousedown(rct_window* w, int32_t scrollInd
{
gDropdownItemsFormat[1] = STR_ADD_TO_FAVOURITES;
}
window_dropdown_show_text(ddx, ddy, 0, COLOUR_GREY, 0, 2);
window_dropdown_show_text({ ddx, ddy }, 0, COLOUR_GREY, 0, 2);
}
}

View File

@ -570,7 +570,7 @@ void window_staff_overview_mousedown(rct_window* w, rct_widgetindex widgetIndex,
int32_t x = widget->left + w->windowPos.x;
int32_t y = widget->top + w->windowPos.y;
int32_t extray = widget->bottom - widget->top + 1;
window_dropdown_show_text(x, y, extray, w->colours[1], 0, 2);
window_dropdown_show_text({ x, y }, extray, w->colours[1], 0, 2);
gDropdownDefaultIndex = 0;
Peep* peep = GET_PEEP(w->number);

View File

@ -185,7 +185,7 @@ static void window_title_menu_mousedown(rct_window* w, rct_widgetindex widgetInd
gDropdownItemsFormat[3] = STR_TRACK_DESIGNS_MANAGER;
gDropdownItemsFormat[4] = STR_OPEN_USER_CONTENT_FOLDER;
window_dropdown_show_text(
w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top + 1,
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1,
TRANSLUCENT(w->colours[0]), DROPDOWN_FLAG_STAY_OPEN, 5);
}
}

View File

@ -507,7 +507,7 @@ static void window_top_toolbar_mousedown(rct_window* w, rct_widgetindex widgetIn
#endif
}
window_dropdown_show_text(
w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top + 1,
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1,
w->colours[0] | 0x80, DROPDOWN_FLAG_STAY_OPEN, numItems);
#ifndef DISABLE_TWITCH
@ -3299,8 +3299,8 @@ static void top_toolbar_init_map_menu(rct_window* w, rct_widget* widget)
#endif
window_dropdown_show_text(
w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top + 1, w->colours[1] | 0x80, 0,
i);
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, w->colours[1] | 0x80,
0, i);
gDropdownDefaultIndex = DDIDX_SHOW_MAP;
}
@ -3361,8 +3361,8 @@ static void top_toolbar_init_fastforward_menu(rct_window* w, rct_widget* widget)
gDropdownItemsArgs[3] = STR_SPEED_TURBO;
window_dropdown_show_text(
w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top + 1, w->colours[0] | 0x80, 0,
num_items);
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, w->colours[0] | 0x80,
0, num_items);
// Set checkmarks
if (gGameSpeed <= 4)
@ -3409,8 +3409,8 @@ static void top_toolbar_init_rotate_menu(rct_window* w, rct_widget* widget)
gDropdownItemsFormat[1] = STR_ROTATE_ANTI_CLOCKWISE;
window_dropdown_show_text(
w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top + 1, w->colours[1] | 0x80, 0,
2);
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, w->colours[1] | 0x80,
0, 2);
gDropdownDefaultIndex = DDIDX_ROTATE_CLOCKWISE;
}
@ -3462,8 +3462,8 @@ static void top_toolbar_init_cheats_menu(rct_window* w, rct_widget* widget)
gDropdownItemsArgs[DDIDX_DISABLE_SUPPORT_LIMITS] = STR_DISABLE_SUPPORT_LIMITS;
window_dropdown_show_text(
w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top + 1, w->colours[0] | 0x80, 0,
TOP_TOOLBAR_CHEATS_COUNT);
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, w->colours[0] | 0x80,
0, TOP_TOOLBAR_CHEATS_COUNT);
// Disable items that are not yet available in multiplayer
if (network_get_mode() != NETWORK_MODE_NONE)
@ -3540,7 +3540,7 @@ static void top_toolbar_init_debug_menu(rct_window* w, rct_widget* widget)
gDropdownItemsArgs[DDIDX_DEBUG_PAINT] = STR_DEBUG_DROPDOWN_DEBUG_PAINT;
window_dropdown_show_text(
w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top + 1, w->colours[0] | 0x80,
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, w->colours[0] | 0x80,
DROPDOWN_FLAG_STAY_OPEN, TOP_TOOLBAR_DEBUG_COUNT);
dropdown_set_checked(DDIDX_DEBUG_PAINT, window_find_by_class(WC_DEBUG_PAINT) != nullptr);
@ -3553,8 +3553,8 @@ static void top_toolbar_init_network_menu(rct_window* w, rct_widget* widget)
gDropdownItemsFormat[DDIDX_MULTIPLAYER_RECONNECT] = STR_MULTIPLAYER_RECONNECT;
window_dropdown_show_text(
w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top + 1, w->colours[0] | 0x80, 0,
TOP_TOOLBAR_NETWORK_COUNT);
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, w->colours[0] | 0x80,
0, TOP_TOOLBAR_NETWORK_COUNT);
dropdown_set_disabled(DDIDX_MULTIPLAYER_RECONNECT, !network_is_desynchronised());
@ -3646,8 +3646,8 @@ static void top_toolbar_init_view_menu(rct_window* w, rct_widget* widget)
gDropdownItemsArgs[DDIDX_HIGHLIGHT_PATH_ISSUES] = STR_HIGHLIGHT_PATH_ISSUES_MENU;
window_dropdown_show_text(
w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top + 1, w->colours[1] | 0x80, 0,
TOP_TOOLBAR_VIEW_MENU_COUNT);
{ w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, w->colours[1] | 0x80,
0, TOP_TOOLBAR_VIEW_MENU_COUNT);
// Set checkmarks
rct_viewport* mainViewport = window_get_main()->viewport;