OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
alchemywindow.hpp
Go to the documentation of this file.
1 #ifndef MWGUI_ALCHEMY_H
2 #define MWGUI_ALCHEMY_H
3 
4 #include <vector>
5 
6 #include <MyGUI_ControllerManager.h>
7 
8 #include "../mwmechanics/alchemy.hpp"
9 
11 
12 #include "controllers.hpp"
13 #include "windowbase.hpp"
14 
15 namespace MWMechanics
16 {
17  class Alchemy;
18 }
19 
20 namespace MWGui
21 {
22  class ItemView;
23  class ItemWidget;
24  class SortFilterItemModel;
25 
26  class AlchemyWindow : public WindowBase
27  {
28  public:
29  AlchemyWindow();
30 
31  virtual void onOpen();
32 
33  void onResChange(int, int) { center(); }
34 
35  private:
36 
37  static const float sCountChangeInitialPause; // in seconds
38  static const float sCountChangeInterval; // in seconds
39 
40  std::string mSuggestedPotionName;
41 
44 
45  MyGUI::Button* mCreateButton;
46  MyGUI::Button* mCancelButton;
47 
48  MyGUI::Widget* mEffectsBox;
49 
50  MyGUI::Button* mIncreaseButton;
51  MyGUI::Button* mDecreaseButton;
52  MyGUI::EditBox* mNameEdit;
54 
55  void onCancelButtonClicked(MyGUI::Widget* _sender);
56  void onCreateButtonClicked(MyGUI::Widget* _sender);
57  void onIngredientSelected(MyGUI::Widget* _sender);
58  void onAccept(MyGUI::EditBox*);
59  void onIncreaseButtonPressed(MyGUI::Widget* _sender, int _left, int _top, MyGUI::MouseButton _id);
60  void onDecreaseButtonPressed(MyGUI::Widget* _sender, int _left, int _top, MyGUI::MouseButton _id);
61  void onCountButtonReleased(MyGUI::Widget* _sender, int _left, int _top, MyGUI::MouseButton _id);
62  void onCountValueChanged(int value);
63  void onRepeatClick(MyGUI::Widget* widget, MyGUI::ControllerItem* controller);
64 
65  void addRepeatController(MyGUI::Widget* widget);
66 
69 
70  void onSelectedItem(int index);
71 
72  void removeIngredient(MyGUI::Widget* ingredient);
73 
74  void createPotions(int count);
75 
76  void update();
77 
78  std::unique_ptr<MWMechanics::Alchemy> mAlchemy;
79 
80  std::vector<ItemWidget*> mApparatus;
81  std::vector<ItemWidget*> mIngredients;
82  };
83 }
84 
85 #endif
void onResChange(int, int)
Called when GUI viewport changes size.
Definition: alchemywindow.hpp:33
A variant of the EditBox that only allows integer inputs.
Definition: numericeditbox.hpp:14
void onIngredientSelected(MyGUI::Widget *_sender)
Definition: alchemywindow.cpp:175
void onDecreaseButtonTriggered()
Definition: alchemywindow.cpp:331
Definition: itemview.hpp:11
MyGUI::Button * mCancelButton
Definition: alchemywindow.hpp:46
void onIncreaseButtonTriggered()
Definition: alchemywindow.cpp:320
void onCreateButtonClicked(MyGUI::Widget *_sender)
Definition: alchemywindow.cpp:93
std::unique_ptr< MWMechanics::Alchemy > mAlchemy
Definition: alchemywindow.hpp:78
std::vector< ItemWidget * > mApparatus
Definition: alchemywindow.hpp:80
MyGUI::Widget * mEffectsBox
Definition: alchemywindow.hpp:48
std::string mSuggestedPotionName
Definition: alchemywindow.hpp:40
void onCancelButtonClicked(MyGUI::Widget *_sender)
Definition: alchemywindow.cpp:88
static const float sCountChangeInitialPause
Definition: alchemywindow.hpp:37
void onAccept(MyGUI::EditBox *)
Definition: alchemywindow.cpp:80
void onSelectedItem(int index)
Definition: alchemywindow.cpp:181
void onCountButtonReleased(MyGUI::Widget *_sender, int _left, int _top, MyGUI::MouseButton _id)
Definition: alchemywindow.cpp:310
void createPotions(int count)
Definition: alchemywindow.cpp:101
MyGUI::Button * mCreateButton
Definition: alchemywindow.hpp:45
void center()
Definition: windowbase.cpp:49
Definition: alchemywindow.hpp:26
AlchemyWindow()
Definition: alchemywindow.cpp:31
void removeIngredient(MyGUI::Widget *ingredient)
Definition: alchemywindow.cpp:272
static const float sCountChangeInterval
Definition: alchemywindow.hpp:38
void onCountValueChanged(int value)
Definition: alchemywindow.cpp:315
MyGUI::EditBox * mNameEdit
Definition: alchemywindow.hpp:52
Definition: sortfilteritemmodel.hpp:9
MyGUI::Button * mIncreaseButton
Definition: alchemywindow.hpp:50
void onDecreaseButtonPressed(MyGUI::Widget *_sender, int _left, int _top, MyGUI::MouseButton _id)
Definition: alchemywindow.cpp:296
void onRepeatClick(MyGUI::Widget *widget, MyGUI::ControllerItem *controller)
Definition: alchemywindow.cpp:302
ItemView * mItemView
Definition: alchemywindow.hpp:42
Definition: windowbase.hpp:21
std::vector< ItemWidget * > mIngredients
Definition: alchemywindow.hpp:81
SortFilterItemModel * mSortModel
Definition: alchemywindow.hpp:43
void addRepeatController(MyGUI::Widget *widget)
Definition: alchemywindow.cpp:281
void update()
Definition: alchemywindow.cpp:195
void onIncreaseButtonPressed(MyGUI::Widget *_sender, int _left, int _top, MyGUI::MouseButton _id)
Definition: alchemywindow.cpp:290
virtual void onOpen()
Notify that window has been made visible.
Definition: alchemywindow.cpp:143
MyGUI::Button * mDecreaseButton
Definition: alchemywindow.hpp:51
Gui::NumericEditBox * mBrewCountEdit
Definition: alchemywindow.hpp:53