Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scoped enums for ui_item.h #2468

Merged
merged 5 commits into from
Jul 31, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Source/DiabloUI/button.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ void RenderButton(UiButton *button)

SDL_Color color1 = { 243, 243, 243, 0 };
SDL_Color color2 = { 0, 0, 0, 0 };
DrawTTF(button->m_text, textRect, UIS_CENTER,
DrawTTF(button->m_text, textRect, UiFlags::AlignCenter,
color1, color2, button->m_render_cache);
}

Expand Down
56 changes: 28 additions & 28 deletions Source/DiabloUI/diabloui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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::Edit) {
auto *pItemUIEdit = static_cast<UiEdit *>(item.get());
SDL_SetTextInputRect(&item->m_rect);
textInputActive = true;
Expand All @@ -121,14 +121,14 @@ void UiInitList(int count, void (*fnFocus)(int value), void (*fnSelect)(int valu
}
}

void UiInitScrollBar(UiScrollBar *uiSb, std::size_t viewportSize, const std::size_t *currentOffset)
void UiInitScrollBar(UiScrollbar *uiSb, std::size_t viewportSize, const std::size_t *currentOffset)
{
ListViewportSize = viewportSize;
ListOffset = currentOffset;
if (ListViewportSize >= static_cast<std::size_t>(SelectedItemMax + 1)) {
uiSb->add_flag(UIS_HIDDEN);
uiSb->add_flag(UiFlags::ElementHidden);
} else {
uiSb->remove_flag(UIS_HIDDEN);
uiSb->remove_flag(UiFlags::ElementHidden);
}
}

Expand Down Expand Up @@ -636,17 +636,17 @@ void UiAddBackground(std::vector<std::unique_ptr<UiItemBase>> *vecDialog)
{
if (ArtBackgroundWidescreen.surface != nullptr) {
SDL_Rect rectw = { 0, UI_OFFSET_Y, 0, 0 };
vecDialog->push_back(std::make_unique<UiImage>(&ArtBackgroundWidescreen, /*bAnimated=*/false, /*iFrame=*/0, rectw, UIS_CENTER));
vecDialog->push_back(std::make_unique<UiImage>(&ArtBackgroundWidescreen, rectw, UiFlags::AlignCenter));
}

SDL_Rect rect = { 0, UI_OFFSET_Y, 0, 0 };
vecDialog->push_back(std::make_unique<UiImage>(&ArtBackground, /*bAnimated=*/false, /*iFrame=*/0, rect, UIS_CENTER));
vecDialog->push_back(std::make_unique<UiImage>(&ArtBackground, rect, UiFlags::AlignCenter));
}

void UiAddLogo(std::vector<std::unique_ptr<UiItemBase>> *vecDialog, int size, int y)
{
SDL_Rect rect = { 0, (Sint16)(UI_OFFSET_Y + y), 0, 0 };
vecDialog->push_back(std::make_unique<UiImage>(&ArtLogos[size], /*bAnimated=*/true, /*iFrame=*/0, rect, UIS_CENTER));
vecDialog->push_back(std::make_unique<UiImage>(&ArtLogos[size], rect, UiFlags::AlignCenter, /*bAnimated=*/true));
}

void UiFadeIn()
Expand Down Expand Up @@ -734,7 +734,7 @@ void Render(const UiArtText *uiArtText)
void Render(const UiImage *uiImage)
{
int x = uiImage->m_rect.x;
if ((uiImage->m_iFlags & UIS_CENTER) != 0 && uiImage->m_art != nullptr) {
if (HasAnyOf(uiImage->m_iFlags, UiFlags::AlignCenter) && uiImage->m_art != nullptr) {
const int xOffset = GetCenterOffset(uiImage->m_art->w(), uiImage->m_rect.w);
x += xOffset;
}
Expand All @@ -761,7 +761,7 @@ void Render(const UiList *uiList)
}
}

void Render(const UiScrollBar *uiSb)
void Render(const UiScrollbar *uiSb)
{
// Bar background (tiled):
{
Expand Down Expand Up @@ -805,31 +805,31 @@ void Render(const UiEdit *uiEdit)

void RenderItem(UiItemBase *item)
{
if (item->has_flag(UIS_HIDDEN))
if (item->has_flag(UiFlags::ElementHidden))
return;
switch (item->m_type) {
case UI_TEXT:
case UiType::Text:
Render(static_cast<UiText *>(item));
break;
case UI_ART_TEXT:
case UiType::ArtText:
Render(static_cast<UiArtText *>(item));
break;
case UI_IMAGE:
case UiType::Image:
Render(static_cast<UiImage *>(item));
break;
case UI_ART_TEXT_BUTTON:
case UiType::ArtTextButton:
Render(static_cast<UiArtTextButton *>(item));
break;
case UI_BUTTON:
case UiType::Button:
RenderButton(static_cast<UiButton *>(item));
break;
case UI_LIST:
case UiType::List:
Render(static_cast<UiList *>(item));
break;
case UI_SCROLLBAR:
Render(static_cast<UiScrollBar *>(item));
case UiType::Scrollbar:
Render(static_cast<UiScrollbar *>(item));
break;
case UI_EDIT:
case UiType::Edit:
Render(static_cast<UiEdit *>(item));
break;
}
Expand Down Expand Up @@ -873,7 +873,7 @@ bool HandleMouseEventList(const SDL_Event &event, UiList *uiList)
return true;
}

bool HandleMouseEventScrollBar(const SDL_Event &event, const UiScrollBar *uiSb)
bool HandleMouseEventScrollBar(const SDL_Event &event, const UiScrollbar *uiSb)
{
if (event.button.button != SDL_BUTTON_LEFT)
return false;
Expand Down Expand Up @@ -911,17 +911,17 @@ bool HandleMouseEventScrollBar(const SDL_Event &event, const UiScrollBar *uiSb)

bool HandleMouseEvent(const SDL_Event &event, UiItemBase *item)
{
if (item->has_any_flag(UIS_HIDDEN | UIS_DISABLED) || !IsInsideRect(event, item->m_rect))
if (item->has_any_flag(UiFlags::ElementHidden | UiFlags::ElementDisabled) || !IsInsideRect(event, item->m_rect))
return false;
switch (item->m_type) {
case UI_ART_TEXT_BUTTON:
case UiType::ArtTextButton:
return HandleMouseEventArtTextButton(event, static_cast<UiArtTextButton *>(item));
case UI_BUTTON:
case UiType::Button:
return HandleMouseEventButton(event, static_cast<UiButton *>(item));
case UI_LIST:
case UiType::List:
return HandleMouseEventList(event, static_cast<UiList *>(item));
case UI_SCROLLBAR:
return HandleMouseEventScrollBar(event, static_cast<UiScrollBar *>(item));
case UiType::Scrollbar:
return HandleMouseEventScrollBar(event, static_cast<UiScrollbar *>(item));
default:
return false;
}
Expand Down Expand Up @@ -970,7 +970,7 @@ bool UiItemMouseEvents(SDL_Event *event, const std::vector<UiItemBase *> &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::Button)
HandleGlobalMouseUpButton(static_cast<UiButton *>(item));
}
}
Expand Down Expand Up @@ -1000,7 +1000,7 @@ bool UiItemMouseEvents(SDL_Event *event, const std::vector<std::unique_ptr<UiIte
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::Button)
HandleGlobalMouseUpButton(static_cast<UiButton *>(item.get()));
}
}
Expand Down
2 changes: 1 addition & 1 deletion Source/DiabloUI/diabloui.h
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ void UiFocusNavigationSelect();
void UiFocusNavigationEsc();
void UiFocusNavigationYesNo();
void UiInitList(int count, void (*fnFocus)(int value), void (*fnSelect)(int value), void (*fnEsc)(), const std::vector<std::unique_ptr<UiItemBase>> &items, bool wraps = false, bool (*fnYesNo)() = NULL);
void UiInitScrollBar(UiScrollBar *uiSb, std::size_t viewportSize, const std::size_t *currentOffset);
void UiInitScrollBar(UiScrollbar *uiSb, std::size_t viewportSize, const std::size_t *currentOffset);
void UiClearScreen();
void UiPollAndRender();
void UiRenderItems(const std::vector<UiItemBase *> &items);
Expand Down
10 changes: 5 additions & 5 deletions Source/DiabloUI/dialogs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -166,23 +166,23 @@ void Init(const char *text, const char *caption, bool error, bool renderBehind)
vecOkDialog.push_back(std::make_unique<UiImage>(&dialogArt, rect1));

SDL_Rect rect2 = { (Sint16)(PANEL_LEFT + 200), (Sint16)(UI_OFFSET_Y + 211), 240, 80 };
vecOkDialog.push_back(std::make_unique<UiText>(text, rect2, UIS_CENTER));
vecOkDialog.push_back(std::make_unique<UiText>(text, rect2, UiFlags::AlignCenter));

SDL_Rect rect3 = { (Sint16)(PANEL_LEFT + 265), (Sint16)(UI_OFFSET_Y + 265), SML_BUTTON_WIDTH, SML_BUTTON_HEIGHT };
vecOkDialog.push_back(std::make_unique<UiButton>(&SmlButton, _("OK"), &DialogActionOK, rect3, 0));
vecOkDialog.push_back(std::make_unique<UiButton>(&SmlButton, _("OK"), &DialogActionOK, rect3));
} else {
SDL_Rect rect1 = { (Sint16)(PANEL_LEFT + 127), (Sint16)(UI_OFFSET_Y + 100), 385, 280 };
vecOkDialog.push_back(std::make_unique<UiImage>(&dialogArt, rect1));

SDL_Color color = { 255, 255, 0, 0 };
SDL_Rect rect2 = { (Sint16)(PANEL_LEFT + 147), (Sint16)(UI_OFFSET_Y + 110), 345, 20 };
vecOkDialog.push_back(std::make_unique<UiText>(text, color, rect2, UIS_CENTER));
vecOkDialog.push_back(std::make_unique<UiText>(text, rect2, UiFlags::AlignCenter, color));

SDL_Rect rect3 = { (Sint16)(PANEL_LEFT + 147), (Sint16)(UI_OFFSET_Y + 141), 345, 190 };
vecOkDialog.push_back(std::make_unique<UiText>(caption, rect3, UIS_CENTER));
vecOkDialog.push_back(std::make_unique<UiText>(caption, rect3, UiFlags::AlignCenter));

SDL_Rect rect4 = { (Sint16)(PANEL_LEFT + 264), (Sint16)(UI_OFFSET_Y + 335), SML_BUTTON_WIDTH, SML_BUTTON_HEIGHT };
vecOkDialog.push_back(std::make_unique<UiButton>(&SmlButton, _("OK"), &DialogActionOK, rect4, 0));
vecOkDialog.push_back(std::make_unique<UiButton>(&SmlButton, _("OK"), &DialogActionOK, rect4));
}

if (!renderBehind) {
Expand Down
4 changes: 2 additions & 2 deletions Source/DiabloUI/mainmenu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,10 @@ void MainmenuLoad(const char *name, void (*fnSound)(const char *file))
UiAddBackground(&vecMainMenuDialog);
UiAddLogo(&vecMainMenuDialog);

vecMainMenuDialog.push_back(std::make_unique<UiList>(vecMenuItems, PANEL_LEFT + 64, (UI_OFFSET_Y + 192), 510, 43, UIS_HUGE | UIS_GOLD | UIS_CENTER));
vecMainMenuDialog.push_back(std::make_unique<UiList>(vecMenuItems, PANEL_LEFT + 64, (UI_OFFSET_Y + 192), 510, 43, UiFlags::FontHuge | UiFlags::ColorGold | UiFlags::AlignCenter));

SDL_Rect rect = { 17, (Sint16)(gnScreenHeight - 36), 605, 21 };
vecMainMenuDialog.push_back(std::make_unique<UiArtText>(name, rect, UIS_SMALL));
vecMainMenuDialog.push_back(std::make_unique<UiArtText>(name, rect, UiFlags::FontSmall));

UiInitList(vecMenuItems.size(), nullptr, UiMainMenuSelect, MainmenuEsc, vecMainMenuDialog, true);
}
Expand Down
2 changes: 1 addition & 1 deletion Source/DiabloUI/progress.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ void ProgressLoad(const char *msg)
msgShadow = TTF_RenderText_Solid(font, msg, black);
}
SDL_Rect rect3 = { (Sint16)(PANEL_LEFT + 265), (Sint16)(UI_OFFSET_Y + 267), SML_BUTTON_WIDTH, SML_BUTTON_HEIGHT };
vecProgress.push_back(std::make_unique<UiButton>(&SmlButton, _("Cancel"), &DialogActionCancel, rect3, 0));
vecProgress.push_back(std::make_unique<UiButton>(&SmlButton, _("Cancel"), &DialogActionCancel, rect3));
}

void ProgressFree()
Expand Down
10 changes: 5 additions & 5 deletions Source/DiabloUI/scrollbar.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ enum ScrollBarArrowFrame : uint8_t {
extern Art ArtScrollBarThumb;
const Uint16 SCROLLBAR_ARROW_WIDTH = 25;

inline SDL_Rect UpArrowRect(const UiScrollBar *sb)
inline SDL_Rect UpArrowRect(const UiScrollbar *sb)
{
SDL_Rect Tmp;
Tmp.x = sb->m_rect.x;
Expand All @@ -34,7 +34,7 @@ inline SDL_Rect UpArrowRect(const UiScrollBar *sb)
return Tmp;
}

inline SDL_Rect DownArrowRect(const UiScrollBar *sb)
inline SDL_Rect DownArrowRect(const UiScrollbar *sb)
{
SDL_Rect Tmp;
Tmp.x = sb->m_rect.x;
Expand All @@ -45,12 +45,12 @@ inline SDL_Rect DownArrowRect(const UiScrollBar *sb)
return Tmp;
}

inline Uint16 BarHeight(const UiScrollBar *sb)
inline Uint16 BarHeight(const UiScrollbar *sb)
{
return sb->m_rect.h - 2 * sb->m_arrow->h();
}

inline SDL_Rect BarRect(const UiScrollBar *sb)
inline SDL_Rect BarRect(const UiScrollbar *sb)
{
SDL_Rect Tmp;
Tmp.x = sb->m_rect.x;
Expand All @@ -61,7 +61,7 @@ inline SDL_Rect BarRect(const UiScrollBar *sb)
return Tmp;
}

inline SDL_Rect ThumbRect(const UiScrollBar *sb, std::size_t selected_index, std::size_t num_items)
inline SDL_Rect ThumbRect(const UiScrollbar *sb, std::size_t selected_index, std::size_t num_items)
{
const int THUMB_OFFSET_X = 3;
const int thumb_max_y = BarHeight(sb) - sb->m_thumb->h();
Expand Down
16 changes: 8 additions & 8 deletions Source/DiabloUI/selconn.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ void SelconnLoad()
UiAddLogo(&vecSelConnDlg);

SDL_Rect rect1 = { (Sint16)(PANEL_LEFT + 24), (Sint16)(Sint16)(UI_OFFSET_Y + 161), 590, 35 };
vecSelConnDlg.push_back(std::make_unique<UiArtText>(_("Multi Player Game"), rect1, UIS_CENTER | UIS_BIG));
vecSelConnDlg.push_back(std::make_unique<UiArtText>(_("Multi Player Game"), rect1, UiFlags::AlignCenter | UiFlags::FontBig));

SDL_Rect rect2 = { (Sint16)(PANEL_LEFT + 35), (Sint16)(UI_OFFSET_Y + 218), DESCRIPTION_WIDTH, 21 };
vecSelConnDlg.push_back(std::make_unique<UiArtText>(selconn_MaxPlayers, rect2));
Expand All @@ -57,24 +57,24 @@ void SelconnLoad()
vecSelConnDlg.push_back(std::make_unique<UiArtText>(selconn_Description, rect4));

SDL_Rect rect5 = { (Sint16)(PANEL_LEFT + 30), (Sint16)(UI_OFFSET_Y + 356), 220, 31 };
vecSelConnDlg.push_back(std::make_unique<UiArtText>(_("no gateway needed"), rect5, UIS_CENTER | UIS_MED));
vecSelConnDlg.push_back(std::make_unique<UiArtText>(_("no gateway needed"), rect5, UiFlags::AlignCenter | UiFlags::FontMedium));

SDL_Rect rect6 = { (Sint16)(PANEL_LEFT + 35), (Sint16)(UI_OFFSET_Y + 393), DESCRIPTION_WIDTH, 21 };
vecSelConnDlg.push_back(std::make_unique<UiArtText>(selconn_Gateway, rect6, UIS_CENTER));
vecSelConnDlg.push_back(std::make_unique<UiArtText>(selconn_Gateway, rect6, UiFlags::AlignCenter));

SDL_Rect rect7 = { (Sint16)(PANEL_LEFT + 300), (Sint16)(UI_OFFSET_Y + 211), 295, 33 };
vecSelConnDlg.push_back(std::make_unique<UiArtText>(_("Select Connection"), rect7, UIS_CENTER | UIS_BIG));
vecSelConnDlg.push_back(std::make_unique<UiArtText>(_("Select Connection"), rect7, UiFlags::AlignCenter | UiFlags::FontBig));

SDL_Rect rect8 = { (Sint16)(PANEL_LEFT + 16), (Sint16)(UI_OFFSET_Y + 427), 250, 35 };
vecSelConnDlg.push_back(std::make_unique<UiArtTextButton>(_("Change Gateway"), nullptr, rect8, UIS_CENTER | UIS_VCENTER | UIS_BIG | UIS_GOLD | UIS_HIDDEN));
vecSelConnDlg.push_back(std::make_unique<UiArtTextButton>(_("Change Gateway"), nullptr, rect8, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontBig | UiFlags::ColorGold | UiFlags::ElementHidden));

vecSelConnDlg.push_back(std::make_unique<UiList>(vecConnItems, PANEL_LEFT + 305, (UI_OFFSET_Y + 256), 285, 26, UIS_CENTER | UIS_VCENTER | UIS_GOLD));
vecSelConnDlg.push_back(std::make_unique<UiList>(vecConnItems, PANEL_LEFT + 305, (UI_OFFSET_Y + 256), 285, 26, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::ColorGold));

SDL_Rect rect9 = { (Sint16)(PANEL_LEFT + 299), (Sint16)(UI_OFFSET_Y + 427), 140, 35 };
vecSelConnDlg.push_back(std::make_unique<UiArtTextButton>(_("OK"), &UiFocusNavigationSelect, rect9, UIS_CENTER | UIS_VCENTER | UIS_BIG | UIS_GOLD));
vecSelConnDlg.push_back(std::make_unique<UiArtTextButton>(_("OK"), &UiFocusNavigationSelect, rect9, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontBig | UiFlags::ColorGold));

SDL_Rect rect10 = { (Sint16)(PANEL_LEFT + 454), (Sint16)(UI_OFFSET_Y + 427), 140, 35 };
vecSelConnDlg.push_back(std::make_unique<UiArtTextButton>(_("Cancel"), &UiFocusNavigationEsc, rect10, UIS_CENTER | UIS_VCENTER | UIS_BIG | UIS_GOLD));
vecSelConnDlg.push_back(std::make_unique<UiArtTextButton>(_("Cancel"), &UiFocusNavigationEsc, rect10, UiFlags::AlignCenter | UiFlags::VerticalCenter | UiFlags::FontBig | UiFlags::ColorGold));

UiInitList(vecConnItems.size(), SelconnFocus, SelconnSelect, SelconnEsc, vecSelConnDlg);
}
Expand Down
Loading