From 721e05d5e0eeddbc42abcd656b85229e576c14bf Mon Sep 17 00:00:00 2001 From: obligaron Date: Thu, 25 Nov 2021 00:58:20 +0100 Subject: [PATCH] Add DrawStringWithColors support to UiListItem --- Source/DiabloUI/diabloui.cpp | 6 ++++-- Source/DiabloUI/ui_item.h | 10 ++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Source/DiabloUI/diabloui.cpp b/Source/DiabloUI/diabloui.cpp index d5b035484..0dcbd8670 100644 --- a/Source/DiabloUI/diabloui.cpp +++ b/Source/DiabloUI/diabloui.cpp @@ -15,7 +15,6 @@ #include "controls/controller.h" #include "controls/menu_controls.h" #include "dx.h" -#include "engine/render/text_render.hpp" #include "hwcursor.hpp" #include "palette.h" #include "utils/display.h" @@ -802,7 +801,10 @@ void Render(const UiList *uiList) DrawSelector(rect); Rectangle rectangle { { rect.x, rect.y }, { rect.w, rect.h } }; - DrawString(out, item->m_text, rectangle, uiList->m_iFlags | item->uiFlags, uiList->spacing()); + if (item->args.size() == 0) + DrawString(out, item->m_text, rectangle, uiList->m_iFlags | item->uiFlags, uiList->spacing()); + else + DrawStringWithColors(out, item->m_text, item->args, rectangle, uiList->m_iFlags | item->uiFlags, uiList->spacing()); } } diff --git a/Source/DiabloUI/ui_item.h b/Source/DiabloUI/ui_item.h index 06ddf88af..e7c6546a4 100644 --- a/Source/DiabloUI/ui_item.h +++ b/Source/DiabloUI/ui_item.h @@ -7,6 +7,7 @@ #include "DiabloUI/art.h" #include "DiabloUI/ui_flags.hpp" +#include "engine/render/text_render.hpp" #include "utils/enum_traits.h" #include "utils/stubs.h" @@ -249,10 +250,19 @@ public: { } + UiListItem(const char *text, std::vector &args, int value = 0, UiFlags uiFlags = UiFlags::None) + : m_text(text) + , args(args) + , m_value(value) + , uiFlags(uiFlags) + { + } + ~UiListItem() {}; // private: const char *m_text; + std::vector args; int m_value; UiFlags uiFlags; };