summaryrefslogtreecommitdiff
path: root/src/gui/itemcontainer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/itemcontainer.h')
-rw-r--r--src/gui/itemcontainer.h42
1 files changed, 26 insertions, 16 deletions
diff --git a/src/gui/itemcontainer.h b/src/gui/itemcontainer.h
index 7636ef0c..38eaba01 100644
--- a/src/gui/itemcontainer.h
+++ b/src/gui/itemcontainer.h
@@ -1,39 +1,37 @@
/*
* The Mana World
- * Copyright 2004 The Mana World Development Team
+ * Copyright (C) 2004 The Mana World Development Team
*
* This file is part of The Mana World.
*
- * The Mana World is free software; you can redistribute it and/or modify
+ * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* any later version.
*
- * The Mana World is distributed in the hope that it will be useful,
+ * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with The Mana World; if not, write to the Free Software
+ * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#ifndef _TMW_ITEMCONTAINER_H__
-#define _TMW_ITEMCONTAINER_H__
+#ifndef ITEMCONTAINER_H
+#define ITEMCONTAINER_H
+
+#include <list>
#include <guichan/keylistener.hpp>
#include <guichan/mouselistener.hpp>
-
#include <guichan/widget.hpp>
-#include "itempopup.h"
-
-#include <list>
-
class Image;
class Inventory;
class Item;
+class ItemPopup;
namespace gcn {
class SelectionListener;
@@ -53,9 +51,11 @@ class ItemContainer : public gcn::Widget,
* Constructor. Initializes the graphic.
* @param inventory
* @param gridColumns Amount of columns in grid.
- * @param gridRows Amount of rows in grid.
+ * @param gridRows Amount of rows in grid.
+ * @param offset Index offset
*/
- ItemContainer(Inventory *inventory, int gridColumns, int gridRows);
+ ItemContainer(Inventory *inventory, int gridColumns, int gridRows,
+ int offset = 0);
/**
* Destructor.
@@ -95,7 +95,7 @@ class ItemContainer : public gcn::Widget,
/**
* Returns the selected item.
*/
- Item* getItem() const
+ Item* getSelectedItem() const
{ return mSelectedItem; }
/**
@@ -133,7 +133,6 @@ class ItemContainer : public gcn::Widget,
*/
void keyAction();
- void mouseEntered(gcn::MouseEvent &event);
void mouseExited(gcn::MouseEvent &event);
void mouseMoved(gcn::MouseEvent &event);
@@ -150,6 +149,16 @@ class ItemContainer : public gcn::Widget,
void setSelectedItem(Item *item);
/**
+ * Find the current item index by the most recently used item ID
+ */
+ void refindSelectedItem();
+
+ /**
+ * Determine and set the height of the container.
+ */
+ void recalculateHeight();
+
+ /**
* Sends out selection events to the list of selection listeners.
*/
void distributeValueChangedEvent();
@@ -161,10 +170,11 @@ class ItemContainer : public gcn::Widget,
* @param posY The Y Coordinate position.
* @return The slot index on success, -1 on failure.
*/
- int getSlotIndex(const int posX, const int posY) const;
+ int getSlotIndex(int posX, int posY) const;
Inventory *mInventory;
int mGridColumns, mGridRows;
+ int mOffset;
Image *mSelImg;
Item *mSelectedItem, *mHighlightedItem;
int mSelectionStatus;