OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
tooltips.hpp
Go to the documentation of this file.
1 #ifndef MWGUI_TOOLTIPS_H
2 #define MWGUI_TOOLTIPS_H
3 
4 #include "layout.hpp"
5 #include "../mwworld/ptr.hpp"
6 
7 #include "widgets.hpp"
8 
9 namespace ESM
10 {
11  struct Class;
12  struct Race;
13 }
14 
15 namespace MWGui
16 {
17  // Info about tooltip that is supplied by the MWWorld::Class object
18  struct ToolTipInfo
19  {
20  public:
22  : imageSize(32)
24  , isPotion(false)
25  , wordWrap(true)
26  {}
27 
28  std::string caption;
29  std::string text;
30  std::string icon;
31  int imageSize;
32 
33  // enchantment (for cloth, armor, weapons)
34  std::string enchant;
36 
37  // effects (for potions, ingredients)
39 
40  // local map notes
41  std::vector<std::string> notes;
42 
43  bool isPotion; // potions do not show target in the tooltip
44  bool wordWrap;
45  };
46 
47  class ToolTips : public Layout
48  {
49  public:
50  ToolTips();
51 
52  void onFrame(float frameDuration);
53  void update(float frameDuration);
54 
55  void setEnabled(bool enabled);
56 
57  bool toggleFullHelp();
58  bool getFullHelp() const;
59 
60  void setDelay(float delay);
61 
62  void setFocusObject(const MWWorld::Ptr& focus);
63  void setFocusObjectScreenCoords(float min_x, float min_y, float max_x, float max_y);
65 
66  static std::string getWeightString(const float weight, const std::string& prefix);
67  static std::string getPercentString(const float value, const std::string& prefix);
68  static std::string getValueString(const int value, const std::string& prefix);
70 
71  static std::string getMiscString(const std::string& text, const std::string& prefix);
73 
74  static std::string toString(const float value);
75  static std::string toString(const int value);
76 
77  static std::string getCountString(const int value);
79 
80  static std::string getCellRefString(const MWWorld::CellRef& cellref);
82 
83  // these do not create an actual tooltip, but they fill in the data that is required so the tooltip
84  // system knows what to show in case this widget is hovered
85  static void createSkillToolTip(MyGUI::Widget* widget, int skillId);
86  static void createAttributeToolTip(MyGUI::Widget* widget, int attributeId);
87  static void createSpecializationToolTip(MyGUI::Widget* widget, const std::string& name, int specId);
88  static void createBirthsignToolTip(MyGUI::Widget* widget, const std::string& birthsignId);
89  static void createRaceToolTip(MyGUI::Widget* widget, const ESM::Race* playerRace);
90  static void createClassToolTip(MyGUI::Widget* widget, const ESM::Class& playerClass);
91  static void createMagicEffectToolTip(MyGUI::Widget* widget, short id);
92 
93  bool checkOwned();
95 
96  private:
97  MyGUI::Widget* mDynamicToolTipBox;
98 
100 
101  MyGUI::IntSize getToolTipViaPtr (int count, bool image = true, bool isOwned = false);
103 
104  MyGUI::IntSize createToolTip(const ToolTipInfo& info, bool isOwned = false);
107 
110 
112  void position(MyGUI::IntPoint& position, MyGUI::IntSize size, MyGUI::IntSize viewportSize);
113 
114  static std::string sSchoolNames[6];
115 
117 
118 
119  float mDelay;
120  float mRemainingDelay; // remaining time until tooltip will show
121 
124 
125  bool mEnabled;
126 
127  bool mFullHelp;
128 
130 
132  };
133 }
134 #endif
Definition: tooltips.hpp:18
static std::string sSchoolNames[6]
Definition: tooltips.hpp:114
Encapsulated variant of ESM::CellRef with change tracking.
Definition: cellref.hpp:15
void setFocusObject(const MWWorld::Ptr &focus)
Definition: tooltips.cpp:333
static void createBirthsignToolTip(MyGUI::Widget *widget, const std::string &birthsignId)
Definition: tooltips.cpp:740
std::vector< std::string > notes
Definition: tooltips.hpp:41
static std::string toString(const float value)
Definition: tooltips.cpp:574
bool wordWrap
Definition: tooltips.hpp:44
bool mFullHelp
Definition: tooltips.hpp:127
void setDelay(float delay)
Definition: tooltips.cpp:852
int mLastMouseY
Definition: tooltips.hpp:123
std::string caption
Definition: tooltips.hpp:28
static std::string getMiscString(const std::string &text, const std::string &prefix)
Definition: tooltips.cpp:616
std::string enchant
Definition: tooltips.hpp:34
void setFocusObjectScreenCoords(float min_x, float min_y, float max_x, float max_y)
set the screen-space position of the tooltip for focused object
Definition: tooltips.cpp:666
MWWorld::Ptr mFocusObject
Definition: tooltips.hpp:99
static void createRaceToolTip(MyGUI::Widget *widget, const ESM::Race *playerRace)
Definition: tooltips.cpp:804
static void createSkillToolTip(MyGUI::Widget *widget, int skillId)
Definition: tooltips.cpp:672
void onFrame(float frameDuration)
Definition: tooltips.cpp:71
float mFocusToolTipY
Definition: tooltips.hpp:109
static void createMagicEffectToolTip(MyGUI::Widget *widget, short id)
Definition: tooltips.cpp:833
void update(float frameDuration)
Definition: tooltips.cpp:76
static std::string getPercentString(const float value, const std::string &prefix)
Definition: tooltips.cpp:600
Widgets::SpellEffectList effects
Definition: tooltips.hpp:38
MyGUI::Widget * mDynamicToolTipBox
Returns True if taking mFocusObject would be crime.
Definition: tooltips.hpp:97
std::vector< SpellEffectParams > SpellEffectList
Definition: widgets.hpp:89
ToolTips()
Definition: tooltips.cpp:32
static void createClassToolTip(MyGUI::Widget *widget, const ESM::Class &playerClass)
Definition: tooltips.cpp:812
static std::string getWeightString(const float weight, const std::string &prefix)
Definition: tooltips.cpp:592
bool getFullHelp() const
Definition: tooltips.cpp:661
bool toggleFullHelp()
show extra info in item tooltips (owner, script)
Definition: tooltips.cpp:655
float mFrameDuration
Definition: tooltips.hpp:131
static std::string getCellRefString(const MWWorld::CellRef &cellref)
Returns a string containing debug tooltip information about the given cellref.
Definition: tooltips.cpp:632
void position(MyGUI::IntPoint &position, MyGUI::IntSize size, MyGUI::IntSize viewportSize)
Adjust position for a tooltip so that it doesn't leave the screen and does not obscure the mouse curs...
Definition: tooltips.cpp:318
void setEnabled(bool enabled)
Definition: tooltips.cpp:66
ToolTipInfo()
Definition: tooltips.hpp:21
MyGUI::IntSize getToolTipViaPtr(int count, bool image=true, bool isOwned=false)
Definition: tooltips.cpp:340
Definition: layout.hpp:15
float mRemainingDelay
Definition: tooltips.hpp:120
Definition: loadclas.hpp:18
Definition: loadrace.hpp:18
static void createSpecializationToolTip(MyGUI::Widget *widget, const std::string &name, int specId)
Definition: tooltips.cpp:713
static void createAttributeToolTip(MyGUI::Widget *widget, int attributeId)
Definition: tooltips.cpp:697
int mShowOwned
Definition: tooltips.hpp:129
bool mEnabled
Definition: tooltips.hpp:125
int mHorizontalScrollIndex
Definition: tooltips.hpp:116
bool isPotion
Definition: tooltips.hpp:43
Pointer to a LiveCellRef.
Definition: ptr.hpp:19
Definition: tooltips.hpp:47
std::string text
Definition: tooltips.hpp:29
int imageSize
Definition: tooltips.hpp:31
bool checkOwned()
Definition: tooltips.cpp:365
float mFocusToolTipX
Definition: tooltips.hpp:108
float mDelay
Definition: tooltips.hpp:119
int mLastMouseX
Definition: tooltips.hpp:122
static std::string getCountString(const int value)
Definition: tooltips.cpp:624
std::string icon
Definition: tooltips.hpp:30
MyGUI::IntSize createToolTip(const ToolTipInfo &info, bool isOwned=false)
Definition: tooltips.cpp:377
static std::string getValueString(const int value, const std::string &prefix)
Definition: tooltips.cpp:608
const char * name
Definition: crashcatcher.cpp:67
int remainingEnchantCharge
Definition: tooltips.hpp:35