#ifndef LH_STRING_ID_H #define LH_STRING_ID_H #include namespace litehtml { #define STRING_ID(...)\ enum string_id { __VA_ARGS__ };\ const auto initial_string_ids = #__VA_ARGS__; STRING_ID( // HTML tags _a_, _abbr_, _acronym_, _address_, _applet_, _area_, _article_, _aside_, _audio_, _b_, _base_, _basefont_, _bdi_, _bdo_, _big_, _blockquote_, _body_, _br_, _button_, _canvas_, _caption_, _center_, _cite_, _code_, _col_, _colgroup_, _data_, _datalist_, _dd_, _del_, _details_, _dfn_, _dialog_, _dir_, _div_, _dl_, _dt_, _em_, _embed_, _fieldset_, _figcaption_, _figure_, _footer_, _form_, _frame_, _frameset_, _h1_, _h2_, _h3_, _h4_, _h5_, _h6_, _head_, _header_, _hr_, _html_, _i_, _iframe_, _img_, _input_, _ins_, _kbd_, _label_, _legend_, _li_, _link_, _main_, _map_, _mark_, _meta_, _meter_, _nav_, _noframes_, _noscript_, _object_, _ol_, _optgroup_, _option_, _output_, _p_, _param_, _picture_, _pre_, _progress_, _q_, _rp_, _rt_, _ruby_, _s_, _samp_, _script_, _section_, _select_, _small_, _source_, _span_, _strike_, _strong_, _style_, _sub_, _summary_, _sup_, _svg_, _table_, _tbody_, _td_, _template_, _textarea_, _tfoot_, _th_, _thead_, _time_, _title_, _tr_, _track_, _tt_, _u_, _ul_, _var_, _video_, _wbr_, // litehtml internal tags __tag_before_, // note: real tag cannot start with '-' __tag_after_, // CSS pseudo-elements _before_, _after_, // CSS pseudo-classes _root_, _only_child_, _only_of_type_, _first_child_, _first_of_type_, _last_child_, _last_of_type_, _nth_child_, _nth_of_type_, _nth_last_child_, _nth_last_of_type_, _is_, _not_, _lang_, _active_, _hover_, // CSS property names // Side properties must go in this order: top, right, bottom, left (clockwise starting from the top). // Corner properties must go in this order: top-left, top-right, bottom-right, bottom-left (clockwise starting from the top-left). // This is used in style::add_four_properties() for margin-*, padding-*, border-*-{width,style,color} and border-*-*-radius{,-x,-y}. _background_, _background_color_, _background_image_, _background_image_baseurl_, _background_repeat_, _background_origin_, _background_clip_, _background_attachment_, _background_size_, _background_position_, _background_position_x_, _background_position_y_, _background_gradient_, _border_, _border_width_, _border_style_, _border_color_, _border_spacing_, __litehtml_border_spacing_x_, __litehtml_border_spacing_y_, _border_top_, _border_right_, _border_bottom_, _border_left_, _border_top_style_, _border_right_style_, _border_bottom_style_, _border_left_style_, _border_top_width_, _border_right_width_, _border_bottom_width_, _border_left_width_, _border_top_color_, _border_right_color_, _border_bottom_color_, _border_left_color_, _border_radius_, _border_radius_x_, _border_radius_y_, _border_top_left_radius_, _border_top_right_radius_, _border_bottom_right_radius_, _border_bottom_left_radius_, _border_top_left_radius_x_, _border_top_right_radius_x_, _border_bottom_right_radius_x_, _border_bottom_left_radius_x_, _border_top_left_radius_y_, _border_top_right_radius_y_, _border_bottom_right_radius_y_, _border_bottom_left_radius_y_, _list_style_, _list_style_type_, _list_style_position_, _list_style_image_, _list_style_image_baseurl_, _margin_, _margin_top_, _margin_right_, _margin_bottom_, _margin_left_, _padding_, _padding_top_, _padding_right_, _padding_bottom_, _padding_left_, _font_, _font_family_, _font_style_, _font_variant_, _font_weight_, _font_size_, _line_height_, _text_decoration_, _text_decoration_style_, _text_decoration_line_, _text_decoration_color_, _text_decoration_thickness_, _text_emphasis_, _text_emphasis_style_, _text_emphasis_color_, _text_emphasis_position_, _white_space_, _text_align_, _vertical_align_, _color_, _width_, _height_, _min_width_, _min_height_, _max_width_, _max_height_, _position_, _overflow_, _display_, _visibility_, _appearance_, _box_sizing_, _z_index_, _float_, _clear_, _text_indent_, _top_, _right_, _bottom_, _left_, _cursor_, _content_, _border_collapse_, _text_transform_, _flex_, _flex_flow_, _flex_direction_, _flex_wrap_, _justify_content_, _align_items_, _align_content_, _align_self_, _flex_grow_, _flex_shrink_, _flex_basis_, _caption_side_, _order_, _counter_reset_, _counter_increment_, // some CSS dimensions _deg_, _grad_, _rad_, _turn_, // some CSS property values _initial_, _auto_, _none_, _linear_gradient_, _repeating_linear_gradient_, _radial_gradient_, _repeating_radial_gradient_, _conic_gradient_, _repeating_conic_gradient_, // at-rules and their components _charset_, _layer_, _import_, _media_, _and_, _or_, _boolean_, _plain_, _range_, _discrete_, _integer_, _length_, _resolution_, _ratio_, _keyword_, _orientation_, _portrait_, _landscape_, _device_width_, _device_height_, _aspect_ratio_, _device_aspect_ratio_, _color_index_, _monochrome_, ) #undef STRING_ID extern const string_id empty_id; // _id("") extern const string_id star_id; // _id("*") string_id _id(const std::string& str); const std::string& _s(string_id id); } // namespace litehtml #endif // LH_STRING_ID_H