YAPOG  0.0.1
Yet Another Pokemon Online Game
IWidget.hpp
Go to the documentation of this file.
1 #ifndef YAPOG_IWIDGET_HPP
2 # define YAPOG_IWIDGET_HPP
3 
4 # include "YAPOG/Macros.hpp"
10 
11 namespace yap
12 {
13  class Padding;
14  class WidgetBackground;
15  class WidgetBorder;
17  struct YAPOG_LIB IWidget :
18  public ISpatial,
19  public IDrawable,
20  public IEventHandler,
21  public IUpdateable
22  {
23  virtual ~IWidget () {}
24 
25  virtual void SetDefaultColor (const sf::Color& color) = 0;
26  virtual void AddDrawable (IDrawable& drawable) = 0;
27  virtual void AddChild (IWidget& child) = 0;
28  virtual void FrontAddChild (IWidget& child) = 0;
29  virtual void RemoveChild (IWidget& child) = 0;
30  virtual IWidget& GetRoot () const = 0;
31  virtual WidgetBorder* GetBorder () const = 0;
32  virtual void SetParent (IWidget& parent) = 0;
33  virtual void SetPadding (const Padding& padding) = 0;
34  virtual void SetBackground (WidgetBackground& background) = 0;
35  virtual void SetBorder (WidgetBorder& border, uint width) = 0;
36  virtual void Refresh () = 0;
37  virtual bool IsFocusable () const = 0;
38  virtual void SetFocused (bool state) = 0;
39  virtual void SetEnable (bool enable) = 0;
40  virtual void Open () = 0;
41  virtual void Close () = 0;
42  virtual void SetToTop () = 0;
43  };
44 } // namespace yap
45 
46 #endif // YAPOG_IWIDGET_HPP