ManaPlus
itemamountwindow.h
Go to the documentation of this file.
1 /*
2  * The ManaPlus Client
3  * Copyright (C) 2004-2009 The Mana World Development Team
4  * Copyright (C) 2009-2010 The Mana Developers
5  * Copyright (C) 2011-2019 The ManaPlus Developers
6  * Copyright (C) 2019-2021 Andrei Karas
7  *
8  * This file is part of The ManaPlus Client.
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22  */
23 
24 #ifndef GUI_WINDOWS_ITEMAMOUNTWINDOW_H
25 #define GUI_WINDOWS_ITEMAMOUNTWINDOW_H
26 
27 #include "gui/widgets/window.h"
28 
30 
32 #include "listeners/keylistener.h"
33 
34 class DropDown;
35 class Icon;
36 class IntTextField;
37 class Item;
38 class ItemsModal;
39 class Label;
40 class Slider;
41 
47 class ItemAmountWindow final : public Window,
48  public ActionListener,
49  public KeyListener
50 {
51  public:
53 
54  void postInit() override final;
55 
59  void action(const ActionEvent &event) override final;
60 
64  void resetAmount();
65 
66  // MouseListener
67  void mouseMoved(MouseEvent &event) override final;
68 
69  void mouseExited(MouseEvent &event) override final;
70 
74  void close() override final;
75 
76  void keyReleased(KeyEvent &event) override final;
77 
81  static void showWindow(const ItemAmountWindowUsageT usage,
82  Window *const parent,
83  Item *const item,
84  int maxRange,
85  const int tag);
86 
87  ~ItemAmountWindow() override final;
88 
89 #ifndef UNITTESTS
90  private:
91 #endif // UNITTESTS
92  static void finish(Item *const item,
93  const int amount,
94  const int price,
95  const ItemAmountWindowUsageT usage);
96 
98  Window *const parent,
99  Item *const item,
100  const int maxRange);
101 
109 
117 
118  int mPrice;
119  int mMax;
122 };
123 
124 #endif // GUI_WINDOWS_ITEMAMOUNTWINDOW_H
Definition: icon.h:41
void mouseExited(MouseEvent &event)
IntTextField * mItemPriceTextField
ItemsModal * mItemsModal
static void finish(Item *const item, const int amount, const int price, const ItemAmountWindowUsageT usage)
void keyReleased(KeyEvent &event)
ItemAmountWindow(const ItemAmountWindowUsageT usage, Window *const parent, Item *const item, const int maxRange)
DropDown * mItemDropDown
IntTextField * mItemAmountTextField
void action(const ActionEvent &event)
ItemAmountWindowUsageT mUsage
void mouseMoved(MouseEvent &event)
static void showWindow(const ItemAmountWindowUsageT usage, Window *const parent, Item *const item, int maxRange, const int tag)
Definition: item.h:50
Definition: label.h:91
Definition: slider.h:89
Definition: window.h:102
ItemAmountWindowUsage ::T ItemAmountWindowUsageT
#define A_NONNULLPOINTER
Definition: localconsts.h:266
#define final
Definition: localconsts.h:46
#define A_DELETE_COPY(func)
Definition: localconsts.h:53