2 #include "iterators.h"
\r
3 #include "html_tag.h"
\r
5 litehtml::element::ptr litehtml::elements_iterator::next(bool ret_parent)
\r
9 while(m_idx < (int) m_el->get_children_count())
\r
11 element::ptr el = m_el->get_child(m_idx);
\r
12 if( el->get_children_count() && m_go_inside && m_go_inside->select(el) )
\r
17 m_stack.push_back(si);
\r
27 if( !m_select || (m_select && m_select->select(m_el->get_child(m_idx))) )
\r
29 return m_el->get_child(m_idx);
\r
40 void litehtml::elements_iterator::next_idx()
\r
43 while(m_idx >= (int) m_el->get_children_count() && m_stack.size())
\r
45 stack_item si = m_stack.back();
\r
54 //////////////////////////////////////////////////////////////////////////
\r
55 //////////////////////////////////////////////////////////////////////////
\r
58 bool litehtml::go_inside_inline::select(const element::ptr& el)
\r
60 if(el->get_display() == display_inline || el->get_display() == display_inline_text)
\r
67 bool litehtml::go_inside_table::select(const element::ptr& el)
\r
69 if( el->get_display() == display_table_row_group ||
\r
70 el->get_display() == display_table_header_group ||
\r
71 el->get_display() == display_table_footer_group)
\r
78 bool litehtml::table_rows_selector::select(const element::ptr& el)
\r
80 if( el->get_display() == display_table_row)
\r
87 bool litehtml::table_cells_selector::select(const element::ptr& el)
\r
89 if( el->get_display() == display_table_cell)
\r