Photon 1.0.0
Loading...
Searching...
No Matches
litehtml::element Class Reference

#include <element.h>

Inheritance diagram for litehtml::element:
litehtml::el_cdata litehtml::el_comment litehtml::el_script litehtml::el_style litehtml::el_text litehtml::html_tag litehtml::el_space litehtml::el_anchor litehtml::el_base litehtml::el_before_after_base litehtml::el_body litehtml::el_break litehtml::el_div litehtml::el_font litehtml::el_image litehtml::el_link litehtml::el_para litehtml::el_table litehtml::el_td litehtml::el_title litehtml::el_tr

Public Types

typedef std::shared_ptr< elementptr
 
typedef std::shared_ptr< const elementconst_ptr
 
typedef std::weak_ptr< elementweak_ptr
 

Public Member Functions

 element (const std::shared_ptr< document > &doc)
 
virtual ~element ()=default
 
const css_propertiescss () const
 
css_propertiescss_w ()
 
bool in_normal_flow () const
 
bool is_inline () const
 
bool is_inline_box () const
 
bool is_block_box () const
 
position get_placement () const
 
bool is_positioned () const
 
bool is_float () const
 
bool is_block_formatting_context () const
 
bool is_root () const
 
element::ptr parent () const
 
void parent (const element::ptr &par)
 
bool is_table_skip () const
 
std::shared_ptr< documentget_document () const
 
const std::list< std::shared_ptr< element > > & children () const
 
virtual elements_list select_all (const string &selector)
 
virtual elements_list select_all (const css_selector &selector)
 
virtual element::ptr select_one (const string &selector)
 
virtual element::ptr select_one (const css_selector &selector)
 
virtual bool appendChild (const ptr &el)
 
virtual bool removeChild (const ptr &el)
 
virtual void clearRecursive ()
 
virtual string_id id () const
 
virtual string_id tag () const
 
virtual const char * get_tagName () const
 
virtual void set_tagName (const char *tag)
 
virtual void set_data (const char *data)
 
virtual void set_attr (const char *name, const char *val)
 
virtual const char * get_attr (const char *name, const char *def=nullptr) const
 
virtual void apply_stylesheet (const litehtml::css &stylesheet)
 
virtual void refresh_styles ()
 
virtual bool is_white_space () const
 
virtual bool is_space () const
 
virtual bool is_comment () const
 
virtual bool is_body () const
 
virtual bool is_break () const
 
virtual bool is_text () const
 
virtual bool on_mouse_over ()
 
virtual bool on_mouse_leave ()
 
virtual bool on_lbutton_down ()
 
virtual bool on_lbutton_up ()
 
virtual void on_click ()
 
virtual bool set_pseudo_class (string_id cls, bool add)
 
virtual bool set_class (const char *pclass, bool add)
 
virtual bool is_replaced () const
 
virtual void compute_styles (bool recursive=true)
 
virtual void draw (uint_ptr hdc, int x, int y, const position *clip, const std::shared_ptr< render_item > &ri)
 
virtual void draw_background (uint_ptr hdc, int x, int y, const position *clip, const std::shared_ptr< render_item > &ri)
 
virtual void get_text (string &text)
 
virtual void parse_attributes ()
 
virtual int select (const css_selector::vector &selector_list, bool apply_pseudo=true)
 
virtual int select (const string &selector)
 
virtual int select (const css_selector &selector, bool apply_pseudo=true)
 
virtual int select (const css_element_selector &selector, bool apply_pseudo=true)
 
virtual element::ptr find_ancestor (const css_selector &selector, bool apply_pseudo=true, bool *is_pseudo=nullptr)
 
virtual bool is_ancestor (const ptr &el) const
 
virtual element::ptr find_adjacent_sibling (const element::ptr &el, const css_selector &selector, bool apply_pseudo=true, bool *is_pseudo=nullptr)
 
virtual element::ptr find_sibling (const element::ptr &el, const css_selector &selector, bool apply_pseudo=true, bool *is_pseudo=nullptr)
 
virtual void get_content_size (size &sz, int max_width)
 
virtual bool is_nth_child (const element::ptr &el, int num, int off, bool of_type, const css_selector::vector &selector_list={}) const
 
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 bool is_only_child (const element::ptr &el, bool of_type) const
 
virtual void add_style (const style &style)
 
virtual const backgroundget_background (bool own_only=false)
 
virtual string dump_get_name ()
 
virtual std::vector< std::tuple< string, string > > dump_get_attrs ()
 
void dump (litehtml::dumper &cout)
 
std::tuple< element::ptr, element::ptr, element::ptrsplit_inlines ()
 
virtual std::shared_ptr< render_itemcreate_render_item (const std::shared_ptr< render_item > &parent_ri)
 
bool requires_styles_update ()
 
void add_render (const std::shared_ptr< render_item > &ri)
 
bool find_styles_changes (position::vector &redraw_boxes)
 
element::ptr add_pseudo_before (const style &style)
 
element::ptr add_pseudo_after (const style &style)
 
string get_counter_value (const string &counter_name)
 
string get_counters_value (const string_vector &parameters)
 
void increment_counter (const string_id &counter_name_id, const int increment=1)
 
void reset_counter (const string_id &counter_name_id, const int value=0)
 

Protected Member Functions

virtual void select_all (const css_selector &selector, elements_list &res)
 
element::ptr _add_before_after (int type, const style &style)
 

Protected Attributes

std::weak_ptr< elementm_parent
 
std::weak_ptr< documentm_doc
 
elements_list m_children
 
css_properties m_css
 
std::list< std::weak_ptr< render_item > > m_renders
 
used_selector::vector m_used_styles
 

Private Member Functions

std::vector< element::ptrget_siblings_before () const
 
bool find_counter (const string_id &counter_name_id, std::map< string_id, int >::iterator &map_iterator)
 
void parse_counter_tokens (const string_vector &tokens, const int default_value, std::function< void(const string_id &, const int)> handler) const
 

Private Attributes

std::map< string_id, int > m_counter_values
 

Friends

class line_box
 
class html_tag
 
class el_table
 
class document
 

Member Typedef Documentation

◆ const_ptr

typedef std::shared_ptr<const element> litehtml::element::const_ptr

◆ ptr

typedef std::shared_ptr<element> litehtml::element::ptr

◆ weak_ptr

typedef std::weak_ptr<element> litehtml::element::weak_ptr

Constructor & Destructor Documentation

◆ element()

litehtml::element::element ( const std::shared_ptr< document > &  doc)
explicit

◆ ~element()

virtual litehtml::element::~element ( )
virtualdefault

Member Function Documentation

◆ _add_before_after()

element::ptr litehtml::element::_add_before_after ( int  type,
const style style 
)
protected

◆ add_pseudo_after()

element::ptr litehtml::element::add_pseudo_after ( const style style)
inline

◆ add_pseudo_before()

element::ptr litehtml::element::add_pseudo_before ( const style style)
inline

◆ add_render()

void litehtml::element::add_render ( const std::shared_ptr< render_item > &  ri)

◆ add_style()

virtual void litehtml::element::add_style ( const style style)
virtual

◆ appendChild()

virtual bool litehtml::element::appendChild ( const ptr el)
virtual

◆ apply_stylesheet()

virtual void litehtml::element::apply_stylesheet ( const litehtml::css stylesheet)
virtual

Reimplemented in litehtml::el_anchor, and litehtml::html_tag.

◆ children()

const std::list< std::shared_ptr< element > > & litehtml::element::children ( ) const
inline

◆ clearRecursive()

virtual void litehtml::element::clearRecursive ( )
virtual

Reimplemented in litehtml::html_tag.

◆ compute_styles()

virtual void litehtml::element::compute_styles ( bool  recursive = true)
virtual

◆ create_render_item()

std::shared_ptr< render_item > litehtml::element::create_render_item ( const std::shared_ptr< render_item > &  parent_ri)
virtual

Reimplemented in litehtml::el_comment, and litehtml::el_image.

◆ css()

const css_properties & litehtml::element::css ( ) const
inline

◆ css_w()

css_properties & litehtml::element::css_w ( )
inline

◆ draw()

virtual void litehtml::element::draw ( uint_ptr  hdc,
int  x,
int  y,
const position clip,
const std::shared_ptr< render_item > &  ri 
)
virtual

◆ draw_background()

virtual void litehtml::element::draw_background ( uint_ptr  hdc,
int  x,
int  y,
const position clip,
const std::shared_ptr< render_item > &  ri 
)
virtual

Reimplemented in litehtml::html_tag.

◆ dump()

void litehtml::element::dump ( litehtml::dumper cout)

◆ dump_get_attrs()

std::vector< std::tuple< string, string > > litehtml::element::dump_get_attrs ( )
virtual

Reimplemented in litehtml::el_text.

◆ dump_get_name()

string litehtml::element::dump_get_name ( )
virtual

◆ find_adjacent_sibling()

virtual element::ptr litehtml::element::find_adjacent_sibling ( const element::ptr el,
const css_selector selector,
bool  apply_pseudo = true,
bool *  is_pseudo = nullptr 
)
virtual

Reimplemented in litehtml::html_tag.

◆ find_ancestor()

virtual element::ptr litehtml::element::find_ancestor ( const css_selector selector,
bool  apply_pseudo = true,
bool *  is_pseudo = nullptr 
)
virtual

Reimplemented in litehtml::html_tag.

◆ find_counter()

bool litehtml::element::find_counter ( const string_id &  counter_name_id,
std::map< string_id, int >::iterator &  map_iterator 
)
private

◆ find_sibling()

virtual element::ptr litehtml::element::find_sibling ( const element::ptr el,
const css_selector selector,
bool  apply_pseudo = true,
bool *  is_pseudo = nullptr 
)
virtual

Reimplemented in litehtml::html_tag.

◆ find_styles_changes()

bool litehtml::element::find_styles_changes ( position::vector redraw_boxes)

◆ get_attr()

virtual const char * litehtml::element::get_attr ( const char *  name,
const char *  def = nullptr 
) const
virtual

Reimplemented in litehtml::html_tag.

◆ get_background()

virtual const background * litehtml::element::get_background ( bool  own_only = false)
virtual

Reimplemented in litehtml::html_tag.

◆ get_content_size()

virtual void litehtml::element::get_content_size ( size sz,
int  max_width 
)
virtual

◆ get_counter_value()

litehtml::string litehtml::element::get_counter_value ( const string &  counter_name)

◆ get_counters_value()

string litehtml::element::get_counters_value ( const string_vector parameters)

◆ get_document()

std::shared_ptr< document > litehtml::element::get_document ( ) const
inline

◆ get_placement()

position litehtml::element::get_placement ( ) const

◆ get_siblings_before()

std::vector< element::ptr > litehtml::element::get_siblings_before ( ) const
private

◆ get_tagName()

virtual const char * litehtml::element::get_tagName ( ) const
virtual

◆ get_text()

virtual void litehtml::element::get_text ( string &  text)
virtual

◆ id()

virtual string_id litehtml::element::id ( ) const
virtual

Reimplemented in litehtml::html_tag.

◆ in_normal_flow()

bool litehtml::element::in_normal_flow ( ) const
inline

◆ increment_counter()

void litehtml::element::increment_counter ( const string_id &  counter_name_id,
const int  increment = 1 
)

◆ is_ancestor()

bool litehtml::element::is_ancestor ( const ptr el) const
virtual

◆ is_block_box()

bool litehtml::element::is_block_box ( ) const
inline

◆ is_block_formatting_context()

bool litehtml::element::is_block_formatting_context ( ) const

◆ is_body()

virtual bool litehtml::element::is_body ( ) const
virtual

Reimplemented in litehtml::el_body, and litehtml::html_tag.

◆ is_break()

virtual bool litehtml::element::is_break ( ) const
virtual

◆ is_comment()

virtual bool litehtml::element::is_comment ( ) const
virtual

Reimplemented in litehtml::el_comment.

◆ is_float()

bool litehtml::element::is_float ( ) const
inline

◆ is_inline()

bool litehtml::element::is_inline ( ) const

◆ is_inline_box()

bool litehtml::element::is_inline_box ( ) const

◆ is_nth_child()

virtual bool litehtml::element::is_nth_child ( const element::ptr el,
int  num,
int  off,
bool  of_type,
const css_selector::vector selector_list = {} 
) const
virtual

Reimplemented in litehtml::html_tag.

◆ is_nth_last_child()

virtual bool litehtml::element::is_nth_last_child ( const element::ptr el,
int  num,
int  off,
bool  of_type,
const css_selector::vector selector_list = {} 
) const
virtual

Reimplemented in litehtml::html_tag.

◆ is_only_child()

virtual bool litehtml::element::is_only_child ( const element::ptr el,
bool  of_type 
) const
virtual

Reimplemented in litehtml::html_tag.

◆ is_positioned()

bool litehtml::element::is_positioned ( ) const
inline

◆ is_replaced()

virtual bool litehtml::element::is_replaced ( ) const
virtual

Reimplemented in litehtml::el_image, and litehtml::html_tag.

◆ is_root()

bool litehtml::element::is_root ( ) const
inline

◆ is_space()

virtual bool litehtml::element::is_space ( ) const
virtual

Reimplemented in litehtml::el_space.

◆ is_table_skip()

bool litehtml::element::is_table_skip ( ) const

◆ is_text()

virtual bool litehtml::element::is_text ( ) const
virtual

Reimplemented in litehtml::el_text.

◆ is_white_space()

virtual bool litehtml::element::is_white_space ( ) const
virtual

Reimplemented in litehtml::el_space, and litehtml::html_tag.

◆ on_click()

virtual void litehtml::element::on_click ( )
virtual

Reimplemented in litehtml::el_anchor, and litehtml::html_tag.

◆ on_lbutton_down()

virtual bool litehtml::element::on_lbutton_down ( )
virtual

Reimplemented in litehtml::html_tag.

◆ on_lbutton_up()

virtual bool litehtml::element::on_lbutton_up ( )
virtual

Reimplemented in litehtml::html_tag.

◆ on_mouse_leave()

virtual bool litehtml::element::on_mouse_leave ( )
virtual

Reimplemented in litehtml::html_tag.

◆ on_mouse_over()

virtual bool litehtml::element::on_mouse_over ( )
virtual

Reimplemented in litehtml::html_tag.

◆ parent() [1/2]

element::ptr litehtml::element::parent ( ) const
inline

◆ parent() [2/2]

void litehtml::element::parent ( const element::ptr par)
inline

◆ parse_attributes()

◆ parse_counter_tokens()

void litehtml::element::parse_counter_tokens ( const string_vector tokens,
const int  default_value,
std::function< void(const string_id &, const int)>  handler 
) const
private

◆ refresh_styles()

virtual void litehtml::element::refresh_styles ( )
virtual

Reimplemented in litehtml::html_tag.

◆ removeChild()

virtual bool litehtml::element::removeChild ( const ptr el)
virtual

Reimplemented in litehtml::html_tag.

◆ requires_styles_update()

bool litehtml::element::requires_styles_update ( )

◆ reset_counter()

void litehtml::element::reset_counter ( const string_id &  counter_name_id,
const int  value = 0 
)

◆ select() [1/4]

virtual int litehtml::element::select ( const css_element_selector selector,
bool  apply_pseudo = true 
)
virtual

Reimplemented in litehtml::html_tag.

◆ select() [2/4]

virtual int litehtml::element::select ( const css_selector selector,
bool  apply_pseudo = true 
)
virtual

Reimplemented in litehtml::html_tag.

◆ select() [3/4]

virtual int litehtml::element::select ( const css_selector::vector selector_list,
bool  apply_pseudo = true 
)
virtual

Reimplemented in litehtml::html_tag.

◆ select() [4/4]

virtual int litehtml::element::select ( const string &  selector)
virtual

Reimplemented in litehtml::html_tag.

◆ select_all() [1/3]

virtual elements_list litehtml::element::select_all ( const css_selector selector)
virtual

Reimplemented in litehtml::html_tag.

◆ select_all() [2/3]

virtual void litehtml::element::select_all ( const css_selector selector,
elements_list res 
)
protectedvirtual

Reimplemented in litehtml::html_tag.

◆ select_all() [3/3]

virtual elements_list litehtml::element::select_all ( const string &  selector)
virtual

Reimplemented in litehtml::html_tag.

◆ select_one() [1/2]

virtual element::ptr litehtml::element::select_one ( const css_selector selector)
virtual

Reimplemented in litehtml::html_tag.

◆ select_one() [2/2]

virtual element::ptr litehtml::element::select_one ( const string &  selector)
virtual

Reimplemented in litehtml::html_tag.

◆ set_attr()

virtual void litehtml::element::set_attr ( const char *  name,
const char *  val 
)
virtual

Reimplemented in litehtml::html_tag.

◆ set_class()

virtual bool litehtml::element::set_class ( const char *  pclass,
bool  add 
)
virtual

Reimplemented in litehtml::html_tag.

◆ set_data()

virtual void litehtml::element::set_data ( const char *  data)
virtual

◆ set_pseudo_class()

virtual bool litehtml::element::set_pseudo_class ( string_id  cls,
bool  add 
)
virtual

Reimplemented in litehtml::html_tag.

◆ set_tagName()

virtual void litehtml::element::set_tagName ( const char *  tag)
virtual

Reimplemented in litehtml::html_tag.

◆ split_inlines()

std::tuple< element::ptr, element::ptr, element::ptr > litehtml::element::split_inlines ( )

◆ tag()

virtual string_id litehtml::element::tag ( ) const
virtual

Friends And Related Symbol Documentation

◆ document

friend class document
friend

◆ el_table

friend class el_table
friend

◆ html_tag

friend class html_tag
friend

◆ line_box

friend class line_box
friend

Member Data Documentation

◆ m_children

elements_list litehtml::element::m_children
protected

◆ m_counter_values

std::map<string_id, int> litehtml::element::m_counter_values
private

◆ m_css

css_properties litehtml::element::m_css
protected

◆ m_doc

std::weak_ptr<document> litehtml::element::m_doc
protected

◆ m_parent

std::weak_ptr<element> litehtml::element::m_parent
protected

◆ m_renders

std::list<std::weak_ptr<render_item> > litehtml::element::m_renders
protected

◆ m_used_styles

used_selector::vector litehtml::element::m_used_styles
protected

The documentation for this class was generated from the following files: