From 9ca2198b767e1bf810aa5b75657f0d18ce06a57b Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Thu, 18 Aug 2011 01:35:25 +0200 Subject: Add functions to make the item popup able to tell whether the item is equipped or not. It will be used quite soon to visually see the slot names. --- src/gui/itempopup.cpp | 32 +++++++++++++++++++++++++++++++- src/gui/itempopup.h | 11 +++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/src/gui/itempopup.cpp b/src/gui/itempopup.cpp index 60943756..de8378d5 100644 --- a/src/gui/itempopup.cpp +++ b/src/gui/itempopup.cpp @@ -123,6 +123,31 @@ ItemPopup::~ItemPopup() } } +void ItemPopup::setEquipmentText(const std::string& text) +{ + mItemEquipSlot = text; +} + +void ItemPopup::setNoItem() +{ + mIcon->setImage(0); + + std::string caption = _("No item"); + if (!mItemEquipSlot.empty()) + { + caption += " ("; + caption += mItemEquipSlot; + caption += ")"; + } + mItemName->setCaption(caption); + mItemName->adjustSize(); + + mItemName->setForegroundColor(Theme::getThemeColor(Theme::GENERIC)); + mItemName->setPosition(getPadding(), getPadding()); + + setContentSize(mItemName->getWidth() + 2 * getPadding(), 0); +} + void ItemPopup::setItem(const ItemInfo &item, bool showImage) { if (item.getName() == mItemName->getCaption()) @@ -157,7 +182,11 @@ void ItemPopup::setItem(const ItemInfo &item, bool showImage) mItemType = item.getItemType(); - mItemName->setCaption(item.getName()); + std::string caption = item.getName(); + if (!mItemEquipSlot.empty()) + caption += " (" + mItemEquipSlot + ")"; + + mItemName->setCaption(caption); mItemName->adjustSize(); mItemName->setForegroundColor(getColorFromItemType(mItemType)); mItemName->setPosition(getPadding() + space, getPadding()); @@ -226,5 +255,6 @@ void ItemPopup::mouseMoved(gcn::MouseEvent &event) // When the mouse moved on top of the popup, hide it setVisible(false); + mItemEquipSlot.clear(); } diff --git a/src/gui/itempopup.h b/src/gui/itempopup.h index f054ddf5..95adcf45 100644 --- a/src/gui/itempopup.h +++ b/src/gui/itempopup.h @@ -48,6 +48,16 @@ class ItemPopup : public Popup */ ~ItemPopup(); + /** + * Tells the item popup to say: No Item. + */ + void setNoItem(); + + /** + * Tells in which equipment slot the item is equipped. + */ + void setEquipmentText(const std::string& text = std::string()); + /** * Sets the info to be displayed given a particular item. */ @@ -60,6 +70,7 @@ class ItemPopup : public Popup TextBox *mItemDesc; TextBox *mItemEffect; TextBox *mItemWeight; + std::string mItemEquipSlot; ItemType mItemType; Icon *mIcon; }; -- cgit v1.2.3-70-g09d2