MyGUI  3.2.1
MyGUI_ISubWidget.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_I_SUB_WIDGET_H__
8 #define __MYGUI_I_SUB_WIDGET_H__
9 
10 #include "MyGUI_Prerequest.h"
12 #include "MyGUI_ILayerNode.h"
13 #include "MyGUI_Types.h"
14 #include "MyGUI_IRenderTarget.h"
15 #include "MyGUI_IStateInfo.h"
16 #include "MyGUI_IObject.h"
17 
18 namespace MyGUI
19 {
20 
21  class ISubWidget;
22  typedef std::vector<ISubWidget*> VectorSubWidget;
23 
25  public ICroppedRectangle,
26  public IObject
27  {
29 
30  public:
31  ISubWidget() : mVisible(true) { }
32  virtual ~ISubWidget() { }
33 
34  virtual void createDrawItem(ITexture* _texture, ILayerNode* _node) = 0;
35  virtual void destroyDrawItem() = 0;
36 
37  virtual void setAlpha(float _alpha) { }
38 
39  virtual void setStateData(IStateInfo* _data) { }
40 
41  virtual void doRender() = 0;
42 
43  virtual void setAlign(Align _value)
44  {
45  mAlign = _value;
46  }
47  virtual void setVisible(bool _value)
48  {
49  mVisible = _value;
50  }
51 
52  virtual void _updateView() { }
53  virtual void _correctView() { }
54 
55  virtual void _setAlign(const IntSize& _oldsize) { }
56 
57  virtual void doManualRender(IVertexBuffer* _buffer, ITexture* _texture, size_t _count) { }
58 
59  protected:
61  bool mVisible;
62  };
63 
64 } // namespace MyGUI
65 
66 #endif // __MYGUI_I_SUB_WIDGET_H__