15 #ifndef GUI_WIDGETS_AUXILIARY_ITERATOR_POLICY_ORDER_HPP_INCLUDED
16 #define GUI_WIDGETS_AUXILIARY_ITERATOR_POLICY_ORDER_HPP_INCLUDED
37 template <
bool visit_w
idget,
bool visit_gr
id,
bool visit_child>
39 public tvisit<visit_grid, twalker_::grid>,
40 public tvisit<visit_child, twalker_::child>
50 while(!tvisit_child::at_end(*
root_)) {
76 return tvisit_widget::at_end(*
root_) && tvisit_grid::at_end(*
root_)
77 && tvisit_child::at_end(*
root_);
83 ERR_GUI_I <<
"Tried to move beyond end of the iteration range."
85 throw trange_error(
"Tried to move beyond end of range.");
92 if(!tvisit_widget::at_end(*
root_)) {
102 ERR_GUI_E <<
"Tried to move beyond end of "
103 "the widget iteration range.\n";
104 throw trange_error(
"Tried to move beyond end of range.");
112 if(!tvisit_grid::at_end(*
root_)) {
122 ERR_GUI_E <<
"Tried to move beyond end of "
123 "the grid iteration range.\n";
124 throw trange_error(
"Tried to move beyond end of range.");
133 if(tvisit_child::at_end(*
root_)) {
146 if(!tvisit_child::at_end(*
root_)) {
156 ERR_GUI_E <<
"Tried to move beyond end of "
157 "the child iteration range.\n";
158 throw trange_error(
"Tried to move beyond end of range.");
164 while(!tvisit_child::at_end(*
root_)) {
176 ERR_GUI_I <<
"Tried to defer beyond end its "
177 "iteration range iterator.\n";
178 throw tlogic_error(
"Tried to defer an invalid iterator.");
180 if(!tvisit_widget::at_end(*
root_)) {
183 if(!tvisit_grid::at_end(*
root_)) {
186 if(!tvisit_child::at_end(*
root_)) {
189 ERR_GUI_I <<
"The iterator ended in an unknown "
190 "state while deferring itself.\n";
191 throw tlogic_error(
"Tried to defer an invalid iterator.");
200 template <
bool visit_w
idget,
bool visit_gr
id,
bool visit_child>
202 public tvisit<visit_grid, twalker_::grid>,
203 public tvisit<visit_child, twalker_::child>
227 return tvisit_widget::at_end(*
root_) && tvisit_grid::at_end(*
root_)
228 && tvisit_child::at_end(*
root_);
234 ERR_GUI_I <<
"Tried to move beyond end of the iteration range."
236 throw trange_error(
"Tried to move beyond end of range.");
243 if(!tvisit_widget::at_end(*
root_)) {
253 ERR_GUI_E <<
"Tried to move beyond end of the "
254 "widget iteration range.\n";
255 throw trange_error(
"Tried to move beyond end of range.");
263 if(!tvisit_grid::at_end(*
root_)) {
273 ERR_GUI_E <<
"Tried to move beyond end of the grid "
274 "iteration range.\n";
275 throw trange_error(
"Tried to move beyond end of range.");
284 if(tvisit_child::at_end(*
root_)) {
291 if(!tvisit_child::at_end(*
root_)) {
308 ERR_GUI_I <<
"Tried to defer beyond end of the iteration "
310 throw tlogic_error(
"Tried to defer an invalid iterator.");
312 if(!tvisit_widget::at_end(*
root_)) {
315 if(!tvisit_grid::at_end(*
root_)) {
318 if(!tvisit_child::at_end(*
root_)) {
321 ERR_GUI_I <<
"The iterator ended in an unknown "
322 "state while deferring iteself.\n";
323 throw tlogic_error(
"Tried to defer an invalid iterator.");
343 throw trange_error(
"Tried to move beyond end of range.");
Define the common log macros for the gui toolkit.
Thrown when deferring an invalid iterator.
GLuint GLdouble GLdouble GLint GLint order
Helper class to select to visit or skip a level.
tvisit< visit_widget, twalker_::widget > tvisit_widget
Thrown when moving an invalid iterator.
tbottom_up(twidget &root)
tvisit< visit_child, twalker_::child > tvisit_child
iterator::twalker_ * root_
Contains the exceptions throw by the gui2::iterator::titerator classes.
A class inherited from ttext_box that displays its input as stars.
std::vector< iterator::twalker_ * > stack_
tvisit< visit_widget, twalker_::widget > tvisit_widget
When calling next the following it has the following results.
tvisit< visit_grid, twalker_::grid > tvisit_grid
std::map< std::string, tfilter >::iterator itor
std::vector< iterator::twalker_ * > stack_
iterator::twalker_ * root_
When calling next the following it has the following results.
tvisit< visit_grid, twalker_::grid > tvisit_grid
tvisit< visit_child, twalker_::child > tvisit_child
The walker abstract base class.