diff --git a/Source/DiabloUI/diabloui.cpp b/Source/DiabloUI/diabloui.cpp index ea4692006..0da3b699f 100644 --- a/Source/DiabloUI/diabloui.cpp +++ b/Source/DiabloUI/diabloui.cpp @@ -102,7 +102,7 @@ void UiInitList(int count, void (*fnFocus)(int value), void (*fnSelect)(int valu #endif textInputActive = false; for (const auto &item : items) { - if (item->m_type == UI_EDIT) { + if (item->m_type == UiType::UI_EDIT) { auto *pItemUIEdit = static_cast(item.get()); SDL_SetTextInputRect(&item->m_rect); textInputActive = true; @@ -808,28 +808,28 @@ void RenderItem(UiItemBase *item) if (item->has_flag(UiFlags::UIS_HIDDEN)) return; switch (item->m_type) { - case UI_TEXT: + case UiType::UI_TEXT: Render(static_cast(item)); break; - case UI_ART_TEXT: + case UiType::UI_ART_TEXT: Render(static_cast(item)); break; - case UI_IMAGE: + case UiType::UI_IMAGE: Render(static_cast(item)); break; - case UI_ART_TEXT_BUTTON: + case UiType::UI_ART_TEXT_BUTTON: Render(static_cast(item)); break; - case UI_BUTTON: + case UiType::UI_BUTTON: RenderButton(static_cast(item)); break; - case UI_LIST: + case UiType::UI_LIST: Render(static_cast(item)); break; - case UI_SCROLLBAR: + case UiType::UI_SCROLLBAR: Render(static_cast(item)); break; - case UI_EDIT: + case UiType::UI_EDIT: Render(static_cast(item)); break; } @@ -914,13 +914,13 @@ bool HandleMouseEvent(const SDL_Event &event, UiItemBase *item) if (item->has_any_flag(UiFlags::UIS_HIDDEN | UiFlags::UIS_DISABLED) || !IsInsideRect(event, item->m_rect)) return false; switch (item->m_type) { - case UI_ART_TEXT_BUTTON: + case UiType::UI_ART_TEXT_BUTTON: return HandleMouseEventArtTextButton(event, static_cast(item)); - case UI_BUTTON: + case UiType::UI_BUTTON: return HandleMouseEventButton(event, static_cast(item)); - case UI_LIST: + case UiType::UI_LIST: return HandleMouseEventList(event, static_cast(item)); - case UI_SCROLLBAR: + case UiType::UI_SCROLLBAR: return HandleMouseEventScrollBar(event, static_cast(item)); default: return false; @@ -970,7 +970,7 @@ bool UiItemMouseEvents(SDL_Event *event, const std::vector &items) if (event->type == SDL_MOUSEBUTTONUP && event->button.button == SDL_BUTTON_LEFT) { scrollBarState.downArrowPressed = scrollBarState.upArrowPressed = false; for (const auto &item : items) { - if (item->m_type == UI_BUTTON) + if (item->m_type == UiType::UI_BUTTON) HandleGlobalMouseUpButton(static_cast(item)); } } @@ -1000,7 +1000,7 @@ bool UiItemMouseEvents(SDL_Event *event, const std::vectortype == SDL_MOUSEBUTTONUP && event->button.button == SDL_BUTTON_LEFT) { scrollBarState.downArrowPressed = scrollBarState.upArrowPressed = false; for (const auto &item : items) { - if (item->m_type == UI_BUTTON) + if (item->m_type == UiType::UI_BUTTON) HandleGlobalMouseUpButton(static_cast(item.get())); } } diff --git a/Source/DiabloUI/ui_item.h b/Source/DiabloUI/ui_item.h index 3be871a1e..8a22e9a3c 100644 --- a/Source/DiabloUI/ui_item.h +++ b/Source/DiabloUI/ui_item.h @@ -11,7 +11,7 @@ namespace devilution { -enum UiType : uint8_t { +enum class UiType { UI_TEXT, UI_ART_TEXT, UI_ART_TEXT_BUTTON, @@ -120,7 +120,7 @@ public: class UiImage : public UiItemBase { public: UiImage(Art *art, SDL_Rect rect, UiFlags flags = UiFlags::NONE, bool animated = false, int frame = 0) - : UiItemBase(UI_IMAGE, rect, flags) + : UiItemBase(UiType::UI_IMAGE, rect, flags) , m_art(art) , m_animated(animated) , m_frame(frame) @@ -146,7 +146,7 @@ public: * @param flags UiFlags controlling color/alignment/size */ UiArtText(const char *text, SDL_Rect rect, UiFlags flags = UiFlags::NONE) - : UiItemBase(UI_ART_TEXT, rect, flags) + : UiItemBase(UiType::UI_ART_TEXT, rect, flags) , m_text(text) { } @@ -158,7 +158,7 @@ public: * @param flags UiFlags controlling color/alignment/size */ UiArtText(const char **ptext, SDL_Rect rect, UiFlags flags = UiFlags::NONE) - : UiItemBase(UI_ART_TEXT, rect, flags) + : UiItemBase(UiType::UI_ART_TEXT, rect, flags) , m_ptext(ptext) { } @@ -182,7 +182,7 @@ private: class UiScrollBar : public UiItemBase { public: UiScrollBar(Art *bg, Art *thumb, Art *arrow, SDL_Rect rect, UiFlags flags = UiFlags::NONE) - : UiItemBase(UI_SCROLLBAR, rect, flags) + : UiItemBase(UiType::UI_SCROLLBAR, rect, flags) , m_bg(bg) , m_thumb(thumb) , m_arrow(arrow) @@ -200,7 +200,7 @@ public: class UiArtTextButton : public UiItemBase { public: UiArtTextButton(const char *text, void (*action)(), SDL_Rect rect, UiFlags flags = UiFlags::NONE) - : UiItemBase(UI_ART_TEXT_BUTTON, rect, flags) + : UiItemBase(UiType::UI_ART_TEXT_BUTTON, rect, flags) , m_text(text) , m_action(action) { @@ -216,7 +216,7 @@ public: class UiEdit : public UiItemBase { public: UiEdit(const char *hint, char *value, std::size_t max_length, SDL_Rect rect, UiFlags flags = UiFlags::NONE) - : UiItemBase(UI_EDIT, rect, flags) + : UiItemBase(UiType::UI_EDIT, rect, flags) , m_hint(hint) , m_value(value) , m_max_length(max_length) @@ -236,7 +236,7 @@ public: class UiText : public UiItemBase { public: UiText(const char *text, SDL_Rect rect, UiFlags flags = UiFlags::NONE, SDL_Color color = { 243, 243, 243, 0 }) - : UiItemBase(UI_TEXT, rect, flags) + : UiItemBase(UiType::UI_TEXT, rect, flags) , m_color(color) , m_shadow_color({ 0, 0, 0, 0 }) , m_text(text) @@ -260,7 +260,7 @@ public: class UiButton : public UiItemBase { public: UiButton(Art *art, const char *text, void (*action)(), SDL_Rect rect, UiFlags flags = UiFlags::NONE) - : UiItemBase(UI_BUTTON, rect, flags) + : UiItemBase(UiType::UI_BUTTON, rect, flags) , m_art(art) , m_text(text) , m_action(action) @@ -308,7 +308,7 @@ typedef std::vector> vUiListItem; class UiList : public UiItemBase { public: UiList(const vUiListItem &vItems, Sint16 x, Sint16 y, Uint16 item_width, Uint16 item_height, UiFlags flags = UiFlags::NONE) - : UiItemBase(UI_LIST, { x, y, item_width, static_cast(item_height * vItems.size()) }, flags) + : UiItemBase(UiType::UI_LIST, { x, y, item_width, static_cast(item_height * vItems.size()) }, flags) , m_x(x) , m_y(y) , m_width(item_width)