#include "GuiBindableDataGrid.h"
#include "GuiBindableListControls.h"
namespace
{
namespace
{
namespace
{
using
namespace
collections
;
using
namespace
description
;
using
namespace
templates
;
namespace
{
void
::
()
{
if
(
)
{
->
();
}
}
::
()
{
}
void
::
(
*
)
{
=
;
}
::
()
{
}
bool
::
(
<
>
)
{
if
(!
)
return
false
;
if
(
.
(
.
()))
return
false
;
.
(
);
(
);
();
return
true
;
}
bool
::
(
<
>
)
{
if
(!
)
return
false
;
if
(!
.
(
.
()))
return
false
;
(
nullptr
);
.
(
.
());
();
return
true
;
}
void
::
(
*
)
{
::
(
);
for
(
=
0
;
i
<
.
();
i
++)
{
i
]
(
);
}
}
::
()
{
}
bool
::
(
const
description
::
&
)
{
return
(
)
.All([row](
<
>
)
{
return
filter
(
);
});
}
::
()
{
}
bool
::
(
const
description
::
&
)
{
return
(
)
.Any([row](
<
>
)
{
return
filter
(
);
});
}
::
()
{
}
bool
::
(
<
>
)
{
if
(
)
return
false
;
if
(
)
(
nullptr
);
;
if
(
)
(
);
();
return
true
;
}
void
::
(
*
)
{
::
(
);
if
(
)
(
);
}
bool
::
(
const
description
::
&
)
{
return
?
true
: !
(
);
}
void
::
()
{
if
(
)
{
->
();
}
}
::
()
{
}
void
::
(
*
)
{
=
;
}
::
()
{
}
bool
::
(
<
>
)
{
if
(
)
return
false
;
if
(
)
(
nullptr
);
;
if
(
)
(
);
return
true
;
}
bool
::
(
<
>
)
{
if
(
)
return
false
;
if
(
)
(
nullptr
);
;
if
(
)
(
);
return
true
;
}
void
::
(
*
)
{
::
(
);
if
(
)
(
);
if
(
)
(
);
}
::
(
const
description
::
&
,
const
description
::
&
)
{
if
(
)
{
=
(
,
);
if
(
result
!=
0
)
return
result
;
}
if
(
)
{
=
(
,
);
if
(
result
!=
0
)
return
result
;
}
return
0
;
}
::
()
{
}
bool
::
(
<
>
)
{
if
(
)
return
false
;
if
(
)
(
nullptr
);
;
if
(
)
(
);
return
true
;
}
void
::
(
*
)
{
::
(
);
if
(
)
(
);
}
::
(
const
description
::
&
,
const
description
::
&
)
{
return
? -
(
,
) :
0
;
}
void
::
(
bool
)
{
if
(
)
{
=
->
.
(
this
);
if
(
index
!= -
1
)
{
->
.
(
index
,
);
}
}
}
::
()
{
}
::
()
{
if
(
&&
)
{
(
);
}
}
::
()
{
return
;
}
void
::
(
const
&
)
{
if
(
!=
)
{
;
(
false
);
}
}
::
()
{
return
;
}
void
::
(
)
{
if
(
!=
)
{
=
;
(
false
);
}
}
bool
::
()
{
return
;
}
void
::
(
bool
)
{
=
;
}
*
::
()
{
return
;
}
void
::
(
*
)
{
if
(
!=
)
{
=
;
(
false
);
}
}
<
>
::
()
{
return
;
}
void
::
(
<
>
)
{
if
(
)
(
nullptr
);
;
if
(
)
(
);
(
false
);
}
<
>
::
()
{
return
;
}
void
::
(
<
>
)
{
if
(
)
(
nullptr
);
;
if
(
)
(
);
(
false
);
}
<
>
::
()
{
return
;
}
void
::
(
<
>
)
{
;
(
true
);
}
<
>
::
()
{
return
;
}
void
::
(
<
>
)
{
;
(
true
);
}
::
(
)
{
if
(
0
<=
&&
<
->
())
{
return
(
->
(
),
);
}
return
L""
;
}
description
::
::
(
)
{
if
(
0
<=
&&
<
->
())
{
return
(
->
(
),
);
}
return
();
}
void
::
(
,
description
::
)
{
if
(
0
<=
&&
<
->
())
{
auto
=
->
(
);
(
rowValue
,
,
);
->
(
,
1
,
1
);
}
}
<
>
::
()
{
return
;
}
void
::
(
const
<
>&
)
{
if
(
)
{
;
(
true
);
compositions
::
;
.
(
arguments
);
}
}
<
description
::
>
::
()
{
return
;
}
void
::
(
const
<
description
::
>&
)
{
if
(
)
{
;
(
true
);
compositions
::
;
.
(
arguments
);
}
}
void
::
(
,
bool
)
{
=
;
(
,
1
,
1
);
=
true
;
}
void
::
(
,
,
)
{
->
();
if
(
)
{
->
();
}
}
bool
::
(
,
const
<
>&
)
{
return
!
.
(
.
());
}
void
::
(
,
const
<
>&
)
{
=
;
}
void
::
(
,
const
<
>&
)
{
=
nullptr
;
}
::
(
*
)
:dataProvider(
)
{
}
::
()
{
}
void
::
()
{
(
0
,
(),
());
}
void
::
()
{
if
(
)
{
->
();
}
}
::
*
::
()
{
return
this
;
}
void
::
()
{
();
(
true
);
}
void
::
(
,
,
)
{
if
(!
&& !
&&
==
)
{
(
,
,
);
}
else
{
(
true
);
}
}
&
::
()
{
return
;
}
&
::
()
{
return
;
}
<
description
::
>
::
()
{
return
;
}
void
::
(
<
description
::
>
)
{
=
0
;
if
(
)
{
oldCount
=
();
}
if
(
)
{
auto
=
.
<
>();
ol
.
(
);
}
nullptr
;
nullptr
;
if
(
)
{
if
(
auto
=
.
<
>())
{
ol
;
ol
.
([
this
](
,
,
)
{
(
start
,
oldCount
,
newCount
);
});
}
else
if
(
auto
=
.
<
>())
{
rl
;
}
else
{
::
(
<
>(
));
}
}
(
0
,
oldCount
,
?
() :
0
);
}
void
::
()
{
if
(
)
{
(
nullptr
);
nullptr
;
}
<
<
>>
;
(
selectedFilters
,
(
)
.Select([](
<
>
) {
return
column
(); })
.Where([](
<
>
) {
return
filter
nullptr
; })
);
if
(
)
{
selectedFilters
.
(
);
}
if
(
selectedFilters
.
() >
0
)
{
auto
=
<
>();
FOREACH(Ptr<IDataFilter>, filter, selectedFilters)
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
<
>>&
= ::
vl
::
collections
::
(
selectedFilters
);
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
<
>
;
__foreach_iterator__
.
(
filter
);)
{
andFilter
(
filter
);
}
andFilter
;
}
if
(
)
{
(
this
);
}
}
void
::
(
bool
)
{
=
.
();
.
();
=
?
() :
0
;
if
(
)
{
for
(
=
0
;
i
<
rowCount
;
i
++)
{
if
(
(
(
i
)))
{
.
(
i
);
}
}
}
else
{
for
(
=
0
;
i
<
rowCount
;
i
++)
{
.
(
i
);
}
}
if
(
&&
.
() >
0
)
{
*
=
.
();
(
&
0
],
.
(),
[=](
,
)
{
return
sorter
->
(
(
a
),
(
b
));
});
}
if
(
)
{
();
}
}
::
()
:dataColumns(
this
)
, columns(
this
)
{
();
(
false
);
}
::
()
{
}
<
>
::
()
{
return
;
}
void
::
(
<
>
)
{
;
();
(
true
);
}
::
()
{
return
.
();
}
::
(
)
{
return
(
);
}
description
::
::
(
)
{
return
?
(
]) :
();
}
*
::
(
const
&
)
{
if
(
==
::
)
{
return
(
*)
this
;
}
else
if
(
==
ListViewColumnItemArranger
::
::
)
{
return
(
ListViewColumnItemArranger
::
*)
this
;
}
else
if
(
==
::
)
{
return
(
*)
this
;
}
else
{
return
nullptr
;
}
}
<
>
::
(
)
{
if
(
0
<=
&&
<
())
{
return
(
(
),
);
}
return
nullptr
;
}
<
>
::
(
)
{
if
(
0
<=
&&
<
())
{
return
(
(
),
);
}
return
nullptr
;
}
::
(
)
{
if
(
.
() ==
0
)
return
L""
;
return
0
]
(
);
}
::
(
,
)
{
return
+
1
]
(
);
}
::
()
{
return
.
();
}
::
(
)
{
return
];
}
::
()
{
return
.
();
}
::
(
)
{
return
]
();
}
bool
::
(
ListViewColumnItemArranger
::
*
)
{
if
(
)
return
false
;
=
;
return
true
;
}
bool
::
(
ListViewColumnItemArranger
::
*
)
{
if
(!
)
return
false
;
=
nullptr
;
return
true
;
}
::
(
)
{
return
]
();
}
void
::
(
,
)
{
]
(
);
}
*
::(
)
{
return
]
();
}
::
(
)
{
return
]
;
}
bool
::
(
)
{
return
]
();
}
void
::
(
,
bool
)
{
if
(
0
<=
&&
<
.
())
{
auto
=
]
();
if
(!
sorter
)
{
nullptr
;
}
else
if
(
)
{
sorter
;
}
else
{
<
>
=
new
();
reverseSorter
(
sorter
);
reverseSorter
;
}
}
else
{
nullptr
;
}
for
(
=
0
;
i
<
.
();
i
++)
{
i
]
=
i
!=
?
::
:
?
::
:
::
;
}
();
(
true
);
}
::
()
{
for
(
=
0
;
i
<
.
();
i
++)
{
auto
=
i
]
;
if
(
state
!=
::
)
{
return
i
;
}
}
return
-
1
;
}
bool
::
()
{
for
(
=
0
;
i
<
.
();
i
++)
{
auto
=
i
]
;
if
(
state
!=
::
)
{
return
state
==
::
;
}
}
return
true
;
}
::
(
,
)
{
return
1
;
}
*
::
GetCellDataVisualizerFactory
(
,
)
{
return
]
().
();
}
*
::
(
,
)
{
return
]
().
();
}
description
::
::
(
,
)
{
return
]
(
);
}
void
::
(
,
,
const
description
::
&
)
{
]
(
,
);
}
}
::
(
theme
::
)
:
(
,
new
list
::
)
{
=
dynamic_cast
<
list
::
*>(
());
}
::
()
{
}
list
::
&
::
()
{
return
->
();
}
list
::
&
::
()
{
return
->
();
}
<
description
::
>
::
()
{
return
->
();
}
void
::
(
<
description
::
>
)
{
->
(
);
}
<
list
::
>
::
()
{
return
->
();
}
void
::
(
<
list
::
>
)
{
->
(
);
}
<
<
>>
::
()
{
return
->
;
}
void
::
(
const
<
<
>>&
)
{
if
(
->
)
{
->
;
->
();
LargeImagePropertyChanged
.
(
());
}
}
<
<
>>
::
()
{
return
->
;
}
void
::
(
const
<
<
>>&
)
{
if
(
->
)
{
->
;
->
();
SmallImagePropertyChanged
.
(
());
}
}
description
::
::
()
{
auto
=
();
if
(
pos
.
== -
1
||
pos
.
== -
1
)
{
return
();
}
return
->
(
().
);
}
description
::
::
()
{
auto
=
();
if
(
pos
.
== -
1
||
pos
.
== -
1
)
{
return
();
}
return
->
()
pos
.
]
(
pos
.
);
}
}
}
}