Disable stack execution on plugins
[claws.git] / src / plugins / litehtml_viewer / litehtml / render_table.h
blob57fe435df0ed2ff143038ff6b6da71c11d981c5c
1 #ifndef LITEHTML_RENDER_TABLE_H
2 #define LITEHTML_RENDER_TABLE_H
4 #include "render_item.h"
6 namespace litehtml
8 class render_item_table : public render_item
10 protected:
11 // data for table rendering
12 std::unique_ptr<table_grid> m_grid;
13 int m_border_spacing_x;
14 int m_border_spacing_y;
16 int _render(int x, int y, const containing_block_context &containing_block_size, formatting_context* fmt_ctx, bool second_pass) override;
18 public:
19 explicit render_item_table(std::shared_ptr<element> src_el);
21 std::shared_ptr<render_item> clone() override
23 return std::make_shared<render_item_table>(src_el());
25 void draw_children(uint_ptr hdc, int x, int y, const position* clip, draw_flag flag, int zindex) override;
26 int get_draw_vertical_offset() override;
27 std::shared_ptr<render_item> init() override;
30 class render_item_table_part : public render_item
32 public:
33 explicit render_item_table_part(std::shared_ptr<element> src_el) : render_item(std::move(src_el))
36 std::shared_ptr<render_item> clone() override
38 return std::make_shared<render_item_table_part>(src_el());
42 class render_item_table_row : public render_item
44 public:
45 explicit render_item_table_row(std::shared_ptr<element> src_el) : render_item(std::move(src_el))
48 std::shared_ptr<render_item> clone() override
50 return std::make_shared<render_item_table_row>(src_el());
52 void get_inline_boxes( position::vector& boxes ) const override;
56 #endif //LITEHTML_RENDER_TABLE_H