40#include "css_property.hpp"
52 css(
const css & ref) =
default;
53 css(
css && ref)
noexcept =
default;
54 css & operator = (
const css & ref) =
default;
55 css & operator = (
css && ref)
noexcept =
default;
56 virtual ~css() =
default;
66 void css_color(
const std::string & col);
67 void css_background_color(
const std::string & col);
68 void css_background_color() { bg_col.clear(); };
72 void css_background_image(
const std::string & url,
76 void css_background_image() { bg_img.clear(); };
78 void css_background_position(
const std::string & x,
79 const std::string & y);
80 void css_background_position() { img_pos.clear(); };
83 void css_box_shadow() { box_shadow.clear(); };
84 void css_box_shadow(
const std::string & x_shift,
85 const std::string & y_shift,
86 const std::string & blur_size,
87 const std::string & color =
"#444444");
89 void css_text_shadow() { text_shadow.clear(); };
90 void css_text_shadow(
const std::string & x_shift,
91 const std::string & y_shift,
92 const std::string & blur_size,
93 const std::string & color =
"#444444");
97 void css_margin(
const std::string & all);
98 void css_margin() { css_margin_top(); css_margin_right(); css_margin_bottom(); css_margin_left(); };
99 void css_margin_top(
const std::string & top);
100 void css_margin_top() { margin_top.clear(); };
101 void css_margin_right(
const std::string & right);
102 void css_margin_right() { margin_right.clear(); };
103 void css_margin_bottom(
const std::string & bottom);
104 void css_margin_bottom() { margin_bottom.clear(); };
105 void css_margin_left(
const std::string & left);
106 void css_margin_left() { margin_left.clear(); };
107 void css_height(
const std::string & val,
109 void css_height() { height.clear(); };
110 void css_min_height(
const std::string & val);
111 void css_min_height() { min_height.clear(); };
112 void css_max_height(
const std::string & val);
113 void css_max_height() { max_height.clear(); };
114 void css_width(
const std::string & val,
116 void css_width() { width.clear(); };
117 void css_min_width(
const std::string & val);
118 void css_min_width() { min_width.clear(); };
119 void css_max_width(
const std::string & val);
120 void css_max_width() { max_width.clear(); };
121 void css_z_index(
unsigned int index);
122 void css_z_index() { z_index.clear(); };
131 void css_position_type() { position_type.clear(); };
132 void css_position_top(
const std::string & top);
133 void css_position_top() { position_top.clear(); };
134 void css_position_left(
const std::string & left);
135 void css_position_left() { position_left.clear(); };
136 void css_position_bottom(
const std::string & bottom);
137 void css_position_bottom() { position_bottom.clear(); };
138 void css_position_right(
const std::string & right);
139 void css_position_right() { position_right.clear(); };
141 enum overflowing { ov_visible,
163 enum floating { fl_left,
167 enum floatclear { fc_left,
172 void css_float(floating val);
173 void css_float() { float_pos.clear(); };
174 void css_float_clear(floatclear val);
175 void css_float_clear() { float_clear.clear(); };
179 void css_opacity(
const std::string & opacity);
192 void css_display(
const std::string & val);
194 void css_padding(
const std::string & val);
195 void css_padding() { css_padding_top(); css_padding_right(); css_padding_bottom(); css_padding_left(); };
196 void css_padding_top(
const std::string & top);
197 void css_padding_top() { padding_top.clear(); };
198 void css_padding_right(
const std::string & right);
199 void css_padding_right() { padding_right.clear(); };
200 void css_padding_bottom(
const std::string & bottom);
201 void css_padding_bottom() { padding_bottom.clear(); };
202 void css_padding_left(
const std::string & left);
203 void css_padding_left() { padding_left.clear(); };
235 void css_font_size(
const std::string & val);
236 void css_font_style_italic();
237 void css_font_style_normal();
238 void css_font_style() { font_style.clear(); };
239 void css_font_weight_bold();
240 void css_font_weight_normal();
241 void css_font_weight() { font_weight.clear(); };
242 void css_text_h_align(h_align val);
243 void css_text_h_align() { text_h_align.clear(); };
244 void css_text_v_align(v_align val);
245 void css_text_v_align() { text_v_align.clear(); };
246 void css_text_decoration(decoration val);
247 void css_text_decoration() { text_deco.clear(); };
251 enum border { bd_top,
258 enum bd_width { bd_thin,
262 enum bd_style { bd_dotted,
272 void css_border_width(border which, bd_width val);
273 void css_border_width(border which,
const std::string & val);
274 void css_border_width() { border_width.clear(); };
275 void css_border_color(border which,
const std::string & col);
276 void css_border_color() { border_color.clear(); };
277 void css_border_style(border which, bd_style val);
278 void css_border_style() { border_style.clear(); };
281 void css_corner_radius(
const std::string & all);
282 void css_corner_radius(
const std::string & topleft,
283 const std::string & topright,
284 const std::string & botright,
285 const std::string & botleft);
288 void css_corner_radius() { corner_radius.clear(); };
315 const std::string & delay =
"0s",
340 void set_custom_css(
const std::string & label,
const std::string & val);
418 std::map<std::string, css_property> custom_css;
420 std::string border_to_string(border val);
421 std::string overflow_to_string(overflowing val);
class css_property hold the value of a single css property
Definition: css_property.hpp:46
class managing Cascading Style Sheets attributes
Definition: css.hpp:48
void css_transition()
clear transition property
Definition: css.hpp:319
std::string css_get_raw_string() const
returns the css raw string
Definition: css.cpp:766
void css_visibility(bool val)
css_visibility does not prevent sending HTML code to the browser
Definition: css.cpp:722
void declare_custom_css(const std::string &label)
custom css properties, method available for inherited classes
Definition: css.cpp:838
void css_overflow()
clear both x and y overflow (default value)
Definition: css.hpp:159
void clear_custom_css(const std::string &label)
unset value of a previously declared custom css
Definition: css.cpp:858
void css_overflow_x(overflowing val)
set only x overflow
Definition: css.cpp:388
void css_content(const std::string &name)
css content property for "::after" and "::before" pseudo-elements
Definition: css.cpp:729
transition_function
css transition, this concerns all properties that changed within CSS style (hover,...
Definition: css.hpp:305
bx_sizing
Definition: css.hpp:185
@ bx_border
width and height define the box size (reduce content space to fit within the border+padding)
Definition: css.hpp:187
@ bx_content
width and height define the content (add padding and border size for the real size)
Definition: css.hpp:186
positionning
Definition: css.hpp:124
@ pos_fixed
fixed in the viewport
Definition: css.hpp:126
@ pos_absolute
absolute in the document
Definition: css.hpp:124
@ pos_relative
shifted relative to its expected position
Definition: css.hpp:125
@ pos_sticky
either relative or fixed depending on scrolling of parent object
Definition: css.hpp:127
void update_from(const css &ref)
update current object with argument ignoring all fields which are unset
Definition: css.cpp:45
void clear()
set css attributes to their default
Definition: css.cpp:116
void css_overflow_y(overflowing val)
set only y overflow
Definition: css.cpp:395
void set_custom_css(const std::string &label, const std::string &val)
set value to a previously declared custom css
Definition: css.cpp:848
virtual void css_updated()
this method is called when a property has been modified
Definition: css.hpp:328