YAPOG  0.0.1
Yet Another Pokemon Online Game
LayoutBox.hpp
Go to the documentation of this file.
1 #ifndef YAPOG_LAYOUT_BOX_HPP
2 # define YAPOG_LAYOUT_BOX_HPP
3 
4 # include "YAPOG/Macros.hpp"
6 # include "YAPOG/Collection/Map.hpp"
8 
9 namespace yap
10 {
11 
13  {
15 
16  public:
17 
18  enum class Align
19  {
23  TOP,
24  BOTTOM
25  };
26 
27  LayoutBox ();
28  LayoutBox (Padding ext, Padding in, bool isExt);
29  virtual ~LayoutBox ();
30  virtual bool IsFocusable () const;
31 
32  virtual void AddChild (IWidget& child, Align align = Align::CENTER);
33  void RemoveChild (IWidget& child);
34  virtual float GetWidthItem () = 0;
35  void SetExtensible (bool isExt);
36  bool GetExtensible ();
37  void SetAlign (Align global);
38  Align GetAlign ();
39  void Clear ();
40  virtual void Refresh ();
41  const Padding& GetInnerPadding () const;
42  uint Count () const;
43 
44  protected:
45  virtual void GeneratePosition () = 0;
46 
47  virtual Vector2 HandleGetSize () const;
48  virtual void HandleMove (const Vector2& offset);
49  virtual void HandleScale (const Vector2& factor);
50 
51  virtual void HandleDraw (IDrawingContext& context);
52 
53  virtual void HandleShow (bool isVisible);
54  virtual void HandleChangeColor (const sf::Color& color);
55 
56  virtual void HandleUpdate (const Time& dt);
57 
58  float MaxSize (char coord);
59 
60  virtual bool HandleOnPriorityEvent (const GuiEvent& guiEvent);
61  //virtual bool HandleOnEvent (const GuiEvent& guiEvent);
62 
68 
71 
72  };
73 } // namespace yap
74 
75 #endif /* YAPOG_LAYOUT_BOX_HPP! */