From 559ede5d140fd21b8315df9fb5404e244a9cfc19 Mon Sep 17 00:00:00 2001 From: tassaron2 Date: Fri, 18 Oct 2019 22:02:31 -0400 Subject: [PATCH] Add compile option to move close box to the left --- CMakeLists.txt | 4 + src/openrct2-ui/windows/About.cpp | 11 ++- src/openrct2-ui/windows/Banner.cpp | 5 +- src/openrct2-ui/windows/Changelog.cpp | 5 +- src/openrct2-ui/windows/Cheats.cpp | 5 +- src/openrct2-ui/windows/ClearScenery.cpp | 11 +-- src/openrct2-ui/windows/CustomCurrency.cpp | 8 +- .../windows/DemolishRidePrompt.cpp | 5 +- .../windows/EditorInventionsList.cpp | 11 +-- .../windows/EditorObjectSelection.cpp | 14 ++-- .../windows/EditorObjectiveOptions.cpp | 14 ++-- .../windows/EditorScenarioOptions.cpp | 14 ++-- src/openrct2-ui/windows/Finances.cpp | 78 ++++++++++++++----- src/openrct2-ui/windows/Footpath.cpp | 8 +- src/openrct2-ui/windows/Guest.cpp | 14 ++-- src/openrct2-ui/windows/GuestList.cpp | 14 ++-- src/openrct2-ui/windows/InstallTrack.cpp | 5 +- src/openrct2-ui/windows/Land.cpp | 8 +- src/openrct2-ui/windows/LandRights.cpp | 8 +- src/openrct2-ui/windows/LoadSave.cpp | 23 ++++-- src/openrct2-ui/windows/Map.cpp | 14 ++-- src/openrct2-ui/windows/MapGen.cpp | 5 +- src/openrct2-ui/windows/MazeConstruction.cpp | 8 +- src/openrct2-ui/windows/MusicCredits.cpp | 8 +- src/openrct2-ui/windows/NewCampaign.cpp | 7 +- src/openrct2-ui/windows/NewRide.cpp | 11 +-- src/openrct2-ui/windows/News.cpp | 8 +- src/openrct2-ui/windows/NewsOptions.cpp | 8 +- src/openrct2-ui/windows/Options.cpp | 5 +- src/openrct2-ui/windows/Park.cpp | 14 ++-- src/openrct2-ui/windows/Research.cpp | 29 +++++-- src/openrct2-ui/windows/Ride.cpp | 15 ++-- src/openrct2-ui/windows/RideConstruction.cpp | 8 +- src/openrct2-ui/windows/RideList.cpp | 15 ++-- src/openrct2-ui/windows/SavePrompt.cpp | 11 ++- src/openrct2-ui/windows/Scenery.cpp | 45 ++++++----- src/openrct2-ui/windows/ShortcutKeyChange.cpp | 5 +- src/openrct2-ui/windows/ShortcutKeys.cpp | 11 +-- src/openrct2-ui/windows/Sign.cpp | 5 +- src/openrct2-ui/windows/Staff.cpp | 28 ++++--- src/openrct2-ui/windows/StaffFirePrompt.cpp | 5 +- src/openrct2-ui/windows/StaffList.cpp | 11 +-- src/openrct2-ui/windows/TextInput.cpp | 5 +- src/openrct2-ui/windows/TileInspector.cpp | 6 +- .../windows/TitleScenarioSelect.cpp | 15 ++-- src/openrct2-ui/windows/TrackDesignManage.cpp | 10 ++- src/openrct2-ui/windows/TrackDesignPlace.cpp | 7 +- src/openrct2-ui/windows/TrackList.cpp | 8 +- src/openrct2-ui/windows/Viewport.cpp | 13 ++-- src/openrct2-ui/windows/Water.cpp | 8 +- src/openrct2-ui/windows/Window.h | 14 ++++ 51 files changed, 393 insertions(+), 234 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d931cc5869..01222b2b5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,6 +52,7 @@ option(ENABLE_LIGHTFX "Enable lighting effects." ON) option(ENABLE_SCRIPTING "Enable script / plugin support." ON) option(DISABLE_GUI "Don't build GUI. (Headless only.)") +option(LEFT_CLOSEBOX "Place window close button on the left.") if (FORCE32) set(TARGET_M "-m32") @@ -125,6 +126,9 @@ endif () if (ENABLE_SCRIPTING) add_definitions(-DENABLE_SCRIPTING) endif () +if (LEFT_CLOSEBOX) + add_definitions(-DLEFT_CLOSEBOX) +endif () if (NOT DISABLE_DISCORD_RPC) if(EXISTS "${ROOT_DIR}/discord-rpc") diff --git a/src/openrct2-ui/windows/About.cpp b/src/openrct2-ui/windows/About.cpp index b3894bd843..e14ea54686 100644 --- a/src/openrct2-ui/windows/About.cpp +++ b/src/openrct2-ui/windows/About.cpp @@ -18,6 +18,7 @@ constexpr int32_t WW = 400; constexpr int32_t WH = 350; +#define WINDOW_TITLE STR_ABOUT constexpr int32_t TABHEIGHT = 50; // clang-format off @@ -45,21 +46,19 @@ enum WINDOW_ABOUT_WIDGET_IDX { }; #define WIDGETS_MAIN \ - WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, /* panel / background */ \ - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_ABOUT, STR_WINDOW_TITLE_TIP }, /* title bar */ \ - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, /* close x button */ \ + WINDOW_SKELETON, \ { WWT_IMGBTN, 1, 0, WW - 1, TABHEIGHT, WH - 1, 0xFFFFFFFF, STR_NONE }, /* page background */ \ { WWT_TAB, 1, 3, 93, 17, TABHEIGHT, IMAGE_TYPE_REMAP | SPR_TAB_LARGE, STR_NONE }, /* about OpenRCT2 button */ \ - { WWT_TAB, 1, 94, 184, 17, TABHEIGHT, IMAGE_TYPE_REMAP | SPR_TAB_LARGE, STR_NONE /* about RCT2 button */ + { WWT_TAB, 1, 94, 184, 17, TABHEIGHT, IMAGE_TYPE_REMAP | SPR_TAB_LARGE, STR_NONE } /* about RCT2 button */ static rct_widget window_about_openrct2_widgets[] = { - { WIDGETS_MAIN }, + WIDGETS_MAIN, { WWT_BUTTON, 1, 100, 299, WH - 50, WH - 39, STR_CHANGELOG_ELLIPSIS, STR_NONE }, // changelog button { WIDGETS_END } }; static rct_widget window_about_rct2_widgets[] = { - { WIDGETS_MAIN }, + WIDGETS_MAIN, { WWT_BUTTON, 1, 100, 299, WH - 50, WH - 39, STR_MUSIC_ACKNOWLEDGEMENTS_ELLIPSIS, STR_NONE }, // music credits button { WIDGETS_END }, }; diff --git a/src/openrct2-ui/windows/Banner.cpp b/src/openrct2-ui/windows/Banner.cpp index b4d071309e..81c07d029f 100644 --- a/src/openrct2-ui/windows/Banner.cpp +++ b/src/openrct2-ui/windows/Banner.cpp @@ -24,6 +24,7 @@ constexpr int32_t WW = 113; constexpr int32_t WH = 96; +#define WINDOW_TITLE STR_BANNER_WINDOW_TITLE // clang-format off enum WINDOW_BANNER_WIDGET_IDX { @@ -57,9 +58,7 @@ static constexpr const rct_string_id BannerColouredTextFormats[] = { }; static rct_widget window_banner_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE}, // panel / background - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_BANNER_WINDOW_TITLE, STR_WINDOW_TITLE_TIP}, // title bar - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP}, // close x button + WINDOW_SKELETON, { WWT_VIEWPORT, 1, 3, WW - 26,17, WH - 20, 0x0FFFFFFFE, STR_NONE}, // tab content panel { WWT_FLATBTN, 1, WW - 25, WW - 2, 19, 42, SPR_RENAME, STR_CHANGE_BANNER_TEXT_TIP}, // change banner button { WWT_FLATBTN, 1, WW - 25, WW - 2, 43, 66, SPR_NO_ENTRY, STR_SET_AS_NO_ENTRY_BANNER_TIP}, // no entry button diff --git a/src/openrct2-ui/windows/Changelog.cpp b/src/openrct2-ui/windows/Changelog.cpp index 045be57423..9a5454ce09 100644 --- a/src/openrct2-ui/windows/Changelog.cpp +++ b/src/openrct2-ui/windows/Changelog.cpp @@ -34,13 +34,12 @@ enum { constexpr int32_t WW = 500; constexpr int32_t WH = 400; +#define WINDOW_TITLE STR_CHANGELOG_TITLE constexpr int32_t MIN_WW = 300; constexpr int32_t MIN_WH = 200; static rct_widget window_changelog_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_CHANGELOG_TITLE, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, WW - 1, 14, WH - 1, 0xFFFFFFFF, STR_NONE }, // content panel { WWT_SCROLL, 1, 3, WW - 3, 16, WH - 15, SCROLL_BOTH, STR_NONE }, // scroll area { WIDGETS_END }, diff --git a/src/openrct2-ui/windows/Cheats.cpp b/src/openrct2-ui/windows/Cheats.cpp index 3158dbd412..5625efb27f 100644 --- a/src/openrct2-ui/windows/Cheats.cpp +++ b/src/openrct2-ui/windows/Cheats.cpp @@ -176,6 +176,7 @@ enum WINDOW_CHEATS_WIDGET_IDX #pragma region MEASUREMENTS +#define WINDOW_TITLE STR_CHEAT_TITLE constexpr int32_t WW = 249; constexpr int32_t WH = 300; constexpr int32_t TAB_HEIGHT = 43; @@ -205,9 +206,7 @@ constexpr int32_t TXTO = 3; // Text horizontal offset from button left (for but #pragma endregion #define MAIN_CHEATS_WIDGETS \ - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, /* panel / background */ \ - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_CHEAT_TITLE, STR_WINDOW_TITLE_TIP }, /* title bar */ \ - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, /* close x button */ \ + WINDOW_SKELETON, \ { WWT_IMGBTN, 1, 0, WW - 1, 43, WH - 1, 0xFFFFFFFF, STR_NONE }, /* tab content panel */ \ { WWT_TAB, 1, 3, 33, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_FINANCIAL_CHEATS_TIP }, /* tab 1 */ \ { WWT_TAB, 1, 34, 64, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_GUEST_CHEATS_TIP }, /* tab 2 */ \ diff --git a/src/openrct2-ui/windows/ClearScenery.cpp b/src/openrct2-ui/windows/ClearScenery.cpp index 042b2f89c3..68d1ade378 100644 --- a/src/openrct2-ui/windows/ClearScenery.cpp +++ b/src/openrct2-ui/windows/ClearScenery.cpp @@ -29,10 +29,12 @@ enum WINDOW_CLEAR_SCENERY_WIDGET_IDX { WIDX_FOOTPATH }; +#define WINDOW_TITLE STR_CLEAR_SCENERY +#define WW 102 +#define WH 93 + static rct_widget window_clear_scenery_widgets[] = { - { WWT_FRAME, 0, 0, 97, 0, 93, 0xFFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 96, 1, 14, STR_CLEAR_SCENERY, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 85, 95, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + WINDOW_SKELETON, { WWT_IMGBTN, 0, 27, 70, 17, 48, SPR_LAND_TOOL_SIZE_0, STR_NONE }, // preview box { WWT_TRNBTN, 1, 28, 43, 18, 33, IMAGE_TYPE_REMAP | SPR_LAND_TOOL_DECREASE, STR_ADJUST_SMALLER_LAND_TIP }, // decrement size { WWT_TRNBTN, 1, 54, 69, 32, 47, IMAGE_TYPE_REMAP | SPR_LAND_TOOL_INCREASE, STR_ADJUST_LARGER_LAND_TIP }, // increment size @@ -96,8 +98,7 @@ rct_window* window_clear_scenery_open() if (window != nullptr) return window; - window = window_create( - ScreenCoordsXY(context_get_width() - 98, 29), 98, 94, &window_clear_scenery_events, WC_CLEAR_SCENERY, 0); + window = window_create(ScreenCoordsXY(context_get_width() - 102, 29), 98, 94, &window_clear_scenery_events, WC_CLEAR_SCENERY, 0); window->widgets = window_clear_scenery_widgets; window->enabled_widgets = (1 << WIDX_CLOSE) | (1 << WIDX_INCREMENT) | (1 << WIDX_DECREMENT) | (1 << WIDX_PREVIEW) | (1 << WIDX_SMALL_SCENERY) | (1 << WIDX_LARGE_SCENERY) | (1 << WIDX_FOOTPATH); diff --git a/src/openrct2-ui/windows/CustomCurrency.cpp b/src/openrct2-ui/windows/CustomCurrency.cpp index 5a05e11e16..b9f2c3cbee 100644 --- a/src/openrct2-ui/windows/CustomCurrency.cpp +++ b/src/openrct2-ui/windows/CustomCurrency.cpp @@ -16,6 +16,10 @@ #include #include +#define WINDOW_TITLE STR_CUSTOM_CURRENCY_WINDOW_TITLE +#define WH 100 +#define WW 400 + // clang-format off enum WINDOW_CUSTOM_CURRENCY_WIDGET_IDX { WIDX_BACKGROUND, @@ -30,9 +34,7 @@ enum WINDOW_CUSTOM_CURRENCY_WIDGET_IDX { }; static rct_widget window_custom_currency_widgets[] = { - { WWT_FRAME, 0, 0, 399, 0, 99, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 398, 1, 14, STR_CUSTOM_CURRENCY_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 387, 397, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, SPINNER_WIDGETS (1, 100, 200, 30, 40, STR_CHEAT_CURRENCY_FORMAT, STR_NONE), // NB: 3 widgets { WWT_BUTTON, 1, 120, 200, 50, 60, 0, STR_NONE }, { WWT_DROPDOWN, 1, 220, 350, 50, 60, STR_NONE, STR_NONE }, diff --git a/src/openrct2-ui/windows/DemolishRidePrompt.cpp b/src/openrct2-ui/windows/DemolishRidePrompt.cpp index 08dacf6115..184f3542da 100644 --- a/src/openrct2-ui/windows/DemolishRidePrompt.cpp +++ b/src/openrct2-ui/windows/DemolishRidePrompt.cpp @@ -18,6 +18,7 @@ constexpr int32_t WW = 200; constexpr int32_t WH = 100; +#define WINDOW_TITLE STR_DEMOLISH_RIDE static money32 _demolishRideCost; @@ -33,9 +34,7 @@ enum WINDOW_RIDE_DEMOLISH_WIDGET_IDX { // 0x009AEBA0 static rct_widget window_ride_demolish_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, STR_NONE, STR_NONE }, - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_DEMOLISH_RIDE, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X_WHITE, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_BUTTON, 0, 10, 94, WH - 20, WH - 9, STR_DEMOLISH, STR_NONE }, { WWT_BUTTON, 0, WW - 95, WW - 11, WH - 20, WH - 9, STR_SAVE_PROMPT_CANCEL, STR_NONE }, { WIDGETS_END } diff --git a/src/openrct2-ui/windows/EditorInventionsList.cpp b/src/openrct2-ui/windows/EditorInventionsList.cpp index 8fbac799f8..3058c6f7b5 100644 --- a/src/openrct2-ui/windows/EditorInventionsList.cpp +++ b/src/openrct2-ui/windows/EditorInventionsList.cpp @@ -28,6 +28,7 @@ constexpr int32_t WW = 600; constexpr int32_t WH = 400; +#define WINDOW_TITLE STR_INVENTION_LIST // clang-format off enum { @@ -45,9 +46,7 @@ enum { }; static rct_widget window_editor_inventions_list_widgets[] = { - { WWT_FRAME, 0, 0, 599, 0, 399, STR_NONE, STR_NONE }, - { WWT_CAPTION, 0, 1, 598, 1, 14, STR_INVENTION_LIST, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 587, 597, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 599, 43, 399, STR_NONE, STR_NONE }, { WWT_TAB, 1, 3, 33, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_NONE }, { WWT_SCROLL, 1, 4, 371, 56, 216, SCROLL_VERTICAL, STR_NONE }, @@ -505,8 +504,10 @@ static void window_editor_inventions_list_invalidate(rct_window* w) w->widgets[WIDX_BACKGROUND].right = w->width - 1; w->widgets[WIDX_BACKGROUND].bottom = w->height - 1; w->widgets[WIDX_TITLE].right = w->width - 2; - w->widgets[WIDX_CLOSE].left = w->width - 13; - w->widgets[WIDX_CLOSE].right = w->width - 3; + #ifndef LEFT_CLOSEBOX + w->widgets[WIDX_CLOSE].left = w->width - 13; + w->widgets[WIDX_CLOSE].right = w->width - 3; + #endif w->widgets[WIDX_RESIZE].right = w->width - 1; w->widgets[WIDX_RESIZE].bottom = w->height - 1; diff --git a/src/openrct2-ui/windows/EditorObjectSelection.cpp b/src/openrct2-ui/windows/EditorObjectSelection.cpp index d3dcbfb9ff..1ef74909af 100644 --- a/src/openrct2-ui/windows/EditorObjectSelection.cpp +++ b/src/openrct2-ui/windows/EditorObjectSelection.cpp @@ -80,6 +80,10 @@ static char _filter_string[MAX_PATH]; #define _FILTER_SELECTED (_filter_flags & FILTER_SELECTED) #define _FILTER_NONSELECTED (_filter_flags & FILTER_NONSELECTED) +#define WINDOW_TITLE STR_OBJECT_SELECTION +#define WH 400 +#define WW 600 + struct ObjectPageDesc { rct_string_id Caption; @@ -137,9 +141,7 @@ validate_global_widx(WC_EDITOR_OBJECT_SELECTION, WIDX_TAB_1); static bool _window_editor_object_selection_widgets_initialised; static std::vector _window_editor_object_selection_widgets = { - { WWT_FRAME, 0, 0, 599, 0, 399, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 598, 1, 14, STR_OBJECT_SELECTION, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 587, 597, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 599, 43, 399, 0xFFFFFFFF, STR_NONE }, { WWT_BUTTON, 0, 470, 591, 23, 34, STR_OBJECT_SELECTION_ADVANCED, STR_OBJECT_SELECTION_ADVANCED_TIP }, { WWT_SCROLL, 1, 4, 291, 60, 386, SCROLL_VERTICAL, STR_NONE }, @@ -797,8 +799,10 @@ static void window_editor_object_selection_invalidate(rct_window* w) w->widgets[WIDX_BACKGROUND].right = w->width - 1; w->widgets[WIDX_BACKGROUND].bottom = w->height - 1; w->widgets[WIDX_TITLE].right = w->width - 2; - w->widgets[WIDX_CLOSE].left = w->width - 13; - w->widgets[WIDX_CLOSE].right = w->width - 3; + #ifndef LEFT_CLOSEBOX + w->widgets[WIDX_CLOSE].left = w->width - 13; + w->widgets[WIDX_CLOSE].right = w->width - 3; + #endif w->widgets[WIDX_TAB_CONTENT_PANEL].right = w->width - 1; w->widgets[WIDX_TAB_CONTENT_PANEL].bottom = w->height - 1; w->widgets[WIDX_ADVANCED].left = w->width - 130; diff --git a/src/openrct2-ui/windows/EditorObjectiveOptions.cpp b/src/openrct2-ui/windows/EditorObjectiveOptions.cpp index c52f3ae9bc..75c0a0e49f 100644 --- a/src/openrct2-ui/windows/EditorObjectiveOptions.cpp +++ b/src/openrct2-ui/windows/EditorObjectiveOptions.cpp @@ -32,6 +32,10 @@ #include #include +#define WINDOW_TITLE STR_OBJECTIVE_SELECTION +#define WH 229 +#define WW 450 + #pragma region Widgets // clang-format off @@ -82,9 +86,7 @@ enum { }; #define MAIN_OBJECTIVE_OPTIONS_WIDGETS \ - { WWT_FRAME, 0, 0, 449, 0, 228, STR_NONE, STR_NONE }, \ - { WWT_CAPTION, 0, 1, 448, 1, 14, STR_OBJECTIVE_SELECTION, STR_WINDOW_TITLE_TIP }, \ - { WWT_CLOSEBOX, 0, 437, 447, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, \ + WINDOW_SKELETON, \ { WWT_RESIZE, 1, 0, 279, 43, 148, STR_NONE, STR_NONE }, \ { WWT_TAB, 1, 3, 33, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_SELECT_OBJECTIVE_AND_PARK_NAME_TIP }, \ { WWT_TAB, 1, 34, 64, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_SELECT_RIDES_TO_BE_PRESERVED_TIP } @@ -286,8 +288,10 @@ static void window_editor_objective_options_anchor_border_widgets(rct_window* w) w->widgets[WIDX_PAGE_BACKGROUND].right = w->width - 1; w->widgets[WIDX_PAGE_BACKGROUND].bottom = w->height - 1; w->widgets[WIDX_TITLE].right = w->width - 2; - w->widgets[WIDX_CLOSE].left = w->width - 13; - w->widgets[WIDX_CLOSE].right = w->width - 3; + #ifndef LEFT_CLOSEBOX + w->widgets[WIDX_CLOSE].left = w->width - 13; + w->widgets[WIDX_CLOSE].right = w->width - 3; + #endif } static void window_editor_objective_options_draw_tab_images(rct_window* w, rct_drawpixelinfo* dpi) diff --git a/src/openrct2-ui/windows/EditorScenarioOptions.cpp b/src/openrct2-ui/windows/EditorScenarioOptions.cpp index ab7d15b011..50bf89aecb 100644 --- a/src/openrct2-ui/windows/EditorScenarioOptions.cpp +++ b/src/openrct2-ui/windows/EditorScenarioOptions.cpp @@ -28,6 +28,10 @@ #include #include +#define WINDOW_TITLE STR_SCENARIO_OPTIONS_FINANCIAL +#define WH 149 +#define WW 280 + #pragma region Widgets // clang-format off @@ -109,9 +113,7 @@ enum { }; static rct_widget window_editor_scenario_options_financial_widgets[] = { - { WWT_FRAME, 0, 0, 279, 0, 148, STR_NONE, STR_NONE }, - { WWT_CAPTION, 0, 1, 278, 1, 14, STR_SCENARIO_OPTIONS_FINANCIAL, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 267, 277, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 279, 43, 148, STR_NONE, STR_NONE }, { WWT_TAB, 1, 3, 33, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_SCENARIO_OPTIONS_FINANCIAL_TIP }, { WWT_TAB, 1, 34, 64, 17, 46, IMAGE_TYPE_REMAP | SPR_TAB, STR_SCENARIO_OPTIONS_GUESTS_TIP }, @@ -419,8 +421,10 @@ static void window_editor_scenario_options_anchor_border_widgets(rct_window* w) w->widgets[WIDX_PAGE_BACKGROUND].right = w->width - 1; w->widgets[WIDX_PAGE_BACKGROUND].bottom = w->height - 1; w->widgets[WIDX_TITLE].right = w->width - 2; - w->widgets[WIDX_CLOSE].left = w->width - 13; - w->widgets[WIDX_CLOSE].right = w->width - 3; + #ifndef LEFT_CLOSEBOX + w->widgets[WIDX_CLOSE].left = w->width - 13; + w->widgets[WIDX_CLOSE].right = w->width - 3; + #endif } /** diff --git a/src/openrct2-ui/windows/Finances.cpp b/src/openrct2-ui/windows/Finances.cpp index 635978ef3f..a18d4556c8 100644 --- a/src/openrct2-ui/windows/Finances.cpp +++ b/src/openrct2-ui/windows/Finances.cpp @@ -27,6 +27,10 @@ #include #include +#define WINDOW_TITLE 0 +#define WH 0 +#define WW 0 + // clang-format off enum { @@ -89,10 +93,8 @@ enum static rct_widget _windowFinancesSummaryWidgets[] = { - { WWT_FRAME, 0, 0, 529, 0, 309, 0xFFFFFFFF, STR_NONE }, \ - { WWT_CAPTION, 0, 1, 528, 1, 14, STR_FINANCIAL_SUMMARY, STR_WINDOW_TITLE_TIP }, \ - { WWT_CLOSEBOX, 0, 517, 527, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, \ - { WWT_RESIZE, 1, 0, 529, 43, 309, 0xFFFFFFFF, STR_NONE }, \ + WINDOW_SKELETON, + { WWT_RESIZE, 1, 0, 529, 43, 309, 0xFFFFFFFF, STR_NONE }, TAB_WIDGETS, { WWT_SCROLL, 1, 130, 520, 50, 260, SCROLL_HORIZONTAL, STR_NONE }, SPINNER_WIDGETS (1, 64, 160, 279, 292, STR_FINANCES_SUMMARY_LOAN_VALUE, STR_NONE), // NB: 3 widgets. @@ -101,9 +103,7 @@ static rct_widget _windowFinancesSummaryWidgets[] = static rct_widget _windowFinancesCashWidgets[] = { - { WWT_FRAME, 0, 0, 529, 0, 256, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 528, 1, 14, STR_FINANCIAL_GRAPH, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 517, 527, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 529, 43, 256, 0xFFFFFFFF, STR_NONE }, TAB_WIDGETS, { WIDGETS_END }, @@ -111,9 +111,7 @@ static rct_widget _windowFinancesCashWidgets[] = static rct_widget _windowFinancesParkValueWidgets[] = { - { WWT_FRAME, 0, 0, 529, 0, 256, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 528, 1, 14, STR_PARK_VALUE_GRAPH, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 517, 527, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 529, 43, 256, 0xFFFFFFFF, STR_NONE }, TAB_WIDGETS, { WIDGETS_END }, @@ -121,9 +119,7 @@ static rct_widget _windowFinancesParkValueWidgets[] = static rct_widget _windowFinancesProfitWidgets[] = { - { WWT_FRAME, 0, 0, 529, 0, 256, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 528, 1, 14, STR_PROFIT_GRAPH, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 517, 527, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 529, 43, 256, 0xFFFFFFFF, STR_NONE }, TAB_WIDGETS, { WIDGETS_END }, @@ -131,9 +127,7 @@ static rct_widget _windowFinancesProfitWidgets[] = static rct_widget _windowFinancesMarketingWidgets[] = { - { WWT_FRAME, 0, 0, 529, 0, 256, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 528, 1, 14, STR_MARKETING, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 517, 527, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 529, 43, 256, 0xFFFFFFFF, STR_NONE }, TAB_WIDGETS, { WWT_GROUPBOX, 2, 3, 526, 47, 91, STR_MARKETING_CAMPAIGNS_IN_OPERATION, STR_NONE }, @@ -149,9 +143,7 @@ static rct_widget _windowFinancesMarketingWidgets[] = static rct_widget _windowFinancesResearchWidgets[] = { - { WWT_FRAME, 0, 0, 319, 0, 206, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 318, 1, 14, STR_RESEARCH_FUNDING, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 307, 317, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 319, 43, 206, 0xFFFFFFFF, STR_NONE }, TAB_WIDGETS, { WWT_GROUPBOX, 2, 3, 316, 47, 91, STR_RESEARCH_FUNDING_, STR_NONE }, @@ -659,6 +651,14 @@ static void window_finances_summary_invalidate(rct_window* w) window_finances_set_pressed_tab(w); set_format_arg(6, money32, gBankLoan); + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_SUMMARY][WIDX_TITLE].text = STR_FINANCIAL_SUMMARY; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_SUMMARY][WIDX_TITLE].right = 528; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_SUMMARY][WIDX_BACKGROUND].bottom = 310; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_SUMMARY][WIDX_BACKGROUND].right = 529; + #ifndef LEFT_CLOSEBOX + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_SUMMARY][WIDX_CLOSE].left = 517; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_SUMMARY][WIDX_CLOSE].right = 527; + #endif } /** @@ -828,6 +828,14 @@ static void window_finances_financial_graph_invalidate(rct_window* w) } window_finances_set_pressed_tab(w); + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_FINANCIAL_GRAPH][WIDX_TITLE].text = STR_FINANCIAL_GRAPH; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_FINANCIAL_GRAPH][WIDX_TITLE].right = 528; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_FINANCIAL_GRAPH][WIDX_BACKGROUND].bottom = 257; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_FINANCIAL_GRAPH][WIDX_BACKGROUND].right = 529; + #ifndef LEFT_CLOSEBOX + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_FINANCIAL_GRAPH][WIDX_CLOSE].left = 517; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_FINANCIAL_GRAPH][WIDX_CLOSE].right = 527; + #endif } /** @@ -921,6 +929,8 @@ static void window_finances_park_value_graph_update(rct_window* w) w->frame_no = 0; w->Invalidate(); + _windowFinancesPageWidgets[WIDX_BACKGROUND]->bottom = 257; + _windowFinancesPageWidgets[WIDX_BACKGROUND]->right = 529; } /** @@ -936,6 +946,12 @@ static void window_finances_park_value_graph_invalidate(rct_window* w) } window_finances_set_pressed_tab(w); + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_VALUE_GRAPH][WIDX_TITLE].text = STR_PARK_VALUE_GRAPH; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_VALUE_GRAPH][WIDX_TITLE].right = 528; + #ifndef LEFT_CLOSEBOX + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_VALUE_GRAPH][WIDX_CLOSE].left = 517; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_VALUE_GRAPH][WIDX_CLOSE].right = 527; + #endif } /** @@ -1038,6 +1054,14 @@ static void window_finances_profit_graph_invalidate(rct_window* w) } window_finances_set_pressed_tab(w); + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_PROFIT_GRAPH][WIDX_TITLE].text = STR_PROFIT_GRAPH; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_PROFIT_GRAPH][WIDX_TITLE].right = 528; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_PROFIT_GRAPH][WIDX_BACKGROUND].bottom = 257; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_PROFIT_GRAPH][WIDX_BACKGROUND].right = 529; + #ifndef LEFT_CLOSEBOX + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_PROFIT_GRAPH][WIDX_CLOSE].left = 517; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_PROFIT_GRAPH][WIDX_CLOSE].right = 527; + #endif } /** @@ -1171,6 +1195,14 @@ static void window_finances_marketing_invalidate(rct_window* w) campaignButton->type = WWT_EMPTY; } } + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_MARKETING][WIDX_TITLE].text = STR_MARKETING; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_MARKETING][WIDX_TITLE].right = 528; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_MARKETING][WIDX_BACKGROUND].bottom = 257; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_MARKETING][WIDX_BACKGROUND].right = 529; + #ifndef LEFT_CLOSEBOX + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_MARKETING][WIDX_CLOSE].left = 517; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_MARKETING][WIDX_CLOSE].right = 527; + #endif } /** @@ -1356,6 +1388,14 @@ static void window_finances_research_update(rct_window* w) */ static void window_finances_research_invalidate(rct_window* w) { + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_RESEARCH][WIDX_TITLE].text = STR_RESEARCH_FUNDING; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_RESEARCH][WIDX_TITLE].right = 318; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_RESEARCH][WIDX_BACKGROUND].bottom = 206; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_RESEARCH][WIDX_BACKGROUND].right = 319; + #ifndef LEFT_CLOSEBOX + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_RESEARCH][WIDX_CLOSE].left = 307; + _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_RESEARCH][WIDX_CLOSE].right = 317; + #endif if (w->widgets != _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_RESEARCH]) { w->widgets = _windowFinancesPageWidgets[WINDOW_FINANCES_PAGE_RESEARCH]; diff --git a/src/openrct2-ui/windows/Footpath.cpp b/src/openrct2-ui/windows/Footpath.cpp index 7633942965..c06411149a 100644 --- a/src/openrct2-ui/windows/Footpath.cpp +++ b/src/openrct2-ui/windows/Footpath.cpp @@ -24,6 +24,10 @@ #include #include +#define WINDOW_TITLE STR_FOOTPATHS +#define WH 381 +#define WW 106 + // clang-format off enum { @@ -67,9 +71,7 @@ enum WINDOW_FOOTPATH_WIDGET_IDX }; static rct_widget window_footpath_widgets[] = { - {WWT_FRAME, 0, 0, 105, 0, 380, 0xFFFFFFFF, STR_NONE}, - {WWT_CAPTION, 0, 1, 104, 1, 14, STR_FOOTPATHS, STR_WINDOW_TITLE_TIP}, - {WWT_CLOSEBOX, 0, 93, 103, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP}, + WINDOW_SKELETON, // Type group {WWT_GROUPBOX, 0, 3, 102, 17, 71, STR_TYPE, STR_NONE}, {WWT_FLATBTN, 1, 6, 52, 30, 65, 0xFFFFFFFF, STR_FOOTPATH_TIP}, diff --git a/src/openrct2-ui/windows/Guest.cpp b/src/openrct2-ui/windows/Guest.cpp index 0f12697f6c..d0b8f689ec 100644 --- a/src/openrct2-ui/windows/Guest.cpp +++ b/src/openrct2-ui/windows/Guest.cpp @@ -31,6 +31,10 @@ #include #include +#define WINDOW_TITLE STR_STRINGID +#define WH 157 +#define WW 192 + // clang-format off enum WINDOW_GUEST_PAGE { WINDOW_GUEST_OVERVIEW, @@ -71,9 +75,7 @@ validate_global_widx(WC_PEEP, WIDX_PICKUP); static constexpr int32_t TabWidth = 30; #define MAIN_GUEST_WIDGETS \ - { WWT_FRAME, 0, 0, 191, 0, 156, 0xFFFFFFFF, STR_NONE }, /* Panel / Background */ \ - { WWT_CAPTION, 0, 1, 190, 1, 14, STR_STRINGID, STR_WINDOW_TITLE_TIP }, /* Title */ \ - { WWT_CLOSEBOX, 0, 179, 189, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, /* Close x button */ \ + WINDOW_SKELETON, \ { WWT_RESIZE, 1, 0, 191, 43, 156, 0xFFFFFFFF, STR_NONE }, /* Resize */ \ { WWT_TAB, 1, 3, TabWidth + 3, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_SHOW_GUEST_VIEW_TIP }, /* Tab 1 */ \ { WWT_TAB, 1, 34, TabWidth + 34, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_SHOW_GUEST_NEEDS_TIP }, /* Tab 2 */ \ @@ -589,8 +591,10 @@ static void window_guest_common_invalidate(rct_window* w) w->widgets[WIDX_PAGE_BACKGROUND].right = w->width - 1; w->widgets[WIDX_PAGE_BACKGROUND].bottom = w->height - 1; w->widgets[WIDX_TITLE].right = w->width - 2; - w->widgets[WIDX_CLOSE].left = w->width - 13; - w->widgets[WIDX_CLOSE].right = w->width - 3; + #ifndef LEFT_CLOSEBOX + w->widgets[WIDX_CLOSE].left = w->width - 13; + w->widgets[WIDX_CLOSE].right = w->width - 3; + #endif window_align_tabs(w, WIDX_TAB_1, WIDX_TAB_7); } diff --git a/src/openrct2-ui/windows/GuestList.cpp b/src/openrct2-ui/windows/GuestList.cpp index f239b81cc9..4231435588 100644 --- a/src/openrct2-ui/windows/GuestList.cpp +++ b/src/openrct2-ui/windows/GuestList.cpp @@ -23,6 +23,10 @@ #include #include +#define WINDOW_TITLE STR_GUESTS +#define WH 330 +#define WW 350 + // clang-format off enum { PAGE_INDIVIDUAL, @@ -64,9 +68,7 @@ static constexpr const rct_string_id viewNames[VIEW_COUNT] = { }; static rct_widget window_guest_list_widgets[] = { - { WWT_FRAME, 0, 0, 349, 0, 329, 0xFFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 348, 1, 14, STR_GUESTS, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 337, 347, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 349, 43, 329, 0xFFFFFFFF, STR_NONE }, // tab content panel { WWT_DROPDOWN, 1, 5, 84, 59, 70, STR_ARG_4_PAGE_X, STR_NONE }, // page dropdown { WWT_BUTTON, 1, 73, 83, 60, 69, STR_DROPDOWN_GLYPH, STR_NONE }, // page dropdown button @@ -642,8 +644,10 @@ static void window_guest_list_invalidate(rct_window* w) window_guest_list_widgets[WIDX_TAB_CONTENT_PANEL].right = w->width - 1; window_guest_list_widgets[WIDX_TAB_CONTENT_PANEL].bottom = w->height - 1; window_guest_list_widgets[WIDX_TITLE].right = w->width - 2; - window_guest_list_widgets[WIDX_CLOSE].left = w->width - 13; - window_guest_list_widgets[WIDX_CLOSE].right = w->width - 3; + #ifndef LEFT_CLOSEBOX + window_guest_list_widgets[WIDX_CLOSE].left = w->width - 13; + window_guest_list_widgets[WIDX_CLOSE].right = w->width - 3; + #endif window_guest_list_widgets[WIDX_GUEST_LIST].right = w->width - 4; window_guest_list_widgets[WIDX_GUEST_LIST].bottom = w->height - 15; window_guest_list_widgets[WIDX_MAP].left = 273 - 350 + w->width; diff --git a/src/openrct2-ui/windows/InstallTrack.cpp b/src/openrct2-ui/windows/InstallTrack.cpp index a9ef33f077..3e8edc3a33 100644 --- a/src/openrct2-ui/windows/InstallTrack.cpp +++ b/src/openrct2-ui/windows/InstallTrack.cpp @@ -34,6 +34,7 @@ enum { WIDX_CANCEL }; +#define WINDOW_TITLE STR_TRACK_DESIGN_INSTALL_WINDOW_TITLE constexpr int32_t WW = 380; constexpr int32_t WH = 448; constexpr int32_t WW_LESS_PADDING = WW - 4; @@ -41,9 +42,7 @@ constexpr int32_t PREVIEW_BUTTONS_LEFT = WW - 25; constexpr int32_t ACTION_BUTTONS_LEFT = WW - 100; static rct_widget window_install_track_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH-1, STR_NONE, STR_NONE }, - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_TRACK_DESIGN_INSTALL_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_FLATBTN, 0, 4, WW - 5, 18, 236, STR_NONE, STR_NONE }, { WWT_FLATBTN, 0, PREVIEW_BUTTONS_LEFT, WW_LESS_PADDING, 422, 445, SPR_ROTATE_ARROW, STR_ROTATE_90_TIP }, { WWT_FLATBTN, 0, PREVIEW_BUTTONS_LEFT, WW_LESS_PADDING, 398, 421, SPR_SCENERY, STR_TOGGLE_SCENERY_TIP }, diff --git a/src/openrct2-ui/windows/Land.cpp b/src/openrct2-ui/windows/Land.cpp index 7a1874a80e..745f942674 100644 --- a/src/openrct2-ui/windows/Land.cpp +++ b/src/openrct2-ui/windows/Land.cpp @@ -23,6 +23,10 @@ using namespace OpenRCT2; +#define WINDOW_TITLE STR_LAND +#define WH 160 +#define WW 98 + // clang-format off enum WINDOW_LAND_WIDGET_IDX { WIDX_BACKGROUND, @@ -38,9 +42,7 @@ enum WINDOW_LAND_WIDGET_IDX { }; static rct_widget window_land_widgets[] = { - { WWT_FRAME, 0, 0, 97, 0, 159, 0xFFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 96, 1, 14, STR_LAND, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 85, 95, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + WINDOW_SKELETON, { WWT_FLATBTN, 1, 19, 42, 19, 42, SPR_RIDE_CONSTRUCTION_SLOPE_UP, STR_ENABLE_MOUNTAIN_TOOL_TIP }, // mountain mode { WWT_FLATBTN, 1, 55, 78, 19, 42, SPR_PAINTBRUSH, STR_DISABLE_ELEVATION }, // paint mode diff --git a/src/openrct2-ui/windows/LandRights.cpp b/src/openrct2-ui/windows/LandRights.cpp index 07bf10232f..01b3beb299 100644 --- a/src/openrct2-ui/windows/LandRights.cpp +++ b/src/openrct2-ui/windows/LandRights.cpp @@ -20,6 +20,10 @@ #include #include +#define WINDOW_TITLE STR_LAND_RIGHTS +#define WH 94 +#define WW 98 + // clang-format off enum WINDOW_WATER_WIDGET_IDX { WIDX_BACKGROUND, @@ -33,9 +37,7 @@ enum WINDOW_WATER_WIDGET_IDX { }; static rct_widget window_land_rights_widgets[] = { - { WWT_FRAME, 0, 0, 97, 0, 93, 0xFFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 96, 1, 14, STR_LAND_RIGHTS, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 85, 95, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + WINDOW_SKELETON, { WWT_IMGBTN, 0, 27, 70, 17, 48, SPR_LAND_TOOL_SIZE_0, STR_NONE }, // preview box { WWT_TRNBTN, 2, 28, 43, 18, 33, IMAGE_TYPE_REMAP | SPR_LAND_TOOL_DECREASE, STR_ADJUST_SMALLER_LAND_RIGHTS_TIP }, // decrement size { WWT_TRNBTN, 2, 54, 69, 32, 47, IMAGE_TYPE_REMAP | SPR_LAND_TOOL_INCREASE, STR_ADJUST_LARGER_LAND_RIGHTS_TIP }, // increment size diff --git a/src/openrct2-ui/windows/LoadSave.cpp b/src/openrct2-ui/windows/LoadSave.cpp index e080a5ae4e..1e3fafcf9a 100644 --- a/src/openrct2-ui/windows/LoadSave.cpp +++ b/src/openrct2-ui/windows/LoadSave.cpp @@ -38,6 +38,7 @@ #pragma region Widgets +#define WINDOW_TITLE STR_NONE constexpr int32_t WW = 350; constexpr int32_t WH = 400; @@ -61,9 +62,7 @@ enum // 0x9DE48C static rct_widget window_loadsave_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, STR_NONE, STR_NONE }, - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_NONE, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, //Window close button + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, WW - 1, WH - 1, WH - 1, 0xFFFFFFFF, STR_NONE }, // tab content panel { WWT_BUTTON, 0, 4, 87, 36, 49, STR_LOADSAVE_DEFAULT, STR_LOADSAVE_DEFAULT_TIP }, // Go to default directory { WWT_BUTTON, 0, 88, 171, 36, 49, STR_FILEBROWSER_ACTION_UP, STR_NONE}, // Up @@ -675,8 +674,11 @@ static void window_loadsave_compute_max_date_width() static void window_loadsave_invalidate(rct_window* w) { window_loadsave_widgets[WIDX_TITLE].right = w->width - 2; - window_loadsave_widgets[WIDX_CLOSE].left = w->width - 13; - window_loadsave_widgets[WIDX_CLOSE].right = w->width - 3; + #ifndef LEFT_CLOSEBOX + // close button has to move if it's on the right side + window_loadsave_widgets[WIDX_CLOSE].left = w->width - 13; + window_loadsave_widgets[WIDX_CLOSE].right = w->width - 3; + #endif window_loadsave_widgets[WIDX_BACKGROUND].right = w->width - 1; window_loadsave_widgets[WIDX_BACKGROUND].bottom = w->height - 1; window_loadsave_widgets[WIDX_RESIZE].top = w->height - 1; @@ -1142,10 +1144,19 @@ enum WIDX_OVERWRITE_CANCEL }; +#ifndef LEFT_CLOSEBOX + // close button on right of window + #define OVERWRITE_WINDOW_SKELETON \ + { WWT_CLOSEBOX, 0, OVERWRITE_WW - 13, OVERWRITE_WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP } +#else + #define OVERWRITE_WINDOW_SKELETON \ + { WWT_CLOSEBOX, 0, 2, 12, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP } +#endif + static rct_widget window_overwrite_prompt_widgets[] = { { WWT_FRAME, 0, 0, OVERWRITE_WW - 1, 0, OVERWRITE_WH - 1, STR_NONE, STR_NONE }, { WWT_CAPTION, 0, 1, OVERWRITE_WW - 2, 1, 14, STR_FILEBROWSER_OVERWRITE_TITLE, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, OVERWRITE_WW - 13, OVERWRITE_WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + OVERWRITE_WINDOW_SKELETON, { WWT_BUTTON, 0, 10, 94, OVERWRITE_WH - 20, OVERWRITE_WH - 9, STR_FILEBROWSER_OVERWRITE_TITLE, STR_NONE }, { WWT_BUTTON, 0, OVERWRITE_WW - 95, OVERWRITE_WW - 11, OVERWRITE_WH - 20, OVERWRITE_WH - 9, STR_SAVE_PROMPT_CANCEL, STR_NONE }, diff --git a/src/openrct2-ui/windows/Map.cpp b/src/openrct2-ui/windows/Map.cpp index 1985fcbdea..365cf88ec5 100644 --- a/src/openrct2-ui/windows/Map.cpp +++ b/src/openrct2-ui/windows/Map.cpp @@ -38,6 +38,10 @@ constexpr int32_t MAP_WINDOW_MAP_SIZE = MAXIMUM_MAP_SIZE_TECHNICAL * 2; +#define WINDOW_TITLE STR_MAP_LABEL +#define WH 259 +#define WW 245 + // Some functions manipulate coordinates on the map. These are the coordinates of the pixels in the // minimap. In order to distinguish those from actual coordinates, we use a separate name. using MapCoordsXY = TileCoordsXY; @@ -76,9 +80,7 @@ enum WINDOW_MAP_WIDGET_IDX { validate_global_widx(WC_MAP, WIDX_ROTATE_90); static rct_widget window_map_widgets[] = { - { WWT_FRAME, 0, 0, 244, 0, 258, STR_NONE, STR_NONE }, - { WWT_CAPTION, 0, 1, 243, 1, 14, STR_MAP_LABEL, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 232, 242, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 244, 43, 257, STR_NONE, STR_NONE }, { WWT_COLOURBTN, 1, 3, 33, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_SHOW_PEOPLE_ON_MAP_TIP }, { WWT_COLOURBTN, 1, 34, 64, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_SHOW_RIDES_STALLS_ON_MAP_TIP }, @@ -710,8 +712,10 @@ static void window_map_invalidate(rct_window* w) w->widgets[WIDX_RESIZE].right = w->width - 1; w->widgets[WIDX_RESIZE].bottom = w->height - 1; w->widgets[WIDX_TITLE].right = w->width - 2; - w->widgets[WIDX_CLOSE].left = w->width - 2 - 11; - w->widgets[WIDX_CLOSE].right = w->width - 2 - 11 + 10; + #ifndef LEFT_CLOSEBOX + w->widgets[WIDX_CLOSE].left = w->width - 2 - 11; + w->widgets[WIDX_CLOSE].right = w->width - 2 - 11 + 10; + #endif w->widgets[WIDX_MAP].right = w->width - 4; if ((gScreenFlags & SCREEN_FLAGS_SCENARIO_EDITOR) || gCheatsSandboxMode) diff --git a/src/openrct2-ui/windows/MapGen.cpp b/src/openrct2-ui/windows/MapGen.cpp index 2a828dba7d..0006d5324f 100644 --- a/src/openrct2-ui/windows/MapGen.cpp +++ b/src/openrct2-ui/windows/MapGen.cpp @@ -110,13 +110,12 @@ enum { #pragma region Widgets +#define WINDOW_TITLE STR_MAPGEN_WINDOW_TITLE constexpr int32_t WW = 250; constexpr int32_t WH = 273; #define SHARED_WIDGETS \ - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, /* WIDX_BACKGROUND */ \ - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_MAPGEN_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, /* WIDX_TITLE */ \ - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, /* WIDX_CLOSE */ \ + WINDOW_SKELETON, /* WIDX_BACKGROUND, WIDX_TITLE, WIDX_CLOSE */ \ { WWT_RESIZE, 1, 0, WW - 1, 43, WH - 2, 0xFFFFFFFF, STR_NONE }, /* WIDX_PAGE_BACKGROUND */ \ { WWT_TAB, 1, 3, 33, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_NONE }, /* WIDX_TAB_1 */ \ { WWT_TAB, 1, 34, 64, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_NONE }, /* WIDX_TAB_2 */ \ diff --git a/src/openrct2-ui/windows/MazeConstruction.cpp b/src/openrct2-ui/windows/MazeConstruction.cpp index 1066f16485..d322403d9a 100644 --- a/src/openrct2-ui/windows/MazeConstruction.cpp +++ b/src/openrct2-ui/windows/MazeConstruction.cpp @@ -24,6 +24,10 @@ #pragma region Widgets +#define WINDOW_TITLE STR_RIDE_CONSTRUCTION_WINDOW_TITLE +#define WH 200 +#define WW 166 + // clang-format off enum { WIDX_BACKGROUND, @@ -43,9 +47,7 @@ enum { }; static rct_widget window_maze_construction_widgets[] = { - { WWT_FRAME, 0, 0, 165, 0, 199, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 164, 1, 14, STR_RIDE_CONSTRUCTION_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 153, 163, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_GROUPBOX, 0, 3, 162, 17, 71, STR_RIDE_CONSTRUCTION_MODE, STR_NONE }, { WWT_EMPTY, 0, 0, 0, 0, 0, 0xFFFFFFFF, STR_NONE }, { WWT_EMPTY, 0, 0, 0, 0, 0, 0xFFFFFFFF, STR_NONE }, diff --git a/src/openrct2-ui/windows/MusicCredits.cpp b/src/openrct2-ui/windows/MusicCredits.cpp index 0b4907f75e..513a1af108 100644 --- a/src/openrct2-ui/windows/MusicCredits.cpp +++ b/src/openrct2-ui/windows/MusicCredits.cpp @@ -14,6 +14,10 @@ #include #include +#define WINDOW_TITLE STR_MUSIC_ACKNOWLEDGEMENTS +#define WH 314 +#define WW 510 + // clang-format off enum WINDOW_MUSIC_CREDITS_WIDGET_IDX { WIDX_BACKGROUND, @@ -22,9 +26,7 @@ enum WINDOW_MUSIC_CREDITS_WIDGET_IDX { }; static rct_widget window_music_credits_widgets[] = { - { WWT_FRAME, 0, 0, 509, 0, 313, 0xFFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 508, 1, 14, STR_MUSIC_ACKNOWLEDGEMENTS, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 497, 507, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + WINDOW_SKELETON, { WWT_SCROLL, 0, 4, 505, 18, 309, SCROLL_VERTICAL, STR_NONE }, // scroll { WIDGETS_END }, }; diff --git a/src/openrct2-ui/windows/NewCampaign.cpp b/src/openrct2-ui/windows/NewCampaign.cpp index 4048a7feef..58582bee01 100644 --- a/src/openrct2-ui/windows/NewCampaign.cpp +++ b/src/openrct2-ui/windows/NewCampaign.cpp @@ -20,6 +20,9 @@ #include #include +#define WINDOW_TITLE 0 +#define WH 107 +#define WW 350 constexpr uint16_t SELECTED_RIDE_UNDEFINED = 0xFFFF; // clang-format off @@ -38,9 +41,7 @@ enum WINDOW_NEW_CAMPAIGN_WIDGET_IDX { }; static rct_widget window_new_campaign_widgets[] = { - { WWT_FRAME, 0, 0, 349, 0, 106, 0xFFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 348, 1, 14, 0, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 337, 347, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + WINDOW_SKELETON, { WWT_LABEL, 0, 14, 139, 24, 35, 0, STR_NONE }, // ride label { WWT_DROPDOWN, 0, 100, 341, 24, 35, 0, STR_NONE }, // ride dropdown { WWT_BUTTON, 0, 330, 340, 25, 34, STR_DROPDOWN_GLYPH, STR_NONE }, // ride dropdown button diff --git a/src/openrct2-ui/windows/NewRide.cpp b/src/openrct2-ui/windows/NewRide.cpp index 164fbad8dc..df2bfe02be 100644 --- a/src/openrct2-ui/windows/NewRide.cpp +++ b/src/openrct2-ui/windows/NewRide.cpp @@ -34,6 +34,7 @@ #include #include +#define WINDOW_TITLE 0xFFFFFFFF constexpr size_t AVAILABILITY_STRING_SIZE = 256; constexpr int32_t WH = 382; constexpr int32_t WW = 601; @@ -181,9 +182,7 @@ enum { }; static rct_widget window_new_ride_widgets[] = { - { WWT_FRAME, 0, 0, 600, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 599, 1, 14, 0xFFFFFFFF, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 588, 598, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 600, 43, WH - 1, 0xFFFFFFFF, STR_NONE }, { WWT_TAB, 1, 3, 33, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_TRANSPORT_RIDES_TIP }, { WWT_TAB, 1, 34, 64, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_GENTLE_RIDES_TIP }, @@ -642,8 +641,10 @@ static void window_new_ride_refresh_widget_sizing(rct_window* w) window_new_ride_widgets[WIDX_PAGE_BACKGROUND].right = width - 1; window_new_ride_widgets[WIDX_PAGE_BACKGROUND].bottom = height - 1; window_new_ride_widgets[WIDX_TITLE].right = width - 2; - window_new_ride_widgets[WIDX_CLOSE].left = width - 13; - window_new_ride_widgets[WIDX_CLOSE].right = width - 3; + #ifndef LEFT_CLOSEBOX + window_new_ride_widgets[WIDX_CLOSE].left = width - 13; + window_new_ride_widgets[WIDX_CLOSE].right = width - 3; + #endif w->width = width; w->height = height; diff --git a/src/openrct2-ui/windows/News.cpp b/src/openrct2-ui/windows/News.cpp index 314785688a..fa7a2e54a0 100644 --- a/src/openrct2-ui/windows/News.cpp +++ b/src/openrct2-ui/windows/News.cpp @@ -19,6 +19,10 @@ #include #include +#define WINDOW_TITLE STR_RECENT_MESSAGES +#define WH 300 +#define WW 400 + // clang-format off enum WINDOW_NEWS_WIDGET_IDX { WIDX_BACKGROUND, @@ -29,9 +33,7 @@ enum WINDOW_NEWS_WIDGET_IDX { }; static rct_widget window_news_widgets[] = { - { WWT_FRAME, 0, 0, 399, 0, 299, 0xFFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 398, 1, 14, STR_RECENT_MESSAGES, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 387, 397, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + WINDOW_SKELETON, { WWT_FLATBTN, 0, 372, 395, 18, 41, SPR_TAB_GEARS_0, STR_NONE }, // settings { WWT_SCROLL, 0, 4, 395, 44, 295, SCROLL_VERTICAL, STR_NONE }, // scroll { WIDGETS_END }, diff --git a/src/openrct2-ui/windows/NewsOptions.cpp b/src/openrct2-ui/windows/NewsOptions.cpp index 651749f514..e8cac8978d 100644 --- a/src/openrct2-ui/windows/NewsOptions.cpp +++ b/src/openrct2-ui/windows/NewsOptions.cpp @@ -16,6 +16,10 @@ #include #include +#define WINDOW_TITLE STR_NOTIFICATION_SETTINGS +#define WH 300 +#define WW 400 + // clang-format off enum { NOTIFICATION_CATEGORY_PARK, @@ -63,9 +67,7 @@ enum WINDOW_NEWS_WIDGET_IDX { }; static rct_widget window_news_options_widgets[] = { - { WWT_FRAME, 0, 0, 399, 0, 299, 0xFFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 398, 1, 14, STR_NOTIFICATION_SETTINGS, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 387, 397, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 399, 43, 299, 0xFFFFFFFF, STR_NONE }, // tab content panel { WWT_TAB, 1, 3, 33, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_NONE }, // tab 1 { WWT_TAB, 1, 34, 64, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_NONE }, // tab 2 diff --git a/src/openrct2-ui/windows/Options.cpp b/src/openrct2-ui/windows/Options.cpp index 3ccfedd737..4c925f8a36 100644 --- a/src/openrct2-ui/windows/Options.cpp +++ b/src/openrct2-ui/windows/Options.cpp @@ -200,6 +200,7 @@ enum WINDOW_OPTIONS_WIDGET_IDX { WIDX_NEWS_CHECKBOX }; +#define WINDOW_TITLE STR_OPTIONS_TITLE constexpr int32_t WW = 310; constexpr int32_t WH = 332; @@ -212,9 +213,7 @@ constexpr int32_t WH = 332; #endif #define MAIN_OPTIONS_WIDGETS \ - { WWT_FRAME, 0, 0, WW-1, 0, WH-1, STR_NONE, STR_NONE }, \ - { WWT_CAPTION, 0, 1, WW-2, 1, 14, STR_OPTIONS_TITLE, STR_WINDOW_TITLE_TIP }, \ - { WWT_CLOSEBOX, 0, WW-13, WW-3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, \ + WINDOW_SKELETON, \ { WWT_RESIZE, 1, 0, WW-1, 43, WH-1, 0xFFFFFFFF, STR_NONE }, \ { WWT_TAB, 1, 3, 33, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_OPTIONS_DISPLAY_TIP }, \ { WWT_TAB, 1, 34, 64, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_OPTIONS_RENDERING_TIP }, \ diff --git a/src/openrct2-ui/windows/Park.cpp b/src/openrct2-ui/windows/Park.cpp index e58480f909..452a096908 100644 --- a/src/openrct2-ui/windows/Park.cpp +++ b/src/openrct2-ui/windows/Park.cpp @@ -31,6 +31,10 @@ #include #include +#define WINDOW_TITLE STR_STRINGID +#define WH 224 +#define WW 230 + // clang-format off enum WINDOW_PARK_PAGE { WINDOW_PARK_PAGE_ENTRANCE, @@ -75,9 +79,7 @@ enum WINDOW_PARK_WIDGET_IDX { #pragma region Widgets #define MAIN_PARK_WIDGETS(WW) \ - { WWT_FRAME, 0, 0, WW - 1, 0, 223, 0xFFFFFFFF, STR_NONE }, /* panel / background */ \ - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_STRINGID, STR_WINDOW_TITLE_TIP }, /* title bar */ \ - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, /* close x button */ \ + WINDOW_SKELETON, \ { WWT_RESIZE, 1, 0, WW - 1, 43, 173, 0xFFFFFFFF, STR_NONE }, /* tab content panel */ \ { WWT_TAB, 1, 3, 33, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_PARK_ENTRANCE_TAB_TIP }, /* tab 1 */ \ { WWT_TAB, 1, 34, 64, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_PARK_RATING_TAB_TIP }, /* tab 2 */ \ @@ -1799,8 +1801,10 @@ static void window_park_anchor_border_widgets(rct_window* w) w->widgets[WIDX_PAGE_BACKGROUND].right = w->width - 1; w->widgets[WIDX_PAGE_BACKGROUND].bottom = w->height - 1; w->widgets[WIDX_TITLE].right = w->width - 2; - w->widgets[WIDX_CLOSE].left = w->width - 13; - w->widgets[WIDX_CLOSE].right = w->width - 3; + #ifndef LEFT_CLOSEBOX + w->widgets[WIDX_CLOSE].left = w->width - 13; + w->widgets[WIDX_CLOSE].right = w->width - 3; + #endif } static void window_park_set_pressed_tab(rct_window* w) diff --git a/src/openrct2-ui/windows/Research.cpp b/src/openrct2-ui/windows/Research.cpp index ce50f22466..1f4dd85267 100644 --- a/src/openrct2-ui/windows/Research.cpp +++ b/src/openrct2-ui/windows/Research.cpp @@ -20,6 +20,10 @@ #include #include +#define WINDOW_TITLE 0 +#define WH 0 +#define WW 0 + // clang-format off enum { WINDOW_RESEARCH_PAGE_DEVELOPMENT, @@ -55,9 +59,7 @@ enum { #pragma region Widgets static rct_widget window_research_development_widgets[] = { - { WWT_FRAME, 0, 0, 299, 0, 195, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 298, 1, 14, STR_RESEARCH_AND_DEVELOPMENT, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 287, 297, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 299, 43, 195, 0xFFFFFFFF, STR_NONE }, { WWT_TAB, 1, 3, 33, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_RESEARCH_AND_DEVELOPMENT_TIP }, { WWT_TAB, 1, 34, 64, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_FINANCES_RESEARCH_TIP }, @@ -68,9 +70,7 @@ static rct_widget window_research_development_widgets[] = { }; static rct_widget window_research_funding_widgets[] = { - { WWT_FRAME, 0, 0, 319, 0, 206, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 318, 1, 14, STR_RESEARCH_FUNDING, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 307, 317, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 319, 43, 206, 0xFFFFFFFF, STR_NONE }, { WWT_TAB, 1, 3, 33, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_RESEARCH_AND_DEVELOPMENT_TIP }, { WWT_TAB, 1, 34, 64, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_FINANCES_RESEARCH_TIP }, @@ -320,6 +320,14 @@ static void window_research_development_invalidate(rct_window* w) ? SPR_NEW_RIDE : SPR_NEW_SCENERY; } + window_research_development_widgets[WIDX_TITLE].text = STR_RESEARCH_AND_DEVELOPMENT; + window_research_development_widgets[WIDX_TITLE].right = 298; + window_research_development_widgets[WIDX_BACKGROUND].right = 299; + window_research_development_widgets[WIDX_BACKGROUND].bottom = 195; + #ifndef LEFT_CLOSEBOX + window_research_development_widgets[WIDX_CLOSE].left = 287; + window_research_development_widgets[WIDX_CLOSE].right = 297; + #endif } /** @@ -550,6 +558,15 @@ static void window_research_funding_invalidate(rct_window* w) w->pressed_widgets &= ~widgetMask; } } + + window_research_funding_widgets[WIDX_TITLE].text = STR_RESEARCH_FUNDING; + window_research_funding_widgets[WIDX_TITLE].right = 318; + window_research_funding_widgets[WIDX_BACKGROUND].right = 319; + window_research_funding_widgets[WIDX_BACKGROUND].bottom = 206; + #ifndef LEFT_CLOSEBOX + window_research_funding_widgets[WIDX_CLOSE].left = 307; + window_research_funding_widgets[WIDX_CLOSE].right = 317; + #endif } /** diff --git a/src/openrct2-ui/windows/Ride.cpp b/src/openrct2-ui/windows/Ride.cpp index 9034c8051f..f6b1643576 100644 --- a/src/openrct2-ui/windows/Ride.cpp +++ b/src/openrct2-ui/windows/Ride.cpp @@ -53,8 +53,13 @@ #include #include #include + using namespace OpenRCT2; +#define WINDOW_TITLE STR_RIDE_WINDOW_TITLE +#define WH 207 +#define WW 316 + enum { WINDOW_RIDE_PAGE_MAIN, @@ -205,9 +210,7 @@ enum { constexpr int32_t RCT1_LIGHT_OFFSET = 4; #define MAIN_RIDE_WIDGETS \ - { WWT_FRAME, 0, 0, 315, 0, 206, 0xFFFFFFFF, STR_NONE }, \ - { WWT_CAPTION, 0, 1, 314, 1, 14, STR_RIDE_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, \ - { WWT_CLOSEBOX, 0, 303, 313, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, \ + WINDOW_SKELETON, \ { WWT_RESIZE, 1, 0, 315, 43, 179, 0xFFFFFFFF, STR_NONE }, \ { WWT_TAB, 1, 3, 33, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_VIEW_OF_RIDE_ATTRACTION_TIP }, \ { WWT_TAB, 1, 34, 64, 17, 46, IMAGE_TYPE_REMAP | SPR_TAB, STR_VEHICLE_DETAILS_AND_OPTIONS_TIP }, \ @@ -1841,8 +1844,10 @@ static void window_ride_anchor_border_widgets(rct_window* w) w->widgets[WIDX_PAGE_BACKGROUND].right = w->width - 1; w->widgets[WIDX_PAGE_BACKGROUND].bottom = w->height - 1; w->widgets[WIDX_TITLE].right = w->width - 2; - w->widgets[WIDX_CLOSE].left = w->width - 13; - w->widgets[WIDX_CLOSE].right = w->width - 3; + #ifndef LEFT_CLOSEBOX + w->widgets[WIDX_CLOSE].left = w->width - 13; + w->widgets[WIDX_CLOSE].right = w->width - 3; + #endif } #pragma region Main diff --git a/src/openrct2-ui/windows/RideConstruction.cpp b/src/openrct2-ui/windows/RideConstruction.cpp index c4bef2e452..cac39e121d 100644 --- a/src/openrct2-ui/windows/RideConstruction.cpp +++ b/src/openrct2-ui/windows/RideConstruction.cpp @@ -36,6 +36,10 @@ #include #include +#define WINDOW_TITLE STR_RIDE_CONSTRUCTION_WINDOW_TITLE +#define WH 394 +#define WW 166 + #pragma region Widgets // clang-format off @@ -88,9 +92,7 @@ validate_global_widx(WC_RIDE_CONSTRUCTION, WIDX_EXIT); validate_global_widx(WC_RIDE_CONSTRUCTION, WIDX_ROTATE); static rct_widget window_ride_construction_widgets[] = { - { WWT_FRAME, 0, 0, 165, 0, 393, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 164, 1, 14, STR_RIDE_CONSTRUCTION_WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 153, 163, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_GROUPBOX, 0, 3, 162, 17, 73, STR_RIDE_CONSTRUCTION_DIRECTION, STR_NONE }, { WWT_GROUPBOX, 0, 3, 162, 76, 116, STR_RIDE_CONSTRUCTION_SLOPE, STR_NONE }, { WWT_GROUPBOX, 0, 3, 162, 120, 160, STR_RIDE_CONSTRUCTION_ROLL_BANKING, STR_NONE }, diff --git a/src/openrct2-ui/windows/RideList.cpp b/src/openrct2-ui/windows/RideList.cpp index 55dfbca23d..0af7bd0ea0 100644 --- a/src/openrct2-ui/windows/RideList.cpp +++ b/src/openrct2-ui/windows/RideList.cpp @@ -25,6 +25,10 @@ #include #include +#define WINDOW_TITLE 0xFFFFFFFF +#define WH 240 +#define WW 340 + // clang-format off enum { PAGE_RIDES, @@ -52,9 +56,7 @@ enum WINDOW_RIDE_LIST_WIDGET_IDX { }; static rct_widget window_ride_list_widgets[] = { - { WWT_FRAME, 0, 0, 339, 0, 239, 0xFFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 338, 1, 14, 0xFFFFFFFF, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 327, 337, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 339, 43, 239, 0xFFFFFFFF, STR_NONE }, // tab page background { WWT_FLATBTN, 1, 315, 338, 60, 83, SPR_TOGGLE_OPEN_CLOSE, STR_OPEN_OR_CLOSE_ALL_RIDES }, // open / close all toggle { WWT_DROPDOWN, 1, 150, 273, 46, 57, 0xFFFFFFFF, STR_NONE }, // current information type @@ -510,8 +512,11 @@ static void window_ride_list_invalidate(rct_window* w) w->widgets[WIDX_PAGE_BACKGROUND].right = w->width - 1; w->widgets[WIDX_PAGE_BACKGROUND].bottom = w->height - 1; w->widgets[WIDX_TITLE].right = w->width - 2; - w->widgets[WIDX_CLOSE].left = w->width - 13; - w->widgets[WIDX_CLOSE].right = w->width - 3; + #ifndef LEFT_CLOSEBOX + // if close buttton is on the right then it must move + w->widgets[WIDX_CLOSE].left = w->width - 13; + w->widgets[WIDX_CLOSE].right = w->width - 3; + #endif w->widgets[WIDX_LIST].right = w->width - 26; w->widgets[WIDX_LIST].bottom = w->height - 15; w->widgets[WIDX_OPEN_CLOSE_ALL].right = w->width - 2; diff --git a/src/openrct2-ui/windows/SavePrompt.cpp b/src/openrct2-ui/windows/SavePrompt.cpp index da92452ebe..b4d0ea14f9 100644 --- a/src/openrct2-ui/windows/SavePrompt.cpp +++ b/src/openrct2-ui/windows/SavePrompt.cpp @@ -20,6 +20,10 @@ #include #include +#define WINDOW_TITLE 0 +#define WH 54 +#define WW 260 + // clang-format off enum WINDOW_SAVE_PROMPT_WIDGET_IDX { WIDX_BACKGROUND, @@ -32,9 +36,7 @@ enum WINDOW_SAVE_PROMPT_WIDGET_IDX { }; static rct_widget window_save_prompt_widgets[] = { - { WWT_FRAME, 0, 0, 259, 0, 53, STR_NONE, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 258, 1, 14, 0, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 247, 257, 2, 13, STR_CLOSE_X_WHITE, STR_CLOSE_WINDOW_TIP }, // close x button + WINDOW_SKELETON, { WWT_LABEL_CENTRED, 0, 2, 257, 19, 30, 0, STR_NONE }, // question/label { WWT_BUTTON, 0, 8, 85, 35, 48, STR_SAVE_PROMPT_SAVE, STR_NONE }, // save { WWT_BUTTON, 0, 91, 168, 35, 48, STR_SAVE_PROMPT_DONT_SAVE, STR_NONE }, // don't save @@ -53,7 +55,7 @@ enum WINDOW_QUIT_PROMPT_WIDGET_IDX { static rct_widget window_quit_prompt_widgets[] = { { WWT_FRAME, 0, 0, 176, 0, 37, STR_NONE, STR_NONE }, // panel / background { WWT_CAPTION, 0, 1, 175, 1, 14, STR_QUIT_GAME_PROMPT_TITLE, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 164, 174, 2, 13, STR_CLOSE_X_WHITE, STR_CLOSE_WINDOW_TIP }, // close x button + WINDOW_SKELETON, // close x button { WWT_BUTTON, 0, 8, 85, 19, 32, STR_OK, STR_NONE }, // ok { WWT_BUTTON, 0, 91, 168, 19, 32, STR_CANCEL, STR_NONE }, // cancel { WIDGETS_END }, @@ -169,6 +171,7 @@ rct_window* window_save_prompt_open() log_warning("Invalid save prompt mode %u", prompt_mode); return nullptr; } + window = window_create_centred( width, height, &window_save_prompt_events, WC_SAVE_PROMPT, WF_TRANSPARENT | WF_STICK_TO_FRONT); diff --git a/src/openrct2-ui/windows/Scenery.cpp b/src/openrct2-ui/windows/Scenery.cpp index e54006bb26..6c3db632c4 100644 --- a/src/openrct2-ui/windows/Scenery.cpp +++ b/src/openrct2-ui/windows/Scenery.cpp @@ -26,6 +26,9 @@ #include #include +#define WINDOW_TITLE 0xFFFFFFFF +#define WW 634 +#define WH 180 constexpr int32_t WINDOW_SCENERY_WIDTH = 634; constexpr int32_t WINDOW_SCENERY_HEIGHT = 180; constexpr int32_t SCENERY_BUTTON_WIDTH = 66; @@ -153,9 +156,7 @@ validate_global_widx(WC_SCENERY, WIDX_SCENERY_ROTATE_OBJECTS_BUTTON); validate_global_widx(WC_SCENERY, WIDX_SCENERY_EYEDROPPER_BUTTON); static rct_widget window_scenery_widgets[] = { - { WWT_FRAME, 0, 0, 633, 0, 141, 0xFFFFFFFF, STR_NONE }, // 1 0x009DE298 - { WWT_CAPTION, 0, 1, 632, 1, 14, 0xFFFFFFFF, STR_WINDOW_TITLE_TIP }, // 2 0x009DE2A8 - { WWT_CLOSEBOX, 0, 621, 631, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // 4 0x009DE2B8 + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 633, 43, 141, 0xFFFFFFFF, STR_NONE }, // 8 0x009DE2C8 { WWT_TAB, 1, 3, 33, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 10 0x009DE2D8 { WWT_TAB, 1, 34, 64, 17, 43, 0xFFFFFFFF, STR_STRING_DEFINED_TOOLTIP }, // 20 0x009DE2E8 @@ -451,7 +452,7 @@ rct_window* window_scenery_open() window_scenery_init(); window = window_create( - ScreenCoordsXY(context_get_width() - WINDOW_SCENERY_WIDTH, 0x1D), WINDOW_SCENERY_WIDTH, WINDOW_SCENERY_HEIGHT, + ScreenCoordsXY(context_get_width() - WW, 0x1D), WW, WH, &window_scenery_events, WC_SCENERY, WF_NO_SCROLLING); window->widgets = window_scenery_widgets; @@ -480,10 +481,10 @@ rct_window* window_scenery_open() gWindowSceneryPaintEnabled = 0; // repaint coloured scenery tool state gWindowSceneryEyedropperEnabled = false; - window->min_width = WINDOW_SCENERY_WIDTH; - window->max_width = WINDOW_SCENERY_WIDTH; - window->min_height = WINDOW_SCENERY_HEIGHT; - window->max_height = WINDOW_SCENERY_HEIGHT; + window->min_width = WW; + window->max_width = WW; + window->min_height = WH; + window->max_height = WH; return window; } @@ -769,10 +770,10 @@ static void window_scenery_update(rct_window* w) { if (input_get_state() != INPUT_STATE_SCROLL_LEFT) { - w->min_width = WINDOW_SCENERY_WIDTH; - w->max_width = WINDOW_SCENERY_WIDTH; - w->min_height = WINDOW_SCENERY_HEIGHT; - w->max_height = WINDOW_SCENERY_HEIGHT; + w->min_width = WW; + w->max_width = WW; + w->min_height = WH; + w->max_height = WH; } } else @@ -780,10 +781,10 @@ static void window_scenery_update(rct_window* w) int32_t windowHeight = std::min(463, w->scrolls[0].v_bottom + 62); if (context_get_height() < 600) windowHeight = std::min(374, windowHeight); - windowHeight = std::max(WINDOW_SCENERY_HEIGHT, windowHeight); + windowHeight = std::max(WH, windowHeight); - w->min_width = WINDOW_SCENERY_WIDTH; - w->max_width = WINDOW_SCENERY_WIDTH; + w->min_width = WW; + w->max_width = WW; w->min_height = windowHeight; w->max_height = windowHeight; } @@ -795,10 +796,10 @@ static void window_scenery_update(rct_window* w) w->scenery.hover_counter = 0; if (input_get_state() != INPUT_STATE_SCROLL_LEFT) { - w->min_width = WINDOW_SCENERY_WIDTH; - w->max_width = WINDOW_SCENERY_WIDTH; - w->min_height = WINDOW_SCENERY_HEIGHT; - w->max_height = WINDOW_SCENERY_HEIGHT; + w->min_width = WW; + w->max_width = WW; + w->min_height = WH; + w->max_height = WH; } } @@ -1088,8 +1089,10 @@ void window_scenery_invalidate(rct_window* w) window_scenery_widgets[WIDX_SCENERY_TAB_CONTENT_PANEL].right = w->width - 1; window_scenery_widgets[WIDX_SCENERY_TAB_CONTENT_PANEL].bottom = w->height - 1; window_scenery_widgets[WIDX_SCENERY_TITLE].right = w->width - 2; - window_scenery_widgets[WIDX_SCENERY_CLOSE].left = w->width - 13; - window_scenery_widgets[WIDX_SCENERY_CLOSE].right = window_scenery_widgets[WIDX_SCENERY_CLOSE].left + 10; + #ifndef LEFT_CLOSEBOX + window_scenery_widgets[WIDX_SCENERY_CLOSE].left = w->width - 13; + window_scenery_widgets[WIDX_SCENERY_CLOSE].right = window_scenery_widgets[WIDX_SCENERY_CLOSE].left + 10; + #endif window_scenery_widgets[WIDX_SCENERY_LIST].right = w->width - 26; window_scenery_widgets[WIDX_SCENERY_LIST].bottom = w->height - 14; diff --git a/src/openrct2-ui/windows/ShortcutKeyChange.cpp b/src/openrct2-ui/windows/ShortcutKeyChange.cpp index 18f76c516a..d13467ce1a 100644 --- a/src/openrct2-ui/windows/ShortcutKeyChange.cpp +++ b/src/openrct2-ui/windows/ShortcutKeyChange.cpp @@ -15,6 +15,7 @@ #include #include +#define WINDOW_TITLE STR_SHORTCUT_CHANGE_TITLE constexpr int32_t WW = 250; constexpr int32_t WH = 60; @@ -27,9 +28,7 @@ enum WINDOW_SHORTCUT_CHANGE_WIDGET_IDX { // 0x9DE4E0 static rct_widget window_shortcut_change_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, STR_NONE, STR_NONE }, - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_SHORTCUT_CHANGE_TITLE, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, WW-13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WIDGETS_END } }; diff --git a/src/openrct2-ui/windows/ShortcutKeys.cpp b/src/openrct2-ui/windows/ShortcutKeys.cpp index 647d4a8389..c8044c8bad 100644 --- a/src/openrct2-ui/windows/ShortcutKeys.cpp +++ b/src/openrct2-ui/windows/ShortcutKeys.cpp @@ -15,6 +15,7 @@ #include #include +#define WINDOW_TITLE STR_SHORTCUTS_TITLE constexpr int32_t WW = 420; constexpr int32_t WH = 280; @@ -32,9 +33,7 @@ enum WINDOW_SHORTCUT_WIDGET_IDX { // 0x9DE48C static rct_widget window_shortcut_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, STR_NONE, STR_NONE }, - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_SHORTCUTS_TITLE, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, WW-13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_SCROLL, 0, 4, WW - 5, 18, WH - 18, SCROLL_VERTICAL, STR_SHORTCUT_LIST_TIP }, { WWT_BUTTON, 0, 4, 153, WH-15, WH - 4, STR_SHORTCUT_ACTION_RESET, STR_SHORTCUT_ACTION_RESET_TIP }, { WIDGETS_END } @@ -262,8 +261,10 @@ static void window_shortcut_invalidate(rct_window* w) window_shortcut_widgets[WIDX_BACKGROUND].right = w->width - 1; window_shortcut_widgets[WIDX_BACKGROUND].bottom = w->height - 1; window_shortcut_widgets[WIDX_TITLE].right = w->width - 2; - window_shortcut_widgets[WIDX_CLOSE].right = w->width - 3; - window_shortcut_widgets[WIDX_CLOSE].left = w->width - 13; + #ifndef LEFT_CLOSEBOX + window_shortcut_widgets[WIDX_CLOSE].right = w->width - 3; + window_shortcut_widgets[WIDX_CLOSE].left = w->width - 13; + #endif window_shortcut_widgets[WIDX_SCROLL].right = w->width - 5; window_shortcut_widgets[WIDX_SCROLL].bottom = w->height - 18; window_shortcut_widgets[WIDX_RESET].top = w->height - 15; diff --git a/src/openrct2-ui/windows/Sign.cpp b/src/openrct2-ui/windows/Sign.cpp index 914c2caa89..ef43d5727f 100644 --- a/src/openrct2-ui/windows/Sign.cpp +++ b/src/openrct2-ui/windows/Sign.cpp @@ -25,6 +25,7 @@ #include #include +#define WINDOW_TITLE STR_SIGN constexpr int32_t WW = 113; constexpr int32_t WH = 96; @@ -42,9 +43,7 @@ enum WINDOW_SIGN_WIDGET_IDX { // 0x9AEE00 static rct_widget window_sign_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_SIGN, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + WINDOW_SKELETON, // close x button { WWT_VIEWPORT, 1, 3, WW - 26, 17, WH - 20, STR_VIEWPORT, STR_NONE }, // Viewport { WWT_FLATBTN, 1, WW - 25, WW - 2, 19, 42, SPR_RENAME, STR_CHANGE_SIGN_TEXT_TIP }, // change sign button { WWT_FLATBTN, 1, WW - 25, WW - 2, 67, 90, SPR_DEMOLISH, STR_DEMOLISH_SIGN_TIP }, // demolish button diff --git a/src/openrct2-ui/windows/Staff.cpp b/src/openrct2-ui/windows/Staff.cpp index 52e315324d..0b5124ab56 100644 --- a/src/openrct2-ui/windows/Staff.cpp +++ b/src/openrct2-ui/windows/Staff.cpp @@ -31,6 +31,7 @@ #include #include +#define WINDOW_TITLE STR_STRINGID constexpr int32_t WW = 190; constexpr int32_t WH = 180; @@ -70,9 +71,7 @@ validate_global_widx(WC_PEEP, WIDX_PATROL); validate_global_widx(WC_STAFF, WIDX_PICKUP); static rct_widget window_staff_overview_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, // Panel / Background - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_STRINGID, STR_WINDOW_TITLE_TIP }, // Title - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // Close x button + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, WW - 1, 43, WH - 1, 0xFFFFFFFF, STR_NONE }, // Resize { WWT_TAB, 1, 3, 33, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_STAFF_OVERVIEW_TIP },// Tab 1 { WWT_TAB, 1, 34, 64, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_STAFF_OPTIONS_TIP}, // Tab 2 @@ -92,7 +91,7 @@ static rct_widget window_staff_overview_widgets[] = { static rct_widget window_staff_options_widgets[] = { { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, // Panel / Background { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_STRINGID, STR_WINDOW_TITLE_TIP }, // Title - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // Close x button + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, WW - 1, 43, WH - 1, 0xFFFFFFFF, STR_NONE }, // Resize { WWT_TAB, 1, 3, 33, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_STAFF_OVERVIEW_TIP },// Tab 1 { WWT_TAB, 1, 34, 64, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_STAFF_OPTIONS_TIP}, // Tab 2 @@ -111,7 +110,7 @@ static rct_widget window_staff_options_widgets[] = { static rct_widget window_staff_stats_widgets[] = { { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, // Panel / Background { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_STRINGID, STR_WINDOW_TITLE_TIP }, // Title - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // Close x button + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, WW - 1, 43, WH - 1, 0xFFFFFFFF, STR_NONE }, // Resize { WWT_TAB, 1, 3, 33, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_STAFF_OVERVIEW_TIP },// Tab 1 { WWT_TAB, 1, 34, 64, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_STAFF_OPTIONS_TIP}, // Tab 2 @@ -789,8 +788,10 @@ void window_staff_stats_invalidate(rct_window* w) window_staff_stats_widgets[WIDX_TITLE].right = w->width - 2; - window_staff_stats_widgets[WIDX_CLOSE].left = w->width - 13; - window_staff_stats_widgets[WIDX_CLOSE].right = w->width - 3; + #ifndef LEFT_CLOSEBOX + window_staff_stats_widgets[WIDX_CLOSE].left = w->width - 13; + window_staff_stats_widgets[WIDX_CLOSE].right = w->width - 3; + #endif window_align_tabs(w, WIDX_TAB_1, WIDX_TAB_3); } @@ -865,9 +866,10 @@ void window_staff_options_invalidate(rct_window* w) window_staff_options_widgets[WIDX_RESIZE].bottom = w->height - 1; window_staff_options_widgets[WIDX_TITLE].right = w->width - 2; - - window_staff_options_widgets[WIDX_CLOSE].left = w->width - 13; - window_staff_options_widgets[WIDX_CLOSE].right = w->width - 3; + #ifndef LEFT_CLOSEBOX + window_staff_options_widgets[WIDX_CLOSE].left = w->width - 13; + window_staff_options_widgets[WIDX_CLOSE].right = w->width - 3; + #endif window_align_tabs(w, WIDX_TAB_1, WIDX_TAB_3); } @@ -907,8 +909,10 @@ void window_staff_overview_invalidate(rct_window* w) window_staff_overview_widgets[WIDX_BTM_LABEL].top = w->height - 13; window_staff_overview_widgets[WIDX_BTM_LABEL].bottom = w->height - 3; - window_staff_overview_widgets[WIDX_CLOSE].left = w->width - 13; - window_staff_overview_widgets[WIDX_CLOSE].right = w->width - 3; + #ifndef LEFT_CLOSEBOX + window_staff_overview_widgets[WIDX_CLOSE].left = w->width - 13; + window_staff_overview_widgets[WIDX_CLOSE].right = w->width - 3; + #endif window_staff_overview_widgets[WIDX_PICKUP].left = w->width - 25; window_staff_overview_widgets[WIDX_PICKUP].right = w->width - 2; diff --git a/src/openrct2-ui/windows/StaffFirePrompt.cpp b/src/openrct2-ui/windows/StaffFirePrompt.cpp index d9de15a672..2be1ceb500 100644 --- a/src/openrct2-ui/windows/StaffFirePrompt.cpp +++ b/src/openrct2-ui/windows/StaffFirePrompt.cpp @@ -16,6 +16,7 @@ #include #include +#define WINDOW_TITLE STR_SACK_STAFF constexpr int32_t WW = 200; constexpr int32_t WH = 100; @@ -30,9 +31,7 @@ enum WINDOW_STAFF_FIRE_WIDGET_IDX { // 0x9AFB4C static rct_widget window_staff_fire_widgets[] = { - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, STR_NONE, STR_NONE }, - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_SACK_STAFF, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, WW-13, WW - 3, 2, 13, STR_CLOSE_X_WHITE, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_BUTTON, 0, 10, 94, WH - 20, WH - 9, STR_YES, STR_NONE }, { WWT_BUTTON, 0, WW - 95, WW - 11, WH - 20, WH - 9, STR_SAVE_PROMPT_CANCEL, STR_NONE }, { WIDGETS_END } diff --git a/src/openrct2-ui/windows/StaffList.cpp b/src/openrct2-ui/windows/StaffList.cpp index e1226ce873..c44fc5fb33 100644 --- a/src/openrct2-ui/windows/StaffList.cpp +++ b/src/openrct2-ui/windows/StaffList.cpp @@ -104,15 +104,14 @@ enum WINDOW_STAFF_LIST_WIDGET_IDX { WIDX_STAFF_LIST_MAP, }; +#define WINDOW_TITLE STR_STAFF constexpr int32_t WW = 320; constexpr int32_t WH = 270; constexpr int32_t MAX_WW = 500; constexpr int32_t MAX_WH = 450; static rct_widget window_staff_list_widgets[] = { - { WWT_FRAME, 0, 0, 319, 0, 269, 0xFFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 318, 1, 14, STR_STAFF, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 307, 317, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close button + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 319, 43, 269, 0xFFFFFFFF, STR_NONE }, // tab content panel { WWT_TAB, 1, 3, 33, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_STAFF_HANDYMEN_TAB_TIP }, // handymen tab { WWT_TAB, 1, 34, 64, 17, 43, IMAGE_TYPE_REMAP | SPR_TAB, STR_STAFF_MECHANICS_TAB_TIP }, // mechanics tab @@ -544,8 +543,10 @@ void window_staff_list_invalidate(rct_window* w) window_staff_list_widgets[WIDX_STAFF_LIST_TAB_CONTENT_PANEL].right = w->width - 1; window_staff_list_widgets[WIDX_STAFF_LIST_TAB_CONTENT_PANEL].bottom = w->height - 1; window_staff_list_widgets[WIDX_STAFF_LIST_TITLE].right = w->width - 2; - window_staff_list_widgets[WIDX_STAFF_LIST_CLOSE].left = w->width - 2 - 11; - window_staff_list_widgets[WIDX_STAFF_LIST_CLOSE].right = w->width - 2 - 11 + 10; + #ifndef LEFT_CLOSEBOX + window_staff_list_widgets[WIDX_STAFF_LIST_CLOSE].left = w->width - 2 - 11; + window_staff_list_widgets[WIDX_STAFF_LIST_CLOSE].right = w->width - 2 - 11 + 10; + #endif window_staff_list_widgets[WIDX_STAFF_LIST_LIST].right = w->width - 4; window_staff_list_widgets[WIDX_STAFF_LIST_LIST].bottom = w->height - 15; window_staff_list_widgets[WIDX_STAFF_LIST_QUICK_FIRE].left = w->width - 77; diff --git a/src/openrct2-ui/windows/TextInput.cpp b/src/openrct2-ui/windows/TextInput.cpp index 720a2943f6..8efb093bb3 100644 --- a/src/openrct2-ui/windows/TextInput.cpp +++ b/src/openrct2-ui/windows/TextInput.cpp @@ -25,6 +25,7 @@ #include #include +#define WINDOW_TITLE STR_OPTIONS constexpr int32_t WW = 250; constexpr int32_t WH = 90; @@ -39,9 +40,7 @@ enum WINDOW_TEXT_INPUT_WIDGET_IDX { // 0x9DE4E0 static rct_widget window_text_input_widgets[] = { - { WWT_FRAME, 1, 0, WW - 1, 0, WH - 1, STR_NONE, STR_NONE }, - { WWT_CAPTION, 1, 1, WW - 2, 1, 14, STR_OPTIONS, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 1, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_BUTTON, 1, WW - 80, WW - 10, WH - 22, WH - 9, STR_CANCEL, STR_NONE }, { WWT_BUTTON, 1, 10, 80, WH - 22, WH - 9, STR_OK, STR_NONE }, { WIDGETS_END } diff --git a/src/openrct2-ui/windows/TileInspector.cpp b/src/openrct2-ui/windows/TileInspector.cpp index b64304918e..0e6e3d6ec9 100644 --- a/src/openrct2-ui/windows/TileInspector.cpp +++ b/src/openrct2-ui/windows/TileInspector.cpp @@ -203,6 +203,8 @@ enum WINDOW_TILE_INSPECTOR_WIDGET_IDX { WIDX_CORRUPT_BUTTON_CLAMP, }; +#define WINDOW_TITLE STR_TILE_INSPECTOR_TITLE + // Window sizes constexpr int32_t WW = 400; constexpr int32_t WH = 170; @@ -249,9 +251,7 @@ constexpr int32_t BUTTONH = 17; #define CHK(x, y) x, x + 13, y + 2, y + 15 #define MAIN_TILE_INSPECTOR_WIDGETS \ - { WWT_FRAME, 0, 0, WW - 1, 0, WH - 1, 0xFFFFFFFF, STR_NONE }, /* panel / background */ \ - { WWT_CAPTION, 0, 1, WW - 2, 1, 14, STR_TILE_INSPECTOR_TITLE, STR_WINDOW_TITLE_TIP }, /* title bar */ \ - { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, /* close x button */ \ + WINDOW_SKELETON, \ { WWT_SCROLL, 1, 3, WW - 4, 57, WH - PADDING_BOTTOM, 2, STR_NONE }, /* Element list */ \ SPINNER_WIDGETS (1, 20, 70, 23, 34, STR_NONE, STR_NONE), /* Spinner X (3 widgets) */ \ SPINNER_WIDGETS (1, 90, 140, 23, 34, STR_NONE, STR_NONE), /* Spinner Y (3 widgets) */ \ diff --git a/src/openrct2-ui/windows/TitleScenarioSelect.cpp b/src/openrct2-ui/windows/TitleScenarioSelect.cpp index 29e4d6c9d6..51df3f465c 100644 --- a/src/openrct2-ui/windows/TitleScenarioSelect.cpp +++ b/src/openrct2-ui/windows/TitleScenarioSelect.cpp @@ -1,4 +1,4 @@ -/***************************************************************************** + /***************************************************************************** * Copyright (c) 2014-2019 OpenRCT2 developers * * For a complete list of all authors, please refer to contributors.md @@ -24,6 +24,9 @@ #include #include +#define WINDOW_TITLE STR_SELECT_SCENARIO +#define WW 734 +#define WH 334 #define INITIAL_NUM_UNLOCKED_SCENARIOS 5 // clang-format off @@ -69,9 +72,7 @@ enum { }; static rct_widget window_scenarioselect_widgets[] = { - { WWT_FRAME, 0, 0, 733, 0, 333, 0xFFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 732, 1, 14, STR_SELECT_SCENARIO, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 721, 731, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + WINDOW_SKELETON, { WWT_IMGBTN, 1, 0, 733, 50, 333, 0xFFFFFFFF, STR_NONE }, // tab content panel { WWT_TAB, 1, 3, 93, 17, 50, IMAGE_TYPE_REMAP | SPR_TAB_LARGE, STR_NONE }, // tab 1 { WWT_TAB, 1, 94, 184, 17, 50, IMAGE_TYPE_REMAP | SPR_TAB_LARGE, STR_NONE }, // tab 2 @@ -420,8 +421,10 @@ static void window_scenarioselect_invalidate(rct_window* w) int32_t windowWidth = w->width; window_scenarioselect_widgets[WIDX_BACKGROUND].right = windowWidth - 1; window_scenarioselect_widgets[WIDX_TITLEBAR].right = windowWidth - 2; - window_scenarioselect_widgets[WIDX_CLOSE].left = windowWidth - 13; - window_scenarioselect_widgets[WIDX_CLOSE].right = windowWidth - 3; + #ifndef LEFT_CLOSEBOX + window_scenarioselect_widgets[WIDX_CLOSE].left = windowWidth - 13; + window_scenarioselect_widgets[WIDX_CLOSE].right = windowWidth - 3; + #endif window_scenarioselect_widgets[WIDX_TABCONTENT].right = windowWidth - 1; window_scenarioselect_widgets[WIDX_SCENARIOLIST].right = windowWidth - 179; diff --git a/src/openrct2-ui/windows/TrackDesignManage.cpp b/src/openrct2-ui/windows/TrackDesignManage.cpp index 42e87df5b9..1ac0594023 100644 --- a/src/openrct2-ui/windows/TrackDesignManage.cpp +++ b/src/openrct2-ui/windows/TrackDesignManage.cpp @@ -16,6 +16,10 @@ #include #include +#define WINDOW_TITLE STR_STRING +#define WH 44 +#define WW 250 + #pragma region Widgets // clang-format off @@ -31,9 +35,7 @@ enum { }; static rct_widget window_track_manage_widgets[] = { - { WWT_FRAME, 0, 0, 249, 0, 43, STR_NONE, STR_NONE }, - { WWT_CAPTION, 0, 1, 248, 1, 14, STR_STRING, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 237, 247, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_BUTTON, 0, 10, 119, 24, 35, STR_TRACK_MANAGE_RENAME, STR_NONE }, { WWT_BUTTON, 0, 130, 239, 24, 35, STR_TRACK_MANAGE_DELETE, STR_NONE }, { WIDGETS_END } @@ -42,7 +44,7 @@ static rct_widget window_track_manage_widgets[] = { static rct_widget window_track_delete_prompt_widgets[] = { { WWT_FRAME, 0, 0, 249, 0, 73, STR_NONE, STR_NONE }, { WWT_CAPTION, 0, 1, 248, 1, 14, STR_DELETE_FILE, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 237, 247, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_BUTTON, 0, 10, 119, 54, 65, STR_TRACK_MANAGE_DELETE, STR_NONE }, { WWT_BUTTON, 0, 130, 239, 54, 65, STR_CANCEL, STR_NONE }, { WIDGETS_END } diff --git a/src/openrct2-ui/windows/TrackDesignPlace.cpp b/src/openrct2-ui/windows/TrackDesignPlace.cpp index 17abbf112e..d567e9e4e1 100644 --- a/src/openrct2-ui/windows/TrackDesignPlace.cpp +++ b/src/openrct2-ui/windows/TrackDesignPlace.cpp @@ -32,6 +32,9 @@ using namespace OpenRCT2; +#define WINDOW_TITLE STR_STRING +#define WH 124 +#define WW 200 constexpr int16_t TRACK_MINI_PREVIEW_WIDTH = 168; constexpr int16_t TRACK_MINI_PREVIEW_HEIGHT = 78; constexpr uint16_t TRACK_MINI_PREVIEW_SIZE = TRACK_MINI_PREVIEW_WIDTH * TRACK_MINI_PREVIEW_HEIGHT; @@ -57,9 +60,7 @@ enum { validate_global_widx(WC_TRACK_DESIGN_PLACE, WIDX_ROTATE); static rct_widget window_track_place_widgets[] = { - { WWT_FRAME, 0, 0, 199, 0, 123, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 198, 1, 14, STR_STRING, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 187, 197, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_FLATBTN, 0, 173, 196, 83, 106, SPR_ROTATE_ARROW, STR_ROTATE_90_TIP }, { WWT_FLATBTN, 0, 173, 196, 59, 82, SPR_MIRROR_ARROW, STR_MIRROR_IMAGE_TIP }, { WWT_BUTTON, 0, 4, 195, 109, 120, STR_SELECT_A_DIFFERENT_DESIGN, STR_GO_BACK_TO_DESIGN_SELECTION_WINDOW_TIP }, diff --git a/src/openrct2-ui/windows/TrackList.cpp b/src/openrct2-ui/windows/TrackList.cpp index fcd7277999..27e03b9572 100644 --- a/src/openrct2-ui/windows/TrackList.cpp +++ b/src/openrct2-ui/windows/TrackList.cpp @@ -24,6 +24,10 @@ #include #include +#define WINDOW_TITLE STR_SELECT_DESIGN +#define WH 431 +#define WW 600 + // clang-format off enum { WIDX_BACKGROUND, @@ -41,9 +45,7 @@ enum { validate_global_widx(WC_TRACK_DESIGN_LIST, WIDX_ROTATE); static rct_widget window_track_list_widgets[] = { - { WWT_FRAME, 0, 0, 599, 0, 430, 0xFFFFFFFF, STR_NONE }, - { WWT_CAPTION, 0, 1, 598, 1, 14, STR_SELECT_DESIGN, STR_WINDOW_TITLE_TIP }, - { WWT_CLOSEBOX, 0, 587, 597, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, + WINDOW_SKELETON, { WWT_TABLE_HEADER, 0, 4, 221, 18, 30, STR_SELECT_OTHER_RIDE, STR_NONE }, { WWT_TEXT_BOX, 1, 4, 127, 32, 44, STR_NONE, STR_NONE }, { WWT_BUTTON, 0, 130, 221, 32, 44, STR_OBJECT_SEARCH_CLEAR, STR_NONE }, diff --git a/src/openrct2-ui/windows/Viewport.cpp b/src/openrct2-ui/windows/Viewport.cpp index 23526685d2..0784398c45 100644 --- a/src/openrct2-ui/windows/Viewport.cpp +++ b/src/openrct2-ui/windows/Viewport.cpp @@ -15,6 +15,9 @@ #include #include +#define WINDOW_TITLE STR_VIEWPORT_NO +#define WH 0 +#define WW 0 constexpr int32_t INITIAL_WIDTH = 500; constexpr int32_t INITIAL_HEIGHT = 350; @@ -31,9 +34,7 @@ enum { }; static rct_widget window_viewport_widgets[] = { - { WWT_FRAME, 0, 0, 0, 0, 0, 0xFFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 0, 1, 14, STR_VIEWPORT_NO, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 0, 0, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + WINDOW_SKELETON, { WWT_RESIZE, 1, 0, 0, 14, 0, 0xFFFFFFFF, STR_NONE }, // resize { WWT_VIEWPORT, 0, 3, 0, 17, 0, 0xFFFFFFFF, STR_NONE }, // viewport @@ -116,8 +117,10 @@ static void window_viewport_anchor_border_widgets(rct_window* w) w->widgets[WIDX_PAGE_BACKGROUND].right = w->width - 1; w->widgets[WIDX_PAGE_BACKGROUND].bottom = w->height - 1; w->widgets[WIDX_TITLE].right = w->width - 2; - w->widgets[WIDX_CLOSE].left = w->width - 13; - w->widgets[WIDX_CLOSE].right = w->width - 3; + #ifndef LEFT_CLOSEBOX + w->widgets[WIDX_CLOSE].left = w->width - 13; + w->widgets[WIDX_CLOSE].right = w->width - 3; + #endif } static void window_viewport_mouseup(rct_window* w, rct_widgetindex widgetIndex) diff --git a/src/openrct2-ui/windows/Water.cpp b/src/openrct2-ui/windows/Water.cpp index f5f304ea2c..c924859e5c 100644 --- a/src/openrct2-ui/windows/Water.cpp +++ b/src/openrct2-ui/windows/Water.cpp @@ -16,6 +16,10 @@ #include #include +#define WINDOW_TITLE STR_WATER +#define WH 77 +#define WW 76 + // clang-format off enum WINDOW_WATER_WIDGET_IDX { WIDX_BACKGROUND, @@ -27,9 +31,7 @@ enum WINDOW_WATER_WIDGET_IDX { }; static rct_widget window_water_widgets[] = { - { WWT_FRAME, 0, 0, 75, 0, 76, 0xFFFFFFFF, STR_NONE }, // panel / background - { WWT_CAPTION, 0, 1, 74, 1, 14, STR_WATER, STR_WINDOW_TITLE_TIP }, // title bar - { WWT_CLOSEBOX, 0, 63, 73, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP }, // close x button + WINDOW_SKELETON, { WWT_IMGBTN, 0, 16, 59, 17, 48, SPR_LAND_TOOL_SIZE_0, STR_NONE }, // preview box { WWT_TRNBTN, 2, 17, 32, 18, 33, IMAGE_TYPE_REMAP | SPR_LAND_TOOL_DECREASE, STR_ADJUST_SMALLER_WATER_TIP }, // decrement size { WWT_TRNBTN, 2, 43, 58, 32, 47, IMAGE_TYPE_REMAP | SPR_LAND_TOOL_INCREASE, STR_ADJUST_LARGER_WATER_TIP }, // increment size diff --git a/src/openrct2-ui/windows/Window.h b/src/openrct2-ui/windows/Window.h index f98281c46f..3589007301 100644 --- a/src/openrct2-ui/windows/Window.h +++ b/src/openrct2-ui/windows/Window.h @@ -194,3 +194,17 @@ void window_tooltip_open(rct_window* widgetWindow, rct_widgetindex widgetIndex, void window_tooltip_close(); rct_window* window_scenery_scatter_open(); + +#ifndef LEFT_CLOSEBOX + // close button on right of window + #define WINDOW_SKELETON \ + { WWT_FRAME, 0, 0, WW - 1, 0, WH, 0xFFFFFFFF, STR_NONE }, \ + { WWT_CAPTION, 0, 1, WW - 2, 1, 14, WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, \ + { WWT_CLOSEBOX, 0, WW - 13, WW - 3, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP } +#else + // close button on left of window + #define WINDOW_SKELETON \ + { WWT_FRAME, 0, 0, WW - 1, 0, WH, 0xFFFFFFFF, STR_NONE }, \ + { WWT_CAPTION, 0, 13, WW - 2, 1, 14, WINDOW_TITLE, STR_WINDOW_TITLE_TIP }, \ + { WWT_CLOSEBOX, 0, 2, 12, 2, 13, STR_CLOSE_X, STR_CLOSE_WINDOW_TIP } +#endif