diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-07-14 22:42:47 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-07-14 22:42:47 +0300 |
commit | 26b43e7164214e8c9e5cdb8842a79a4fcc1493da (patch) | |
tree | 250a4f432ed66dee5a821eab15855cd194b18433 /src/gui | |
parent | 21d0f7cd7b0d8474f1043ae4f283a58ea6d8b352 (diff) | |
download | plus-26b43e7164214e8c9e5cdb8842a79a4fcc1493da.tar.gz plus-26b43e7164214e8c9e5cdb8842a79a4fcc1493da.tar.bz2 plus-26b43e7164214e8c9e5cdb8842a79a4fcc1493da.tar.xz plus-26b43e7164214e8c9e5cdb8842a79a4fcc1493da.zip |
Add ability for insert cards into items.
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/windows/insertcarddialog.cpp | 67 | ||||
-rw-r--r-- | src/gui/windows/insertcarddialog.h | 51 |
2 files changed, 118 insertions, 0 deletions
diff --git a/src/gui/windows/insertcarddialog.cpp b/src/gui/windows/insertcarddialog.cpp new file mode 100644 index 000000000..d34dcc7c6 --- /dev/null +++ b/src/gui/windows/insertcarddialog.cpp @@ -0,0 +1,67 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * 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. + * + * 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 this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "gui/windows/insertcarddialog.h" + +#include "shopitem.h" + +#include "gui/models/shopitems.h" + +#include "gui/widgets/button.h" +#include "gui/widgets/shoplistbox.h" + +#include "net/inventoryhandler.h" + +#include "utils/gettext.h" + +#include "debug.h" + +InsertCardDialog::InsertCardDialog(const int itemIndex) : + SellDialog(false), + mItemIndex(itemIndex) +{ + // TRANSLATORS: insert card dialog name + setWindowName(_("Insert card")); + // TRANSLATORS: insert card dialog name + setCaption(_("Insert card")); +} + +void InsertCardDialog::initButtons() +{ + // TRANSLATORS: insert card dialog button + mSellButton->setCaption(_("Insert")); + mSellButton->adjustSize(); + mShopItems->setMergeDuplicates(false); +} + +void InsertCardDialog::sellAction(const ActionEvent &event A_UNUSED) +{ + if (mAmountItems <= 0 || mAmountItems > mMaxItems) + return; + + const int selectedItem = mShopItemList->getSelected(); + const ShopItem *const item = mShopItems->at(selectedItem); + if (!item) + return; + inventoryHandler->insertCard(mItemIndex, item->getInvIndex()); + scheduleDelete(); +} diff --git a/src/gui/windows/insertcarddialog.h b/src/gui/windows/insertcarddialog.h new file mode 100644 index 000000000..938e1b57b --- /dev/null +++ b/src/gui/windows/insertcarddialog.h @@ -0,0 +1,51 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2015 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * 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. + * + * 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 this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef GUI_WINDOWS_INSERTCARDDIALOG_H +#define GUI_WINDOWS_INSERTCARDDIALOG_H + +#ifdef EATHENA_SUPPORT + +#include "gui/widgets/selldialog.h" + +class InsertCardDialog final : public SellDialog +{ + public: + /** + * Constructor. + * + * @see Window::Window + */ + InsertCardDialog(const int itemIndex); + + A_DELETE_COPY(InsertCardDialog) + + protected: + void initButtons() override final; + void sellAction(const ActionEvent &event) override final; + + private: + int mItemIndex; +}; + +#endif // EATHENA_SUPPORT +#endif // GUI_WINDOWS_INSERTCARDDIALOG_H |