summaryrefslogtreecommitdiff
path: root/src/gui/inventorywindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/inventorywindow.cpp')
-rw-r--r--src/gui/inventorywindow.cpp93
1 files changed, 34 insertions, 59 deletions
diff --git a/src/gui/inventorywindow.cpp b/src/gui/inventorywindow.cpp
index efe1cd51..72507d23 100644
--- a/src/gui/inventorywindow.cpp
+++ b/src/gui/inventorywindow.cpp
@@ -21,8 +21,11 @@
#include <string>
+#include <guichan/font.hpp>
#include <guichan/mouseinput.hpp>
+#include <guichan/widgets/label.hpp>
+
#include "button.h"
#include "gui.h"
#include "inventorywindow.h"
@@ -31,6 +34,8 @@
#include "scrollarea.h"
#include "viewport.h"
+#include "widgets/layout.h"
+
#include "../inventory.h"
#include "../item.h"
#include "../localplayer.h"
@@ -48,7 +53,7 @@ InventoryWindow::InventoryWindow():
setWindowName(_("Inventory"));
setResizable(true);
setCloseButton(true);
- setMinWidth(240);
+
// If you adjust these defaults, don't forget to adjust the trade window's.
setDefaultSize(115, 25, 322, 200);
@@ -68,19 +73,24 @@ InventoryWindow::InventoryWindow():
mMaxWeight + _(" g Slots: ") +
toString(player_node->getInventory()->getNumberOfSlotsUsed()) +
"/" + toString(player_node->getInventory()->getInventorySize());
- mWeightLabel = new TextBox();
- mWeightLabel->setPosition(8, 8);
+ mWeightLabel = new gcn::Label(mWeight);
- draw();
+ setMinHeight(130);
+ setMinWidth(getFont()->getWidth(mWeight));
- add(mUseButton);
- add(mDropButton);
- add(mInvenScroll);
- add(mWeightLabel);
+ ContainerPlacer place;
+ place = getPlacer(0, 0);
- mUseButton->setSize(60, mUseButton->getHeight());
+ place(0, 0, mInvenScroll, 5, 4);
+ place(0, 4, mWeightLabel, 5);
+ place(3, 5, mDropButton);
+ place(4, 5, mUseButton);
+
+ Layout &layout = getLayout();
+ layout.setRowHeight(0, Layout::AUTO_SET);
loadWindowState();
+ setLocationRelativeTo(getParent());
}
void InventoryWindow::logic()
@@ -103,7 +113,7 @@ void InventoryWindow::logic()
toString(player_node->getInventory()->getNumberOfSlotsUsed()) +
"/" + toString(player_node->getInventory()->getInventorySize());
- draw();
+ setMinWidth(getFont()->getWidth(mWeight));
}
}
@@ -114,36 +124,30 @@ void InventoryWindow::action(const gcn::ActionEvent &event)
if (!item)
return;
- if (event.getId() == "use") {
- if (item->isEquipment()) {
- if (item->isEquipped()) {
+ if (event.getId() == "use")
+ {
+ if (item->isEquipment())
+ {
+ if (item->isEquipped())
player_node->unequipItem(item);
- }
- else {
+ else
player_node->equipItem(item);
- }
}
- else {
+ else
player_node->useItem(item);
- }
}
else if (event.getId() == "drop")
{
- if (item->getQuantity() == 1) {
+ if (item->getQuantity() == 1)
player_node->dropItem(item, 1);
- }
- else {
+ else
+ {
// Choose amount of items to drop
new ItemAmountWindow(AMOUNT_ITEM_DROP, this, item);
}
}
}
-void InventoryWindow::valueChanged(const gcn::SelectionEvent &event)
-{
- draw();
-}
-
void InventoryWindow::mouseClicked(gcn::MouseEvent &event)
{
Window::mouseClicked(event);
@@ -164,48 +168,19 @@ void InventoryWindow::mouseClicked(gcn::MouseEvent &event)
}
}
-void InventoryWindow::draw()
-{
- const gcn::Rectangle &area = getChildrenArea();
- const int width = area.width;
- const int height = area.height;
-
- // Update weight information
- mWeightLabel->setTextWrapped(mWeight);
- mWeightLabel->setMinWidth(width - 16);
-
- mUseButton->setPosition(8, height - 8 - mUseButton->getHeight());
- mDropButton->setPosition(8 + mUseButton->getWidth() + 5,
- mUseButton->getY());
-
- mInvenScroll->setSize(width - 16,
- mUseButton->getY() - (mWeightLabel->getNumberOfRows()*15) - 18);
- mInvenScroll->setPosition(8, (mWeightLabel->getNumberOfRows()*15) + 10);
-
- setMinHeight(130 + (mWeightLabel->getNumberOfRows()*15));
-}
-
-void InventoryWindow::widgetResized(const gcn::Event &event)
-{
- Window::widgetResized(event);
- draw();
-}
-
void InventoryWindow::updateButtons()
{
const Item *selectedItem = mItems->getSelectedItem();
if (selectedItem && selectedItem->isEquipment())
{
- if (selectedItem->isEquipped()) {
+ if (selectedItem->isEquipped())
mUseButton->setCaption(_("Unequip"));
- }
- else {
+ else
mUseButton->setCaption(_("Equip"));
- } }
- else {
- mUseButton->setCaption(_("Use"));
}
+ else
+ mUseButton->setCaption(_("Use"));
mUseButton->setEnabled(selectedItem != 0);
mDropButton->setEnabled(selectedItem != 0);