MyGUI  3.4.0
MyGUI_LayerManager.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_LAYER_MANAGER_H_
8 #define MYGUI_LAYER_MANAGER_H_
9 
10 #include "MyGUI_Prerequest.h"
11 #include "MyGUI_Singleton.h"
12 #include "MyGUI_Enumerator.h"
13 #include "MyGUI_XmlDocument.h"
14 #include "MyGUI_IUnlinkWidget.h"
15 #include "MyGUI_ResourceManager.h"
16 #include "MyGUI_ILayer.h"
18 
19 namespace MyGUI
20 {
21 
23  public Singleton<LayerManager>,
24  public IUnlinkWidget,
25  public MemberObsolete<LayerManager>
26  {
27  public:
28  typedef std::vector<ILayer*> VectorLayer;
30 
31  public:
32  LayerManager();
33 
34  void initialise();
35  void shutdown();
36 
41  void attachToLayerNode(const std::string& _name, Widget* _item);
45  void detachFromLayer(Widget* _item);
46 
50  void upLayerItem(Widget* _item);
51 
53  bool isExist(const std::string& _name) const;
55  EnumeratorLayer getEnumerator() const;
56 
62  ILayer* createLayerAt(const std::string& _name, const std::string& _type, size_t _index);
63 
65  ILayer* getByName(const std::string& _name, bool _throw = true) const;
66 
67  size_t getLayerCount() const;
68 
69  ILayer* getLayer(size_t _index);
70 
72  Widget* getWidgetFromPoint(int _left, int _top);
73 
75  void renderToTarget(IRenderTarget* _target, bool _update);
76 
77  void resizeView(const IntSize& _viewSize);
78 
79  const std::string& getCategoryName() const;
80 
81  private:
82  void _load(xml::ElementPtr _node, const std::string& _file, Version _version);
83  void _unlinkWidget(Widget* _widget);
84 
85  ILayer* _createLayerObject(const std::string& _type);
86 
87  void clear();
88 
89  void merge(VectorLayer& _layers);
90  void destroy(ILayer* _layer);
91 
92  private:
93  VectorLayer mLayerNodes;
94 
95  bool mIsInitialise;
96  std::string mCategoryName;
97  };
98 
99 } // namespace MyGUI
100 
101 #endif // MYGUI_LAYER_MANAGER_H_
MyGUI_XmlDocument.h
MyGUI::LayerManager
Definition: MyGUI_LayerManager.h:26
MyGUI_ResourceManager.h
MyGUI::LayerManager::EnumeratorLayer
Enumerator< VectorLayer > EnumeratorLayer
Definition: MyGUI_LayerManager.h:29
MyGUI_Enumerator.h
MyGUI::LayerManager::VectorLayer
std::vector< ILayer * > VectorLayer
Definition: MyGUI_LayerManager.h:28
MyGUI::Widget
Widget properties. Skin childs. Widget widget description should be here.
Definition: MyGUI_Widget.h:37
MyGUI::ILayer
Definition: MyGUI_ILayer.h:23
MyGUI::xml::Element
Definition: MyGUI_XmlDocument.h:159
MyGUI::Version
Definition: MyGUI_Version.h:18
MyGUI_Prerequest.h
MyGUI_Singleton.h
MyGUI::Enumerator
Definition: MyGUI_Enumerator.h:49
MyGUI::MemberObsolete
Definition: MyGUI_DeprecatedTypes.h:14
MyGUI::types::TSize< int >
MYGUI_EXPORT
#define MYGUI_EXPORT
Definition: MyGUI_Platform.h:89
MyGUI::Singleton
Definition: MyGUI_Singleton.h:22
MyGUI_BackwardCompatibility.h
MyGUI_ILayer.h
MyGUI
Definition: MyGUI_ActionController.h:15
MyGUI::IRenderTarget
Definition: MyGUI_IRenderTarget.h:21