#include "GuiInstanceLoader_TemplateControl.h"
#ifndef VCZH_DEBUG_NO_REFLECTION
namespace
{
namespace
{
namespace
{
<
workflow
::
>
(
,
::
&
,
::
&
)
{
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
=
<
>();
refToolstripItems
refControl
;
refToolstripItems
.
=
L"ToolstripItems"
;
auto
=
<
>();
refAdd
refToolstripItems
;
refAdd
.
=
L"Add"
;
auto
=
<
>();
call
refAdd
;
call
.
(
value
);
expr
call
;
}
if
(
expr
)
{
auto
=
<
>();
stat
expr
;
block
.
(
stat
);
}
}
}
if
(
block
.
() >
0
)
{
return
block
;
}
return
nullptr
;
}
template
<
typename
>
class
:
public
{
private
:
using
=
typename
::TypeInfo;
public
:
using
=
::
;
using
=
::
;
(
const
&
,
theme
::
,
<
>(*
)(
&))
:
(
,
,
)
{
}
(
const
&
,
theme
::
)
:
(
,
)
{
}
void
(
const
&
,
collections
::
<
>&
)
override
{
.
(
::
);
::GetPropertyNames(
,
);
}
<
>
(
const
&
)
override
{
if
(
.
==
::
)
{
return
::
(
<
*>::
());
}
return
::GetPropertyType(
);
}
<
workflow
::
>
(
GuiResourcePrecompileContext
&
,
types
::
&
,
const
&
,
,
&
,
,
::
&
)
override
{
if
(
auto
=
(
,
,
))
{
return
statement
;
}
else
{
return
::AssignParameters(
,
,
,
,
,
,
);
}
}
};
#define BASE_TYPE GuiTemplateControlInstanceLoader<GuiToolstripMenu>
class GuiToolstripMenuInstanceLoader : public GuiToolstripInstanceLoaderBase<BASE_TYPE>
class
:
public
GuiToolstripInstanceLoaderBase
<
GuiTemplateControlInstanceLoader
<
>>
{
public
:
static
<
> (
&)
{
auto
=
<
>();
expr
=
::
;
return
expr
;
}
public
:
()
:GuiToolstripInstanceLoaderBase<BASE_TYPE>(description::TypeInfo<GuiToolstripMenu>::content.typeName, theme::ThemeName::Menu, ArgumentFunction)
:
GuiToolstripInstanceLoaderBase
<
GuiTemplateControlInstanceLoader
<
>>(
description
::
<
>::
.typeName,
theme
::
::
,
)
{
}
};
#undef BASE_TYPE
#define BASE_TYPE GuiTemplateControlInstanceLoader<GuiToolstripMenuBar>
class GuiToolstripMenuBarInstanceLoader : public GuiToolstripInstanceLoaderBase<BASE_TYPE>
class
:
public
GuiToolstripInstanceLoaderBase
<
GuiTemplateControlInstanceLoader
<
>>
{
public
:
()
:GuiToolstripInstanceLoaderBase<BASE_TYPE>(description::TypeInfo<GuiToolstripMenuBar>::content.typeName, theme::ThemeName::MenuBar)
:
GuiToolstripInstanceLoaderBase
<
GuiTemplateControlInstanceLoader
<
>>(
description
::
<
>::
.typeName,
theme
::
::
)
{
}
};
#undef BASE_TYPE
#define BASE_TYPE GuiTemplateControlInstanceLoader<GuiToolstripToolBar>
class GuiToolstripToolBarInstanceLoader : public GuiToolstripInstanceLoaderBase<BASE_TYPE>
class
:
public
GuiToolstripInstanceLoaderBase
<
GuiTemplateControlInstanceLoader
<
>>
{
public
:
()
:GuiToolstripInstanceLoaderBase<BASE_TYPE>(description::TypeInfo<GuiToolstripToolBar>::content.typeName, theme::ThemeName::ToolstripToolBar)
:
GuiToolstripInstanceLoaderBase
<
GuiTemplateControlInstanceLoader
<
>>(
description
::
<
>::
.typeName,
theme
::
::
)
{
}
};
#undef BASE_TYPE
#define BASE_TYPE GuiTemplateControlInstanceLoader<GuiToolstripGroupContainer>
class GuiToolstripGroupContainerInstanceLoader : public GuiToolstripInstanceLoaderBase<BASE_TYPE>
class
:
public
GuiToolstripInstanceLoaderBase
<
GuiTemplateControlInstanceLoader
<
GuiToolstripGroupContainer
>>
{
public
:
()
:GuiToolstripInstanceLoaderBase<BASE_TYPE>(description::TypeInfo<GuiToolstripGroupContainer>::content.typeName, theme::ThemeName::CustomControl)
:
GuiToolstripInstanceLoaderBase
<
GuiTemplateControlInstanceLoader
<
GuiToolstripGroupContainer
>>(
description
::
<
GuiToolstripGroupContainer
>::
.typeName,
theme
::
::
)
{
}
};
#undef BASE_TYPE
#define BASE_TYPE GuiTemplateControlInstanceLoader<GuiToolstripGroup>
class GuiToolstripGroupInstanceLoader : public GuiToolstripInstanceLoaderBase<BASE_TYPE>
class
:
public
GuiToolstripInstanceLoaderBase
<
GuiTemplateControlInstanceLoader
<
>>
{
public
:
()
:GuiToolstripInstanceLoaderBase<BASE_TYPE>(description::TypeInfo<GuiToolstripGroup>::content.typeName, theme::ThemeName::CustomControl)
:
GuiToolstripInstanceLoaderBase
<
GuiTemplateControlInstanceLoader
<
>>(
description
::
<
>::
.typeName,
theme
::
::
)
{
}
};
#undef BASE_TYPE
#define BASE_TYPE GuiTemplateControlInstanceLoader<GuiToolstripButton>
class GuiToolstripButtonInstanceLoader : public BASE_TYPE
class
:
public
GuiTemplateControlInstanceLoader
<
>
{
protected
:
;
public
:
()
:BASE_TYPE(description::TypeInfo<GuiToolstripButton>::content.typeName, theme::ThemeName::ToolstripButton)
:
GuiTemplateControlInstanceLoader
<
>(
description
::
<
>::
.typeName,
theme
::
::
)
{
=
::
(
L"SubMenu"
);
}
void
(
const
&
,
collections
::
<
>&
)
override
{
.
(
);
BASE_TYPE::GetPropertyNames(typeInfo, propertyNames);
GuiTemplateControlInstanceLoader
<
>::
(
,
);
}
<
>
(
const
&
)
override
{
if
(
.
)
{
return
::
(
<
*>::
());
}
return BASE_TYPE::GetPropertyType(propertyInfo);
return
GuiTemplateControlInstanceLoader
<
>::
(
);
}
<
workflow
::
>
(
GuiResourcePrecompileContext
&
,
types
::
&
,
const
&
,
,
,
::
&
)
override
{
if
(
.
)
{
auto
=
<
>();
refControl
.
.
();
auto
=
<
>();
refEnsureToolstripSubMenu
refControl
;
refEnsureToolstripSubMenu
.
=
L"EnsureToolstripSubMenu"
;
auto
=
<
>();
call
refEnsureToolstripSubMenu
;
return
call
;
}
return BASE_TYPE::GetParameter(precompileContext, resolvingResult, propertyInfo, variableName, attPosition, errors);
return
GuiTemplateControlInstanceLoader
<
>::
(
,
,
,
,
,
);
}
};
#undef BASE_TYPE
#define BASE_TYPE GuiTemplateControlInstanceLoader<GuiRibbonToolstripMenu>
class GuiRibbonToolstripMenuInstanceLoader : public GuiToolstripInstanceLoaderBase<BASE_TYPE>
class
:
public
GuiToolstripInstanceLoaderBase
<
GuiTemplateControlInstanceLoader
<
>>
{
public
:
static
<
> (
&)
{
auto
=
<
>();
expr
=
::
;
return
expr
;
}
public
:
()
:GuiToolstripInstanceLoaderBase<BASE_TYPE>(description::TypeInfo<GuiRibbonToolstripMenu>::content.typeName, theme::ThemeName::RibbonToolstripMenu, ArgumentFunction)
:
GuiToolstripInstanceLoaderBase
<
GuiTemplateControlInstanceLoader
<
>>(
description
::
<
>::
.typeName,
theme
::
::
,
)
{
}
};
#undef BASE_TYPE
#define BASE_TYPE GuiTemplateControlInstanceLoader<GuiRibbonButtons>
class GuiRibbonButtonsInstanceLoader : public BASE_TYPE
class
:
public
GuiTemplateControlInstanceLoader
<
>
{
protected
:
;
;
void
(
types
::
&
,
const
&
,
,
&
,
::
&
,
<
>
)
override
{
=
.
().
(
);
=
.
().
(
);
if
(
indexMaxSize
!= -
1
&&
indexMinSize
!= -
1
)
{
.
(
.
(
indexMaxSize
)
0
].
);
.
(
.
(
indexMinSize
)
0
].
);
}
}
public
:
()
:BASE_TYPE(description::TypeInfo<GuiRibbonButtons>::content.typeName, theme::ThemeName::RibbonButtons)
:
GuiTemplateControlInstanceLoader
<
>(
description
::
<
>::
.typeName,
theme
::
::
)
{
=
::
(
L"MaxSize"
);
=
::
(
L"MinSize"
);
}
void
(
const
&
,
collections
::
<
>&
)
override
{
if
(
(
))
{
.
(
);
.
(
);
}
}
void
(
const
&
,
collections
::
<
>&
)
override
{
(
,
);
}
<
>
(
const
&
)
override
{
if
(
.
||
.
==
)
{
auto
=
::
(
<
>::
());
info
=
::
;
return
info
;
}
return
::
(
);
}
};
#undef BASE_TYPE
void
(
IGuiInstanceLoaderManager
*
)
{
->
(
new
GuiToolstripMenuInstanceLoader
);
->
(
new
GuiToolstripMenuBarInstanceLoader
);
->
(
new
GuiToolstripToolBarInstanceLoader
);
->
(
new
GuiToolstripGroupContainerInstanceLoader
);
->
(
new
GuiToolstripGroupInstanceLoader
);
->
(
new
GuiToolstripButtonInstanceLoader
);
->
(
new
GuiRibbonButtonsInstanceLoader
);
->
(
new
GuiRibbonToolstripMenuInstanceLoader
);
}
}
}
}
#endif