00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined(__INCLUDE_GLWToolTiph_INCLUDE__)
00022 #define __INCLUDE_GLWToolTiph_INCLUDE__
00023
00024 #include <engine/GameStateI.h>
00025 #include <common/ToolTip.h>
00026 #include <list>
00027
00028 class GLWToolTip : public GameStateI
00029 {
00030 public:
00031 static GLWToolTip *instance();
00032
00033 bool addToolTip(ToolTip::ToolTipType type,
00034 const LangString &title, const LangString &text,
00035 float x, float y, float w, float h);
00036 bool addToolTip(ToolTip *tip,
00037 float x, float y, float w, float h);
00038 void clearToolTip(float x, float y, float w, float h);
00039
00040
00041 virtual void simulate(const unsigned state, float frameTime);
00042 virtual void draw(const unsigned state);
00043
00044 protected:
00045 static GLWToolTip *instance_;
00046 ToolTip *currentTip_;
00047 ToolTip *lastTip_;
00048 float timeDrawn_, timeSeen_;
00049 float refreshTime_;
00050
00051
00052 float currentX_, currentY_;
00053 float currentW_, currentH_;
00054 float tipX_, tipY_;
00055 float tipW_, tipH_;
00056 float tipOffX_, tipOffY_;
00057 float tipTextWidth_;
00058 float tipTextHeight_;
00059 LangString tipTitle_, tipText_;
00060 std::list<LangString> tipTexts_;
00061
00062 void setupTip(ToolTip *tip);
00063 void calculateTip(ToolTip *tip);
00064 private:
00065 GLWToolTip();
00066 virtual ~GLWToolTip();
00067 };
00068
00069 #endif