summaryrefslogtreecommitdiff
path: root/src/gui/windows/serverdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/windows/serverdialog.cpp')
-rw-r--r--src/gui/windows/serverdialog.cpp97
1 files changed, 1 insertions, 96 deletions
diff --git a/src/gui/windows/serverdialog.cpp b/src/gui/windows/serverdialog.cpp
index 547d3ba81..f63a3d5ba 100644
--- a/src/gui/windows/serverdialog.cpp
+++ b/src/gui/windows/serverdialog.cpp
@@ -44,6 +44,7 @@
#include "gui/widgets/label.h"
#include "gui/widgets/layout.h"
#include "gui/widgets/listbox.h"
+#include "gui/widgets/serverslistbox.h"
#include "gui/widgets/scrollarea.h"
#include "utils/delete2.h"
@@ -90,102 +91,6 @@ static uint16_t defaultPortForServerType(const ServerInfo::Type type)
}
}
-class ServersListBox final : public ListBox
-{
-public:
- ServersListBox(const Widget2 *const widget,
- ServersListModel *const model) :
- ListBox(widget, model, "serverslistbox.xml"),
- mNotSupportedColor(getThemeColor(Theme::SERVER_VERSION_NOT_SUPPORTED)),
- mNotSupportedColor2(getThemeColor(
- Theme::SERVER_VERSION_NOT_SUPPORTED_OUTLINE))
- {
- mHighlightColor = getThemeColor(Theme::HIGHLIGHT);
- }
-
- void draw(Graphics *graphics) override final
- {
- if (!mListModel)
- return;
-
- ServersListModel *const model = static_cast<ServersListModel *const>(
- mListModel);
-
- updateAlpha();
-
- mHighlightColor.a = static_cast<int>(mAlpha * 255.0F);
- graphics->setColor(mHighlightColor);
-
- const int height = getRowHeight();
- mNotSupportedColor.a = static_cast<int>(mAlpha * 255.0F);
-
- // Draw filled rectangle around the selected list element
- if (mSelected >= 0)
- {
- graphics->fillRectangle(Rect(mPadding,
- height * mSelected + mPadding, getWidth() - 2 * mPadding,
- height));
- }
-
- Font *const font1 = boldFont;
- Font *const font2 = getFont();
- const int fontHeight = font1->getHeight();
- const int pad1 = fontHeight + mPadding;
- const int pad2 = height / 4 + mPadding;
- const int width = getWidth();
- // Draw the list elements
- for (int i = 0, y = 0; i < model->getNumberOfElements();
- ++i, y += height)
- {
- const ServerInfo &info = model->getServer(i);
-
- if (mSelected == i)
- {
- graphics->setColorAll(mForegroundSelectedColor,
- mForegroundSelectedColor2);
- }
- else
- {
- graphics->setColorAll(mForegroundColor, mForegroundColor2);
- }
-
- int top;
- int x = mPadding;
-
- if (!info.name.empty())
- {
- x += font1->getWidth(info.name) + 15;
- font1->drawString(graphics, info.name, mPadding, y + mPadding);
- top = y + pad1;
- }
- else
- {
- top = y + pad2;
- }
-
- if (!info.description.empty())
- font2->drawString(graphics, info.description, x, y + mPadding);
- font2->drawString(graphics, model->getElementAt(i), mPadding, top);
-
- if (info.version.first > 0)
- {
- graphics->setColorAll(mNotSupportedColor, mNotSupportedColor2);
- font2->drawString(graphics, info.version.second,
- width - info.version.first - mPadding, top);
- }
- }
- }
-
- unsigned int getRowHeight() const override final
- {
- return 2 * getFont()->getHeight() + 5;
- }
-private:
- Color mNotSupportedColor;
- Color mNotSupportedColor2;
-};
-
-
ServerDialog::ServerDialog(ServerInfo *const serverInfo,
const std::string &dir) :
// TRANSLATORS: servers dialog name