summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-10-30 17:47:23 +0300
committerAndrei Karas <akaras@inbox.ru>2015-10-30 18:19:54 +0300
commitbd429077f8985c5ee45a53009d02e2f495b4ad90 (patch)
treeaeaaaba43b24de34af6f332ac200b976b7056371 /src/gui
parentb0388c5ad0a49f65becdee1120d4df476410dd01 (diff)
downloadmanaplus-bd429077f8985c5ee45a53009d02e2f495b4ad90.tar.gz
manaplus-bd429077f8985c5ee45a53009d02e2f495b4ad90.tar.bz2
manaplus-bd429077f8985c5ee45a53009d02e2f495b4ad90.tar.xz
manaplus-bd429077f8985c5ee45a53009d02e2f495b4ad90.zip
Add strong typed bool enum ShowEmptyRows and use it in itemcontainer.
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/widgets/itemcontainer.cpp11
-rw-r--r--src/gui/widgets/itemcontainer.h3
-rw-r--r--src/gui/windows/npcdialog.cpp2
3 files changed, 12 insertions, 4 deletions
diff --git a/src/gui/widgets/itemcontainer.cpp b/src/gui/widgets/itemcontainer.cpp
index d9d2b5f4b..5ae542357 100644
--- a/src/gui/widgets/itemcontainer.cpp
+++ b/src/gui/widgets/itemcontainer.cpp
@@ -159,6 +159,7 @@ namespace
ItemContainer::ItemContainer(const Widget2 *const widget,
Inventory *const inventory,
+ const ShowEmptyRows showEmptyRows,
const ForceQuantity forceQuantity) :
Widget(widget),
KeyListener(),
@@ -192,6 +193,7 @@ ItemContainer::ItemContainer(const Widget2 *const widget,
mPaddingItemY(mSkin ? mSkin->getOption("paddingItemY", 0) : 0),
mSelectionStatus(SEL_NONE),
mForceQuantity(forceQuantity),
+ mShowEmptyRows(showEmptyRows),
mDescItems(false),
mRedraw(true)
{
@@ -262,7 +264,8 @@ void ItemContainer::draw(Graphics *graphics)
mVertexes->clear();
const unsigned int invSize = mInventory->getSize();
- const int maxRows = invSize / mGridColumns;
+ const int maxRows = mShowEmptyRows == ShowEmptyRows_true ?
+ invSize / mGridColumns : mGridRows;
for (int j = 0; j < maxRows; j++)
{
const int intY0 = j * mBoxHeight;
@@ -385,7 +388,8 @@ void ItemContainer::safeDraw(Graphics *graphics)
if (mCellBackgroundImg)
{
const unsigned int invSize = mInventory->getSize();
- const int maxRows = invSize / mGridColumns;
+ const int maxRows = mShowEmptyRows == ShowEmptyRows_true ?
+ invSize / mGridColumns : mGridRows;
for (int j = 0; j < maxRows; j++)
{
const int intY0 = j * mBoxHeight;
@@ -865,7 +869,8 @@ void ItemContainer::adjustHeight()
++mGridRows;
const unsigned int invSize = mInventory->getSize();
- const int maxRows = invSize / mGridColumns;
+ const int maxRows = mShowEmptyRows == ShowEmptyRows_true ?
+ invSize / mGridColumns : mGridRows;
setHeight(maxRows * mBoxHeight);
updateMatrix();
diff --git a/src/gui/widgets/itemcontainer.h b/src/gui/widgets/itemcontainer.h
index a8d7c794e..42aeb2684 100644
--- a/src/gui/widgets/itemcontainer.h
+++ b/src/gui/widgets/itemcontainer.h
@@ -28,6 +28,7 @@
#include "listeners/widgetlistener.h"
#include "enums/simpletypes/forcequantity.h"
+#include "enums/simpletypes/showemptyrows.h"
#include "gui/widgets/widget.h"
@@ -59,6 +60,7 @@ class ItemContainer final : public Widget,
*/
ItemContainer(const Widget2 *const widget,
Inventory *const inventory,
+ const ShowEmptyRows showEmptyRows = ShowEmptyRows_false,
const ForceQuantity forceQuantity = ForceQuantity_false);
A_DELETE_COPY(ItemContainer)
@@ -207,6 +209,7 @@ class ItemContainer final : public Widget,
int mPaddingItemY;
SelectionState mSelectionStatus;
ForceQuantity mForceQuantity;
+ ShowEmptyRows mShowEmptyRows;
bool mDescItems;
bool mRedraw;
};
diff --git a/src/gui/windows/npcdialog.cpp b/src/gui/windows/npcdialog.cpp
index f601c6405..e94904a08 100644
--- a/src/gui/windows/npcdialog.cpp
+++ b/src/gui/windows/npcdialog.cpp
@@ -123,7 +123,7 @@ NpcDialog::NpcDialog(const BeingId npcId) :
// TRANSLATORS: npc dialog button
mResetButton(new Button(this, _("Reset"), "reset", this)),
mInventory(new Inventory(InventoryType::NPC, 1)),
- mItemContainer(new ItemContainer(this, mInventory)),
+ mItemContainer(new ItemContainer(this, mInventory, ShowEmptyRows_true)),
mItemScrollArea(new ScrollArea(this, mItemContainer,
getOptionBool("showitemsbackground"), "npc_listbackground.xml")),
mInputState(NPC_INPUT_NONE),