17 typedef std::unique_ptr<litehtml::box> ptr;
18 typedef std::vector< box::ptr > vector;
24 box(
int top,
int left,
int right)
32 int bottom() {
return m_box_top + height(); }
33 int top() {
return m_box_top; }
34 int right() {
return m_box_left + width(); }
35 int left() {
return m_box_left; }
37 virtual litehtml::box_type get_type() = 0;
38 virtual int height() = 0;
39 virtual int width() = 0;
40 virtual void add_element(
const element::ptr &el) = 0;
41 virtual bool can_hold(
const element::ptr &el, white_space ws) = 0;
42 virtual void finish(
bool last_box =
false) = 0;
43 virtual bool is_empty() = 0;
44 virtual int baseline() = 0;
45 virtual void get_elements(elements_vector& els) = 0;
46 virtual int top_margin() = 0;
47 virtual int bottom_margin() = 0;
48 virtual void y_shift(
int shift) = 0;
49 virtual void new_width(
int left,
int right, elements_vector& els) = 0;
56 element::ptr m_element;
58 block_box(
int top,
int left,
int right) :
box(top, left, right)
63 virtual litehtml::box_type get_type();
66 virtual void add_element(
const element::ptr &el);
67 virtual bool can_hold(
const element::ptr &el, white_space ws);
68 virtual void finish(
bool last_box =
false);
69 virtual bool is_empty();
70 virtual int baseline();
71 virtual void get_elements(elements_vector& els);
72 virtual int top_margin();
73 virtual int bottom_margin();
74 virtual void y_shift(
int shift);
75 virtual void new_width(
int left,
int right, elements_vector& els);
82 elements_vector m_items;
88 text_align m_text_align;
90 line_box(
int top,
int left,
int right,
int line_height,
font_metrics& fm, text_align align) :
box(top, left, right)
95 m_line_height = line_height;
100 virtual litehtml::box_type get_type();
101 virtual int height();
103 virtual void add_element(
const element::ptr &el);
104 virtual bool can_hold(
const element::ptr &el, white_space ws);
105 virtual void finish(
bool last_box =
false);
106 virtual bool is_empty();
107 virtual int baseline();
108 virtual void get_elements(elements_vector& els);
109 virtual int top_margin();
110 virtual int bottom_margin();
111 virtual void y_shift(
int shift);
112 virtual void new_width(
int left,
int right, elements_vector& els);
115 bool have_last_space();
116 bool is_break_only();