21 template <> ControllerManager* Singleton<ControllerManager>::msInstance =
nullptr;
22 template <>
const char* Singleton<ControllerManager>::mClassTypeName =
"ControllerManager";
26 mCategoryName(
"Controller")
60 mIsInitialise =
false;
63 void ControllerManager::clear()
65 for (ListControllerItem::iterator iter = mListItem.begin(); iter != mListItem.end(); ++iter)
67 delete (*iter).second;
81 if (mListItem.empty())
87 for (ListControllerItem::iterator iter = mListItem.begin(); iter != mListItem.end(); ++iter)
90 if ((*iter).first == _widget)
92 if ((*iter).second->getTypeName() == _item->
getTypeName())
94 delete (*iter).second;
95 (*iter).second = _item;
102 mListItem.push_back(PairControllerItem(_widget, _item));
108 for (ListControllerItem::iterator iter = mListItem.begin(); iter != mListItem.end(); ++iter)
110 if ((*iter).first == _widget) (*iter).first =
nullptr;
114 void ControllerManager::_unlinkWidget(
Widget* _widget)
119 void ControllerManager::frameEntered(
float _time)
121 for (ListControllerItem::iterator iter = mListItem.begin(); iter != mListItem.end(); )
123 if (
nullptr == (*iter).first)
125 delete (*iter).second;
127 iter = mListItem.erase(iter);
131 if ((*iter).second->addTime((*iter).first, _time))
138 (*iter).first =
nullptr;
141 if (mListItem.empty())
147 return mCategoryName;
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)
const std::string & getCategoryName() const
IObject * createObject(const std::string &_category, const std::string &_type)
ControllerItem * createItem(const std::string &_type)