summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAaron Marks <nymacro@gmail.com>2005-04-09 13:33:35 +0000
committerAaron Marks <nymacro@gmail.com>2005-04-09 13:33:35 +0000
commit744cc5f0f3d07b86fd781e2e813201d6c33b154d (patch)
tree09df6c63913c6a1ec3f423414cc6923ea86e6484 /src
parentb81c5e80634736b0069eedfa56604c141e7c9bbf (diff)
downloadmana-744cc5f0f3d07b86fd781e2e813201d6c33b154d.tar.gz
mana-744cc5f0f3d07b86fd781e2e813201d6c33b154d.tar.bz2
mana-744cc5f0f3d07b86fd781e2e813201d6c33b154d.tar.xz
mana-744cc5f0f3d07b86fd781e2e813201d6c33b154d.zip
Fixed up problem with inventory display.
Added maximum width/height of window (for resizing).
Diffstat (limited to 'src')
-rw-r--r--src/gui/inventory.cpp9
-rw-r--r--src/gui/window.cpp17
-rw-r--r--src/gui/window.h14
3 files changed, 36 insertions, 4 deletions
diff --git a/src/gui/inventory.cpp b/src/gui/inventory.cpp
index 17903ba3..7bf5971f 100644
--- a/src/gui/inventory.cpp
+++ b/src/gui/inventory.cpp
@@ -168,9 +168,10 @@ void InventoryWindow::mouseMotion(int mx, int my)
void InventoryWindow::updateWidgets()
{
//resize widgets
- useButton->setPosition(20, getHeight() - 48);
- dropButton->setPosition(60, getHeight() - 48);
- items->setSize(getWidth() - 24 - 12 - 8 - 1, (getHeight() - 40 - 8 - 1) + items->getQuantity() * 24 - 1);
- invenScroll->setSize(getWidth() - 32, getHeight() - 48 - 8);
+ useButton->setPosition(20, getHeight() - 24);
+ dropButton->setPosition(60, getHeight() - 24);
+ items->setSize(getWidth() - 24 - 12 - 8 - 1, (INVENTORY_SIZE * 24) / (getWidth() / 24) - 1);
+ invenScroll->setSize(getWidth() - 32, getHeight() - 32 - 8);
setContentSize(getWidth(), getHeight());
}
+
diff --git a/src/gui/window.cpp b/src/gui/window.cpp
index ee2474ba..c9c51032 100644
--- a/src/gui/window.cpp
+++ b/src/gui/window.cpp
@@ -35,6 +35,8 @@ Window::Window(const std::string& caption, bool modal, Window *parent):
modal(modal),
minWinWidth(256),
minWinHeight(128),
+ maxWinWidth(512),
+ maxWinHeight(512),
isWinResizeable(false)
{
logger.log("Window::Window(\"%s\")", caption.c_str());
@@ -169,6 +171,16 @@ void Window::setMinHeight(unsigned int height)
minWinHeight = height;
}
+void Window::setMaxWidth(unsigned int width)
+{
+ maxWinWidth = width;
+}
+
+void Window::setMaxHeight(unsigned int height)
+{
+ maxWinHeight = height;
+}
+
void Window::setResizeable(bool r)
{
isWinResizeable = r;
@@ -224,6 +236,11 @@ void Window::mouseMotion(int mx, int my)
mx = minWinWidth;
if (my < minWinHeight)
my = minWinHeight;
+ if (mx >= maxWinWidth)
+ mx = maxWinWidth - 1;
+ if (my >= maxWinHeight)
+ my = maxWinHeight - 1;
+
setWidth(mx);
setHeight(my);
} else {
diff --git a/src/gui/window.h b/src/gui/window.h
index 33c7f5b8..b7cab031 100644
--- a/src/gui/window.h
+++ b/src/gui/window.h
@@ -53,6 +53,9 @@ class Window : public gcn::Window, public ConfigListener
bool isWinResizeable; /**< Window can be resized */
int minWinWidth; /**< Minimum window width */
int minWinHeight; /**< Minimum window height */
+ int maxWinWidth; /**< Maximum window width */
+ int maxWinHeight; /**< Maximum window height */
+
/** The window container windows add themselves to. */
static WindowContainer* windowContainer;
@@ -141,6 +144,17 @@ class Window : public gcn::Window, public ConfigListener
*/
void setMinHeight(unsigned int height);
+ /**
+ * Sets the maximum width of the window
+ */
+ void setMaxWidth(unsigned int width);
+
+ /**
+ * Sets the minimum height of the window
+ */
+ void setMaxHeight(unsigned int height);
+
+
/**
* Returns the parent window.
*