28 mXmlPointerTagName(
"Pointer"),
29 mXmlPropertyTagName(
"Property"),
30 mXmlDefaultPointerValue(
"Default"),
31 mSingletonHolder(
this)
52 mMousePointer =
nullptr;
53 mWidgetOwner =
nullptr;
56 mSkinName =
"ImageBox";
75 _destroyAllChildWidget();
77 mWidgetOwner =
nullptr;
83 mIsInitialise =
false;
88#ifndef MYGUI_DONT_USE_OBSOLETE
95 if (
node->getName() == mXmlPropertyTagName)
97 std::string_view key =
node->findAttribute(
"key");
98 std::string_view value =
node->findAttribute(
"value");
101 else if (key ==
"Layer")
103 else if (key ==
"Skin")
109 void PointerManager::notifyFrameStart(
float _time)
112 if (mOldPoint != mPoint)
116 if (
nullptr != mMousePointer && mPointer !=
nullptr)
123 if (
nullptr != mMousePointer)
130 if (
nullptr == mMousePointer)
142 mPointer = result->
castType<IPointer>();
146 mWidgetOwner = _owner;
149 void PointerManager::_unlinkWidget(Widget* _widget)
151 if (_widget == mWidgetOwner)
153 else if (_widget == mMousePointer)
154 mMousePointer =
nullptr;
163 Widget* PointerManager::baseCreateWidget(
165 std::string_view
_type,
166 std::string_view
_skin,
170 std::string_view
_name)
175 mWidgetChild.push_back(
widget);
186 void PointerManager::_destroyAllChildWidget()
189 while (!mWidgetChild.empty())
192 Widget* widget = mWidgetChild.back();
193 mWidgetChild.pop_back();
196 manager.unlinkFromUnlinkers(widget);
220 void PointerManager::Update()
222 if (mMousePointer ==
nullptr)
223 mMousePointer =
static_cast<ImageBox*
>(baseCreateWidget(
230 std::string_view{}));
236 if (!
_name.empty() &&
_name != mXmlDefaultPointerValue)
250 if (
pointer != mCurrentMousePointer)
252 mCurrentMousePointer =
pointer;
253 if (mCurrentMousePointer.empty())
#define MYGUI_ASSERT(exp, dest)
#define MYGUI_LOG(level, text)
#define MYGUI_SINGLETON_DEFINITION(ClassName)
static FactoryManager & getInstance()
static Gui & getInstance()
Type * castType(bool _throw=true)
virtual void setImage(ImageBox *_image)=0
virtual void setPosition(ImageBox *_image, const IntPoint &_point)=0
widget description should be here.
static std::string_view getClassTypeName()
static LayerManager & getInstance()
void loadOldPointerFormat(xml::ElementPtr _node, std::string_view _file, Version _version, std::string_view _tag)
void resetToDefaultPointer()
void setPointer(std::string_view _name)
const std::string & getDefaultPointer() const
void setVisible(bool _visible)
const std::string & getLayerName() const
EventPairConvertStringView< delegates::MultiDelegate< const std::string & >, delegates::MultiDelegate< std::string_view > > eventChangeMousePointer
void setDefaultPointer(std::string_view _value)
void setLayerName(std::string_view _value)
IPointer * getByName(std::string_view _name) const
static std::string_view getClassTypeName()
static ResourceManager & getInstance()
types::TCoord< int > IntCoord
delegates::DelegateFunction< Args... > * newDelegate(void(*_func)(Args... args))