From db4361d9f7652104e818cf9a2a0f326e1c607fb8 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 11 Sep 2011 04:24:30 +0300 Subject: Add own xml configuration for missing windows. --- src/gui/widgets/popup.cpp | 22 +++++++++++++++++++--- src/gui/widgets/popup.h | 3 +-- 2 files changed, 20 insertions(+), 5 deletions(-) (limited to 'src/gui/widgets') diff --git a/src/gui/widgets/popup.cpp b/src/gui/widgets/popup.cpp index ebfdbe303..ac282b088 100644 --- a/src/gui/widgets/popup.cpp +++ b/src/gui/widgets/popup.cpp @@ -40,7 +40,7 @@ #include "debug.h" -Popup::Popup(const std::string &name, const std::string &skin): +Popup::Popup(const std::string &name, std::string skin): mPopupName(name), mMinWidth(100), mMinHeight(40), @@ -58,8 +58,20 @@ Popup::Popup(const std::string &name, const std::string &skin): setPadding(3); + if (skin == "") + skin = "popup.xml"; + // Loads the skin - mSkin = Theme::instance()->load(skin); + if (Theme::instance()) + { + mSkin = Theme::instance()->load(skin); + if (mSkin) + setPadding(mSkin->getPadding()); + } + else + { + mSkin = 0; + } // Add this window to the window container windowContainer->add(this); @@ -76,7 +88,11 @@ Popup::~Popup() mVertexes = 0; if (mSkin) - mSkin->instances--; + { + if (Theme::instance()) + Theme::instance()->unload(mSkin); + mSkin = 0; + } } void Popup::setWindowContainer(WindowContainer *wc) diff --git a/src/gui/widgets/popup.h b/src/gui/widgets/popup.h index 0ac50f69e..9d4343ba3 100644 --- a/src/gui/widgets/popup.h +++ b/src/gui/widgets/popup.h @@ -66,8 +66,7 @@ class Popup : public Container, public gcn::MouseListener, * debugging purposes. * @param skin The location where the Popup's skin XML can be found. */ - Popup(const std::string &name = "", - const std::string &skin = "window.xml"); + Popup(const std::string &name = "", std::string skin = ""); /** * Destructor. Deletes all the added widgets. -- cgit v1.2.3-60-g2f50