31 template <> ToolTipManager* Singleton<ToolTipManager>::msInstance =
nullptr;
37 mToolTipVisible(false),
51 mOldFocusWidget =
nullptr;
52 mToolTipVisible =
false;
73 mIsInitialise =
false;
76 void ToolTipManager::notifyEventFrameStart(
float _time)
79 if (mOldFocusWidget != widget)
83 mToolTipVisible =
false;
84 hideToolTip(mOldFocusWidget);
86 mOldFocusWidget = widget;
89 if (mOldFocusWidget !=
nullptr)
93 mOldIndex = getToolTipIndex(mOldFocusWidget);
94 mNeedToolTip = isNeedToolTip(mOldFocusWidget);
97 else if (mNeedToolTip)
104 mToolTipVisible =
false;
105 hideToolTip(mOldFocusWidget);
111 if (!mToolTipVisible && point != mOldMousePoint)
115 mToolTipVisible =
false;
116 hideToolTip(mOldFocusWidget);
119 mOldMousePoint = point;
120 mOldIndex = getToolTipIndex(mOldFocusWidget);
124 size_t index = getToolTipIndex(mOldFocusWidget);
125 if (mOldIndex != index)
129 mToolTipVisible =
false;
130 hideToolTip(mOldFocusWidget);
137 if (!mToolTipVisible)
139 mCurrentTime += _time;
140 if (mCurrentTime >= mDelayVisible)
142 mToolTipVisible =
true;
143 showToolTip(mOldFocusWidget, mOldIndex, point);
146 else if (point != mOldMousePoint)
148 moveToolTip(mOldFocusWidget, mOldIndex, point);
158 if (mOldFocusWidget == _widget)
162 mToolTipVisible =
false;
163 hideToolTip(mOldFocusWidget);
165 mOldFocusWidget =
nullptr;
166 mNeedToolTip =
false;
170 void ToolTipManager::hideToolTip(
Widget* _widget)
173 if (container !=
nullptr)
179 void ToolTipManager::showToolTip(Widget* _widget,
size_t _index,
const IntPoint& _point)
182 if (container !=
nullptr)
188 void ToolTipManager::moveToolTip(Widget* _widget,
size_t _index,
const IntPoint& _point)
190 Widget* container = _widget->_getContainer();
191 if (container !=
nullptr)
192 container->eventToolTip(container, ToolTipInfo(
ToolTipInfo::Move, _index, _point));
197 bool ToolTipManager::isNeedToolTip(Widget* _widget)
199 Widget* container = _widget->_getContainer();
200 if (container !=
nullptr)
201 return container->getNeedToolTip();
202 return _widget->getNeedToolTip();
205 size_t ToolTipManager::getToolTipIndex(Widget* _widget)
const
207 Widget* container = _widget->_getContainer();
208 if (container !=
nullptr)
209 return container->_getItemIndex(_widget);
215 mDelayVisible = _value;
220 return mDelayVisible;
EventHandle_FrameEventDelegate eventFrameStart
delegates::IDelegate0 * newDelegate(void(*_func)())
static Gui & getInstance()
static const char * getClassTypeName()
#define MYGUI_LOG(level, text)
#define MYGUI_ASSERT(exp, dest)
static const char * mClassTypeName
types::TPoint< int > IntPoint