35 template <> ControllerManager* Singleton<ControllerManager>::msInstance =
nullptr;
36 template <>
const char* Singleton<ControllerManager>::mClassTypeName(
"ControllerManager");
50 const std::string factory_type =
"Controller";
65 const std::string factory_type =
"Controller";
75 mIsInitialise =
false;
78 void ControllerManager::clear()
80 for (ListControllerItem::iterator iter = mListItem.begin(); iter != mListItem.end(); ++iter)
82 delete (*iter).second;
96 if (mListItem.empty())
102 for (ListControllerItem::iterator iter = mListItem.begin(); iter != mListItem.end(); ++iter)
105 if ((*iter).first == _widget)
107 if ((*iter).second->getTypeName() == _item->
getTypeName())
109 delete (*iter).second;
110 (*iter).second = _item;
117 mListItem.push_back(PairControllerItem(_widget, _item));
123 for (ListControllerItem::iterator iter = mListItem.begin(); iter != mListItem.end(); ++iter)
125 if ((*iter).first == _widget) (*iter).first =
nullptr;
129 void ControllerManager::_unlinkWidget(
Widget* _widget)
134 void ControllerManager::frameEntered(
float _time)
136 for (ListControllerItem::iterator iter = mListItem.begin(); iter != mListItem.end(); )
138 if (
nullptr == (*iter).first)
140 delete (*iter).second;
142 iter = mListItem.erase(iter);
146 if ((*iter).second->addTime((*iter).first, _time))
153 (*iter).first =
nullptr;
156 if (mListItem.empty())
void addItem(Widget *_widget, ControllerItem *_item)
EventHandle_FrameEventDelegate eventFrameStart
virtual void prepareItem(Widget *_widget)=0
delegates::IDelegate0 * newDelegate(void(*_func)())
static WidgetManager & getInstance()
static const char * getClassTypeName()
#define MYGUI_LOG(level, text)
#define MYGUI_ASSERT(exp, dest)
virtual const std::string & getTypeName() const
Type * castType(bool _throw=true)
void unregisterFactory(const std::string &_category, const std::string &_type)
void removeItem(Widget *_widget)
void registerFactory(const std::string &_category, const std::string &_type, Delegate::IDelegate *_delegate)
IObject * createObject(const std::string &_category, const std::string &_type)
ControllerItem * createItem(const std::string &_type)