summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gui/setup.cpp25
-rw-r--r--src/gui/setup.h2
-rw-r--r--src/gui/widgets/setuptab.cpp3
-rw-r--r--src/gui/widgets/setuptab.h5
-rw-r--r--src/gui/widgets/setuptabscroll.cpp6
-rw-r--r--src/gui/widgets/setuptabscroll.h2
6 files changed, 34 insertions, 9 deletions
diff --git a/src/gui/setup.cpp b/src/gui/setup.cpp
index 659571d67..8961c2d56 100644
--- a/src/gui/setup.cpp
+++ b/src/gui/setup.cpp
@@ -55,7 +55,8 @@ Setup::Setup():
Window(_("Setup"), false, nullptr, "setup.xml"),
gcn::ActionListener(),
mResetWindows(nullptr),
- mPanel(new TabbedArea(this))
+ mPanel(new TabbedArea(this)),
+ mVersion(new Label(this, FULL_VERSION))
{
setCloseButton(true);
setResizable(true);
@@ -68,7 +69,8 @@ Setup::Setup():
width += 100;
setContentSize(width, height);
- //setMaxHeight(height);
+ setMinWidth(310);
+ setMinHeight(210);
static const char *buttonNames[] =
{
@@ -118,18 +120,16 @@ Setup::Setup():
add(mPanel);
- Label *const version = new Label(this, FULL_VERSION);
-// version->setPosition(9, height - version->getHeight() - 9);
if (mResetWindows)
{
- version->setPosition(9,
- height - version->getHeight() - mResetWindows->getHeight() - 9);
+ mVersion->setPosition(9,
+ height - mVersion->getHeight() - mResetWindows->getHeight() - 9);
}
else
{
- version->setPosition(9, height - version->getHeight() - 30);
+ mVersion->setPosition(9, height - mVersion->getHeight() - 30);
}
- add(version);
+ add(mVersion);
center();
@@ -231,6 +231,15 @@ void Setup::widgetResized(const gcn::Event &event)
x -= btn->getWidth() + buttonPadding;
btn->setPosition(x, height - btn->getHeight() - buttonPadding);
}
+ if (mResetWindows)
+ {
+ mVersion->setPosition(9,
+ height - mVersion->getHeight() - mResetWindows->getHeight() - 9);
+ }
+ else
+ {
+ mVersion->setPosition(9, height - mVersion->getHeight() - 30);
+ }
}
Setup *setupWindow;
diff --git a/src/gui/setup.h b/src/gui/setup.h
index 860bd5a33..81d3ff256 100644
--- a/src/gui/setup.h
+++ b/src/gui/setup.h
@@ -31,6 +31,7 @@
#include <list>
+class Label;
class SetupTab;
/**
@@ -86,6 +87,7 @@ class Setup final : public Window, public gcn::ActionListener
std::vector<Button*> mButtons;
Button *mResetWindows;
TabbedArea *mPanel;
+ Label *mVersion;
};
extern Setup* setupWindow;
diff --git a/src/gui/widgets/setuptab.cpp b/src/gui/widgets/setuptab.cpp
index 690b09f49..227b74d98 100644
--- a/src/gui/widgets/setuptab.cpp
+++ b/src/gui/widgets/setuptab.cpp
@@ -22,6 +22,8 @@
#include "gui/widgets/setuptab.h"
+#include "logger.h"
+
#include "debug.h"
SetupTab::SetupTab(const Widget2 *const widget) :
@@ -29,6 +31,7 @@ SetupTab::SetupTab(const Widget2 *const widget) :
gcn::ActionListener()
{
setOpaque(false);
+ addWidgetListener(this);
}
void SetupTab::externalUpdated()
diff --git a/src/gui/widgets/setuptab.h b/src/gui/widgets/setuptab.h
index 8ffab10d1..7d0c45d17 100644
--- a/src/gui/widgets/setuptab.h
+++ b/src/gui/widgets/setuptab.h
@@ -26,6 +26,7 @@
#include "gui/widgets/container.h"
#include <guichan/actionlistener.hpp>
+#include <guichan/widgetlistener.hpp>
#include <string>
@@ -34,7 +35,9 @@
/**
* A container for the contents of a tab in the setup window.
*/
-class SetupTab : public Container, public gcn::ActionListener
+class SetupTab : public Container,
+ public gcn::ActionListener,
+ public gcn::WidgetListener
{
public:
SetupTab(const Widget2 *const widget);
diff --git a/src/gui/widgets/setuptabscroll.cpp b/src/gui/widgets/setuptabscroll.cpp
index aac5cf0e8..64060aaad 100644
--- a/src/gui/widgets/setuptabscroll.cpp
+++ b/src/gui/widgets/setuptabscroll.cpp
@@ -118,3 +118,9 @@ void SetupTabScroll::externalUpdated()
widget->externalUpdated((*iter).first);
}
}
+
+void SetupTabScroll::widgetResized(const gcn::Event &event)
+{
+ mScroll->setWidth(getWidth() - 12);
+ mScroll->setHeight(getHeight() - 12 - 12);
+}
diff --git a/src/gui/widgets/setuptabscroll.h b/src/gui/widgets/setuptabscroll.h
index 70ac756cb..e90ce28c2 100644
--- a/src/gui/widgets/setuptabscroll.h
+++ b/src/gui/widgets/setuptabscroll.h
@@ -60,6 +60,8 @@ class SetupTabScroll : public SetupTab
int getPreferredFirstItemSize() A_WARN_UNUSED
{ return mPreferredFirstItemSize; }
+ void widgetResized(const gcn::Event &event) override;
+
protected:
VertContainer *mContainer;
ScrollArea *mScroll;