Cogs.Core
Extensions
Gui
Libraries
litehtml
src
iterators.h
1
#ifndef LH_ITERATORS_H
2
#define LH_ITERATORS_H
3
4
#include "types.h"
5
6
namespace
litehtml
7
{
8
class
element;
9
10
class
iterator_selector
11
{
12
public
:
13
virtual
bool
select(
const
element::ptr& el) = 0;
14
};
15
16
class
elements_iterator
17
{
18
private
:
19
struct
stack_item
20
{
21
int
idx;
22
element::ptr el;
23
stack_item
()
24
{
25
26
}
27
stack_item
(
const
stack_item
& val)
28
{
29
idx = val.idx;
30
el = val.el;
31
}
32
stack_item
(
stack_item
&& val)
33
{
34
idx = val.idx;
35
el = std::move(val.el);
36
}
37
};
38
39
std::vector<stack_item> m_stack;
40
element::ptr m_el;
41
int
m_idx;
42
iterator_selector
* m_go_inside;
43
iterator_selector
* m_select;
44
public
:
45
46
elements_iterator
(
const
element::ptr& el,
iterator_selector
* go_inside,
iterator_selector
* select)
47
{
48
m_el = el;
49
m_idx = -1;
50
m_go_inside = go_inside;
51
m_select = select;
52
}
53
54
~elements_iterator
()
55
{
56
57
}
58
59
element::ptr next(
bool
ret_parent =
true
);
60
61
private
:
62
void
next_idx();
63
};
64
65
class
go_inside_inline
:
public
iterator_selector
66
{
67
public
:
68
virtual
bool
select(
const
element::ptr& el);
69
};
70
71
class
go_inside_table
:
public
iterator_selector
72
{
73
public
:
74
virtual
bool
select(
const
element::ptr& el);
75
};
76
77
class
table_rows_selector
:
public
iterator_selector
78
{
79
public
:
80
virtual
bool
select(
const
element::ptr& el);
81
};
82
83
class
table_cells_selector
:
public
iterator_selector
84
{
85
public
:
86
virtual
bool
select(
const
element::ptr& el);
87
};
88
}
89
90
#endif
// LH_ITERATORS_H
litehtml::elements_iterator
Definition:
iterators.h:17
litehtml::go_inside_inline
Definition:
iterators.h:66
litehtml::go_inside_table
Definition:
iterators.h:72
litehtml::iterator_selector
Definition:
iterators.h:11
litehtml::table_cells_selector
Definition:
iterators.h:84
litehtml::table_rows_selector
Definition:
iterators.h:78
litehtml::elements_iterator::stack_item
Definition:
iterators.h:20
Generated by
1.9.6