From 4a9529946bc285e56c0058feeb86f6a0e58c0779 Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 01:37:23 -0700 Subject: [PATCH 01/18] Extract variables for positions of various elements --- appOPHD/UI/Reports/MineReport.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index 899ddc815..878acb087 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -394,19 +394,21 @@ void MineReport::drawOreProductionPane(const NAS2D::Point& origin) const int barWidth = renderer.size().x - origin.x - 10; for (size_t i = 0; i < 4; ++i) { - renderer.drawSubImage(uiIcons, origin + NAS2D::Vector{0, 30 + offsetY}, ResourceImageRectsOre[i]); - renderer.drawText(fontBold, ResourceNamesOre[i], origin + NAS2D::Vector{20, 30 + offsetY}, constants::PrimaryTextColor); + const auto resourceIconPosition = origin + NAS2D::Vector{0, 30 + offsetY}; + renderer.drawSubImage(uiIcons, resourceIconPosition, ResourceImageRectsOre[i]); + renderer.drawText(fontBold, ResourceNamesOre[i], resourceIconPosition + NAS2D::Vector{20, 0}, constants::PrimaryTextColor); + const auto progressBarPosition = origin + NAS2D::Vector{0, 50 + offsetY}; + const auto progressBarArea = NAS2D::Rectangle{progressBarPosition, {barWidth, 25}}; drawProgressBar( oreAvailable.resources[i], oreTotalYield.resources[i], - {{origin.x, origin.y + 50 + offsetY}, {barWidth, 25}} + progressBarArea ); const std::string str = std::to_string(oreAvailable.resources[i]) + " of " + std::to_string(oreTotalYield.resources[i]) + " Remaining"; - const int strOffsetX = (barWidth / 2) - (fontBold.width(str) / 2); - const int strOffsetY = (fontBold.height() / 2) - 1; - renderer.drawText(fontBold, str, origin + NAS2D::Vector{strOffsetX, 50 + offsetY + strOffsetY}); + const auto strOffset = NAS2D::Vector{(barWidth - fontBold.width(str)) / 2, fontBold.height() / 2 - 1}; + renderer.drawText(fontBold, str, progressBarPosition + strOffset); offsetY += 70; } From 9078ce0e3f714c7153f741b35c4d7c0dd8ff8425 Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 01:40:02 -0700 Subject: [PATCH 02/18] Update local variable to `progressBarSize` --- appOPHD/UI/Reports/MineReport.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index 878acb087..a59620fc1 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -391,7 +391,7 @@ void MineReport::drawOreProductionPane(const NAS2D::Point& origin) const auto oreTotalYield = mine.totalYield(); int offsetY = 0; - const int barWidth = renderer.size().x - origin.x - 10; + const auto progressBarSize = NAS2D::Vector{renderer.size().x - origin.x - 10, 25}; for (size_t i = 0; i < 4; ++i) { const auto resourceIconPosition = origin + NAS2D::Vector{0, 30 + offsetY}; @@ -399,7 +399,7 @@ void MineReport::drawOreProductionPane(const NAS2D::Point& origin) renderer.drawText(fontBold, ResourceNamesOre[i], resourceIconPosition + NAS2D::Vector{20, 0}, constants::PrimaryTextColor); const auto progressBarPosition = origin + NAS2D::Vector{0, 50 + offsetY}; - const auto progressBarArea = NAS2D::Rectangle{progressBarPosition, {barWidth, 25}}; + const auto progressBarArea = NAS2D::Rectangle{progressBarPosition, progressBarSize}; drawProgressBar( oreAvailable.resources[i], oreTotalYield.resources[i], @@ -407,7 +407,7 @@ void MineReport::drawOreProductionPane(const NAS2D::Point& origin) ); const std::string str = std::to_string(oreAvailable.resources[i]) + " of " + std::to_string(oreTotalYield.resources[i]) + " Remaining"; - const auto strOffset = NAS2D::Vector{(barWidth - fontBold.width(str)) / 2, fontBold.height() / 2 - 1}; + const auto strOffset = NAS2D::Vector{(progressBarSize.x - fontBold.width(str)) / 2, fontBold.height() / 2 - 1}; renderer.drawText(fontBold, str, progressBarPosition + strOffset); offsetY += 70; From 54763faae16ea34e54ec1ce6467b282b99f894bc Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 01:41:18 -0700 Subject: [PATCH 03/18] Center progress bar text vertically --- appOPHD/UI/Reports/MineReport.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index a59620fc1..ff7d514f3 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -407,7 +407,7 @@ void MineReport::drawOreProductionPane(const NAS2D::Point& origin) ); const std::string str = std::to_string(oreAvailable.resources[i]) + " of " + std::to_string(oreTotalYield.resources[i]) + " Remaining"; - const auto strOffset = NAS2D::Vector{(progressBarSize.x - fontBold.width(str)) / 2, fontBold.height() / 2 - 1}; + const auto strOffset = NAS2D::Vector{(progressBarSize.x - fontBold.width(str)) / 2, (progressBarSize.y - fontBold.height()) / 2}; renderer.drawText(fontBold, str, progressBarPosition + strOffset); offsetY += 70; From 95609d98ff00f738187a0a73315b414dbbcf2ff6 Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 01:55:42 -0700 Subject: [PATCH 04/18] Extract variable for `resourceNameOffset` --- appOPHD/UI/Reports/MineReport.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index ff7d514f3..175ec03e8 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -396,7 +396,8 @@ void MineReport::drawOreProductionPane(const NAS2D::Point& origin) { const auto resourceIconPosition = origin + NAS2D::Vector{0, 30 + offsetY}; renderer.drawSubImage(uiIcons, resourceIconPosition, ResourceImageRectsOre[i]); - renderer.drawText(fontBold, ResourceNamesOre[i], resourceIconPosition + NAS2D::Vector{20, 0}, constants::PrimaryTextColor); + const auto resourceNameOffset = NAS2D::Vector{ResourceImageRectsOre[i].size.x + constants::MarginTight + 2, 0}; + renderer.drawText(fontBold, ResourceNamesOre[i], resourceIconPosition + resourceNameOffset, constants::PrimaryTextColor); const auto progressBarPosition = origin + NAS2D::Vector{0, 50 + offsetY}; const auto progressBarArea = NAS2D::Rectangle{progressBarPosition, progressBarSize}; From ffa2fc277a9ebb3cbb08e35caa3b4f7b9942a296 Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 02:00:47 -0700 Subject: [PATCH 05/18] Make `progressBarPosition` relative to `resourceIconPosition` --- appOPHD/UI/Reports/MineReport.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index 175ec03e8..f52d962cc 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -399,7 +399,7 @@ void MineReport::drawOreProductionPane(const NAS2D::Point& origin) const auto resourceNameOffset = NAS2D::Vector{ResourceImageRectsOre[i].size.x + constants::MarginTight + 2, 0}; renderer.drawText(fontBold, ResourceNamesOre[i], resourceIconPosition + resourceNameOffset, constants::PrimaryTextColor); - const auto progressBarPosition = origin + NAS2D::Vector{0, 50 + offsetY}; + const auto progressBarPosition = resourceIconPosition + NAS2D::Vector{0, 20}; const auto progressBarArea = NAS2D::Rectangle{progressBarPosition, progressBarSize}; drawProgressBar( oreAvailable.resources[i], From 6760d2da25a29651343d6a93f62ee6f5a35d30ae Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 02:15:12 -0700 Subject: [PATCH 06/18] Position progress bar using size of resource name line --- appOPHD/UI/Reports/MineReport.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index f52d962cc..0ba88cc68 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -399,7 +399,8 @@ void MineReport::drawOreProductionPane(const NAS2D::Point& origin) const auto resourceNameOffset = NAS2D::Vector{ResourceImageRectsOre[i].size.x + constants::MarginTight + 2, 0}; renderer.drawText(fontBold, ResourceNamesOre[i], resourceIconPosition + resourceNameOffset, constants::PrimaryTextColor); - const auto progressBarPosition = resourceIconPosition + NAS2D::Vector{0, 20}; + const auto resourceNameHeight = std::max({ResourceImageRectsOre[i].size.y, fontBold.height(), chkResources[i].size().y}); + const auto progressBarPosition = resourceIconPosition + NAS2D::Vector{0, resourceNameHeight + constants::MarginTight + 2}; const auto progressBarArea = NAS2D::Rectangle{progressBarPosition, progressBarSize}; drawProgressBar( oreAvailable.resources[i], From c7f7e0616fe16e99a2d4e2a0f61774fae5c7b5ca Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 02:41:28 -0700 Subject: [PATCH 07/18] Allow progress bar to enlarge to fit text overlay --- appOPHD/UI/Reports/MineReport.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index 0ba88cc68..a47f24466 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -391,7 +391,7 @@ void MineReport::drawOreProductionPane(const NAS2D::Point& origin) const auto oreTotalYield = mine.totalYield(); int offsetY = 0; - const auto progressBarSize = NAS2D::Vector{renderer.size().x - origin.x - 10, 25}; + const auto progressBarSize = NAS2D::Vector{renderer.size().x - origin.x - 10, std::max(25, fontBold.height() + constants::MarginTight * 2)}; for (size_t i = 0; i < 4; ++i) { const auto resourceIconPosition = origin + NAS2D::Vector{0, 30 + offsetY}; From 3fb8cfa5bf2e04688cc16fa71f9fac8fd832858d Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 02:43:08 -0700 Subject: [PATCH 08/18] Simplify calculation for vertically centered text --- appOPHD/UI/Reports/MineReport.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index a47f24466..2abd5e939 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -409,7 +409,7 @@ void MineReport::drawOreProductionPane(const NAS2D::Point& origin) ); const std::string str = std::to_string(oreAvailable.resources[i]) + " of " + std::to_string(oreTotalYield.resources[i]) + " Remaining"; - const auto strOffset = NAS2D::Vector{(progressBarSize.x - fontBold.width(str)) / 2, (progressBarSize.y - fontBold.height()) / 2}; + const auto strOffset = (progressBarSize - fontBold.size(str)) / 2; renderer.drawText(fontBold, str, progressBarPosition + strOffset); offsetY += 70; From facaf4f6b4292944c1ffa4e01fe8940a87e805d3 Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 03:37:56 -0700 Subject: [PATCH 09/18] Update variable for `resourceOffset` --- appOPHD/UI/Reports/MineReport.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index 2abd5e939..70012ef9c 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -390,11 +390,11 @@ void MineReport::drawOreProductionPane(const NAS2D::Point& origin) const auto oreAvailable = mine.availableResources(); const auto oreTotalYield = mine.totalYield(); - int offsetY = 0; + auto resourceOffset = NAS2D::Vector{0, 30}; const auto progressBarSize = NAS2D::Vector{renderer.size().x - origin.x - 10, std::max(25, fontBold.height() + constants::MarginTight * 2)}; for (size_t i = 0; i < 4; ++i) { - const auto resourceIconPosition = origin + NAS2D::Vector{0, 30 + offsetY}; + const auto resourceIconPosition = origin + resourceOffset; renderer.drawSubImage(uiIcons, resourceIconPosition, ResourceImageRectsOre[i]); const auto resourceNameOffset = NAS2D::Vector{ResourceImageRectsOre[i].size.x + constants::MarginTight + 2, 0}; renderer.drawText(fontBold, ResourceNamesOre[i], resourceIconPosition + resourceNameOffset, constants::PrimaryTextColor); @@ -412,7 +412,7 @@ void MineReport::drawOreProductionPane(const NAS2D::Point& origin) const auto strOffset = (progressBarSize - fontBold.size(str)) / 2; renderer.drawText(fontBold, str, progressBarPosition + strOffset); - offsetY += 70; + resourceOffset.y += 70; } } From c8f1c5e65b67638beed363f8cf355c8da6134ef5 Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 03:41:16 -0700 Subject: [PATCH 10/18] Make spacing between resource sections depend on section size --- appOPHD/UI/Reports/MineReport.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index 70012ef9c..ac792956e 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -412,7 +412,7 @@ void MineReport::drawOreProductionPane(const NAS2D::Point& origin) const auto strOffset = (progressBarSize - fontBold.size(str)) / 2; renderer.drawText(fontBold, str, progressBarPosition + strOffset); - resourceOffset.y += 70; + resourceOffset.y += resourceNameHeight + progressBarSize.y + constants::Margin + 23; } } From b8917fbf571c779dd2438d62cb069973e891de25 Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 03:47:53 -0700 Subject: [PATCH 11/18] Extract variable `lineOrigin` --- appOPHD/UI/Reports/MineReport.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index ac792956e..61b48560e 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -384,7 +384,8 @@ void MineReport::drawOreProductionPane(const NAS2D::Point& origin) auto& renderer = Utility::get(); renderer.drawText(fontMediumBold, "Ore Production", origin, constants::PrimaryTextColor); - renderer.drawLine(origin + NAS2D::Vector{0, 21}, NAS2D::Point{renderer.size().x - 10, origin.y + 21}, constants::PrimaryTextColor, 1); + const auto lineOrigin = origin + NAS2D::Vector{0, 21}; + renderer.drawLine(lineOrigin, lineOrigin + NAS2D::Vector{renderer.size().x - lineOrigin.x - 10, 0}, constants::PrimaryTextColor, 1); const auto& mine = mSelectedFacility->mine(); const auto oreAvailable = mine.availableResources(); From b9f45887b90840af2c3ca6459190e7a856e7dc64 Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 03:49:28 -0700 Subject: [PATCH 12/18] Make line position depend on section title font size --- appOPHD/UI/Reports/MineReport.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index 61b48560e..874c41b46 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -384,7 +384,7 @@ void MineReport::drawOreProductionPane(const NAS2D::Point& origin) auto& renderer = Utility::get(); renderer.drawText(fontMediumBold, "Ore Production", origin, constants::PrimaryTextColor); - const auto lineOrigin = origin + NAS2D::Vector{0, 21}; + const auto lineOrigin = origin + NAS2D::Vector{0, fontMediumBold.height() + 1}; renderer.drawLine(lineOrigin, lineOrigin + NAS2D::Vector{renderer.size().x - lineOrigin.x - 10, 0}, constants::PrimaryTextColor, 1); const auto& mine = mSelectedFacility->mine(); From 34b0000b8129edaa1a9188d31222e025efec6a42 Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 04:12:12 -0700 Subject: [PATCH 13/18] Extract variable `lineOffset` --- appOPHD/UI/Reports/MineReport.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index 874c41b46..2f7b082ab 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -384,7 +384,8 @@ void MineReport::drawOreProductionPane(const NAS2D::Point& origin) auto& renderer = Utility::get(); renderer.drawText(fontMediumBold, "Ore Production", origin, constants::PrimaryTextColor); - const auto lineOrigin = origin + NAS2D::Vector{0, fontMediumBold.height() + 1}; + const auto lineOffset = NAS2D::Vector{0, fontMediumBold.height() + 1}; + const auto lineOrigin = origin + lineOffset; renderer.drawLine(lineOrigin, lineOrigin + NAS2D::Vector{renderer.size().x - lineOrigin.x - 10, 0}, constants::PrimaryTextColor, 1); const auto& mine = mSelectedFacility->mine(); From 7918eac843b89944eabe12d8c0698be1ca1325d6 Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 04:13:54 -0700 Subject: [PATCH 14/18] Set resource offset based on size of title section and dividing line --- appOPHD/UI/Reports/MineReport.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index 2f7b082ab..b60bce118 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -392,7 +392,7 @@ void MineReport::drawOreProductionPane(const NAS2D::Point& origin) const auto oreAvailable = mine.availableResources(); const auto oreTotalYield = mine.totalYield(); - auto resourceOffset = NAS2D::Vector{0, 30}; + auto resourceOffset = lineOffset + NAS2D::Vector{0, 1 + constants::Margin + 2}; const auto progressBarSize = NAS2D::Vector{renderer.size().x - origin.x - 10, std::max(25, fontBold.height() + constants::MarginTight * 2)}; for (size_t i = 0; i < 4; ++i) { From 63059032192abb4ffc02783008bcfe20a9ce96a6 Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 05:02:30 -0700 Subject: [PATCH 15/18] Right align resource checkboxes based on max width --- appOPHD/UI/Reports/MineReport.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index b60bce118..cf913debf 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -25,6 +25,7 @@ #include #include #include +#include using namespace NAS2D; @@ -159,7 +160,9 @@ void MineReport::onResize() btnAddTruck.position({positionX, renderer.size().y - 130}); btnRemoveTruck.position({positionX, renderer.size().y - 95}); - positionX -= 20; + const auto checkBoxWidths = std::views::transform(chkResources, [](const CheckBox& checkBox){ return checkBox.size().x; }); + const auto maxCheckBoxWidth = std::ranges::max(checkBoxWidths); + positionX = area().size.x - maxCheckBoxWidth - 10; chkResources[0].position({positionX, chkResources[0].position().y}); chkResources[1].position({positionX, chkResources[1].position().y}); chkResources[2].position({positionX, chkResources[2].position().y}); From fe5cb6c2d155634e4e1d9ecbfc560059c405bfe8 Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 05:05:07 -0700 Subject: [PATCH 16/18] Rename local variables and mark as `const` --- appOPHD/UI/Reports/MineReport.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index cf913debf..ebb98c791 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -151,22 +151,22 @@ void MineReport::onResize() lstMineFacilities.size({area().center().x - 20, area().size.y - 51}); - int positionX = area().size.x - 150; - btnIdle.position({positionX, btnIdle.position().y}); - btnDigNewLevel.position({positionX, btnDigNewLevel.position().y}); - btnTakeMeThere.position({positionX, btnTakeMeThere.position().y}); + const auto buttonPositionX = area().size.x - 150; + btnIdle.position({buttonPositionX, btnIdle.position().y}); + btnDigNewLevel.position({buttonPositionX, btnDigNewLevel.position().y}); + btnTakeMeThere.position({buttonPositionX, btnTakeMeThere.position().y}); auto& renderer = NAS2D::Utility::get(); - btnAddTruck.position({positionX, renderer.size().y - 130}); - btnRemoveTruck.position({positionX, renderer.size().y - 95}); + btnAddTruck.position({buttonPositionX, renderer.size().y - 130}); + btnRemoveTruck.position({buttonPositionX, renderer.size().y - 95}); const auto checkBoxWidths = std::views::transform(chkResources, [](const CheckBox& checkBox){ return checkBox.size().x; }); const auto maxCheckBoxWidth = std::ranges::max(checkBoxWidths); - positionX = area().size.x - maxCheckBoxWidth - 10; - chkResources[0].position({positionX, chkResources[0].position().y}); - chkResources[1].position({positionX, chkResources[1].position().y}); - chkResources[2].position({positionX, chkResources[2].position().y}); - chkResources[3].position({positionX, chkResources[3].position().y}); + const auto checkBoxPositionX = area().size.x - maxCheckBoxWidth - 10; + chkResources[0].position({checkBoxPositionX, chkResources[0].position().y}); + chkResources[1].position({checkBoxPositionX, chkResources[1].position().y}); + chkResources[2].position({checkBoxPositionX, chkResources[2].position().y}); + chkResources[3].position({checkBoxPositionX, chkResources[3].position().y}); } From daabf9ca9b0a17c78c9e0f5a0876c553768ba790 Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 05:19:58 -0700 Subject: [PATCH 17/18] Dynamically position resource checkbox Y positions --- appOPHD/UI/Reports/MineReport.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index ebb98c791..74f5acfc9 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -95,10 +95,11 @@ MineReport::MineReport() : add(btnDigNewLevel, {0, 75}); add(btnTakeMeThere, {0, 110}); - add(chkResources[0], {0, 210}); - add(chkResources[1], {0, 280}); - add(chkResources[2], {0, 350}); - add(chkResources[3], {0, 420}); + const auto checkBoxOriginY = 170 + fontMediumBold.height() + 10 + 10; + add(chkResources[0], {0, checkBoxOriginY}); + add(chkResources[1], {0, checkBoxOriginY + 70}); + add(chkResources[2], {0, checkBoxOriginY + 70 * 2}); + add(chkResources[3], {0, checkBoxOriginY + 70 * 3}); // Truck Management Pane btnAddTruck.size({140, 30}); From 9f753e4d2c084b17cad5f868ffd7ad20af371d75 Mon Sep 17 00:00:00 2001 From: Daniel Stevens Date: Tue, 25 Feb 2025 05:27:38 -0700 Subject: [PATCH 18/18] Improve dynamic positioning of resource checkboxes --- appOPHD/UI/Reports/MineReport.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/appOPHD/UI/Reports/MineReport.cpp b/appOPHD/UI/Reports/MineReport.cpp index 74f5acfc9..94ae1eb5e 100644 --- a/appOPHD/UI/Reports/MineReport.cpp +++ b/appOPHD/UI/Reports/MineReport.cpp @@ -96,10 +96,13 @@ MineReport::MineReport() : add(btnTakeMeThere, {0, 110}); const auto checkBoxOriginY = 170 + fontMediumBold.height() + 10 + 10; + const auto resourceNameHeight = std::max({ResourceImageRectsOre[0].size.y, fontBold.height(), chkResources[0].size().y}); + const auto resourceProgressBarHeight = std::max(25, fontBold.height() + constants::MarginTight * 2); + const auto checkBoxSpacingY = resourceNameHeight + resourceProgressBarHeight + constants::Margin + 23; add(chkResources[0], {0, checkBoxOriginY}); - add(chkResources[1], {0, checkBoxOriginY + 70}); - add(chkResources[2], {0, checkBoxOriginY + 70 * 2}); - add(chkResources[3], {0, checkBoxOriginY + 70 * 3}); + add(chkResources[1], {0, checkBoxOriginY + checkBoxSpacingY}); + add(chkResources[2], {0, checkBoxOriginY + checkBoxSpacingY * 2}); + add(chkResources[3], {0, checkBoxOriginY + checkBoxSpacingY * 3}); // Truck Management Pane btnAddTruck.size({140, 30});