MyGUI  3.2.1
MyGUI_WidgetManager.h
Go to the documentation of this file.
1 /*
2  * This source file is part of MyGUI. For the latest info, see http://mygui.info/
3  * Distributed under the MIT License
4  * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5  */
6 
7 #ifndef __MYGUI_WIDGET_MANAGER_H__
8 #define __MYGUI_WIDGET_MANAGER_H__
9 
10 #include "MyGUI_Prerequest.h"
11 #include "MyGUI_Singleton.h"
12 #include "MyGUI_IUnlinkWidget.h"
14 #include "MyGUI_Widget.h"
15 #include <set>
17 
18 namespace MyGUI
19 {
21  public Singleton<WidgetManager>,
22  public MemberObsolete<WidgetManager>
23  {
24  public:
25  WidgetManager();
26 
27  void initialise();
28  void shutdown();
29 
30  Widget* createWidget(WidgetStyle _style, const std::string& _type, const std::string& _skin, const IntCoord& _coord, Widget* _parent, ICroppedRectangle* _cropeedParent, const std::string& _name);
31 
33  void destroyWidget(Widget* _widget);
35  void destroyWidgets(const VectorWidgetPtr& _widgets);
37  void destroyWidgets(EnumeratorWidgetPtr _widgets);
38 
40  void registerUnlinker(IUnlinkWidget* _unlink);
42  void unregisterUnlinker(IUnlinkWidget* _unlink);
44  void unlinkFromUnlinkers(Widget* _widget);
45 
47  bool isFactoryExist(const std::string& _type);
48 
49  /*internal:*/
50  void _deleteWidget(Widget* _widget);
51  void _deleteDelayWidgets();
52 
53  const std::string& getCategoryName() const;
54 
55  private:
56  void notifyEventFrameStart(float _time);
57 
58  private:
59  bool mIsInitialise;
60  std::string mCategoryName;
61 
62  // список менеджеров для отписки при удалении
63  VectorIUnlinkWidget mVectorIUnlinkWidget;
64 
65  // список виджетов для удаления
66  VectorWidgetPtr mDestroyWidgets;
67  };
68 
69 } // namespace MyGUI
70 
71 #endif // __MYGUI_WIDGET_MANAGER_H__