#include "GuiInstanceLoader_TemplateControl.h"
#ifndef VCZH_DEBUG_NO_REFLECTION
namespace
{
namespace
{
namespace
{
class
:
public
,
public
{
protected
:
;
;
public
:
()
{
=
::
(
description
::
<
>::
.typeName);
=
::
(
L"AxisDirection"
);
}
()
override
{
return
;
}
void
(
const
&
,
collections
::
<
>&
)
override
{
if
(
(
))
{
.
(
);
}
}
void
(
const
&
,
collections
::
<
>&
)
override
{
(
,
);
}
<
>
(
const
&
)
override
{
if
(
.
)
{
auto
=
::
(
<
>::
());
info
=
::
;
return
info
;
}
return
::
(
);
}
bool
(
const
&
)
override
{
return
.
;
}
<
workflow
::
>
(
GuiResourcePrecompileContext
&
,
types
::
&
,
const
&
,
,
&
,
,
::
&
)
override
{
if
(
(
))
{
=
.
().
(
);
if
(
indexAxisDirection
!= -
1
)
{
auto
=
<
>();
createExpr
(
<
<
>>::
().
());
createExpr
.
(
.
(
indexAxisDirection
)
0
].
);
auto
=
<
>();
refVariable
.
.
();
auto
=
<
>();
assignExpr
=
::
;
assignExpr
refVariable
;
assignExpr
createExpr
;
auto
=
<
>();
assignStat
assignExpr
;
return
assignStat
;
}
}
return
nullptr
;
}
};
class
GuiCompositionInstanceLoader
:
public
,
public
{
protected
:
;
public
:
GuiCompositionInstanceLoader
()
{
=
::
(
description
::
<
>::
.typeName);
}
()
override
{
return
;
}
void
(
const
&
,
collections
::
<
>&
)
override
{
.
(
::
);
}
<
>
(
const
&
)
override
{
if
(
.
==
::
)
{
auto
=
::
(
nullptr
);
info
.
(
<
*>::
());
info
.
(
<
*>::
());
info
.
(
<
<
>>::
());
if
(
.
.
()->
(
description
::
<
>()))
{
info
.
(
<
*>::
());
}
return
info
;
}
return
::
(
);
}
<
workflow
::
>
(
GuiResourcePrecompileContext
&
,
types
::
&
,
const
&
,
,
&
,
,
::
&
)
override
{
auto
=
<
>();
FOREACH_INDEXER(GlobalStringKey, prop, index, arguments.Keys())
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
>&
= ::
vl
::
collections
::
(
.
());
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
if
(
bool
=
true
)
for
(
=
0
;
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
;
__foreach_iterator__
.
(
prop
);
index
++)
{
const
auto
&
=
.
(
index
);
if
(
prop
==
::
)
{
auto
=
values
0
].
;
auto
=
values
0
].
();
<
>
;
if
(
td
->
(
description
::
<
>()))
{
auto
=
<
>();
refControl
.
.
();
auto
=
<
>();
refAddComponent
refControl
;
refAddComponent
.
=
L"AddComponent"
;
auto
=
<
>();
call
refAddComponent
;
call
.
(
value
);
expr
call
;
}
else
if
(
td
->
(
description
::
<
>()))
{
auto
=
<
>();
refControl
.
.
();
auto
refAddControlHostComponent
=
<
>();
refAddControlHostComponent
refControl
;
refAddControlHostComponent
.
=
L"AddControlHostComponent"
;
auto
=
<
>();
call
refAddControlHostComponent
;
call
.
(
value
);
expr
call
;
}
else
if
(
td
->
(
description
::
<
>()))
{
auto
=
<
>();
refComposition
.
.
();
auto
=
<
>();
refOwnedElement
refComposition
;
refOwnedElement
.
=
L"OwnedElement"
;
auto
=
<
>();
assign
=
::
;
assign
refOwnedElement
;
assign
value
;
expr
assign
;
}
else
if
(
td
->
(
description
::
<
>()))
{
auto
=
<
>();
refBoundsComposition
value
;
refBoundsComposition
.
=
L"BoundsComposition"
;
auto
=
<
>();
refComposition
.
.
();
auto
=
<
>();
refAddChild
refComposition
;
refAddChild
.
=
L"AddChild"
;
auto
=
<
>();
call
refAddChild
;
call
.
(
refBoundsComposition
);
expr
call
;
}
else
if
(
td
->
(
description
::
<
>()))
{
auto
=
<
>();
refComposition
.
.
();
auto
=
<
>();
refAddChild
refComposition
;
refAddChild
.
=
L"AddChild"
;
auto
=
<
>();
call
refAddChild
;
call
.
(
value
);
expr
call
;
}
if
(
expr
)
{
auto
=
<
>();
stat
expr
;
block
.
(
stat
);
}
}
}
if
(
block
.
() >
0
)
{
return
block
;
}
return
nullptr
;
}
};
class
GuiTableCompositionInstanceLoader
:
public
,
public
{
protected
:
;
,
;
public
:
GuiTableCompositionInstanceLoader
()
{
=
::
(
description
::
<
>::
.typeName);
=
::
(
L"Rows"
);
=
::
(
L"Columns"
);
}
()
override
{
return
;
}
void
(
const
&
,
collections
::
<
>&
)
override
{
.
(
);
.
(
);
}
void
(
const
&
,
collections
::
<
>&
)
override
{
if
(
.
||
.
==
)
{
.
(
);
.
(
);
}
}
<
>
(
const
&
)
override
{
if
(
.
||
.
==
)
{
return
::
(
<
>::
());
}
return
::
(
);
}
<
workflow
::
>
(
GuiResourcePrecompileContext
&
,
types
::
&
,
const
&
,
,
&
,
,
::
&
)
override
{
auto
=
<
>();
FOREACH_INDEXER(GlobalStringKey, prop, index, arguments.Keys())
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
>&
= ::
vl
::
collections
::
(
.
());
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
if
(
bool
=
true
)
for
(
=
0
;
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
;
__foreach_iterator__
.
(
prop
);
index
++)
{
if
(
prop
)
{
auto
=
.
().
(
);
if
(
indexColumns
!= -
1
)
{
auto
&
=
.
(
index
);
auto
&
=
.
(
indexColumns
);
{
auto
=
<
>();
refComposition
.
.
();
auto
=
<
>();
refSetRowsAndColumns
refComposition
;
refSetRowsAndColumns
.
=
L"SetRowsAndColumns"
;
auto
=
<
>();
rowsExpr
.
(
rows
.
());
auto
=
<
>();
columnsExpr
.
(
columns
.
());
auto
=
<
>();
call
refSetRowsAndColumns
;
call
.
(
rowsExpr
);
call
.
(
columnsExpr
);
auto
=
<
>();
stat
call
;
block
.
(
stat
);
}
for
(
=
0
;
i
<
rows
.
();
i
++)
{
auto
=
<
>();
refComposition
.
.
();
auto
=
<
>();
refSetRowOption
refComposition
;
refSetRowOption
.
=
L"SetRowOption"
;
auto
=
<
>();
indexExpr
.
(
i
);
auto
=
<
>();
call
refSetRowOption
;
call
.
(
indexExpr
);
call
.
(
rows
i
].
);
auto
=
<
>();
stat
call
;
block
.
(
stat
);
}
for
(
=
0
;
i
<
columns
.
();
i
++)
{
auto
=
<
>();
refComposition
.
.
();
auto
=
<
>();
refSetColumnOption
refComposition
;
refSetColumnOption
.
=
L"SetColumnOption"
;
auto
=
<
>();
indexExpr
.
(
i
);
auto
=
<
>();
call
refSetColumnOption
;
call
.
(
indexExpr
);
call
.
(
columns
i
].
);
auto
=
<
>();
stat
call
;
block
.
(
stat
);
}
}
}
}
if
(
block
.
() >
0
)
{
return
block
;
}
return
nullptr
;
}
};
class
GuiCellCompositionInstanceLoader
:
public
,
public
{
protected
:
;
;
public
:
GuiCellCompositionInstanceLoader
()
{
=
::
(
description
::
<
>::
.typeName);
=
::
(
L"Site"
);
}
()
override
{
return
;
}
void
(
const
&
,
collections
::
<
>&
)
override
{
.
(
);
}
<
>
(
const
&
)
override
{
if
(
.
)
{
return
::
(
<
>::
());
}
return
::
(
);
}
<
workflow
::
>
(
GuiResourcePrecompileContext
&
,
types
::
&
,
const
&
,
,
&
,
,
::
&
)
override
{
auto
=
<
>();
FOREACH_INDEXER(GlobalStringKey, prop, index, arguments.Keys())
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
>&
= ::
vl
::
collections
::
(
.
());
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
if
(
bool
=
true
)
for
(
=
0
;
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
;
__foreach_iterator__
.
(
prop
);
index
++)
{
if
(
prop
)
{
;
{
auto
=
.
(
index
)
0
].
;
if
(
auto
=
siteExpr
.
<
>())
{
if
(
auto
=
inferExpr
.
<
>())
{
auto
=
description
::
<
>()->
();
FOREACH(Ptr<WfConstructorArgument>, argument, ctorExpr->arguments)
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
<
>>&
= ::
vl
::
collections
::
(
ctorExpr
);
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
<
>
;
__foreach_iterator__
.
(
argument
);)
{
if
(
auto
=
argument
.
<
>())
{
if
(
auto
=
argument
.
<
>())
{
;
if
(
st
->
(
valueExpr
.
,
value
))
{
=
<
>(
value
);
if
(
keyExpr
.
==
L"row"
)
{
site
.
=
propValue
;
}
else
if
(
keyExpr
.
==
L"column"
)
{
site
.
=
propValue
;
}
else
if
(
keyExpr
.
==
L"rowSpan"
)
{
site
.
=
propValue
;
}
else
if
(
keyExpr
.
==
L"columnSpan"
)
{
site
.
=
propValue
;
}
else
{
goto
ILLEGAL_SITE_PROPERTY;
}
continue
;
}
}
}
goto
ILLEGAL_SITE_PROPERTY;
}
goto
FINISH_SITE_PROPERTY;
}
}
ILLEGAL_SITE_PROPERTY:
.
(
({
.
},
,
L"Precompile: The value of property \"Site\" of type \""
+
.
.
() +
L"\" is not in a correct format: \"row:<integer> column:<integer> [rowSpan:<integer>] [columnSpan:<integer>]\"."
));
continue
;
}
FINISH_SITE_PROPERTY:;
{
auto
=
<
>();
refComposition
.
.
();
auto
=
<
>();
refSetSite
refComposition
;
refSetSite
.
=
L"SetSite"
;
auto
=
<
>();
call
refSetSite
;
{
auto
=
<
>();
arg
.
(
site
.
);
call
.
(
arg
);
}
{
auto
=
<
>();
arg
.
(
site
.
);
call
.
(
arg
);
}
{
auto
=
<
>();
arg
.
(
site
.
);
call
.
(
arg
);
}
{
auto
=
<
>();
arg
.
(
site
.
);
call
.
(
arg
);
}
auto
=
<
>();
stat
call
;
block
.
(
stat
);
}
}
}
if
(
block
.
() >
0
)
{
return
block
;
}
return
nullptr
;
}
};
void
(
IGuiInstanceLoaderManager
*
)
{
->
(
new
);
->
(
new
GuiCompositionInstanceLoader
);
->
(
new
GuiTableCompositionInstanceLoader
);
->
(
new
GuiCellCompositionInstanceLoader
);
}
}
}
}
#endif