summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/equipmentwindow.cpp19
-rw-r--r--src/gui/equipmentwindow.h8
2 files changed, 27 insertions, 0 deletions
diff --git a/src/gui/equipmentwindow.cpp b/src/gui/equipmentwindow.cpp
index 209ecdb0..4e8eae4d 100644
--- a/src/gui/equipmentwindow.cpp
+++ b/src/gui/equipmentwindow.cpp
@@ -95,6 +95,15 @@ void EquipmentWindow::loadEquipBoxes()
Position boxPosition = Net::getInventoryHandler()->getBoxPosition(i);
mEquipBox[i].posX = boxPosition.x + getPadding();
mEquipBox[i].posY = boxPosition.y + getTitleBarHeight();
+
+ const std::string &backgroundFile =
+ Net::getInventoryHandler()->getBoxBackground(i);
+
+ if (!backgroundFile.empty())
+ {
+ mEquipBox[i].backgroundImage =
+ Theme::instance()->getImageFromTheme(backgroundFile);
+ }
}
}
@@ -117,6 +126,16 @@ void EquipmentWindow::draw(gcn::Graphics *graphics)
for (int i = 0; i < mBoxesNumber; i++)
{
+ // When there is a background image, draw it centered in the box:
+ if (mEquipBox[i].backgroundImage)
+ {
+ int posX = mEquipBox[i].posX
+ + (BOX_WIDTH - mEquipBox[i].backgroundImage->getWidth()) / 2;
+ int posY = mEquipBox[i].posY
+ + (BOX_HEIGHT - mEquipBox[i].backgroundImage->getHeight()) / 2;
+ g->drawImage(mEquipBox[i].backgroundImage, posX, posY);
+ }
+
if (i == mSelected)
{
const gcn::Color color = Theme::getThemeColor(Theme::HIGHLIGHT);
diff --git a/src/gui/equipmentwindow.h b/src/gui/equipmentwindow.h
index 57a13d40..408dd8e7 100644
--- a/src/gui/equipmentwindow.h
+++ b/src/gui/equipmentwindow.h
@@ -23,6 +23,7 @@
#define EQUIPMENTWINDOW_H
#include "equipment.h"
+#include "resources/image.h"
#include "gui/widgets/window.h"
@@ -70,8 +71,15 @@ class EquipmentWindow : public Window, public gcn::ActionListener
*/
struct EquipBox
{
+ EquipBox() :
+ posX(0),
+ posY(0),
+ backgroundImage(0)
+ {}
+
int posX;
int posY;
+ Image* backgroundImage;
};
EquipBox *mEquipBox; /**< Equipment Boxes. */