summaryrefslogtreecommitdiff
path: root/src/gui/widgets/desktop.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/widgets/desktop.cpp')
-rw-r--r--src/gui/widgets/desktop.cpp229
1 files changed, 0 insertions, 229 deletions
diff --git a/src/gui/widgets/desktop.cpp b/src/gui/widgets/desktop.cpp
deleted file mode 100644
index 87eb14c48..000000000
--- a/src/gui/widgets/desktop.cpp
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * The ManaPlus Client
- * Copyright (C) 2009-2010 The Mana World Development Team
- * Copyright (C) 2011-2017 The ManaPlus Developers
- *
- * 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 <http://www.gnu.org/licenses/>.
- */
-
-#include "gui/widgets/desktop.h"
-
-#include "configuration.h"
-#include "main.h"
-
-#include "gui/skin.h"
-
-#include "gui/widgets/staticbrowserbox.h"
-
-#include "input/inputmanager.h"
-
-#include "render/opengl/opengldebug.h"
-
-#include "resources/imagehelper.h"
-#include "resources/wallpaper.h"
-
-#include "resources/image/image.h"
-
-#include "resources/loaders/rescaledloader.h"
-
-#include "resources/resourcemanager/resourcemanager.h"
-
-#include "render/graphics.h"
-
-#include "debug.h"
-
-Desktop *desktop = nullptr;
-
-Desktop::Desktop(const Widget2 *const widget) :
- Container(widget),
- LinkHandler(),
- WidgetListener(),
- mWallpaper(nullptr),
- mVersionLabel(new StaticBrowserBox(this, Opaque_false,
- "browserbox.xml")),
- mSkin(nullptr),
- mBackgroundGrayColor(getThemeColor(ThemeColorId::BACKGROUND_GRAY)),
- mShowBackground(true)
-{
- mBackgroundColor = getThemeColor(ThemeColorId::BACKGROUND, 128);
-
- addWidgetListener(this);
-
- Wallpaper::loadWallpapers();
-
- if (theme != nullptr)
- mSkin = theme->load("desktop.xml", "");
-
- if (mSkin != nullptr)
- mShowBackground = (mSkin->getOption("showBackground") != 0);
-
- const std::string appName = branding.getValue("appName", std::string());
- if (appName.empty())
- {
- mVersionLabel->addRow(FULL_VERSION);
- }
- else
- {
- mVersionLabel->addRow(strprintf("%s (%s)", FULL_VERSION,
- appName.c_str()));
- }
- mVersionLabel->addRow("copyright",
- "(C) ManaPlus developers, http://manaplus.org");
- mVersionLabel->setLinkHandler(this);
- mVersionLabel->updateHeight();
-}
-
-Desktop::~Desktop()
-{
- if (mWallpaper != nullptr)
- {
- mWallpaper->decRef();
- mWallpaper = nullptr;
- }
- if (theme != nullptr)
- theme->unload(mSkin);
-}
-
-void Desktop::postInit()
-{
- if (mSkin != nullptr)
- {
- addXY(mVersionLabel,
- mSkin->getOption("versionX", 25),
- mSkin->getOption("versionY", 2));
- }
- else
- {
- addXY(mVersionLabel, 25, 2);
- }
-}
-
-void Desktop::reloadWallpaper()
-{
- Wallpaper::loadWallpapers();
- setBestFittingWallpaper();
-}
-
-void Desktop::widgetResized(const Event &event A_UNUSED)
-{
- mVersionLabel->setSize(getWidth(), getHeight());
- mVersionLabel->updateHeight();
- setBestFittingWallpaper();
-}
-
-void Desktop::draw(Graphics *const graphics)
-{
- BLOCK_START("Desktop::draw")
- GLDEBUG_START("Desktop::draw")
-
- const Rect &rect = mDimension;
- const int width = rect.width;
- const int height = rect.height;
- if (mWallpaper != nullptr)
- {
- const int wallpWidth = mWallpaper->getWidth();
- const int wallpHeight = mWallpaper->getHeight();
-
- if (width > wallpWidth || height > wallpHeight)
- {
- graphics->setColor(mBackgroundGrayColor);
- graphics->fillRectangle(Rect(0, 0, width, height));
- }
-
- if (imageHelper->useOpenGL() == RENDER_SOFTWARE)
- {
- graphics->drawImage(mWallpaper,
- (width - wallpWidth) / 2,
- (height - wallpHeight) / 2);
- }
- else
- {
- graphics->drawRescaledImage(mWallpaper, 0, 0, width, height);
- }
- }
- else
- {
- graphics->setColor(mBackgroundGrayColor);
- graphics->fillRectangle(Rect(0, 0, width, height));
- }
-
- Container::draw(graphics);
- GLDEBUG_END()
- BLOCK_END("Desktop::draw")
-}
-
-void Desktop::safeDraw(Graphics *const graphics)
-{
- Desktop::draw(graphics);
-}
-
-void Desktop::setBestFittingWallpaper()
-{
- if (!mShowBackground || !config.getBoolValue("showBackground"))
- return;
-
- const std::string wallpaperName =
- Wallpaper::getWallpaper(getWidth(), getHeight());
-
- Image *const nWallPaper = Theme::getImageFromTheme(wallpaperName);
-
- if (nWallPaper != nullptr)
- {
- if (mWallpaper != nullptr)
- {
- ResourceManager::decRefDelete(mWallpaper);
- mWallpaper = nullptr;
- }
-
- const Rect &rect = mDimension;
- const int width = rect.width;
- const int height = rect.height;
-
- if (imageHelper->useOpenGL() == RENDER_SOFTWARE &&
- (nWallPaper->getWidth() != width ||
- nWallPaper->getHeight() != height))
- {
- // We rescale to obtain a fullscreen wallpaper...
- Image *const newRsclWlPpr = Loader::getRescaled(
- nWallPaper, width, height);
-
- if (newRsclWlPpr != nullptr)
- {
- ResourceManager::decRefDelete(nWallPaper);
- // We replace the resource in the resource manager
- mWallpaper = newRsclWlPpr;
- }
- else
- {
- mWallpaper = nWallPaper;
- }
- }
- else
- {
- mWallpaper = nWallPaper;
- }
- }
- else
- {
- logger->log("Couldn't load %s as wallpaper", wallpaperName.c_str());
- }
-}
-
-void Desktop::handleLink(const std::string &link, MouseEvent *event A_UNUSED)
-{
- if (link == "copyright")
- inputManager.executeAction(InputAction::WINDOW_ABOUT);
-}