summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/itemcontainer.cpp19
-rw-r--r--src/gui/itemcontainer.h7
2 files changed, 23 insertions, 3 deletions
diff --git a/src/gui/itemcontainer.cpp b/src/gui/itemcontainer.cpp
index 8fd3a23e..a4e7a7d0 100644
--- a/src/gui/itemcontainer.cpp
+++ b/src/gui/itemcontainer.cpp
@@ -41,6 +41,7 @@ ItemContainer::ItemContainer(Inventory *inventory):
if (!selImg) logger->error("Unable to load selection.png");
selectedItem = 0; // No item selected
+ maxItems = inventory->getLastUsedSlot();
addMouseListener(this);
}
@@ -51,6 +52,18 @@ ItemContainer::~ItemContainer()
selImg->decRef();
}
+void ItemContainer::logic()
+{
+ gcn::Widget::logic();
+
+ int i = inventory->getLastUsedSlot();
+
+ if (i != maxItems) {
+ maxItems = i;
+ setWidth(getWidth());
+ }
+}
+
void ItemContainer::draw(gcn::Graphics* graphics)
{
int gridWidth = itemset->spriteset[0]->getWidth() + 4;
@@ -125,7 +138,7 @@ void ItemContainer::setWidth(int width)
gcn::Widget::setWidth(width);
int gridWidth = itemset->spriteset[0]->getWidth() + 4;
- int gridHeight = itemset->spriteset[0]->getHeight() + 10;
+ int gridHeight = itemset->spriteset[0]->getHeight() + 14;
int columns = getWidth() / gridWidth;
if (columns < 1)
@@ -133,8 +146,8 @@ void ItemContainer::setWidth(int width)
columns = 1;
}
- setHeight(((INVENTORY_SIZE / columns) +
- (INVENTORY_SIZE % columns > 0 ? 1 : 0)) * gridHeight);
+ setHeight(((maxItems / columns) +
+ (maxItems % columns > 0 ? 1 : 0)) * gridHeight);
}
Item* ItemContainer::getItem()
diff --git a/src/gui/itemcontainer.h b/src/gui/itemcontainer.h
index 6def991a..6c1834ef 100644
--- a/src/gui/itemcontainer.h
+++ b/src/gui/itemcontainer.h
@@ -51,6 +51,11 @@ class ItemContainer : public gcn::Widget, public gcn::MouseListener
virtual ~ItemContainer();
/**
+ * Handles the logic of the ItemContainer
+ */
+ void logic();
+
+ /**
* Draws the items.
*/
void draw(gcn::Graphics *graphics);
@@ -81,6 +86,8 @@ class ItemContainer : public gcn::Widget, public gcn::MouseListener
Spriteset *itemset;
Image *selImg;
Item *selectedItem;
+
+ int maxItems;
};
#endif