18 class element :
public std::enable_shared_from_this<element>
25 typedef std::shared_ptr<element>
ptr;
43 explicit element(
const std::shared_ptr<document>& doc);
65 const std::list<std::shared_ptr<element>>&
children()
const;
77 virtual string_id
id()
const;
78 virtual string_id
tag()
const;
84 virtual const char*
get_attr(
const char*
name,
const char* def =
nullptr)
const;
109 virtual int select(
const string& selector);
128 virtual std::shared_ptr<render_item>
create_render_item(
const std::shared_ptr<render_item>& parent_ri);
130 void add_render(
const std::shared_ptr<render_item>& ri);
148 bool find_counter(
const string_id& counter_name_id, std::map<string_id, int>::iterator& map_iterator);
167 return m_parent.expired();
172 return m_parent.lock();
Definition background.h:91
Definition css_selector.h:173
Definition css_properties.h:17
Definition css_selector.h:195
std::vector< css_selector::ptr > vector
Definition css_selector.h:198
Definition stylesheet.h:45
virtual bool is_space() const
virtual void select_all(const css_selector &selector, elements_list &res)
virtual bool is_nth_child(const element::ptr &el, int num, int off, bool of_type, const css_selector::vector &selector_list={}) const
virtual element::ptr find_adjacent_sibling(const element::ptr &el, const css_selector &selector, bool apply_pseudo=true, bool *is_pseudo=nullptr)
elements_list m_children
Definition element.h:31
bool is_inline_box() const
Definition element.cpp:63
bool is_float() const
Definition element.h:185
virtual bool on_lbutton_up()
virtual element::ptr find_ancestor(const css_selector &selector, bool apply_pseudo=true, bool *is_pseudo=nullptr)
virtual const char * get_tagName() const
used_selector::vector m_used_styles
Definition element.h:34
css_properties m_css
Definition element.h:32
virtual string_id id() const
element::ptr _add_before_after(int type, const style &style)
Definition element.cpp:259
virtual element::ptr select_one(const string &selector)
virtual void get_content_size(size &sz, int max_width)
virtual void get_text(string &text)
bool is_block_formatting_context() const
Definition element.cpp:275
virtual element::ptr find_sibling(const element::ptr &el, const css_selector &selector, bool apply_pseudo=true, bool *is_pseudo=nullptr)
virtual std::vector< std::tuple< string, string > > dump_get_attrs()
Definition element.cpp:98
virtual bool on_mouse_leave()
virtual ~element()=default
const css_properties & css() const
Definition element.h:195
virtual void parse_attributes()
void increment_counter(const string_id &counter_name_id, const int increment=1)
Definition element.cpp:400
element::ptr add_pseudo_before(const style &style)
Definition element.h:132
virtual void draw_background(uint_ptr hdc, int x, int y, const position *clip, const std::shared_ptr< render_item > &ri)
bool is_block_box() const
Definition element.h:205
bool in_normal_flow() const
Definition element.h:156
virtual bool set_class(const char *pclass, bool add)
std::shared_ptr< const element > const_ptr
Definition element.h:26
void dump(litehtml::dumper &cout)
Definition element.cpp:103
virtual bool removeChild(const ptr &el)
virtual const char * get_attr(const char *name, const char *def=nullptr) const
bool is_table_skip() const
Definition element.cpp:88
virtual element::ptr select_one(const css_selector &selector)
element::ptr add_pseudo_after(const style &style)
Definition element.h:136
element::ptr parent() const
Definition element.h:170
string get_counters_value(const string_vector ¶meters)
Definition element.cpp:311
void parse_counter_tokens(const string_vector &tokens, const int default_value, std::function< void(const string_id &, const int)> handler) const
Definition element.cpp:384
virtual elements_list select_all(const css_selector &selector)
bool find_counter(const string_id &counter_name_id, std::map< string_id, int >::iterator &map_iterator)
Definition element.cpp:344
bool requires_styles_update()
Definition element.cpp:191
bool is_inline() const
Definition element.cpp:50
virtual string_id tag() const
virtual bool is_comment() const
virtual void add_style(const style &style)
bool find_styles_changes(position::vector &redraw_boxes)
Definition element.cpp:212
std::weak_ptr< element > weak_ptr
Definition element.h:27
void reset_counter(const string_id &counter_name_id, const int value=0)
Definition element.cpp:412
virtual bool on_lbutton_down()
const std::list< std::shared_ptr< element > > & children() const
Definition element.h:217
virtual bool is_text() const
std::shared_ptr< element > ptr
Definition element.h:25
virtual void set_tagName(const char *tag)
position get_placement() const
Definition element.cpp:20
virtual void clearRecursive()
virtual int select(const css_selector &selector, bool apply_pseudo=true)
virtual void compute_styles(bool recursive=true)
bool is_root() const
Definition element.h:165
void add_render(const std::shared_ptr< render_item > &ri)
Definition element.cpp:207
virtual bool is_nth_last_child(const element::ptr &el, int num, int off, bool of_type, const css_selector::vector &selector_list={}) const
virtual elements_list select_all(const string &selector)
std::list< std::weak_ptr< render_item > > m_renders
Definition element.h:33
virtual const background * get_background(bool own_only=false)
std::tuple< element::ptr, element::ptr, element::ptr > split_inlines()
virtual int select(const css_element_selector &selector, bool apply_pseudo=true)
css_properties & css_w()
Definition element.h:200
bool is_positioned() const
Definition element.h:180
std::shared_ptr< document > get_document() const
Definition element.h:190
std::weak_ptr< document > m_doc
Definition element.h:30
virtual bool is_white_space() const
virtual void refresh_styles()
virtual bool is_ancestor(const ptr &el) const
Definition element.cpp:74
virtual bool is_replaced() const
virtual bool is_body() const
virtual string dump_get_name()
Definition element.cpp:93
virtual void apply_stylesheet(const litehtml::css &stylesheet)
virtual void draw(uint_ptr hdc, int x, int y, const position *clip, const std::shared_ptr< render_item > &ri)
virtual int select(const css_selector::vector &selector_list, bool apply_pseudo=true)
virtual bool is_break() const
virtual void set_data(const char *data)
std::map< string_id, int > m_counter_values
Definition element.h:40
std::vector< element::ptr > get_siblings_before() const
Definition element.cpp:369
string get_counter_value(const string &counter_name)
Definition element.cpp:301
virtual bool is_only_child(const element::ptr &el, bool of_type) const
virtual void set_attr(const char *name, const char *val)
virtual std::shared_ptr< render_item > create_render_item(const std::shared_ptr< render_item > &parent_ri)
Definition element.cpp:131
virtual bool on_mouse_over()
virtual int select(const string &selector)
virtual bool set_pseudo_class(string_id cls, bool add)
virtual bool appendChild(const ptr &el)
std::weak_ptr< element > m_parent
Definition element.h:29
Definition line_box.h:110
std::vector< used_selector::ptr > vector
Definition css_selector.h:262
type
Definition core.h:681
Definition background.h:12
@ element_position_absolute
Definition types.h:565
@ element_position_static
Definition types.h:563
void increment(int &index, const string &str)
Definition encodings.cpp:1700
std::uintptr_t uint_ptr
Definition types.h:17
@ float_none
Definition types.h:482
const char * name
Definition encodings.cpp:1358
std::list< std::shared_ptr< element > > elements_list
Definition types.h:32
std::vector< string > string_vector
Definition types.h:34
@ display_none
Definition types.h:329
@ display_block
Definition types.h:330
@ display_flex
Definition types.h:345
@ display_list_item
Definition types.h:334
@ display_table
Definition types.h:335
std::vector< position > vector
Definition types.h:104