summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-09-21 18:43:26 +0300
committerAndrei Karas <akaras@inbox.ru>2016-09-21 18:43:26 +0300
commitd8a7eaa14ef0fad24e19f6363db708a397f7f98b (patch)
treefdf3f32c4c300be74c3371bd47a60d84fdd70ff8 /src/gui
parent529d5ac21229ba7678bba9832f69448898b159b9 (diff)
downloadmanaplus-d8a7eaa14ef0fad24e19f6363db708a397f7f98b.tar.gz
manaplus-d8a7eaa14ef0fad24e19f6363db708a397f7f98b.tar.bz2
manaplus-d8a7eaa14ef0fad24e19f6363db708a397f7f98b.tar.xz
manaplus-d8a7eaa14ef0fad24e19f6363db708a397f7f98b.zip
Allow copy items from outfit into chat.
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/popups/popupmenu.cpp4
-rw-r--r--src/gui/windows/outfitwindow.cpp24
-rw-r--r--src/gui/windows/outfitwindow.h2
3 files changed, 30 insertions, 0 deletions
diff --git a/src/gui/popups/popupmenu.cpp b/src/gui/popups/popupmenu.cpp
index 5eb9d5813..2284e4cda 100644
--- a/src/gui/popups/popupmenu.cpp
+++ b/src/gui/popups/popupmenu.cpp
@@ -783,6 +783,10 @@ void PopupMenu::showOutfitsWindowPopup(const int x, const int y)
// TRANSLATORS: popup menu header
mBrowserBox->addRow(_("Outfits"));
// TRANSLATORS: popup menu item
+ // TRANSLATORS: copy selected outfit to chat input
+ mBrowserBox->addRow("/outfittochat", _("Add to chat"));
+ mBrowserBox->addRow("##3---");
+ // TRANSLATORS: popup menu item
// TRANSLATORS: clear selected outfit
mBrowserBox->addRow("clear outfit", _("Clear outfit"));
mBrowserBox->addRow("##3---");
diff --git a/src/gui/windows/outfitwindow.cpp b/src/gui/windows/outfitwindow.cpp
index 290cf924c..2a6ba3d6e 100644
--- a/src/gui/windows/outfitwindow.cpp
+++ b/src/gui/windows/outfitwindow.cpp
@@ -722,3 +722,27 @@ void OutfitWindow::clearCurrentOutfit()
}
save();
}
+
+std::string OutfitWindow::getOutfitString() const
+{
+ std::string str;
+ for (unsigned int i = 0; i < OUTFIT_ITEM_COUNT; i++)
+ {
+ const int id = mItems[mCurrentOutfit][i];
+ if (id < 0)
+ continue;
+
+ const ItemColor color = mItemColors[mCurrentOutfit][i];
+ std::vector<int> ids;
+ ids.push_back(id);
+ ids.push_back(CAST_S32(color));
+
+ const std::string name = ItemDB::getNamesStr(ids);
+ if (name.empty())
+ continue;
+ str.append("[");
+ str.append(name);
+ str.append("] ");
+ }
+ return str;
+}
diff --git a/src/gui/windows/outfitwindow.h b/src/gui/windows/outfitwindow.h
index a6d31d3be..227a16737 100644
--- a/src/gui/windows/outfitwindow.h
+++ b/src/gui/windows/outfitwindow.h
@@ -97,6 +97,8 @@ class OutfitWindow final : public Window,
void clearCurrentOutfit();
+ std::string getOutfitString() const;
+
private:
int getIndexFromGrid(const int pointX,
const int pointY) const A_WARN_UNUSED;