void CL_CSSBoxOutlineWidth::compute(const CL_CSSBoxOutlineWidth *parent, CL_CSSResourceCache *layout, float em_size, float ex_size, const CL_CSSBoxOutlineStyle &style) { if (type == type_inherit) { if (parent) { type = parent->type; length = parent->length; } else { type = type_medium; } } switch (type) { case type_thin: type = type_length; length = CL_CSSBoxLength(1.0f, CL_CSSBoxLength::type_px); break; case type_medium: type = type_length; length = CL_CSSBoxLength(2.0f, CL_CSSBoxLength::type_px); break; case type_thick: type = type_length; length = CL_CSSBoxLength(3.0f, CL_CSSBoxLength::type_px); break; default: break; } if (style.type == CL_CSSBoxOutlineStyle::type_hidden || style.type == CL_CSSBoxOutlineStyle::type_none) { type = type_length; length = CL_CSSBoxLength(0.0f, CL_CSSBoxLength::type_px); } if (type == type_length) { length = layout->compute_length(length, em_size, ex_size); } }
void CL_CSSBoxPaddingWidth::compute(const CL_CSSBoxPaddingWidth *parent, CL_CSSResourceCache *layout, float em_size, float ex_size) { if (type == type_inherit) { if (parent) { type = parent->type; length = parent->length; percentage = parent->percentage; } else { type = type_length; length = CL_CSSBoxLength(0.0f, CL_CSSBoxLength::type_px); } } if (type == type_length) length = layout->compute_length(length, em_size, ex_size); }
CL_CSSBoxLength CL_CSSResourceCache::get_font_table_larger(float em_size) { return CL_CSSBoxLength(18.0f, CL_CSSBoxLength::type_px); }
CL_CSSBoxLength CL_CSSResourceCache::get_font_table_size(int size) { return CL_CSSBoxLength(16.0f, CL_CSSBoxLength::type_px); }
void CL_CSSBoxFontSize::compute(const CL_CSSBoxFontSize *parent, CL_CSSResourceCache *layout, float em_size, float ex_size) { if (type == type_inherit) { if (parent) { type = parent->type; length = parent->length; percentage = parent->percentage; } else { type = type_medium; } } switch (type) { case type_xx_small: type = type_length; length = layout->get_font_table_size(0); break; case type_x_small: type = type_length; length = layout->get_font_table_size(1); break; case type_small: type = type_length; length = layout->get_font_table_size(2); break; case type_medium: type = type_length; length = layout->get_font_table_size(3); break; case type_large: type = type_length; length = layout->get_font_table_size(4); break; case type_x_large: type = type_length; length = layout->get_font_table_size(5); break; case type_xx_large: type = type_length; length = layout->get_font_table_size(6); break; case type_smaller: type = type_length; length = layout->get_font_table_smaller(em_size); break; case type_larger: type = type_length; length = layout->get_font_table_larger(em_size); break; default: break; } if (type == type_percentage) { type = type_length; length = CL_CSSBoxLength(percentage / 100.0f, CL_CSSBoxLength::type_em); } if (type == type_length) length = layout->compute_length(length, em_size, ex_size); }