OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
spellview.hpp
Go to the documentation of this file.
1 #ifndef OPENMW_GUI_SPELLVIEW_H
2 #define OPENMW_GUI_SPELLVIEW_H
3 
4 #include <boost/tuple/tuple.hpp>
5 
6 #include <MyGUI_Widget.h>
7 
8 #include "spellmodel.hpp"
9 
10 namespace MyGUI
11 {
12  class ScrollView;
13 }
14 
15 namespace MWGui
16 {
17 
18  class SpellModel;
19 
21  class SpellView : public MyGUI::Widget
22  {
23  MYGUI_RTTI_DERIVED(SpellView)
24  public:
25  SpellView();
26 
28  static void registerComponents ();
29 
31  void setShowCostColumn(bool show);
32 
33  void setHighlightSelected(bool highlight);
34 
36  void setModel (SpellModel* model);
37 
39 
40  void update();
41 
43  void incrementalUpdate();
44 
45  typedef MyGUI::delegates::CMultiDelegate1<SpellModel::ModelIndex> EventHandle_ModelIndex;
48 
49  virtual void initialiseOverride();
50 
51  virtual void setSize(const MyGUI::IntSize& _value);
52  virtual void setCoord(const MyGUI::IntCoord& _value);
53 
54  void resetScrollbars();
55 
56  private:
57  MyGUI::ScrollView* mScrollView;
58 
59  std::auto_ptr<SpellModel> mModel;
60 
62  struct LineInfo
63  {
65  MyGUI::Widget* mLeftWidget;
66 
68  MyGUI::Widget* mRightWidget;
69 
72 
73  LineInfo(MyGUI::Widget* leftWidget, MyGUI::Widget* rightWidget, SpellModel::ModelIndex spellIndex);
74  };
75 
77  enum { NoSpellIndex = -1 };
78 
79  std::vector< LineInfo > mLines;
80 
83 
84  void layoutWidgets();
85  void addGroup(const std::string& label1, const std::string& label2);
86  void adjustSpellWidget(const Spell& spell, SpellModel::ModelIndex index, MyGUI::Widget* widget);
87 
88  void onSpellSelected(MyGUI::Widget* _sender);
89  void onMouseWheelMoved(MyGUI::Widget* _sender, int _rel);
90 
91  SpellModel::ModelIndex getSpellModelIndex(MyGUI::Widget* _sender);
92 
93  static const char* sSpellModelIndex;
94  };
95 
96 }
97 
98 #endif
bool mHighlightSelected
Definition: spellview.hpp:82
tracks a row in the spell view
Definition: spellview.hpp:62
void onMouseWheelMoved(MyGUI::Widget *_sender, int _rel)
Definition: spellview.cpp:306
MyGUI::Widget * mLeftWidget
the widget on the left side of the row
Definition: spellview.hpp:65
MyGUI::Widget * mRightWidget
the widget on the left side of the row (if there is one)
Definition: spellview.hpp:68
void setModel(SpellModel *model)
Takes ownership of model.
Definition: spellview.cpp:46
virtual void setSize(const MyGUI::IntSize &_value)
Definition: spellview.cpp:261
void resetScrollbars()
Definition: spellview.cpp:314
void adjustSpellWidget(const Spell &spell, SpellModel::ModelIndex index, MyGUI::Widget *widget)
Definition: spellview.cpp:277
SpellModel * getModel()
Definition: spellview.cpp:52
void layoutWidgets()
Definition: spellview.cpp:192
LineInfo(MyGUI::Widget *leftWidget, MyGUI::Widget *rightWidget, SpellModel::ModelIndex spellIndex)
Definition: spellview.cpp:15
static const char * sSpellModelIndex
Definition: spellview.hpp:93
Definition: spellmodel.hpp:9
SpellView()
Definition: spellview.cpp:23
Model that lists all usable powers, spells and enchanted items for an actor.
Definition: spellmodel.hpp:35
void addGroup(const std::string &label1, const std::string &label2)
Definition: spellview.cpp:227
Displays a SpellModel in a list widget.
Definition: spellview.hpp:21
MyGUI::delegates::CMultiDelegate1< SpellModel::ModelIndex > EventHandle_ModelIndex
Definition: spellview.hpp:45
virtual void setCoord(const MyGUI::IntCoord &_value)
Definition: spellview.cpp:269
void update()
Definition: spellview.cpp:75
EventHandle_ModelIndex eventSpellClicked
Fired when a spell was clicked.
Definition: spellview.hpp:47
void incrementalUpdate()
simplified update called each frame
Definition: spellview.cpp:137
virtual void initialiseOverride()
Definition: spellview.cpp:30
std::auto_ptr< SpellModel > mModel
Definition: spellview.hpp:59
bool mShowCostColumn
Definition: spellview.hpp:81
MyGUI::ScrollView * mScrollView
Definition: spellview.hpp:57
Definition: spellview.hpp:77
void onSpellSelected(MyGUI::Widget *_sender)
Definition: spellview.cpp:301
static void registerComponents()
Register needed components with MyGUI's factory manager.
Definition: spellview.cpp:41
SpellModel::ModelIndex mSpellIndex
index to item in mModel that row is showing information for
Definition: spellview.hpp:71
SpellModel::ModelIndex getSpellModelIndex(MyGUI::Widget *_sender)
Definition: spellview.cpp:296
void setHighlightSelected(bool highlight)
Definition: spellview.cpp:66
std::vector< LineInfo > mLines
Definition: spellview.hpp:79
void setShowCostColumn(bool show)
Should the cost/chance column be shown?
Definition: spellview.cpp:57