From 6917c126fbee146183433367be9a3d8fef94a1dd Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 27 Jan 2017 18:05:52 +0300 Subject: Move link highlight mode into separate file. --- src/CMakeLists.txt | 1 + src/Makefile.am | 1 + src/enums/gui/linkhighlightmode.h | 42 +++++++++++++++++++++++++++++++++++++++ src/gui/widgets/browserbox.cpp | 16 ++++++++------- src/gui/widgets/browserbox.h | 12 +---------- 5 files changed, 54 insertions(+), 18 deletions(-) create mode 100644 src/enums/gui/linkhighlightmode.h (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8c5c0b1f4..8faf6f2a2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -218,6 +218,7 @@ SET(SRCS gui/widgets/layouthelper.cpp gui/widgets/layouthelper.h enums/gui/layouttype.h + enums/gui/linkhighlightmode.h enums/gui/npcactionstate.h enums/gui/npcinputstate.h gui/widgets/linepart.cpp diff --git a/src/Makefile.am b/src/Makefile.am index 14c136d09..4cabb17b9 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -242,6 +242,7 @@ SRC += events/actionevent.h \ gui/widgets/layouthelper.cpp \ gui/widgets/layouthelper.h \ enums/gui/layouttype.h \ + enums/gui/linkhighlightmode.h \ enums/gui/npcactionstate.h \ enums/gui/npcinputstate.h \ gui/widgets/linepart.cpp \ diff --git a/src/enums/gui/linkhighlightmode.h b/src/enums/gui/linkhighlightmode.h new file mode 100644 index 000000000..a79625b72 --- /dev/null +++ b/src/enums/gui/linkhighlightmode.h @@ -0,0 +1,42 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2017 The ManaPlus Developers + * Copyright (C) 2009 Aethyra Development Team + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef ENUMS_GUI_LINKHIGHLIGHTMODE_H +#define ENUMS_GUI_LINKHIGHLIGHTMODE_H + +#include "localconsts.h" + +namespace LinkHighlightMode +{ + /** + * Highlight modes for links. + * This can be used for a bitmask. + */ + enum Type + { + UNDERLINE = 1, + BACKGROUND = 2 + }; +} + +#endif // ENUMS_GUI_LINKHIGHLIGHTMODE_H diff --git a/src/gui/widgets/browserbox.cpp b/src/gui/widgets/browserbox.cpp index c443bf07d..e1bb330e4 100644 --- a/src/gui/widgets/browserbox.cpp +++ b/src/gui/widgets/browserbox.cpp @@ -29,6 +29,8 @@ #include "const/resources/item/cards.h" +#include "enums/gui/linkhighlightmode.h" + #include "input/inputmanager.h" #include "gui/gui.h" @@ -110,7 +112,7 @@ BrowserBox::BrowserBox(const Widget2 *const widget, mLinkHandler(nullptr), mSkin(nullptr), mMode(mode), - mHighMode(0), + mHighlightMode(0), mSelectedLink(-1), mMaxRows(0), mHeight(0), @@ -155,9 +157,9 @@ BrowserBox::BrowserBox(const Widget2 *const widget, mSkin->getOption("newLinePadding", 15)); mItemPadding = mSkin->getOption("itemPadding"); if (mSkin->getOption("highlightBackground")) - mHighMode |= BACKGROUND; + mHighlightMode |= LinkHighlightMode::BACKGROUND; if (mSkin->getOption("highlightUnderline")) - mHighMode |= UNDERLINE; + mHighlightMode |= LinkHighlightMode::UNDERLINE; } readColor(BLACK); @@ -564,10 +566,10 @@ void BrowserBox::draw(Graphics *const graphics) mDimension.width, mDimension.height)); } - if (mSelectedLink >= 0 && mSelectedLink - < CAST_S32(mLinks.size())) + if (mSelectedLink >= 0 && + mSelectedLink < CAST_S32(mLinks.size())) { - if ((mHighMode & BACKGROUND)) + if ((mHighlightMode & LinkHighlightMode::BACKGROUND)) { BrowserLink &link = mLinks[CAST_SIZE(mSelectedLink)]; graphics->setColor(mHighlightColor); @@ -578,7 +580,7 @@ void BrowserBox::draw(Graphics *const graphics) link.y2 - link.y1)); } - if ((mHighMode & UNDERLINE)) + if ((mHighlightMode & LinkHighlightMode::UNDERLINE)) { BrowserLink &link = mLinks[CAST_SIZE(mSelectedLink)]; graphics->setColor(mHyperLinkColor); diff --git a/src/gui/widgets/browserbox.h b/src/gui/widgets/browserbox.h index 77f103d83..fe0c0c36d 100644 --- a/src/gui/widgets/browserbox.h +++ b/src/gui/widgets/browserbox.h @@ -129,16 +129,6 @@ class BrowserBox final : public Widget, COLORS_MAX }; - /** - * Highlight modes for links. - * This can be used for a bitmask. - */ - enum - { - UNDERLINE = 1, - BACKGROUND = 2 - }; - typedef std::list TextRows; TextRows &getRows() noexcept2 A_WARN_UNUSED @@ -199,7 +189,7 @@ class BrowserBox final : public Widget, LinkHandler *mLinkHandler; Skin *mSkin; BrowserBoxModeT mMode; - unsigned int mHighMode; + unsigned int mHighlightMode; int mSelectedLink; unsigned int mMaxRows; int mHeight; -- cgit v1.2.3-60-g2f50