31 #include "../api_csslayout.h"
32 #include "../../Core/Signals/callback_2.h"
41 class CSSLayoutObject;
42 class CSSLayoutElement;
45 class CSSHitTestResult;
62 void set_dpi(
float new_dpi);
66 void layout(
Canvas &canvas,
const Rect &viewport);
69 template<
typename GUIElement>
72 render_impl(canvas, std::unique_ptr<ClipWrapper>(
new GUIElementWrapper<GUIElement>(component)));
93 virtual void set_cliprect(
Canvas &canvas,
const Rect &rect) = 0;
94 virtual void reset_cliprect(
Canvas &canvas) = 0;
95 virtual void push_cliprect(
Canvas &canvas,
const Rect &rect) = 0;
96 virtual void pop_cliprect(
Canvas &canvas) = 0;
100 void render_impl(
Canvas &canvas, std::unique_ptr<ClipWrapper> wrapper = std::unique_ptr<ClipWrapper>());
102 template<
typename GUIElement>
103 class GUIElementWrapper :
public ClipWrapper
106 GUIElementWrapper(GUIElement *component) : component(component) { }
107 void set_cliprect(Canvas &canvas,
const Rect &rect) { component->set_cliprect(canvas, rect); }
108 void reset_cliprect(Canvas &canvas) { component->reset_cliprect(canvas); }
109 void push_cliprect(Canvas &canvas,
const Rect &rect) { component->push_cliprect(canvas, rect); }
110 void pop_cliprect(Canvas &canvas) { component->pop_cliprect(canvas); }
113 GUIElement *component;
116 CSSLayout(std::shared_ptr<CSSLayout_Impl> impl);
117 std::shared_ptr<CSSLayout_Impl> impl;
118 friend class CSSLayout_Impl;
void render(Canvas &canvas, GUIElement *component)
Definition: css_layout.h:70
Definition: css_document.h:55
2D Graphics Canvas
Definition: canvas.h:70
virtual ~ClipWrapper()
Definition: css_layout.h:92
2D (left,top,right,bottom) rectangle structure - Integer
Definition: rect.h:453
Definition: css_hit_test_result.h:9
Definition: css_layout.h:55
Definition: css_layout_text.h:40
2D (x,y) point structure - Integer
Definition: point.h:63
Callback_2.
Definition: callback_2.h:156
Definition: css_layout_object.h:40
Definition: css_layout.h:89
void render(Canvas &canvas)
Definition: css_layout.h:67
Definition: css_layout_element.h:42