8litehtml::el_table::el_table(
const std::shared_ptr<litehtml::document>& doc) : html_tag(doc)
10 m_border_spacing_x = 0;
11 m_border_spacing_y = 0;
12 m_border_collapse = border_collapse_separate;
16litehtml::el_table::~el_table()
21bool litehtml::el_table::appendChild(
const litehtml::element::ptr& el)
24 if(!t_strcmp(el->get_tagName(), _t(
"tbody")) || !t_strcmp(el->get_tagName(), _t(
"thead")) || !t_strcmp(el->get_tagName(), _t(
"tfoot")))
26 return html_tag::appendChild(el);
31void litehtml::el_table::parse_styles(
bool is_reparse)
33 html_tag::parse_styles(is_reparse);
35 m_border_collapse = (border_collapse) value_index(get_style_property(_t(
"border-collapse"),
true, _t(
"separate")), border_collapse_strings, border_collapse_separate);
37 if(m_border_collapse == border_collapse_separate)
39 m_css_border_spacing_x.fromString(get_style_property(_t(
"-litehtml-border-spacing-x"),
true, _t(
"0px")));
40 m_css_border_spacing_y.fromString(get_style_property(_t(
"-litehtml-border-spacing-y"),
true, _t(
"0px")));
42 int fntsz = get_font_size();
43 document::ptr doc = get_document();
44 m_border_spacing_x = doc->cvt_units(m_css_border_spacing_x, fntsz);
45 m_border_spacing_y = doc->cvt_units(m_css_border_spacing_y, fntsz);
48 m_border_spacing_x = 0;
49 m_border_spacing_y = 0;
54 m_css_padding.bottom.set_value(0, css_units_px);
55 m_css_padding.top.set_value(0, css_units_px);
56 m_css_padding.left.set_value(0, css_units_px);
57 m_css_padding.right.set_value(0, css_units_px);
61void litehtml::el_table::parse_attributes()
63 const tchar_t* str = get_attr(_t(
"width"));
66 m_style.add_property(_t(
"width"), str, 0,
false);
69 str = get_attr(_t(
"align"));
72 int align = value_index(str, _t(
"left;center;right"));
76 m_style.add_property(_t(
"margin-left"), _t(
"auto"), 0,
false);
77 m_style.add_property(_t(
"margin-right"), _t(
"auto"), 0,
false);
80 m_style.add_property(_t(
"margin-left"), _t(
"auto"), 0,
false);
81 m_style.add_property(_t(
"margin-right"), _t(
"0"), 0,
false);
86 str = get_attr(_t(
"cellspacing"));
92 m_style.add_property(_t(
"border-spacing"), val.c_str(), 0,
false);
95 str = get_attr(_t(
"border"));
98 m_style.add_property(_t(
"border-width"), str, 0,
false);
101 str = get_attr(_t(
"bgcolor"));
104 m_style.add_property(_t(
"background-color"), str, 0,
false);
107 html_tag::parse_attributes();