From 681b8d79389cf111b0b28b415cb68dcfcf6eca7b Mon Sep 17 00:00:00 2001 From: Aaron van Geffen Date: Thu, 25 Jun 2020 03:44:00 +0200 Subject: [PATCH] Introduce widget::width and widget::height helper functions (#12053) --- src/openrct2-ui/input/MouseInput.cpp | 18 +-- src/openrct2-ui/interface/LandTool.cpp | 8 +- src/openrct2-ui/interface/Widget.cpp | 10 +- src/openrct2-ui/interface/Window.cpp | 4 +- src/openrct2-ui/scripting/CustomWindow.cpp | 12 +- src/openrct2-ui/scripting/ScWidget.hpp | 4 +- src/openrct2-ui/windows/Banner.cpp | 14 +-- src/openrct2-ui/windows/Cheats.cpp | 10 +- src/openrct2-ui/windows/CustomCurrency.cpp | 4 +- src/openrct2-ui/windows/Dropdown.cpp | 2 +- .../windows/EditorInventionsList.cpp | 6 +- .../windows/EditorObjectSelection.cpp | 16 ++- .../windows/EditorObjectiveOptions.cpp | 10 +- .../windows/EditorScenarioOptions.cpp | 10 +- src/openrct2-ui/windows/Finances.cpp | 9 +- src/openrct2-ui/windows/Footpath.cpp | 4 +- src/openrct2-ui/windows/GameBottomToolbar.cpp | 4 +- src/openrct2-ui/windows/Guest.cpp | 18 +-- src/openrct2-ui/windows/GuestList.cpp | 8 +- src/openrct2-ui/windows/LoadSave.cpp | 4 +- src/openrct2-ui/windows/Map.cpp | 4 +- src/openrct2-ui/windows/Multiplayer.cpp | 10 +- src/openrct2-ui/windows/NewCampaign.cpp | 8 +- src/openrct2-ui/windows/News.cpp | 2 +- src/openrct2-ui/windows/ObjectLoadError.cpp | 2 +- src/openrct2-ui/windows/Options.cpp | 20 ++-- src/openrct2-ui/windows/Park.cpp | 10 +- src/openrct2-ui/windows/Player.cpp | 13 +-- src/openrct2-ui/windows/Research.cpp | 5 +- src/openrct2-ui/windows/Ride.cpp | 107 ++++++++---------- src/openrct2-ui/windows/RideConstruction.cpp | 8 +- src/openrct2-ui/windows/RideList.cpp | 6 +- src/openrct2-ui/windows/ServerList.cpp | 6 +- src/openrct2-ui/windows/Sign.cpp | 15 +-- src/openrct2-ui/windows/Staff.cpp | 16 +-- src/openrct2-ui/windows/StaffList.cpp | 4 +- src/openrct2-ui/windows/Themes.cpp | 4 +- src/openrct2-ui/windows/TileInspector.cpp | 16 +-- .../windows/TitleCommandEditor.cpp | 17 ++- src/openrct2-ui/windows/TitleEditor.cpp | 4 +- src/openrct2-ui/windows/TitleMenu.cpp | 4 +- .../windows/TitleScenarioSelect.cpp | 2 +- src/openrct2-ui/windows/TopToolbar.cpp | 32 +++--- src/openrct2-ui/windows/ViewClipping.cpp | 5 +- src/openrct2-ui/windows/Viewport.cpp | 4 +- src/openrct2/interface/Window.cpp | 10 +- src/openrct2/interface/Window.h | 10 ++ 47 files changed, 247 insertions(+), 272 deletions(-) diff --git a/src/openrct2-ui/input/MouseInput.cpp b/src/openrct2-ui/input/MouseInput.cpp index 278deb6b2a..d06feee536 100644 --- a/src/openrct2-ui/input/MouseInput.cpp +++ b/src/openrct2-ui/input/MouseInput.cpp @@ -208,7 +208,7 @@ static void input_scroll_drag_continue(const ScreenCoordsXY& screenCoords, rct_w if (scroll->flags & HSCROLLBAR_VISIBLE) { - int16_t size = widget->right - widget->left - 1; + int16_t size = widget->width() - 1; if (scroll->flags & VSCROLLBAR_VISIBLE) size -= 11; size = std::max(0, scroll->h_right - size); @@ -217,7 +217,7 @@ static void input_scroll_drag_continue(const ScreenCoordsXY& screenCoords, rct_w if (scroll->flags & VSCROLLBAR_VISIBLE) { - int16_t size = widget->bottom - widget->top - 1; + int16_t size = widget->height() - 1; if (scroll->flags & HSCROLLBAR_VISIBLE) size -= 11; size = std::max(0, scroll->v_bottom - size); @@ -618,7 +618,7 @@ static void input_scroll_begin(rct_window* w, rct_widgetindex widgetIndex, const rct_widget* widg = &w->widgets[widgetIndex]; rct_scroll* scroll = &w->scrolls[scroll_id]; - int32_t widget_width = widg->right - widg->left - 1; + int32_t widget_width = widg->width() - 1; if (scroll->flags & VSCROLLBAR_VISIBLE) widget_width -= SCROLLBAR_WIDTH + 1; int32_t widget_content_width = std::max(scroll->h_right - widget_width, 0); @@ -740,7 +740,7 @@ static void input_scroll_part_update_hthumb(rct_window* w, rct_widgetindex widge int32_t newLeft; newLeft = w->scrolls[scroll_id].h_right; newLeft *= x; - x = widget->right - widget->left - 21; + x = widget->width() - 21; if (w->scrolls[scroll_id].flags & VSCROLLBAR_VISIBLE) x -= SCROLLBAR_WIDTH + 1; newLeft /= x; @@ -750,7 +750,7 @@ static void input_scroll_part_update_hthumb(rct_window* w, rct_widgetindex widge newLeft += x; if (newLeft < 0) newLeft = 0; - x = widget->right - widget->left - 1; + x = widget->width() - 1; if (w->scrolls[scroll_id].flags & VSCROLLBAR_VISIBLE) x -= SCROLLBAR_WIDTH + 1; x *= -1; @@ -779,7 +779,7 @@ static void input_scroll_part_update_vthumb(rct_window* w, rct_widgetindex widge int32_t newTop; newTop = w->scrolls[scroll_id].v_bottom; newTop *= y; - y = widget->bottom - widget->top - 21; + y = widget->height() - 21; if (w->scrolls[scroll_id].flags & HSCROLLBAR_VISIBLE) y -= SCROLLBAR_WIDTH + 1; newTop /= y; @@ -789,7 +789,7 @@ static void input_scroll_part_update_vthumb(rct_window* w, rct_widgetindex widge newTop += y; if (newTop < 0) newTop = 0; - y = widget->bottom - widget->top - 1; + y = widget->height() - 1; if (w->scrolls[scroll_id].flags & HSCROLLBAR_VISIBLE) y -= SCROLLBAR_WIDTH + 1; y *= -1; @@ -833,7 +833,7 @@ static void input_scroll_part_update_hright(rct_window* w, rct_widgetindex widge { w->scrolls[scroll_id].flags |= HSCROLLBAR_RIGHT_PRESSED; w->scrolls[scroll_id].h_left += 3; - int32_t newLeft = widget->right - widget->left - 1; + int32_t newLeft = widget->width() - 1; if (w->scrolls[scroll_id].flags & VSCROLLBAR_VISIBLE) newLeft -= SCROLLBAR_WIDTH + 1; newLeft *= -1; @@ -876,7 +876,7 @@ static void input_scroll_part_update_vbottom(rct_window* w, rct_widgetindex widg { w->scrolls[scroll_id].flags |= VSCROLLBAR_DOWN_PRESSED; w->scrolls[scroll_id].v_top += 3; - int32_t newTop = widget->bottom - widget->top - 1; + int32_t newTop = widget->height() - 1; if (w->scrolls[scroll_id].flags & HSCROLLBAR_VISIBLE) newTop -= SCROLLBAR_WIDTH + 1; newTop *= -1; diff --git a/src/openrct2-ui/interface/LandTool.cpp b/src/openrct2-ui/interface/LandTool.cpp index 000ec739d5..506f695341 100644 --- a/src/openrct2-ui/interface/LandTool.cpp +++ b/src/openrct2-ui/interface/LandTool.cpp @@ -83,8 +83,8 @@ void land_tool_show_surface_style_dropdown(rct_window* w, rct_widget* widget, ui uint32_t surfaceCount = itemIndex; window_dropdown_show_image( - w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top, w->colours[2], 0, - surfaceCount, 47, 36, dropdown_get_appropriate_image_dropdown_items_per_row(surfaceCount)); + w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->height(), w->colours[2], 0, surfaceCount, 47, 36, + dropdown_get_appropriate_image_dropdown_items_per_row(surfaceCount)); gDropdownDefaultIndex = defaultIndex; } @@ -113,8 +113,8 @@ void land_tool_show_edge_style_dropdown(rct_window* w, rct_widget* widget, uint8 auto itemsPerRow = dropdown_get_appropriate_image_dropdown_items_per_row(edgeCount); window_dropdown_show_image( - w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top, w->colours[2], 0, edgeCount, - 47, 36, itemsPerRow); + w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->height(), w->colours[2], 0, edgeCount, 47, 36, + itemsPerRow); gDropdownDefaultIndex = defaultIndex; } diff --git a/src/openrct2-ui/interface/Widget.cpp b/src/openrct2-ui/interface/Widget.cpp index 65fc83ead0..b660ff3efe 100644 --- a/src/openrct2-ui/interface/Widget.cpp +++ b/src/openrct2-ui/interface/Widget.cpp @@ -346,7 +346,7 @@ static void widget_text_centred(rct_drawpixelinfo* dpi, rct_window* w, rct_widge if (widget->type == WWT_BUTTON || widget->type == WWT_TABLE_HEADER) { - int32_t height = (widget->bottom - widget->top); + int32_t height = widget->height(); if (height >= 10) topLeft.y += std::max(widget->top, widget->top + (height / 2) - 5); else @@ -363,7 +363,7 @@ static void widget_text_centred(rct_drawpixelinfo* dpi, rct_window* w, rct_widge formatArgs = &widget->string; } gfx_draw_string_centred_clipped( - dpi, stringId, formatArgs, colour, { (topLeft.x + r + 1) / 2 - 1, topLeft.y }, widget->right - widget->left - 2); + dpi, stringId, formatArgs, colour, { (topLeft.x + r + 1) / 2 - 1, topLeft.y }, widget->width() - 2); } /** @@ -391,7 +391,7 @@ static void widget_text(rct_drawpixelinfo* dpi, rct_window* w, rct_widgetindex w if (widget->type == WWT_BUTTON || widget->type == WWT_DROPDOWN || widget->type == WWT_SPINNER || widget->type == WWT_TABLE_HEADER) { - int32_t height = (widget->bottom - widget->top); + int32_t height = widget->height(); if (height >= 10) t = w->windowPos.y + std::max(widget->top, widget->top + (height / 2) - 5); else @@ -548,7 +548,7 @@ static void widget_caption_draw(rct_drawpixelinfo* dpi, rct_window* w, rct_widge return; topLeft = w->windowPos + ScreenCoordsXY{ widget->left + 2, widget->top + 1 }; - int32_t width = widget->right - widget->left - 4; + int32_t width = widget->width() - 4; if ((widget + 1)->type == WWT_CLOSEBOX) { width -= 10; @@ -595,7 +595,7 @@ static void widget_closebox_draw(rct_drawpixelinfo* dpi, rct_window* w, rct_widg if (widget_is_disabled(w, widgetIndex)) colour |= COLOUR_FLAG_INSET; - gfx_draw_string_centred_clipped(dpi, widget->text, gCommonFormatArgs, colour, topLeft, widget->right - widget->left - 2); + gfx_draw_string_centred_clipped(dpi, widget->text, gCommonFormatArgs, colour, topLeft, widget->width() - 2); } /** diff --git a/src/openrct2-ui/interface/Window.cpp b/src/openrct2-ui/interface/Window.cpp index f7c6c255af..6a0896c273 100644 --- a/src/openrct2-ui/interface/Window.cpp +++ b/src/openrct2-ui/interface/Window.cpp @@ -366,7 +366,7 @@ static void window_scroll_wheel_input(rct_window* w, int32_t scrollIndex, int32_ if (scroll->flags & VSCROLLBAR_VISIBLE) { - int32_t size = widget->bottom - widget->top - 1; + int32_t size = widget->height() - 1; if (scroll->flags & HSCROLLBAR_VISIBLE) size -= 11; size = std::max(0, scroll->v_bottom - size); @@ -374,7 +374,7 @@ static void window_scroll_wheel_input(rct_window* w, int32_t scrollIndex, int32_ } else { - int32_t size = widget->right - widget->left - 1; + int32_t size = widget->width() - 1; if (scroll->flags & VSCROLLBAR_VISIBLE) size -= 11; size = std::max(0, scroll->h_right - size); diff --git a/src/openrct2-ui/scripting/CustomWindow.cpp b/src/openrct2-ui/scripting/CustomWindow.cpp index 03176a3330..b54ecc6188 100644 --- a/src/openrct2-ui/scripting/CustomWindow.cpp +++ b/src/openrct2-ui/scripting/CustomWindow.cpp @@ -529,8 +529,8 @@ namespace OpenRCT2::Ui::Windows std::memcpy(&gDropdownItemsArgs[i], &sz, sizeof(const char*)); } window_dropdown_show_text_custom_width( - { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, - w->colours[widget->colour], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, widget->right - widget->left - 3); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, + w->colours[widget->colour], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, widget->width() - 3); } else if (widgetDesc->Type == "spinner") { @@ -669,8 +669,8 @@ namespace OpenRCT2::Ui::Windows if (widget->type == WWT_SCROLL) { auto& listView = info.ListViews[scrollIndex]; - auto width = widget->right - widget->left + 1 - 2; - auto height = widget->bottom - widget->top + 1 - 2; + auto width = widget->width() + 1 - 2; + auto height = widget->height() + 1 - 2; if (listView.GetScrollbars() == ScrollbarType::Horizontal || listView.GetScrollbars() == ScrollbarType::Both) { height -= SCROLLBAR_WIDTH + 1; @@ -755,8 +755,8 @@ namespace OpenRCT2::Ui::Windows { auto left = w->windowPos.x + viewportWidget->left + 1; auto top = w->windowPos.y + viewportWidget->top + 1; - auto width = (viewportWidget->right - viewportWidget->left) - 1; - auto height = (viewportWidget->bottom - viewportWidget->top) - 1; + auto width = viewportWidget->width() - 1; + auto height = viewportWidget->height() - 1; auto viewport = w->viewport; if (viewport == nullptr) { diff --git a/src/openrct2-ui/scripting/ScWidget.hpp b/src/openrct2-ui/scripting/ScWidget.hpp index 16c5e464d5..a538b9089c 100644 --- a/src/openrct2-ui/scripting/ScWidget.hpp +++ b/src/openrct2-ui/scripting/ScWidget.hpp @@ -201,7 +201,7 @@ namespace OpenRCT2::Scripting auto widget = GetWidget(); if (widget != nullptr) { - return widget->right - widget->left; + return widget->width(); } return 0; } @@ -244,7 +244,7 @@ namespace OpenRCT2::Scripting auto widget = GetWidget(); if (widget != nullptr) { - return widget->bottom - widget->top; + return widget->height(); } return 0; } diff --git a/src/openrct2-ui/windows/Banner.cpp b/src/openrct2-ui/windows/Banner.cpp index 6b1d9a0418..43755ea204 100644 --- a/src/openrct2-ui/windows/Banner.cpp +++ b/src/openrct2-ui/windows/Banner.cpp @@ -153,9 +153,8 @@ rct_window* window_banner_open(rct_windownumber number) // Create viewport viewportWidget = &window_banner_widgets[WIDX_VIEWPORT]; viewport_create( - w, w->windowPos + ScreenCoordsXY{ viewportWidget->left + 1, viewportWidget->top + 1 }, - (viewportWidget->right - viewportWidget->left) - 2, (viewportWidget->bottom - viewportWidget->top) - 2, 0, - { bannerViewPos, view_z }, 0, SPRITE_INDEX_NULL); + w, w->windowPos + ScreenCoordsXY{ viewportWidget->left + 1, viewportWidget->top + 1 }, viewportWidget->width() - 2, + viewportWidget->height() - 2, 0, { bannerViewPos, view_z }, 0, SPRITE_INDEX_NULL); w->viewport->flags = gConfigGeneral.always_show_gridlines ? VIEWPORT_FLAG_GRIDLINES : 0; w->Invalidate(); @@ -235,8 +234,8 @@ static void window_banner_mousedown(rct_window* w, rct_widgetindex widgetIndex, widget--; window_dropdown_show_text_custom_width( - { widget->left + w->windowPos.x, widget->top + w->windowPos.y }, widget->bottom - widget->top + 1, - w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 13, widget->right - widget->left - 3); + { widget->left + w->windowPos.x, widget->top + w->windowPos.y }, widget->height() + 1, w->colours[1], 0, + DROPDOWN_FLAG_STAY_OPEN, 13, widget->width() - 3); dropdown_set_checked(banner->text_colour - 1, true); break; @@ -348,9 +347,8 @@ static void window_banner_viewport_rotate(rct_window* w) // Create viewport rct_widget* viewportWidget = &window_banner_widgets[WIDX_VIEWPORT]; viewport_create( - w, w->windowPos + ScreenCoordsXY{ viewportWidget->left + 1, viewportWidget->top + 1 }, - (viewportWidget->right - viewportWidget->left) - 1, (viewportWidget->bottom - viewportWidget->top) - 1, 0, - bannerViewPos, 0, SPRITE_INDEX_NULL); + w, w->windowPos + ScreenCoordsXY{ viewportWidget->left + 1, viewportWidget->top + 1 }, (viewportWidget->width()) - 1, + (viewportWidget->height()) - 1, 0, bannerViewPos, 0, SPRITE_INDEX_NULL); if (w->viewport != nullptr) w->viewport->flags = gConfigGeneral.always_show_gridlines ? VIEWPORT_FLAG_GRIDLINES : 0; diff --git a/src/openrct2-ui/windows/Cheats.cpp b/src/openrct2-ui/windows/Cheats.cpp index 106495bdd2..b7336ca7d0 100644 --- a/src/openrct2-ui/windows/Cheats.cpp +++ b/src/openrct2-ui/windows/Cheats.cpp @@ -736,9 +736,8 @@ static void window_cheats_misc_mousedown(rct_window* w, rct_widgetindex widgetIn gDropdownItemsArgs[i] = WeatherTypes[i]; } window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 6, - dropdownWidget->right - dropdownWidget->left - 3); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 6, dropdownWidget->width() - 3); currentWeather = gClimateCurrent.Weather; dropdown_set_checked(currentWeather, true); @@ -757,9 +756,8 @@ static void window_cheats_misc_mousedown(rct_window* w, rct_widgetindex widgetIn } window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 3, - dropdownWidget->right - dropdownWidget->left - 3); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 3, dropdownWidget->width() - 3); dropdown_set_checked(_selectedStaffSpeed, true); } } diff --git a/src/openrct2-ui/windows/CustomCurrency.cpp b/src/openrct2-ui/windows/CustomCurrency.cpp index 5beb59bd95..e663f3b89a 100644 --- a/src/openrct2-ui/windows/CustomCurrency.cpp +++ b/src/openrct2-ui/windows/CustomCurrency.cpp @@ -140,8 +140,8 @@ static void custom_currency_window_mousedown(rct_window* w, rct_widgetindex widg gDropdownItemsArgs[1] = STR_SUFFIX; window_dropdown_show_text_custom_width( - { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, - w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 2, widget->right - widget->left - 3); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, + DROPDOWN_FLAG_STAY_OPEN, 2, widget->width() - 3); if (CurrencyDescriptors[CURRENCY_CUSTOM].affix_unicode == CURRENCY_PREFIX) { diff --git a/src/openrct2-ui/windows/Dropdown.cpp b/src/openrct2-ui/windows/Dropdown.cpp index 0c16c4e456..09b52c5049 100644 --- a/src/openrct2-ui/windows/Dropdown.cpp +++ b/src/openrct2-ui/windows/Dropdown.cpp @@ -460,7 +460,7 @@ void window_dropdown_show_colour(rct_window* w, rct_widget* widget, uint8_t drop // Show dropdown window_dropdown_show_image( - w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top + 1, dropdownColour, + w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->height() + 1, dropdownColour, DROPDOWN_FLAG_STAY_OPEN, COLOUR_COUNT, 12, 12, _appropriateImageDropdownItemsPerRow[COLOUR_COUNT]); gDropdownIsColour = true; diff --git a/src/openrct2-ui/windows/EditorInventionsList.cpp b/src/openrct2-ui/windows/EditorInventionsList.cpp index 58ef87ec94..4c7773e192 100644 --- a/src/openrct2-ui/windows/EditorInventionsList.cpp +++ b/src/openrct2-ui/windows/EditorInventionsList.cpp @@ -596,8 +596,8 @@ static void window_editor_inventions_list_paint(rct_window* w, rct_drawpixelinfo { rct_drawpixelinfo clipDPI; screenPos = w->windowPos + ScreenCoordsXY{ widget->left + 1, widget->top + 1 }; - width = widget->right - widget->left - 1; - int32_t height = widget->bottom - widget->top - 1; + width = widget->width() - 1; + int32_t height = widget->height() - 1; if (clip_drawpixelinfo(&clipDPI, dpi, screenPos.x, screenPos.y, width, height)) { object_draw_preview(object, &clipDPI, width, height); @@ -628,7 +628,7 @@ static void window_editor_inventions_list_scrollpaint(rct_window* w, rct_drawpix uint8_t paletteIndex = ColourMapA[w->colours[1]].mid_light; gfx_clear(dpi, paletteIndex); - int16_t boxWidth = (w->widgets[WIDX_RESEARCH_ORDER_SCROLL].right - w->widgets[WIDX_RESEARCH_ORDER_SCROLL].left); + int16_t boxWidth = w->widgets[WIDX_RESEARCH_ORDER_SCROLL].width(); int16_t columnSplitOffset = boxWidth / 2; int32_t itemY = -SCROLLABLE_ROW_HEIGHT; diff --git a/src/openrct2-ui/windows/EditorObjectSelection.cpp b/src/openrct2-ui/windows/EditorObjectSelection.cpp index 3eb2853129..289de1dfb9 100644 --- a/src/openrct2-ui/windows/EditorObjectSelection.cpp +++ b/src/openrct2-ui/windows/EditorObjectSelection.cpp @@ -609,7 +609,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->height() + 1, w->colours[widget->colour], DROPDOWN_FLAG_STAY_OPEN, _numSourceGameItems + numSelectionItems); for (int32_t i = 0; i < _numSourceGameItems; i++) @@ -916,7 +916,7 @@ static void window_editor_object_selection_invalidate(rct_window* w) for (int32_t i = WIDX_FILTER_RIDE_TAB_ALL; i <= WIDX_FILTER_RIDE_TAB_STALL; i++) w->widgets[i].type = WWT_TAB; - int32_t width_limit = (w->widgets[WIDX_LIST].right - w->widgets[WIDX_LIST].left - 15) / 2; + int32_t width_limit = (w->widgets[WIDX_LIST].width() - 15) / 2; w->widgets[WIDX_LIST_SORT_TYPE].type = WWT_TABLE_HEADER; w->widgets[WIDX_LIST_SORT_TYPE].top = w->widgets[WIDX_FILTER_TEXT_BOX].bottom + 3; @@ -1027,8 +1027,7 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf stringId = _listSortType == RIDE_SORT_TYPE ? static_cast(_listSortDescending ? STR_DOWN : STR_UP) : STR_NONE; auto screenPos = w->windowPos + ScreenCoordsXY{ widget->left + 1, widget->top + 1 }; - gfx_draw_string_left_clipped( - dpi, STR_OBJECTS_SORT_TYPE, &stringId, w->colours[1], screenPos, widget->right - widget->left); + gfx_draw_string_left_clipped(dpi, STR_OBJECTS_SORT_TYPE, &stringId, w->colours[1], screenPos, widget->width()); } widget = &w->widgets[WIDX_LIST_SORT_RIDE]; if (widget->type != WWT_EMPTY) @@ -1036,8 +1035,7 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf stringId = _listSortType == RIDE_SORT_RIDE ? static_cast(_listSortDescending ? STR_DOWN : STR_UP) : STR_NONE; auto screenPos = w->windowPos + ScreenCoordsXY{ widget->left + 1, widget->top + 1 }; - gfx_draw_string_left_clipped( - dpi, STR_OBJECTS_SORT_RIDE, &stringId, w->colours[1], screenPos, widget->right - widget->left); + gfx_draw_string_left_clipped(dpi, STR_OBJECTS_SORT_RIDE, &stringId, w->colours[1], screenPos, widget->width()); } if (w->selected_list_item == -1 || _loadedObject == nullptr) @@ -1050,8 +1048,8 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf { rct_drawpixelinfo clipDPI; auto screenPos = w->windowPos + ScreenCoordsXY{ widget->left + 1, widget->top + 1 }; - width = widget->right - widget->left - 1; - int32_t height = widget->bottom - widget->top - 1; + width = widget->width() - 1; + int32_t height = widget->height() - 1; if (clip_drawpixelinfo(&clipDPI, dpi, screenPos.x, screenPos.y, width, height)) { object_draw_preview(_loadedObject, &clipDPI, width, height); @@ -1168,7 +1166,7 @@ static void window_editor_object_selection_scrollpaint(rct_window* w, rct_drawpi gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM; } - int32_t width_limit = w->widgets[WIDX_LIST].right - w->widgets[WIDX_LIST].left - screenCoords.x; + int32_t width_limit = w->widgets[WIDX_LIST].width() - screenCoords.x; if (ridePage) { diff --git a/src/openrct2-ui/windows/EditorObjectiveOptions.cpp b/src/openrct2-ui/windows/EditorObjectiveOptions.cpp index 8ab4f1daff..915f8f0e17 100644 --- a/src/openrct2-ui/windows/EditorObjectiveOptions.cpp +++ b/src/openrct2-ui/windows/EditorObjectiveOptions.cpp @@ -486,9 +486,8 @@ static void window_editor_objective_options_show_objective_dropdown(rct_window* numItems++; window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, - dropdownWidget->right - dropdownWidget->left - 3); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, dropdownWidget->width() - 3); objectiveType = gScenarioObjectiveType; for (int32_t j = 0; j < numItems; j++) @@ -514,9 +513,8 @@ static void window_editor_objective_options_show_category_dropdown(rct_window* w gDropdownItemsArgs[i] = ScenarioCategoryStringIds[i]; } window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 5, - dropdownWidget->right - dropdownWidget->left - 3); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 5, dropdownWidget->width() - 3); dropdown_set_checked(gS6Info.category, true); } diff --git a/src/openrct2-ui/windows/EditorScenarioOptions.cpp b/src/openrct2-ui/windows/EditorScenarioOptions.cpp index 800ce0ce12..fe49ad1d73 100644 --- a/src/openrct2-ui/windows/EditorScenarioOptions.cpp +++ b/src/openrct2-ui/windows/EditorScenarioOptions.cpp @@ -548,9 +548,8 @@ static void window_editor_scenario_options_show_climate_dropdown(rct_window* w) gDropdownItemsArgs[i] = ClimateNames[i]; } window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, CLIMATE_COUNT, - dropdownWidget->right - dropdownWidget->left - 3); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, CLIMATE_COUNT, dropdownWidget->width() - 3); dropdown_set_checked(gClimate, true); } @@ -1240,9 +1239,8 @@ static void window_editor_scenario_options_park_mousedown(rct_window* w, rct_wid gDropdownItemsArgs[2] = STR_PAID_ENTRY_PAID_RIDES; window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top - 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 3, - dropdownWidget->right - dropdownWidget->left - 3); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() - 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 3, dropdownWidget->width() - 3); if (gParkFlags & PARK_FLAGS_UNLOCK_ALL_PRICES) dropdown_set_checked(2, true); diff --git a/src/openrct2-ui/windows/Finances.cpp b/src/openrct2-ui/windows/Finances.cpp index 6bc08c652a..6a7208c1a7 100644 --- a/src/openrct2-ui/windows/Finances.cpp +++ b/src/openrct2-ui/windows/Finances.cpp @@ -620,7 +620,7 @@ static void window_finances_summary_scrollgetsize(rct_window* w, int32_t scrollI static void window_finances_summary_invertscroll(rct_window* w) { rct_widget summary = w->widgets[WIDX_SUMMARY_SCROLL]; - w->scrolls[0].h_left = std::max(0, w->scrolls[0].h_right - ((summary.right - summary.left) - 2)); + w->scrolls[0].h_left = std::max(0, w->scrolls[0].h_right - (summary.width() - 2)); widget_scroll_update_thumbs(w, WIDX_SUMMARY_SCROLL); } @@ -727,7 +727,7 @@ static void window_finances_summary_scrollpaint(rct_window* w, rct_drawpixelinfo auto screenCoords = ScreenCoordsXY{ 0, TABLE_CELL_HEIGHT + 2 }; rct_widget self = w->widgets[WIDX_SUMMARY_SCROLL]; - int32_t row_width = std::max(w->scrolls[0].h_right, self.right - self.left); + int32_t row_width = std::max(w->scrolls[0].h_right, self.width()); // Expenditure / Income row labels for (int32_t i = 0; i < static_cast(ExpenditureType::Count); i++) @@ -1326,9 +1326,8 @@ static void window_finances_research_mousedown(rct_window* w, rct_widgetindex wi gDropdownItemsArgs[i] = ResearchFundingLevelNames[i]; } window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 4, - dropdownWidget->right - dropdownWidget->left - 3); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 4, dropdownWidget->width() - 3); int32_t currentResearchLevel = gResearchFundingLevel; dropdown_set_checked(currentResearchLevel, true); diff --git a/src/openrct2-ui/windows/Footpath.cpp b/src/openrct2-ui/windows/Footpath.cpp index a60c13f532..5330d74ccf 100644 --- a/src/openrct2-ui/windows/Footpath.cpp +++ b/src/openrct2-ui/windows/Footpath.cpp @@ -685,8 +685,8 @@ static void window_footpath_show_footpath_types_dialog(rct_window* w, rct_widget auto itemsPerRow = dropdown_get_appropriate_image_dropdown_items_per_row(numPathTypes); window_dropdown_show_image( - w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->bottom - widget->top + 1, w->colours[1], 0, - numPathTypes, 47, 36, itemsPerRow); + w->windowPos.x + widget->left, w->windowPos.y + widget->top, widget->height() + 1, w->colours[1], 0, numPathTypes, 47, + 36, itemsPerRow); } /** diff --git a/src/openrct2-ui/windows/GameBottomToolbar.cpp b/src/openrct2-ui/windows/GameBottomToolbar.cpp index 197177e7f2..1672b26ac3 100644 --- a/src/openrct2-ui/windows/GameBottomToolbar.cpp +++ b/src/openrct2-ui/windows/GameBottomToolbar.cpp @@ -585,7 +585,7 @@ static void window_game_bottom_toolbar_draw_news_item(rct_drawpixelinfo* dpi, rc utf8* newsItemText = newsItem->Text; auto screenCoords = w->windowPos + ScreenCoordsXY{ (middleOutsetWidget->left + middleOutsetWidget->right) / 2, middleOutsetWidget->top + 11 }; - width = middleOutsetWidget->right - middleOutsetWidget->left - 62; + width = middleOutsetWidget->width() - 62; gfx_draw_string_centred_wrapped_partial( dpi, screenCoords.x, screenCoords.y, width, COLOUR_BRIGHT_GREEN, STR_BOTTOM_TOOLBAR_NEWS_TEXT, &newsItemText, newsItem->Ticks); @@ -690,7 +690,7 @@ static void window_game_bottom_toolbar_draw_middle_panel(rct_drawpixelinfo* dpi, ScreenCoordsXY middleWidgetCoords( w->windowPos.x + (middleOutsetWidget->left + middleOutsetWidget->right) / 2, w->windowPos.y + middleOutsetWidget->top + line_height + 1); - int32_t width = middleOutsetWidget->right - middleOutsetWidget->left - 62; + int32_t width = middleOutsetWidget->width() - 62; // Check if there is a map tooltip to draw rct_string_id stringId; diff --git a/src/openrct2-ui/windows/Guest.cpp b/src/openrct2-ui/windows/Guest.cpp index 450c76ab58..ac8a87501c 100644 --- a/src/openrct2-ui/windows/Guest.cpp +++ b/src/openrct2-ui/windows/Guest.cpp @@ -829,8 +829,8 @@ void window_guest_viewport_init(rct_window* w) { auto view_widget = &w->widgets[WIDX_VIEWPORT]; auto screenPos = ScreenCoordsXY{ view_widget->left + 1 + w->windowPos.x, view_widget->top + 1 + w->windowPos.y }; - int32_t width = view_widget->right - view_widget->left - 1; - int32_t height = view_widget->bottom - view_widget->top - 1; + int32_t width = view_widget->width() - 1; + int32_t height = view_widget->height() - 1; viewport_create( w, screenPos, width, height, 0, @@ -858,8 +858,8 @@ static void window_guest_overview_tab_paint(rct_window* w, rct_drawpixelinfo* dp return; rct_widget* widget = &w->widgets[WIDX_TAB_1]; - int32_t width = widget->right - widget->left - 1; - int32_t height = widget->bottom - widget->top - 1; + int32_t width = widget->width() - 1; + int32_t height = widget->height() - 1; auto screenCoords = w->windowPos + ScreenCoordsXY{ widget->left + 1, widget->top + 1 }; if (w->page == WINDOW_GUEST_OVERVIEW) height++; @@ -1083,15 +1083,15 @@ void window_guest_overview_paint(rct_window* w, rct_drawpixelinfo* dpi) peep->FormatActionTo(ft); rct_widget* widget = &w->widgets[WIDX_ACTION_LBL]; auto screenPos = w->windowPos + ScreenCoordsXY{ (widget->left + widget->right) / 2, widget->top - 1 }; - int32_t width = widget->right - widget->left; + int32_t width = widget->width(); gfx_draw_string_centred_clipped(dpi, STR_BLACK_STRING, gCommonFormatArgs, COLOUR_BLACK, screenPos, width); // Draw the marquee thought widget = &w->widgets[WIDX_MARQUEE]; - width = widget->right - widget->left - 3; + width = widget->width() - 3; int32_t left = widget->left + 2 + w->windowPos.x; int32_t top = widget->top + w->windowPos.y; - int32_t height = widget->bottom - widget->top; + int32_t height = widget->height(); rct_drawpixelinfo dpi_marquee; if (!clip_drawpixelinfo(&dpi_marquee, dpi, left, top, width, height)) { @@ -1117,7 +1117,7 @@ void window_guest_overview_paint(rct_window* w, rct_drawpixelinfo* dpi) return; } - screenPos.x = widget->right - widget->left - w->list_information_type; + screenPos.x = widget->width() - w->list_information_type; peep_thought_set_format_args(&peep->Thoughts[i]); gfx_draw_string_left(&dpi_marquee, STR_WINDOW_COLOUR_2_STRINGID, gCommonFormatArgs, COLOUR_BLACK, { screenPos.x, 0 }); } @@ -2072,7 +2072,7 @@ void window_guest_inventory_paint(rct_window* w, rct_drawpixelinfo* dpi) { rct_widget* pageBackgroundWidget = &window_guest_inventory_widgets[WIDX_PAGE_BACKGROUND]; auto screenCoords = w->windowPos + ScreenCoordsXY{ pageBackgroundWidget->left + 4, pageBackgroundWidget->top + 2 }; - int32_t itemNameWidth = pageBackgroundWidget->right - pageBackgroundWidget->left - 8; + int32_t itemNameWidth = pageBackgroundWidget->width() - 8; int32_t maxY = w->windowPos.y + w->height - 22; int32_t numItems = 0; diff --git a/src/openrct2-ui/windows/GuestList.cpp b/src/openrct2-ui/windows/GuestList.cpp index b0ed3cd462..60a58ce4d6 100644 --- a/src/openrct2-ui/windows/GuestList.cpp +++ b/src/openrct2-ui/windows/GuestList.cpp @@ -445,8 +445,8 @@ static void window_guest_list_mousedown(rct_window* w, rct_widgetindex widgetInd widget = &w->widgets[widgetIndex - 1]; window_dropdown_show_text_custom_width( - { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, - w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, _window_guest_list_num_pages, widget->right - widget->left - 3); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, + DROPDOWN_FLAG_STAY_OPEN, _window_guest_list_num_pages, widget->width() - 3); for (i = 0; i < _window_guest_list_num_pages; i++) { @@ -467,8 +467,8 @@ static void window_guest_list_mousedown(rct_window* w, rct_widgetindex widgetInd } window_dropdown_show_text_custom_width( - { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, - w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 2, widget->right - widget->left - 3); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, + DROPDOWN_FLAG_STAY_OPEN, 2, widget->width() - 3); dropdown_set_checked(_window_guest_list_selected_view, true); break; diff --git a/src/openrct2-ui/windows/LoadSave.cpp b/src/openrct2-ui/windows/LoadSave.cpp index 71823368f8..c333d102d6 100644 --- a/src/openrct2-ui/windows/LoadSave.cpp +++ b/src/openrct2-ui/windows/LoadSave.cpp @@ -749,7 +749,7 @@ static void window_loadsave_paint(rct_window* w, rct_drawpixelinfo* dpi) static void window_loadsave_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex) { gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width - 1, dpi->y + dpi->height - 1, ColourMapA[w->colours[1]].mid_light); - const int32_t listWidth = w->widgets[WIDX_SCROLL].right - w->widgets[WIDX_SCROLL].left; + const int32_t listWidth = w->widgets[WIDX_SCROLL].width(); const int32_t dateAnchor = w->widgets[WIDX_SORT_DATE].left + maxDateWidth + DATE_TIME_GAP; for (int32_t i = 0; i < w->no_list_items; i++) @@ -781,7 +781,7 @@ static void window_loadsave_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, i auto ft = Formatter::Common(); ft.Add(STR_STRING); ft.Add(_listItems[i].name.c_str()); - int32_t max_file_width = w->widgets[WIDX_SORT_NAME].right - w->widgets[WIDX_SORT_NAME].left - 10; + int32_t max_file_width = w->widgets[WIDX_SORT_NAME].width() - 10; gfx_draw_string_left_clipped(dpi, stringId, gCommonFormatArgs, COLOUR_BLACK, { 10, y }, max_file_width); // Print formatted modified date, if this is a file diff --git a/src/openrct2-ui/windows/Map.cpp b/src/openrct2-ui/windows/Map.cpp index 180d39d92b..f778ef8042 100644 --- a/src/openrct2-ui/windows/Map.cpp +++ b/src/openrct2-ui/windows/Map.cpp @@ -938,8 +938,8 @@ static void window_map_centre_on_view_point() // calculate width and height of minimap - ax = w_map->widgets[WIDX_MAP].right - w_map->widgets[WIDX_MAP].left - 11; - bx = w_map->widgets[WIDX_MAP].bottom - w_map->widgets[WIDX_MAP].top - 11; + ax = w_map->widgets[WIDX_MAP].width() - 11; + bx = w_map->widgets[WIDX_MAP].height() - 11; bp = ax; di = bx; diff --git a/src/openrct2-ui/windows/Multiplayer.cpp b/src/openrct2-ui/windows/Multiplayer.cpp index 1e43948d1a..305d9c7da1 100644 --- a/src/openrct2-ui/windows/Multiplayer.cpp +++ b/src/openrct2-ui/windows/Multiplayer.cpp @@ -367,8 +367,8 @@ static void window_multiplayer_groups_show_group_dropdown(rct_window* w, rct_wid numItems = network_get_num_groups(); window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, 0, numItems, widget->right - dropdownWidget->left); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, 0, numItems, widget->right - dropdownWidget->left); for (i = 0; i < network_get_num_groups(); i++) { @@ -916,8 +916,7 @@ static void window_multiplayer_groups_paint(rct_window* w, rct_drawpixelinfo* dp ft.Add(buffer); gfx_draw_string_centred_clipped( dpi, STR_STRING, gCommonFormatArgs, COLOUR_BLACK, - w->windowPos + ScreenCoordsXY{ (widget->left + widget->right - 11) / 2, widget->top }, - widget->right - widget->left - 8); + w->windowPos + ScreenCoordsXY{ (widget->left + widget->right - 11) / 2, widget->top }, widget->width() - 8); } auto screenPos = w->windowPos @@ -944,8 +943,7 @@ static void window_multiplayer_groups_paint(rct_window* w, rct_drawpixelinfo* dp ft.Add(buffer); gfx_draw_string_centred_clipped( dpi, STR_STRING, gCommonFormatArgs, COLOUR_BLACK, - w->windowPos + ScreenCoordsXY{ (widget->left + widget->right - 11) / 2, widget->top }, - widget->right - widget->left - 8); + w->windowPos + ScreenCoordsXY{ (widget->left + widget->right - 11) / 2, widget->top }, widget->width() - 8); } } diff --git a/src/openrct2-ui/windows/NewCampaign.cpp b/src/openrct2-ui/windows/NewCampaign.cpp index 83343fef96..c84106f08a 100644 --- a/src/openrct2-ui/windows/NewCampaign.cpp +++ b/src/openrct2-ui/windows/NewCampaign.cpp @@ -249,8 +249,8 @@ static void window_new_campaign_mousedown(rct_window* w, rct_widgetindex widgetI window_dropdown_show_text_custom_width( { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, - dropdownWidget->right - dropdownWidget->left - 3); + dropdownWidget->height() + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, + dropdownWidget->width() - 3); } } else @@ -279,8 +279,8 @@ static void window_new_campaign_mousedown(rct_window* w, rct_widgetindex widgetI window_dropdown_show_text_custom_width( { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, - dropdownWidget->right - dropdownWidget->left - 3); + dropdownWidget->height() + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, + dropdownWidget->width() - 3); } break; // In RCT2, the maximum was 6 weeks diff --git a/src/openrct2-ui/windows/News.cpp b/src/openrct2-ui/windows/News.cpp index 2847c057d3..6909e9ad80 100644 --- a/src/openrct2-ui/windows/News.cpp +++ b/src/openrct2-ui/windows/News.cpp @@ -104,7 +104,7 @@ rct_window* window_news_open() int32_t height = 0; window_get_scroll_size(window, 0, &width, &height); widget = &window_news_widgets[WIDX_SCROLL]; - window->scrolls[0].v_top = std::max(0, height - (widget->bottom - widget->top - 1)); + window->scrolls[0].v_top = std::max(0, height - (widget->height() - 1)); widget_scroll_update_thumbs(window, WIDX_SCROLL); return window; diff --git a/src/openrct2-ui/windows/ObjectLoadError.cpp b/src/openrct2-ui/windows/ObjectLoadError.cpp index d52c80d473..fc797846a1 100644 --- a/src/openrct2-ui/windows/ObjectLoadError.cpp +++ b/src/openrct2-ui/windows/ObjectLoadError.cpp @@ -574,7 +574,7 @@ static void window_object_load_error_paint(rct_window* w, rct_drawpixelinfo* dpi static void window_object_load_error_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex) { gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width - 1, dpi->y + dpi->height - 1, ColourMapA[w->colours[1]].mid_light); - const int32_t list_width = w->widgets[WIDX_SCROLL].right - w->widgets[WIDX_SCROLL].left; + const int32_t list_width = w->widgets[WIDX_SCROLL].width(); for (int32_t i = 0; i < w->no_list_items; i++) { diff --git a/src/openrct2-ui/windows/Options.cpp b/src/openrct2-ui/windows/Options.cpp index 05095654b5..83a3822072 100644 --- a/src/openrct2-ui/windows/Options.cpp +++ b/src/openrct2-ui/windows/Options.cpp @@ -1223,8 +1223,8 @@ static void window_options_mousedown(rct_window* w, rct_widgetindex widgetIndex, } window_dropdown_show_text_custom_width( - { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, - w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, num_items, widget->right - widget->left - 3); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, + DROPDOWN_FLAG_STAY_OPEN, num_items, widget->width() - 3); dropdown_set_checked(static_cast(theme_manager_get_active_available_theme_index()), true); widget_invalidate(w, WIDX_THEMES_DROPDOWN); @@ -1244,8 +1244,8 @@ 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->colours[1], DROPDOWN_FLAG_STAY_OPEN, num_items); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], + DROPDOWN_FLAG_STAY_OPEN, num_items); dropdown_set_checked(static_cast(title_get_current_sequence()), true); break; @@ -1258,8 +1258,8 @@ static void window_options_mousedown(rct_window* w, rct_widgetindex widgetIndex, gDropdownItemsArgs[1] = STR_OPTIONS_SCENARIO_ORIGIN; window_dropdown_show_text_custom_width( - { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, - w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, num_items, widget->right - widget->left - 3); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, + DROPDOWN_FLAG_STAY_OPEN, num_items, widget->width() - 3); dropdown_set_checked(gConfigGeneral.scenario_select_mode, true); break; @@ -1577,7 +1577,7 @@ static void initialize_scroll_position(rct_window* w, rct_widgetindex widget_ind rct_widget* widget = &window_options_audio_widgets[widget_index]; rct_scroll* scroll = &w->scrolls[scroll_id]; - int widget_size = scroll->h_right - (widget->right - widget->left - 1); + int widget_size = scroll->h_right - (widget->width() - 1); scroll->h_left = ceil(volume / 100.0f * widget_size); widget_scroll_update_thumbs(w, widget_index); @@ -1918,7 +1918,7 @@ static void window_options_invalidate(rct_window* w) static uint8_t get_scroll_percentage(rct_widget* widget, rct_scroll* scroll) { - uint8_t width = widget->right - widget->left - 1; + uint8_t width = widget->width() - 1; return static_cast(scroll->h_left) / (scroll->h_right - width) * 100; } @@ -2099,8 +2099,8 @@ static void window_options_paint(rct_window* w, rct_drawpixelinfo* dpi) static void window_options_show_dropdown(rct_window* w, rct_widget* widget, int32_t num_items) { window_dropdown_show_text_custom_width( - { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, w->colours[1], 0, - DROPDOWN_FLAG_STAY_OPEN, num_items, widget->right - widget->left - 3); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, + DROPDOWN_FLAG_STAY_OPEN, num_items, widget->width() - 3); } static void window_options_update_height_markers() diff --git a/src/openrct2-ui/windows/Park.cpp b/src/openrct2-ui/windows/Park.cpp index b4726ca954..70323e6f65 100644 --- a/src/openrct2-ui/windows/Park.cpp +++ b/src/openrct2-ui/windows/Park.cpp @@ -699,8 +699,7 @@ 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->height() + 1, w->colours[1], 0, 2); if (park_is_open()) { @@ -877,8 +876,7 @@ static void window_park_entrance_paint(rct_window* w, rct_drawpixelinfo* dpi) labelWidget = &window_park_entrance_widgets[WIDX_STATUS]; gfx_draw_string_centred_clipped( dpi, STR_BLACK_STRING, gCommonFormatArgs, COLOUR_BLACK, - w->windowPos + ScreenCoordsXY{ (labelWidget->left + labelWidget->right) / 2, labelWidget->top }, - labelWidget->right - labelWidget->left); + w->windowPos + ScreenCoordsXY{ (labelWidget->left + labelWidget->right) / 2, labelWidget->top }, labelWidget->width()); } /** @@ -935,8 +933,8 @@ static void window_park_init_viewport(rct_window* w) rct_widget* viewportWidget = &window_park_entrance_widgets[WIDX_VIEWPORT]; viewport_create( w, w->windowPos + ScreenCoordsXY{ viewportWidget->left + 1, viewportWidget->top + 1 }, - (viewportWidget->right - viewportWidget->left) - 1, (viewportWidget->bottom - viewportWidget->top) - 1, 0, - { x, y, z }, w->viewport_focus_sprite.type & VIEWPORT_FOCUS_TYPE_MASK, SPRITE_INDEX_NULL); + viewportWidget->width() - 1, viewportWidget->height() - 1, 0, { x, y, z }, + w->viewport_focus_sprite.type & VIEWPORT_FOCUS_TYPE_MASK, SPRITE_INDEX_NULL); w->flags |= (1 << 2); w->Invalidate(); } diff --git a/src/openrct2-ui/windows/Player.cpp b/src/openrct2-ui/windows/Player.cpp index bf0fa5b6da..a57e4fb390 100644 --- a/src/openrct2-ui/windows/Player.cpp +++ b/src/openrct2-ui/windows/Player.cpp @@ -239,8 +239,8 @@ static void window_player_overview_show_group_dropdown(rct_window* w, rct_widget numItems = network_get_num_groups(); window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, 0, numItems, widget->right - dropdownWidget->left); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, 0, numItems, widget->right - dropdownWidget->left); for (i = 0; i < network_get_num_groups(); i++) { @@ -379,8 +379,7 @@ void window_player_overview_paint(rct_window* w, rct_drawpixelinfo* dpi) gfx_draw_string_centred_clipped( dpi, STR_STRING, gCommonFormatArgs, COLOUR_BLACK, - w->windowPos + ScreenCoordsXY{ (widget->left + widget->right - 11) / 2, widget->top }, - widget->right - widget->left - 8); + w->windowPos + ScreenCoordsXY{ (widget->left + widget->right - 11) / 2, widget->top }, widget->width() - 8); } // Draw ping @@ -448,7 +447,7 @@ void window_player_overview_invalidate(rct_window* w) w->widgets[WIDX_VIEWPORT].right = w->width - 26; w->widgets[WIDX_VIEWPORT].bottom = w->height - 14; - int32_t groupDropdownWidth = w->widgets[WIDX_GROUP].right - w->widgets[WIDX_GROUP].left; + int32_t groupDropdownWidth = w->widgets[WIDX_GROUP].width(); w->widgets[WIDX_GROUP].left = (w->width - groupDropdownWidth) / 2; w->widgets[WIDX_GROUP].right = w->widgets[WIDX_GROUP].left + groupDropdownWidth; w->widgets[WIDX_GROUP_DROPDOWN].left = w->widgets[WIDX_GROUP].right - 10; @@ -462,8 +461,8 @@ void window_player_overview_invalidate(rct_window* w) rct_widget* viewportWidget = &window_player_overview_widgets[WIDX_VIEWPORT]; viewport->pos = w->windowPos + ScreenCoordsXY{ viewportWidget->left, viewportWidget->top }; - viewport->width = viewportWidget->right - viewportWidget->left; - viewport->height = viewportWidget->bottom - viewportWidget->top; + viewport->width = viewportWidget->width(); + viewport->height = viewportWidget->height(); viewport->view_width = viewport->width * viewport->zoom; viewport->view_height = viewport->height * viewport->zoom; } diff --git a/src/openrct2-ui/windows/Research.cpp b/src/openrct2-ui/windows/Research.cpp index 57db081c47..4b6bb8e086 100644 --- a/src/openrct2-ui/windows/Research.cpp +++ b/src/openrct2-ui/windows/Research.cpp @@ -503,9 +503,8 @@ static void window_research_funding_mousedown(rct_window* w, rct_widgetindex wid gDropdownItemsArgs[i] = ResearchFundingLevelNames[i]; } window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 4, - dropdownWidget->right - dropdownWidget->left - 3); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 4, dropdownWidget->width() - 3); int32_t currentResearchLevel = gResearchFundingLevel; dropdown_set_checked(currentResearchLevel, true); diff --git a/src/openrct2-ui/windows/Ride.cpp b/src/openrct2-ui/windows/Ride.cpp index 961b884131..9656a474cd 100644 --- a/src/openrct2-ui/windows/Ride.cpp +++ b/src/openrct2-ui/windows/Ride.cpp @@ -1325,7 +1325,7 @@ static void window_ride_draw_tab_vehicle(rct_drawpixelinfo* dpi, rct_window* w) return; } - screenCoords = ScreenCoordsXY{ (widget->right - widget->left) / 2, (widget->bottom - widget->top) - 12 }; + screenCoords = ScreenCoordsXY{ widget->width() / 2, widget->height() - 12 }; auto ride = get_ride(w->number); if (ride == nullptr) @@ -1974,8 +1974,8 @@ static void window_ride_init_viewport(rct_window* w) rct_widget* view_widget = &w->widgets[WIDX_VIEWPORT]; auto screenPos = w->windowPos + ScreenCoordsXY{ view_widget->left + 1, view_widget->top + 1 }; - int32_t width = view_widget->right - view_widget->left - 1; - int32_t height = view_widget->bottom - view_widget->top - 1; + int32_t width = view_widget->width() - 1; + int32_t height = view_widget->height() - 1; viewport_create( w, screenPos, width, height, focus.coordinate.zoom, { focus.coordinate.x, focus.coordinate.y & VIEWPORT_FOCUS_Y_MASK, focus.coordinate.z }, @@ -2138,8 +2138,8 @@ static void window_ride_show_view_dropdown(rct_window* w, rct_widget* widget) } window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, 0, numItems, widget->right - dropdownWidget->left); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, 0, numItems, widget->right - dropdownWidget->left); // First item gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL; @@ -2253,8 +2253,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, - info.NumItems); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, info.NumItems); dropdown_set_checked(info.CheckedIndex, true); gDropdownDefaultIndex = info.DefaultIndex; } @@ -2324,8 +2323,8 @@ 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 }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], DROPDOWN_FLAG_STAY_OPEN, RIDE_TYPE_COUNT); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], DROPDOWN_FLAG_STAY_OPEN, RIDE_TYPE_COUNT); // Find the current ride type in the ordered list. uint8_t pos = 0; @@ -2433,9 +2432,8 @@ static void window_ride_show_vehicle_type_dropdown(rct_window* w, rct_widget* wi rct_widget* dropdownWidget = widget - 1; window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, - widget->right - dropdownWidget->left); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, widget->right - dropdownWidget->left); // Find the current vehicle type in the ordered list. uint8_t pos = 0; @@ -2952,7 +2950,7 @@ static void window_ride_main_paint(rct_window* w, rct_drawpixelinfo* dpi) rct_string_id ride_status = window_ride_get_status(w, gCommonFormatArgs); gfx_draw_string_centred_clipped( dpi, ride_status, gCommonFormatArgs, COLOUR_BLACK, - w->windowPos + ScreenCoordsXY{ (widget->left + widget->right) / 2, widget->top }, widget->right - widget->left); + w->windowPos + ScreenCoordsXY{ (widget->left + widget->right) / 2, widget->top }, widget->width()); } #pragma endregion @@ -3255,8 +3253,8 @@ static void window_ride_vehicle_scrollpaint(rct_window* w, rct_drawpixelinfo* dp gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width, dpi->y + dpi->height, PALETTE_INDEX_12); rct_widget* widget = &window_ride_vehicle_widgets[WIDX_VEHICLE_TRAINS_PREVIEW]; - int32_t startX = std::max(2, ((widget->right - widget->left) - ((ride->num_vehicles - 1) * 36)) / 2 - 25); - int32_t startY = widget->bottom - widget->top - 4; + int32_t startX = std::max(2, (widget->width() - ((ride->num_vehicles - 1) * 36)) / 2 - 25); + int32_t startY = widget->height() - 4; rct_ride_entry_vehicle* rideVehicleEntry = &rideEntry->vehicles[ride_entry_get_vehicle_at_position( ride->subtype, ride->num_cars_per_train, 0)]; @@ -3414,9 +3412,8 @@ static void window_ride_mode_dropdown(rct_window* w, rct_widget* widget) } window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numAvailableModes, - widget->right - dropdownWidget->left); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numAvailableModes, widget->right - dropdownWidget->left); if (checkedIndex != -1) { @@ -3441,9 +3438,8 @@ static void window_ride_load_dropdown(rct_window* w, rct_widget* widget) gDropdownItemsArgs[i] = VehicleLoadNames[i]; } window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 5, - widget->right - dropdownWidget->left); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 5, widget->right - dropdownWidget->left); dropdown_set_checked(ride->depart_flags & RIDE_DEPART_WAIT_FOR_LOAD_MASK, true); } @@ -4052,9 +4048,8 @@ static void window_ride_maintenance_mousedown(rct_window* w, rct_widgetindex wid gDropdownItemsArgs[i] = RideInspectionIntervalNames[i]; } window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 7, - widget->right - dropdownWidget->left); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 7, widget->right - dropdownWidget->left); dropdown_set_checked(ride->inspection_interval, true); break; @@ -4093,7 +4088,7 @@ static void window_ride_maintenance_mousedown(rct_window* w, rct_widgetindex wid { window_dropdown_show_text( { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], DROPDOWN_FLAG_STAY_OPEN, num_items); + dropdownWidget->height() + 1, w->colours[1], DROPDOWN_FLAG_STAY_OPEN, num_items); num_items = 1; int32_t breakdownReason = ride->breakdown_reason_pending; @@ -4566,9 +4561,8 @@ static void window_ride_colour_mousedown(rct_window* w, rct_widgetindex widgetIn } window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 4, - widget->right - dropdownWidget->left); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 4, widget->right - dropdownWidget->left); dropdown_set_checked(colourSchemeIndex, true); break; @@ -4589,9 +4583,8 @@ static void window_ride_colour_mousedown(rct_window* w, rct_widgetindex widgetIn } window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 4, - widget->right - dropdownWidget->left); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 4, widget->right - dropdownWidget->left); dropdown_set_checked(ride->track_colour[colourSchemeIndex].supports, true); break; @@ -4615,9 +4608,8 @@ static void window_ride_colour_mousedown(rct_window* w, rct_widgetindex widgetIn } window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, ddIndex, - widget->right - dropdownWidget->left); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, ddIndex, widget->right - dropdownWidget->left); break; } case WIDX_VEHICLE_COLOUR_SCHEME_DROPDOWN: @@ -4630,9 +4622,9 @@ static void window_ride_colour_mousedown(rct_window* w, rct_widgetindex widgetIn } window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, - rideEntry->max_cars_in_train > 1 ? 3 : 2, widget->right - dropdownWidget->left); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, rideEntry->max_cars_in_train > 1 ? 3 : 2, + widget->right - dropdownWidget->left); dropdown_set_checked(ride->colour_scheme_type & 3, true); break; @@ -4652,9 +4644,8 @@ static void window_ride_colour_mousedown(rct_window* w, rct_widgetindex widgetIn } window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, - widget->right - dropdownWidget->left); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, widget->right - dropdownWidget->left); dropdown_set_checked(w->vehicleIndex, true); break; @@ -5114,8 +5105,8 @@ static void window_ride_colour_paint(rct_window* w, rct_drawpixelinfo* dpi) if (widget->type != WWT_EMPTY) { if (clip_drawpixelinfo( - &clippedDpi, dpi, w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1, - widget->right - widget->left, widget->bottom - widget->top)) + &clippedDpi, dpi, w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1, widget->width(), + widget->height())) { gfx_clear(&clippedDpi, PALETTE_INDEX_12); @@ -5169,8 +5160,7 @@ static void window_ride_colour_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width - 1, dpi->y + dpi->height - 1, PALETTE_INDEX_12); // ? - auto screenCoords = ScreenCoordsXY{ (vehiclePreviewWidget->right - vehiclePreviewWidget->left) / 2, - vehiclePreviewWidget->bottom - vehiclePreviewWidget->top - 15 }; + auto screenCoords = ScreenCoordsXY{ vehiclePreviewWidget->width() / 2, vehiclePreviewWidget->height() - 15 }; // ? auto trainCarIndex = (ride->colour_scheme_type & 3) == RIDE_COLOUR_SCHEME_DIFFERENT_PER_CAR ? w->vehicleIndex @@ -5296,9 +5286,8 @@ static void window_ride_music_mousedown(rct_window* w, rct_widgetindex widgetInd } window_dropdown_show_text_custom_width( - { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, - dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, - widget->right - dropdownWidget->left); + { w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top }, dropdownWidget->height() + 1, + w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, widget->right - dropdownWidget->left); for (auto i = 0; i < numItems; i++) { @@ -5597,7 +5586,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->height() + 1, w->colours[1], DROPDOWN_FLAG_STAY_OPEN, 2); gDropdownDefaultIndex = 0; if (gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER) @@ -5772,7 +5761,7 @@ static void window_ride_measurements_paint(rct_window* w, rct_drawpixelinfo* dpi { rct_widget* widget = &window_ride_measurements_widgets[WIDX_PAGE_BACKGROUND]; - ScreenCoordsXY widgetCoords(w->windowPos.x + (widget->right - widget->left) / 2, w->windowPos.y + widget->top + 40); + ScreenCoordsXY widgetCoords(w->windowPos.x + widget->width() / 2, w->windowPos.y + widget->top + 40); gfx_draw_string_centred_wrapped( dpi, nullptr, widgetCoords, w->width - 8, STR_CLICK_ITEMS_OF_SCENERY_TO_SELECT, COLOUR_BLACK); @@ -6100,11 +6089,11 @@ static void window_ride_graphs_update(rct_window* w) { RideMeasurement* measurement{}; std::tie(measurement, std::ignore) = ride_get_measurement(ride); - x = measurement == nullptr ? 0 : measurement->current_item - (((widget->right - widget->left) / 4) * 3); + x = measurement == nullptr ? 0 : measurement->current_item - ((widget->width() / 4) * 3); } } - w->scrolls[0].h_left = std::clamp(x, 0, w->scrolls[0].h_right - ((widget->right - widget->left) - 2)); + w->scrolls[0].h_left = std::clamp(x, 0, w->scrolls[0].h_right - (widget->width() - 2)); widget_scroll_update_thumbs(w, WIDX_GRAPH); } @@ -6117,7 +6106,7 @@ static void window_ride_graphs_scrollgetheight(rct_window* w, int32_t scrollInde window_event_invalidate_call(w); // Set minimum size - *width = window_ride_graphs_widgets[WIDX_GRAPH].right - window_ride_graphs_widgets[WIDX_GRAPH].left - 2; + *width = window_ride_graphs_widgets[WIDX_GRAPH].width() - 2; // Get measurement size auto ride = get_ride(w->number); @@ -6263,8 +6252,8 @@ static void window_ride_graphs_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi if (measurement == nullptr) { // No measurement message - ScreenCoordsXY stringCoords((widget->right - widget->left) / 2, (widget->bottom - widget->top) / 2 - 5); - int32_t width = widget->right - widget->left - 2; + ScreenCoordsXY stringCoords(widget->width() / 2, widget->height() / 2 - 5); + int32_t width = widget->width() - 2; gfx_draw_string_centred_wrapped(dpi, gCommonFormatArgs, stringCoords, width, stringId, COLOUR_BLACK); return; } @@ -6300,7 +6289,7 @@ static void window_ride_graphs_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi yUnit -= gMapBaseZ * 3; } - for (int32_t y = widget->bottom - widget->top - 13; y >= 8; y -= yInterval, yUnit += yUnitInterval) + for (int32_t y = widget->height() - 13; y >= 8; y -= yInterval, yUnit += yUnitInterval) { // Minor / major line int32_t colour = yUnit == 0 ? lightColour : darkColour; @@ -6363,8 +6352,8 @@ static void window_ride_graphs_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi } // Adjust line to match graph widget position. - top = widget->bottom - widget->top - top - 13; - bottom = widget->bottom - widget->top - bottom - 13; + top = widget->height() - top - 13; + bottom = widget->height() - bottom - 13; if (top > bottom) { std::swap(top, bottom); @@ -6373,8 +6362,8 @@ static void window_ride_graphs_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi // Adjust threshold line position as well if (listType == GRAPH_VERTICAL || listType == GRAPH_LATERAL) { - intensityThresholdPositive = widget->bottom - widget->top - intensityThresholdPositive - 13; - intensityThresholdNegative = widget->bottom - widget->top - intensityThresholdNegative - 13; + intensityThresholdPositive = widget->height() - intensityThresholdPositive - 13; + intensityThresholdNegative = widget->height() - intensityThresholdNegative - 13; } const bool previousMeasurement = x > measurement->current_item; diff --git a/src/openrct2-ui/windows/RideConstruction.cpp b/src/openrct2-ui/windows/RideConstruction.cpp index 81968e8a9f..2a7b28461d 100644 --- a/src/openrct2-ui/windows/RideConstruction.cpp +++ b/src/openrct2-ui/windows/RideConstruction.cpp @@ -2332,8 +2332,8 @@ static void window_ride_construction_paint(rct_window* w, rct_drawpixelinfo* dpi // Draw track piece auto screenCoords = ScreenCoordsXY{ w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1 }; - width = widget->right - widget->left - 1; - height = widget->bottom - widget->top - 1; + width = widget->width() - 1; + height = widget->height() - 1; if (clip_drawpixelinfo(&clipdpi, dpi, screenCoords.x, screenCoords.y, width, height)) { window_ride_construction_draw_track_piece( @@ -3379,8 +3379,8 @@ static void window_ride_construction_show_special_track_dropdown(rct_window* w, } window_dropdown_show_text_custom_width( - { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, w->colours[1], 0, 0, - _numCurrentPossibleRideConfigurations, widget->right - widget->left); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, 0, + _numCurrentPossibleRideConfigurations, widget->width()); for (int32_t i = 0; i < 32; i++) { diff --git a/src/openrct2-ui/windows/RideList.cpp b/src/openrct2-ui/windows/RideList.cpp index 4d7816caeb..ca9666f525 100644 --- a/src/openrct2-ui/windows/RideList.cpp +++ b/src/openrct2-ui/windows/RideList.cpp @@ -322,7 +322,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->height(), w->colours[1], 0, 2); } else if (widgetIndex == WIDX_INFORMATION_TYPE_DROPDOWN) { @@ -357,8 +357,8 @@ static void window_ride_list_mousedown(rct_window* w, rct_widgetindex widgetInde } window_dropdown_show_text_custom_width( - { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top, w->colours[1], 0, - DROPDOWN_FLAG_STAY_OPEN, numItems, widget->right - widget->left - 3); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height(), w->colours[1], 0, + DROPDOWN_FLAG_STAY_OPEN, numItems, widget->width() - 3); if (selectedIndex != -1) { dropdown_set_checked(selectedIndex, true); diff --git a/src/openrct2-ui/windows/ServerList.cpp b/src/openrct2-ui/windows/ServerList.cpp index eacf1f8311..356cb88633 100644 --- a/src/openrct2-ui/windows/ServerList.cpp +++ b/src/openrct2-ui/windows/ServerList.cpp @@ -302,7 +302,7 @@ static void window_server_list_scroll_mouseover(rct_window* w, int32_t scrollInd int32_t hoverButtonIndex = -1; if (index != -1) { - int32_t width = w->widgets[WIDX_LIST].right - w->widgets[WIDX_LIST].left; + int32_t width = w->widgets[WIDX_LIST].width(); int32_t sy = index * ITEM_HEIGHT; for (int32_t i = 0; i < 2; i++) { @@ -317,7 +317,7 @@ static void window_server_list_scroll_mouseover(rct_window* w, int32_t scrollInd } } - int32_t width = w->widgets[WIDX_LIST].right - w->widgets[WIDX_LIST].left; + int32_t width = w->widgets[WIDX_LIST].width(); int32_t right = width - 3 - 14 - 10; if (screenCoords.x < right) { @@ -429,7 +429,7 @@ static void window_server_list_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi uint8_t paletteIndex = ColourMapA[w->colours[1]].mid_light; gfx_clear(dpi, paletteIndex); - int32_t width = w->widgets[WIDX_LIST].right - w->widgets[WIDX_LIST].left; + int32_t width = w->widgets[WIDX_LIST].width(); ScreenCoordsXY screenCoords; screenCoords.y = 0; diff --git a/src/openrct2-ui/windows/Sign.cpp b/src/openrct2-ui/windows/Sign.cpp index 71f997276d..d7e540f62c 100644 --- a/src/openrct2-ui/windows/Sign.cpp +++ b/src/openrct2-ui/windows/Sign.cpp @@ -193,9 +193,8 @@ rct_window* window_sign_open(rct_windownumber number) // Create viewport viewportWidget = &window_sign_widgets[WIDX_VIEWPORT]; viewport_create( - w, w->windowPos + ScreenCoordsXY{ viewportWidget->left + 1, viewportWidget->top + 1 }, - (viewportWidget->right - viewportWidget->left) - 1, (viewportWidget->bottom - viewportWidget->top) - 1, 0, - { signViewPos, view_z }, 0, SPRITE_INDEX_NULL); + w, w->windowPos + ScreenCoordsXY{ viewportWidget->left + 1, viewportWidget->top + 1 }, viewportWidget->width() - 1, + viewportWidget->height() - 1, 0, { signViewPos, view_z }, 0, SPRITE_INDEX_NULL); w->viewport->flags = gConfigGeneral.always_show_gridlines ? VIEWPORT_FLAG_GRIDLINES : 0; w->Invalidate(); @@ -375,9 +374,8 @@ static void window_sign_viewport_rotate(rct_window* w) // Create viewport rct_widget* viewportWidget = &window_sign_widgets[WIDX_VIEWPORT]; viewport_create( - w, w->windowPos + ScreenCoordsXY{ viewportWidget->left + 1, viewportWidget->top + 1 }, - (viewportWidget->right - viewportWidget->left) - 1, (viewportWidget->bottom - viewportWidget->top) - 1, 0, signViewPos, - 0, SPRITE_INDEX_NULL); + w, w->windowPos + ScreenCoordsXY{ viewportWidget->left + 1, viewportWidget->top + 1 }, viewportWidget->width() - 1, + viewportWidget->height() - 1, 0, signViewPos, 0, SPRITE_INDEX_NULL); if (w->viewport != nullptr) w->viewport->flags = gConfigGeneral.always_show_gridlines ? VIEWPORT_FLAG_GRIDLINES : 0; w->Invalidate(); @@ -439,9 +437,8 @@ rct_window* window_sign_small_open(rct_windownumber number) // Create viewport viewportWidget = &window_sign_widgets[WIDX_VIEWPORT]; viewport_create( - w, w->windowPos + ScreenCoordsXY{ viewportWidget->left + 1, viewportWidget->top + 1 }, - (viewportWidget->right - viewportWidget->left) - 1, (viewportWidget->bottom - viewportWidget->top) - 1, 0, - { signViewPos, view_z }, 0, SPRITE_INDEX_NULL); + w, w->windowPos + ScreenCoordsXY{ viewportWidget->left + 1, viewportWidget->top + 1 }, viewportWidget->width() - 1, + viewportWidget->height() - 1, 0, { signViewPos, view_z }, 0, SPRITE_INDEX_NULL); w->viewport->flags = gConfigGeneral.always_show_gridlines ? VIEWPORT_FLAG_GRIDLINES : 0; w->flags |= WF_NO_SCROLLING; diff --git a/src/openrct2-ui/windows/Staff.cpp b/src/openrct2-ui/windows/Staff.cpp index 722bec7c95..5fccbfa054 100644 --- a/src/openrct2-ui/windows/Staff.cpp +++ b/src/openrct2-ui/windows/Staff.cpp @@ -565,7 +565,7 @@ void window_staff_overview_mousedown(rct_window* w, rct_widgetindex widgetIndex, gDropdownItemsFormat[1] = STR_CLEAR_PATROL_AREA; auto dropdownPos = ScreenCoordsXY{ widget->left + w->windowPos.x, widget->top + w->windowPos.y }; - int32_t extray = widget->bottom - widget->top + 1; + int32_t extray = widget->height() + 1; window_dropdown_show_text(dropdownPos, extray, w->colours[1], 0, 2); gDropdownDefaultIndex = 0; @@ -953,7 +953,7 @@ void window_staff_overview_paint(rct_window* w, rct_drawpixelinfo* dpi) peep->FormatActionTo(ft); rct_widget* widget = &w->widgets[WIDX_BTM_LABEL]; auto screenPos = w->windowPos + ScreenCoordsXY{ (widget->left + widget->right) / 2, widget->top }; - int32_t width = widget->right - widget->left; + int32_t width = widget->width(); gfx_draw_string_centred_clipped(dpi, STR_BLACK_STRING, gCommonFormatArgs, COLOUR_BLACK, screenPos, width); } @@ -1010,8 +1010,8 @@ void window_staff_overview_tab_paint(rct_window* w, rct_drawpixelinfo* dpi) return; rct_widget* widget = &w->widgets[WIDX_TAB_1]; - int32_t width = widget->right - widget->left - 1; - int32_t height = widget->bottom - widget->top - 1; + int32_t width = widget->width() - 1; + int32_t height = widget->height() - 1; auto screenCoords = w->windowPos + ScreenCoordsXY{ widget->left + 1, widget->top + 1 }; if (w->page == WINDOW_STAFF_OVERVIEW) height++; @@ -1381,8 +1381,8 @@ void window_staff_viewport_init(rct_window* w) rct_widget* view_widget = &w->widgets[WIDX_VIEWPORT]; auto screenPos = ScreenCoordsXY{ view_widget->left + 1 + w->windowPos.x, view_widget->top + 1 + w->windowPos.y }; - int32_t width = view_widget->right - view_widget->left - 1; - int32_t height = view_widget->bottom - view_widget->top - 1; + int32_t width = view_widget->width() - 1; + int32_t height = view_widget->height() - 1; viewport_create( w, screenPos, width, height, 0, { 0, 0, 0 }, focus.type & VIEWPORT_FOCUS_TYPE_MASK, focus.sprite_id); @@ -1428,8 +1428,8 @@ void window_staff_options_mousedown(rct_window* w, rct_widgetindex widgetIndex, widget--; auto dropdownPos = ScreenCoordsXY{ widget->left + w->windowPos.x, widget->top + w->windowPos.y }; - int32_t extray = widget->bottom - widget->top + 1; - int32_t width = widget->right - widget->left - 3; + int32_t extray = widget->height() + 1; + int32_t width = widget->width() - 3; window_dropdown_show_text_custom_width(dropdownPos, extray, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numCostumes, width); // See above note. diff --git a/src/openrct2-ui/windows/StaffList.cpp b/src/openrct2-ui/windows/StaffList.cpp index 4e53d2cf77..56b8925b3a 100644 --- a/src/openrct2-ui/windows/StaffList.cpp +++ b/src/openrct2-ui/windows/StaffList.cpp @@ -458,7 +458,7 @@ void window_staff_list_scrollgetsize(rct_window* w, int32_t scrollIndex, int32_t w->Invalidate(); } - *width = w->widgets[WIDX_STAFF_LIST_LIST].right - w->widgets[WIDX_STAFF_LIST_LIST].left - 15; + *width = w->widgets[WIDX_STAFF_LIST_LIST].width() - 15; } /** @@ -675,7 +675,7 @@ void window_staff_list_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_ gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width - 1, dpi->y + dpi->height - 1, ColourMapA[w->colours[1]].mid_light); // How much space do we have for the name and action columns? (Discount scroll area and icons.) - const int32_t nonIconSpace = w->widgets[WIDX_STAFF_LIST_LIST].right - w->widgets[WIDX_STAFF_LIST_LIST].left - 15 - 68; + const int32_t nonIconSpace = w->widgets[WIDX_STAFF_LIST_LIST].width() - 15 - 68; const int32_t nameColumnSize = nonIconSpace * 0.42; const int32_t actionColumnSize = nonIconSpace * 0.58; const int32_t actionOffset = w->widgets[WIDX_STAFF_LIST_LIST].right - actionColumnSize - 15; diff --git a/src/openrct2-ui/windows/Themes.cpp b/src/openrct2-ui/windows/Themes.cpp index 813d611f8b..e4d194edde 100644 --- a/src/openrct2-ui/windows/Themes.cpp +++ b/src/openrct2-ui/windows/Themes.cpp @@ -525,8 +525,8 @@ static void window_themes_mousedown(rct_window* w, rct_widgetindex widgetIndex, } window_dropdown_show_text_custom_width( - { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, - w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, num_items, widget->right - widget->left - 3); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, + DROPDOWN_FLAG_STAY_OPEN, num_items, widget->width() - 3); dropdown_set_checked(static_cast(theme_manager_get_active_available_theme_index()), true); break; diff --git a/src/openrct2-ui/windows/TileInspector.cpp b/src/openrct2-ui/windows/TileInspector.cpp index d946d8b204..ff68ea0304 100644 --- a/src/openrct2-ui/windows/TileInspector.cpp +++ b/src/openrct2-ui/windows/TileInspector.cpp @@ -1141,8 +1141,8 @@ static void window_tile_inspector_mousedown(rct_window* w, rct_widgetindex widge gDropdownItemsArgs[1] = STR_TILE_INSPECTOR_WALL_SLOPED_LEFT; gDropdownItemsArgs[2] = STR_TILE_INSPECTOR_WALL_SLOPED_RIGHT; window_dropdown_show_text_custom_width( - { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, - w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, 3, widget->right - widget->left - 3); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, + DROPDOWN_FLAG_STAY_OPEN, 3, widget->width() - 3); // Set current value as checked TileElement* const tileElement = window_tile_inspector_get_selected_element(w); @@ -1755,31 +1755,31 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi) { gfx_draw_string_left_clipped( dpi, STR_TILE_INSPECTOR_ELEMENT_TYPE, gCommonFormatArgs, w->colours[1], - { w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1 }, widget->right - widget->left); + { w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1 }, widget->width()); } if ((widget = &w->widgets[WIDX_COLUMN_BASEHEIGHT])->type != WWT_EMPTY) { gfx_draw_string_left_clipped( dpi, STR_TILE_INSPECTOR_BASE_HEIGHT_SHORT, gCommonFormatArgs, w->colours[1], - { w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1 }, widget->right - widget->left); + { w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1 }, widget->width()); } if ((widget = &w->widgets[WIDX_COLUMN_CLEARANCEHEIGHT])->type != WWT_EMPTY) { gfx_draw_string_left_clipped( dpi, STR_TILE_INSPECTOR_CLEARANGE_HEIGHT_SHORT, gCommonFormatArgs, w->colours[1], - { w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1 }, widget->right - widget->left); + { w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1 }, widget->width()); } if ((widget = &w->widgets[WIDX_COLUMN_GHOSTFLAG])->type != WWT_EMPTY) { gfx_draw_string_left_clipped( dpi, STR_TILE_INSPECTOR_FLAG_GHOST_SHORT, gCommonFormatArgs, w->colours[1], - { w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1 }, widget->right - widget->left); + { w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1 }, widget->width()); } if ((widget = &w->widgets[WIDX_COLUMN_LASTFLAG])->type != WWT_EMPTY) { gfx_draw_string_left_clipped( dpi, STR_TILE_INSPECTOR_FLAG_LAST_SHORT, gCommonFormatArgs, w->colours[1], - { w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1 }, widget->right - widget->left); + { w->windowPos.x + widget->left + 1, w->windowPos.y + widget->top + 1 }, widget->width()); } ScreenCoordsXY screenCoords(w->windowPos.x, w->windowPos.y); @@ -2253,7 +2253,7 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi) static void window_tile_inspector_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex) { - const int32_t listWidth = w->widgets[WIDX_LIST].right - w->widgets[WIDX_LIST].left; + const int32_t listWidth = w->widgets[WIDX_LIST].width(); gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width - 1, dpi->y + dpi->height - 1, ColourMapA[w->colours[1]].mid_light); ScreenCoordsXY screenCoords{}; diff --git a/src/openrct2-ui/windows/TitleCommandEditor.cpp b/src/openrct2-ui/windows/TitleCommandEditor.cpp index 0894218e33..2e1bb95cd0 100644 --- a/src/openrct2-ui/windows/TitleCommandEditor.cpp +++ b/src/openrct2-ui/windows/TitleCommandEditor.cpp @@ -250,8 +250,7 @@ void window_title_command_editor_open(TitleSequence* sequence, int32_t index, bo rct_widget* const viewportWidget = &window_title_command_editor_widgets[WIDX_VIEWPORT]; viewport_create( window, window->windowPos + ScreenCoordsXY{ viewportWidget->left + 1, viewportWidget->top + 1 }, - viewportWidget->right - viewportWidget->left - 1, viewportWidget->bottom - viewportWidget->top - 1, 0, { 0, 0, 0 }, 0, - SPRITE_INDEX_NULL); + viewportWidget->width() - 1, viewportWidget->height() - 1, 0, { 0, 0, 0 }, 0, SPRITE_INDEX_NULL); _window_title_command_editor_index = index; _window_title_command_editor_insert = insert; @@ -394,8 +393,8 @@ static void window_title_command_editor_mousedown(rct_window* w, rct_widgetindex } window_dropdown_show_text_custom_width( - { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, - w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, widget->right - widget->left - 3); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, + DROPDOWN_FLAG_STAY_OPEN, numItems, widget->width() - 3); dropdown_set_checked(get_command_info_index(command.Type), true); break; @@ -411,8 +410,8 @@ static void window_title_command_editor_mousedown(rct_window* w, rct_widgetindex } window_dropdown_show_text_custom_width( - { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, - w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, widget->right - widget->left - 3); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, + DROPDOWN_FLAG_STAY_OPEN, numItems, widget->width() - 3); dropdown_set_checked(command.Speed - 1, true); } @@ -426,8 +425,8 @@ static void window_title_command_editor_mousedown(rct_window* w, rct_widgetindex } window_dropdown_show_text_custom_width( - { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, - w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, widget->right - widget->left - 3); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, + DROPDOWN_FLAG_STAY_OPEN, numItems, widget->width() - 3); dropdown_set_checked(command.SaveIndex, true); } @@ -789,7 +788,7 @@ static void window_title_command_editor_paint(rct_window* w, rct_drawpixelinfo* gfx_draw_string_left_clipped( dpi, spriteString, gCommonFormatArgs, colour, { w->windowPos.x + w->widgets[WIDX_VIEWPORT].left + 2, w->windowPos.y + w->widgets[WIDX_VIEWPORT].top + 1 }, - w->widgets[WIDX_VIEWPORT].right - w->widgets[WIDX_VIEWPORT].left - 2); + w->widgets[WIDX_VIEWPORT].width() - 2); } else if (command.Type == TITLE_SCRIPT_LOAD) { diff --git a/src/openrct2-ui/windows/TitleEditor.cpp b/src/openrct2-ui/windows/TitleEditor.cpp index 9a0c38c6af..80034060fe 100644 --- a/src/openrct2-ui/windows/TitleEditor.cpp +++ b/src/openrct2-ui/windows/TitleEditor.cpp @@ -562,8 +562,8 @@ static void window_title_editor_mousedown(rct_window* w, rct_widgetindex widgetI widget--; window_dropdown_show_text_custom_width( - { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, - w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numItems, widget->right - widget->left - 3); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[1], 0, + DROPDOWN_FLAG_STAY_OPEN, numItems, widget->width() - 3); dropdown_set_checked(static_cast(_selectedTitleSequence), true); } break; diff --git a/src/openrct2-ui/windows/TitleMenu.cpp b/src/openrct2-ui/windows/TitleMenu.cpp index ed8e27cd2d..259fb3b7f5 100644 --- a/src/openrct2-ui/windows/TitleMenu.cpp +++ b/src/openrct2-ui/windows/TitleMenu.cpp @@ -185,8 +185,8 @@ 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, - TRANSLUCENT(w->colours[0]), DROPDOWN_FLAG_STAY_OPEN, 5); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, TRANSLUCENT(w->colours[0]), + DROPDOWN_FLAG_STAY_OPEN, 5); } } diff --git a/src/openrct2-ui/windows/TitleScenarioSelect.cpp b/src/openrct2-ui/windows/TitleScenarioSelect.cpp index bee675996b..508110c979 100644 --- a/src/openrct2-ui/windows/TitleScenarioSelect.cpp +++ b/src/openrct2-ui/windows/TitleScenarioSelect.cpp @@ -558,7 +558,7 @@ static void window_scenarioselect_scrollpaint(rct_window* w, rct_drawpixelinfo* bool wide = gConfigGeneral.scenario_select_mode == SCENARIO_SELECT_MODE_ORIGIN || _titleEditor; rct_widget* listWidget = &w->widgets[WIDX_SCENARIOLIST]; - int32_t listWidth = listWidget->right - listWidget->left - 12; + int32_t listWidth = listWidget->width() - 12; const int32_t scenarioItemHeight = get_scenario_list_item_size(); diff --git a/src/openrct2-ui/windows/TopToolbar.cpp b/src/openrct2-ui/windows/TopToolbar.cpp index d289e48f81..ef6acc8ecc 100644 --- a/src/openrct2-ui/windows/TopToolbar.cpp +++ b/src/openrct2-ui/windows/TopToolbar.cpp @@ -491,8 +491,8 @@ static void window_top_toolbar_mousedown(rct_window* w, rct_widgetindex widgetIn numItems = 12; } window_dropdown_show_text( - { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->bottom - widget->top + 1, - w->colours[0] | 0x80, DROPDOWN_FLAG_STAY_OPEN, numItems); + { w->windowPos.x + widget->left, w->windowPos.y + widget->top }, widget->height() + 1, w->colours[0] | 0x80, + DROPDOWN_FLAG_STAY_OPEN, numItems); break; case WIDX_CHEATS: top_toolbar_init_cheats_menu(w, widget); @@ -761,7 +761,7 @@ static void window_top_toolbar_invalidate(rct_window* w) if (firstAlignment && widgetIndex == WIDX_SEPARATOR) continue; - widgetWidth = widget->right - widget->left; + widgetWidth = widget->width(); widget->left = x; x += widgetWidth; widget->right = x; @@ -783,7 +783,7 @@ static void window_top_toolbar_invalidate(rct_window* w) if (firstAlignment && widgetIndex == WIDX_SEPARATOR) continue; - widgetWidth = widget->right - widget->left; + widgetWidth = widget->width(); x -= 1; widget->right = x; x -= widgetWidth; @@ -3331,8 +3331,7 @@ 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->height() + 1, w->colours[1] | 0x80, 0, i); gDropdownDefaultIndex = DDIDX_SHOW_MAP; } @@ -3393,8 +3392,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->height() + 1, w->colours[0] | 0x80, 0, + num_items); // Set checkmarks if (gGameSpeed <= 4) @@ -3441,8 +3440,7 @@ 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->height() + 1, w->colours[1] | 0x80, 0, 2); gDropdownDefaultIndex = DDIDX_ROTATE_CLOCKWISE; } @@ -3494,8 +3492,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->height() + 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) @@ -3572,7 +3570,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->height() + 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); @@ -3585,8 +3583,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->height() + 1, w->colours[0] | 0x80, 0, + TOP_TOOLBAR_NETWORK_COUNT); dropdown_set_disabled(DDIDX_MULTIPLAYER_RECONNECT, !network_is_desynchronised()); @@ -3678,8 +3676,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->height() + 1, w->colours[1] | 0x80, 0, + TOP_TOOLBAR_VIEW_MENU_COUNT); // Set checkmarks rct_viewport* mainViewport = window_get_main()->viewport; diff --git a/src/openrct2-ui/windows/ViewClipping.cpp b/src/openrct2-ui/windows/ViewClipping.cpp index 188ff649fc..66b398a7ba 100644 --- a/src/openrct2-ui/windows/ViewClipping.cpp +++ b/src/openrct2-ui/windows/ViewClipping.cpp @@ -128,8 +128,7 @@ static void window_view_clipping_set_clipheight(rct_window* w, const uint8_t cli gClipHeight = clipheight; rct_widget* widget = &window_view_clipping_widgets[WIDX_CLIP_HEIGHT_SLIDER]; const float clip_height_ratio = static_cast(gClipHeight) / 255; - w->scrolls[0].h_left = static_cast( - std::ceil(clip_height_ratio * (w->scrolls[0].h_right - ((widget->right - widget->left) - 1)))); + w->scrolls[0].h_left = static_cast(std::ceil(clip_height_ratio * (w->scrolls[0].h_right - (widget->width() - 1)))); } rct_window* window_view_clipping_open() @@ -285,7 +284,7 @@ static void window_view_clipping_update(rct_window* w) { const rct_widget* const widget = &window_view_clipping_widgets[WIDX_CLIP_HEIGHT_SLIDER]; const rct_scroll* const scroll = &w->scrolls[0]; - const int16_t scroll_width = widget->right - widget->left - 1; + const int16_t scroll_width = widget->width() - 1; const uint8_t clip_height = static_cast( (static_cast(scroll->h_left) / (scroll->h_right - scroll_width)) * 255); if (clip_height != gClipHeight) diff --git a/src/openrct2-ui/windows/Viewport.cpp b/src/openrct2-ui/windows/Viewport.cpp index 9f3efca967..6f759379f7 100644 --- a/src/openrct2-ui/windows/Viewport.cpp +++ b/src/openrct2-ui/windows/Viewport.cpp @@ -210,8 +210,8 @@ static void window_viewport_invalidate(rct_window* w) w->disabled_widgets |= 1 << WIDX_ZOOM_OUT; viewport->pos = w->windowPos + ScreenCoordsXY{ viewportWidget->left, viewportWidget->top }; - viewport->width = viewportWidget->right - viewportWidget->left; - viewport->height = viewportWidget->bottom - viewportWidget->top; + viewport->width = viewportWidget->width(); + viewport->height = viewportWidget->height(); viewport->view_width = viewport->width * viewport->zoom; viewport->view_height = viewport->height * viewport->zoom; } diff --git a/src/openrct2/interface/Window.cpp b/src/openrct2/interface/Window.cpp index 9381113bd2..d2269c1915 100644 --- a/src/openrct2/interface/Window.cpp +++ b/src/openrct2/interface/Window.cpp @@ -1692,7 +1692,7 @@ void window_resize_gui_scenario_editor(int32_t width, int32_t height) void window_align_tabs(rct_window* w, rct_widgetindex start_tab_id, rct_widgetindex end_tab_id) { int32_t i, x = w->widgets[start_tab_id].left; - int32_t tab_width = w->widgets[start_tab_id].right - w->widgets[start_tab_id].left; + int32_t tab_width = w->widgets[start_tab_id].width(); for (i = start_tab_id; i <= end_tab_id; i++) { @@ -2137,7 +2137,7 @@ void widget_scroll_update_thumbs(rct_window* w, rct_widgetindex widget_index) if (scroll->flags & HSCROLLBAR_VISIBLE) { - int32_t view_size = widget->right - widget->left - 21; + int32_t view_size = widget->width() - 21; if (scroll->flags & VSCROLLBAR_VISIBLE) view_size -= 11; int32_t x = scroll->h_left * view_size; @@ -2145,7 +2145,7 @@ void widget_scroll_update_thumbs(rct_window* w, rct_widgetindex widget_index) x /= scroll->h_right; scroll->h_thumb_left = x + 11; - x = widget->right - widget->left - 2; + x = widget->width() - 2; if (scroll->flags & VSCROLLBAR_VISIBLE) x -= 11; x += scroll->h_left; @@ -2166,7 +2166,7 @@ void widget_scroll_update_thumbs(rct_window* w, rct_widgetindex widget_index) if (scroll->flags & VSCROLLBAR_VISIBLE) { - int32_t view_size = widget->bottom - widget->top - 21; + int32_t view_size = widget->height() - 21; if (scroll->flags & HSCROLLBAR_VISIBLE) view_size -= 11; int32_t y = scroll->v_top * view_size; @@ -2174,7 +2174,7 @@ void widget_scroll_update_thumbs(rct_window* w, rct_widgetindex widget_index) y /= scroll->v_bottom; scroll->v_thumb_top = y + 11; - y = widget->bottom - widget->top - 2; + y = widget->height() - 2; if (scroll->flags & HSCROLLBAR_VISIBLE) y -= 11; y += scroll->v_top; diff --git a/src/openrct2/interface/Window.h b/src/openrct2/interface/Window.h index c04a88e983..d3a98d9ca8 100644 --- a/src/openrct2/interface/Window.h +++ b/src/openrct2/interface/Window.h @@ -98,6 +98,16 @@ struct rct_widget // New properties WidgetFlags flags{}; utf8* sztooltip{}; + + int16_t width() const + { + return right - left; + } + + int16_t height() const + { + return bottom - top; + } }; /**