Browse Source

Add DrawStringWithColors support to UiListItem

pull/3613/head
obligaron 4 years ago committed by Anders Jenbo
parent
commit
721e05d5e0
  1. 6
      Source/DiabloUI/diabloui.cpp
  2. 10
      Source/DiabloUI/ui_item.h

6
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());
}
}

10
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<DrawStringFormatArg> &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<DrawStringFormatArg> args;
int m_value;
UiFlags uiFlags;
};

Loading…
Cancel
Save