10 class iterator_selector
13 virtual bool select(const element::ptr& el) = 0;
16 class elements_iterator
27 stack_item(const stack_item& val)
32 stack_item(stack_item&& val)
35 el = std::move(val.el);
39 std::vector<stack_item> m_stack;
42 iterator_selector* m_go_inside;
43 iterator_selector* m_select;
46 elements_iterator(const element::ptr& el, iterator_selector* go_inside, iterator_selector* select)
50 m_go_inside = go_inside;
59 element::ptr next(bool ret_parent = true);
65 class go_inside_inline : public iterator_selector
68 virtual bool select(const element::ptr& el);
71 class go_inside_table : public iterator_selector
74 virtual bool select(const element::ptr& el);
77 class table_rows_selector : public iterator_selector
80 virtual bool select(const element::ptr& el);
83 class table_cells_selector : public iterator_selector
86 virtual bool select(const element::ptr& el);
90 #endif // LH_ITERATORS_H