Photon 1.0.0
Loading...
Searching...
No Matches
render_inline_context.h
Go to the documentation of this file.
1#ifndef LITEHTML_RENDER_INLINE_CONTEXT_H
2#define LITEHTML_RENDER_INLINE_CONTEXT_H
3
4#include "render_block.h"
5
6namespace litehtml
7{
13 {
23 {
24 std::shared_ptr<render_item> element;
27
28 explicit inlines_item(const std::shared_ptr<render_item>& el) : element(el) {}
29 };
30 protected:
31 std::vector<std::unique_ptr<litehtml::line_box> > m_line_boxes;
33
34 int _render_content(int x, int y, bool second_pass, const containing_block_context &self_size, formatting_context* fmt_ctx) override;
36 const containing_block_context &self_size, formatting_context* fmt_ctx) override;
37
38 std::list<std::unique_ptr<line_box_item> > finish_last_box(bool end_of_render, const containing_block_context &self_size);
39 void place_inline(std::unique_ptr<line_box_item> item, const containing_block_context &self_size, formatting_context* fmt_ctx);
40 int new_box(const std::unique_ptr<line_box_item>& el, line_context& line_ctx, const containing_block_context &self_size, formatting_context* fmt_ctx);
41 void apply_vertical_align() override;
42 public:
43 explicit render_item_inline_context(std::shared_ptr<element> src_el) : render_item_block(std::move(src_el)), m_max_line_width(0)
44 {}
45
46 std::shared_ptr<render_item> clone() override
47 {
48 return std::make_shared<render_item_inline_context>(src_el());
49 }
50
51 int get_first_baseline() override;
52 int get_last_baseline() override;
53 };
54}
55
56#endif //LITEHTML_RENDER_INLINE_CONTEXT_H
Definition element.h:19
Definition formatting_context.h:10
Definition render_block.h:9
Definition render_inline_context.h:13
std::shared_ptr< render_item > clone() override
Definition render_inline_context.h:46
void place_inline(std::unique_ptr< line_box_item > item, const containing_block_context &self_size, formatting_context *fmt_ctx)
Definition render_inline_context.cpp:243
int get_last_baseline() override
Definition render_inline_context.cpp:397
int new_box(const std::unique_ptr< line_box_item > &el, line_context &line_ctx, const containing_block_context &self_size, formatting_context *fmt_ctx)
Definition render_inline_context.cpp:185
std::vector< std::unique_ptr< litehtml::line_box > > m_line_boxes
Definition render_inline_context.h:31
render_item_inline_context(std::shared_ptr< element > src_el)
Definition render_inline_context.h:43
void apply_vertical_align() override
Definition render_inline_context.cpp:350
int _render_content(int x, int y, bool second_pass, const containing_block_context &self_size, formatting_context *fmt_ctx) override
Definition render_inline_context.cpp:6
int m_max_line_width
Definition render_inline_context.h:32
void fix_line_width(element_float flt, const containing_block_context &self_size, formatting_context *fmt_ctx) override
Definition render_inline_context.cpp:98
std::list< std::unique_ptr< line_box_item > > finish_last_box(bool end_of_render, const containing_block_context &self_size)
Definition render_inline_context.cpp:165
int get_first_baseline() override
Definition render_inline_context.cpp:383
const std::shared_ptr< element > & src_el() const
Definition render_item.h:322
Definition background.h:12
element_float
Definition types.h:481
Definition uuid.h:926
Definition line_box.h:14
Definition types.h:103
std::vector< position > vector
Definition types.h:104
Definition render_inline_context.h:23
position::vector boxes
Definition render_inline_context.h:25
std::shared_ptr< render_item > element
Definition render_inline_context.h:24
position start_box
Definition render_inline_context.h:26
inlines_item(const std::shared_ptr< render_item > &el)
Definition render_inline_context.h:28