diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-09-22 19:48:04 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-09-22 19:48:04 +0300 |
commit | de4548a50ecb4d4700c9899044f50070f7d9a95a (patch) | |
tree | d54bc1bdf010b2a08cdf067fcaf64d92d42685b1 /src/gui/windows | |
parent | bf3c7384ad1b1fce8beac97f8715eb054158f72e (diff) | |
download | manaplus-de4548a50ecb4d4700c9899044f50070f7d9a95a.tar.gz manaplus-de4548a50ecb4d4700c9899044f50070f7d9a95a.tar.bz2 manaplus-de4548a50ecb4d4700c9899044f50070f7d9a95a.tar.xz manaplus-de4548a50ecb4d4700c9899044f50070f7d9a95a.zip |
Add egg selection dialog.
Diffstat (limited to 'src/gui/windows')
-rw-r--r-- | src/gui/windows/eggselectiondialog.cpp | 79 | ||||
-rw-r--r-- | src/gui/windows/eggselectiondialog.h | 45 | ||||
-rw-r--r-- | src/gui/windows/npcselldialog.cpp | 2 | ||||
-rw-r--r-- | src/gui/windows/shopselldialog.cpp | 2 | ||||
-rw-r--r-- | src/gui/windows/shopwindow.cpp | 1 |
5 files changed, 127 insertions, 2 deletions
diff --git a/src/gui/windows/eggselectiondialog.cpp b/src/gui/windows/eggselectiondialog.cpp new file mode 100644 index 000000000..bac963235 --- /dev/null +++ b/src/gui/windows/eggselectiondialog.cpp @@ -0,0 +1,79 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2014 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/eggselectiondialog.h" + +#include "shopitem.h" +#include "units.h" + +#include "being/playerinfo.h" + +#include "gui/windows/confirmdialog.h" +#include "gui/windows/setupwindow.h" +#include "gui/windows/tradewindow.h" + +#include "gui/models/shopitems.h" + +#include "gui/widgets/button.h" +#include "gui/widgets/containerplacer.h" +#include "gui/widgets/label.h" +#include "gui/widgets/layout.h" +#include "gui/widgets/layouttype.h" +#include "gui/widgets/scrollarea.h" +#include "gui/widgets/shoplistbox.h" +#include "gui/widgets/slider.h" + +#include "net/inventoryhandler.h" + +#include "utils/gettext.h" + +#include "debug.h" + +EggSelectionDialog::EggSelectionDialog() : + SellDialog(false) +{ + // TRANSLATORS: egg selection dialog name + setWindowName(_("Select egg")); + // TRANSLATORS: egg selection dialog name + setCaption(_("Select egg")); +} + +void EggSelectionDialog::initButtons() +{ + logger->log("EggSelectionDialog::initButtons"); + // TRANSLATORS: egg selection dialog button + mSellButton->setCaption(_("Select")); + mSellButton->adjustSize(); +} + +void EggSelectionDialog::sellAction(const ActionEvent &event) +{ + if (mAmountItems <= 0 || mAmountItems > mMaxItems) + return; + + const std::string &eventId = event.getId(); + const int selectedItem = mShopItemList->getSelected(); + ShopItem *const item = mShopItems->at(selectedItem); + if (!item) + return; + inventoryHandler->selectEgg(item); +} diff --git a/src/gui/windows/eggselectiondialog.h b/src/gui/windows/eggselectiondialog.h new file mode 100644 index 000000000..c8b310c8f --- /dev/null +++ b/src/gui/windows/eggselectiondialog.h @@ -0,0 +1,45 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2014 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_EGGSELECTIONDIALOG_H +#define GUI_WINDOWS_EGGSELECTIONDIALOG_H + +#include "gui/widgets/selldialog.h" + +class EggSelectionDialog final : public SellDialog +{ + public: + /** + * Constructor. + * + * @see Window::Window + */ + EggSelectionDialog(); + + A_DELETE_COPY(EggSelectionDialog) + + protected: + void initButtons() override final; + void sellAction(const ActionEvent &event) override final; +}; + +#endif // GUI_WINDOWS_EGGSELECTIONDIALOG_H diff --git a/src/gui/windows/npcselldialog.cpp b/src/gui/windows/npcselldialog.cpp index a50c31e29..2e4cd6d07 100644 --- a/src/gui/windows/npcselldialog.cpp +++ b/src/gui/windows/npcselldialog.cpp @@ -54,7 +54,7 @@ #include "debug.h" NpcSellDialog::NpcSellDialog(const int npcId) : - SellDialog(), + SellDialog(true), mNpcId(npcId) { } diff --git a/src/gui/windows/shopselldialog.cpp b/src/gui/windows/shopselldialog.cpp index 44b15fd42..08abd6047 100644 --- a/src/gui/windows/shopselldialog.cpp +++ b/src/gui/windows/shopselldialog.cpp @@ -54,7 +54,7 @@ #include "debug.h" ShopSellDialog::ShopSellDialog(const std::string &nick) : - SellDialog(), + SellDialog(true), mNick(nick) { } diff --git a/src/gui/windows/shopwindow.cpp b/src/gui/windows/shopwindow.cpp index 0fb2a952f..8e5a847c0 100644 --- a/src/gui/windows/shopwindow.cpp +++ b/src/gui/windows/shopwindow.cpp @@ -653,6 +653,7 @@ void ShopWindow::showList(const std::string &nick, std::string data) { data = data.substr(2); sellDialog = new ShopSellDialog(nick); + sellDialog->postInit(); } else { |