#include "GuiInstanceLoader_TemplateControl.h"
namespace
{
namespace
{
namespace
{
#ifndef VCZH_DEBUG_NO_REFLECTION
class
:
public
,
public
{
protected
:
;
public
:
()
{
=
::
(
description
::
<
>::
.typeName);
}
()
override
{
return
;
}
void
(
const
&
,
collections
::
<
>&
)
override
{
.
(
::
);
}
<
>
(
const
&
)
override
{
if
(
.
==
::
)
{
auto
=
::
(
nullptr
);
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
=
<
>();
refControl
.
.
();
auto
=
<
>();
refAddChild
refControl
;
refAddChild
.
=
L"AddChild"
;
auto
=
<
>();
call
refAddChild
;
call
.
(
value
);
expr
call
;
}
else
if
(
td
->
(
description
::
<
>()))
{
auto
=
<
>();
refControl
.
.
();
auto
=
<
>();
refContainerComposition
refControl
;
refContainerComposition
.
=
L"ContainerComposition"
;
auto
=
<
>();
refAddChild
refContainerComposition
;
refAddChild
.
=
L"AddChild"
;
auto
=
<
>();
call
refAddChild
;
call
.
(
value
);
expr
call
;
}
if
(
expr
)
{
auto
=
<
>();
stat
expr
;
block
.
(
stat
);
}
}
}
if
(
block
.
() >
0
)
{
return
block
;
}
return
nullptr
;
}
};
#endif
void
InitializeTrackerProgressBar
(
const
&
,
<
>
)
{
auto
=
<
>();
refVariable
.
;
auto
=
<
>();
refSetPageSize
refVariable
;
refSetPageSize
.
=
L"SetPageSize"
;
auto
=
<
>();
refZero
.
=
L"0"
;
auto
=
<
>();
call
refSetPageSize
;
call
.
(
refZero
);
auto
=
<
>();
stat
call
;
.
(
stat
);
}
extern
void
(
IGuiInstanceLoaderManager
*
);
extern
void
(
IGuiInstanceLoaderManager
*
);
extern
void
(
IGuiInstanceLoaderManager
*
);
extern
void
(
IGuiInstanceLoaderManager
*
);
extern
void
(
IGuiInstanceLoaderManager
*
);
class
GuiPredefinedInstanceLoadersPlugin
:
public
,
public
{
public
:
GUI_PLUGIN_NAME(GacUI_Instance_TypeLoaders)
vl
::
()
override
{
return
L"GacUI_Instance_TypeLoaders"
; }
void
(
vl
::
collections
::
<
>&
)
override
{
GUI_PLUGIN_DEPEND(GacUI_Res_ResourceResolver);
.
(
L"GacUI_Res_ResourceResolver"
);
GUI_PLUGIN_DEPEND(GacUI_Instance);
GUI_PLUGIN_DEPEND(GacUI_Instance_Reflection);
.
(
L"GacUI_Instance_Reflection"
);
}
void
()
override
{
#ifndef VCZH_DEBUG_NO_REFLECTION
IGuiInstanceLoaderManager
*
=
();
#define ADD_TEMPLATE_CONTROL(TYPENAME, THEME_NAME)\
manager->SetLoader(\
new GuiTemplateControlInstanceLoader<TYPENAME>(\
L"presentation::controls::" L ## #TYPENAME,\
theme::ThemeName::THEME_NAME\
)\
)
#define ADD_VIRTUAL_CONTROL(VIRTUALTYPENAME, TYPENAME, THEME_NAME)\
manager->CreateVirtualType(GlobalStringKey::Get(description::TypeInfo<TYPENAME>::content.typeName),\
new GuiTemplateControlInstanceLoader<TYPENAME>(\
L"presentation::controls::Gui" L ## #VIRTUALTYPENAME,\
theme::ThemeName::THEME_NAME\
)\
)
#define ADD_VIRTUAL_CONTROL_F(VIRTUALTYPENAME, TYPENAME, THEME_NAME, INIT_FUNCTION)\
manager->CreateVirtualType(GlobalStringKey::Get(description::TypeInfo<TYPENAME>::content.typeName),\
new GuiTemplateControlInstanceLoader<TYPENAME>(\
L"presentation::controls::Gui" L ## #VIRTUALTYPENAME,\
theme::ThemeName::THEME_NAME,\
nullptr,\
INIT_FUNCTION\
)\
)
manager
->
(
new
);
ADD_TEMPLATE_CONTROL ( GuiCustomControl, CustomControl );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiCustomControl"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiLabel, Label );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiLabel"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiButton, Button );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiButton"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiTabPage, CustomControl );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiTabPage"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiTab, Tab );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiTab"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiScrollContainer, ScrollView );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiScrollContainer"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiWindow, Window );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiWindow"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiTextList, TextList );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiTextList"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiBindableTextList, TextList );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiBindableTextList"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiListView, ListView );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiListView"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiBindableListView, ListView );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiBindableListView"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiMultilineTextBox, MultilineTextBox );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiMultilineTextBox"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiSinglelineTextBox, SinglelineTextBox );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiSinglelineTextBox"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiDatePicker, DatePicker );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiDatePicker"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiDateComboBox, DateComboBox );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiDateComboBox"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiRibbonTab, RibbonTab );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiRibbonTab"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiRibbonTabPage, CustomControl );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiRibbonTabPage"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiRibbonGroup, RibbonGroup );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiRibbonGroup"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiRibbonIconLabel, RibbonIconLabel );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiRibbonIconLabel"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiRibbonToolstrips, RibbonToolstrips );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiRibbonToolstrips"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiRibbonGallery, RibbonGallery );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::"
L"GuiRibbonGallery"
,
theme
::
::
) );
ADD_TEMPLATE_CONTROL ( GuiBindableRibbonGalleryList, RibbonGalleryList );
manager
->
(
new
GuiTemplateControlInstanceLoader
<
GuiBindableRibbonGalleryList
>(
L"presentation::controls::"
L"GuiBindableRibbonGalleryList"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (GroupBox, GuiControl, GroupBox );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"GroupBox"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (MenuSplitter, GuiControl, MenuSplitter );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"MenuSplitter"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (MenuBarButton, GuiToolstripButton, MenuBarButton );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"MenuBarButton"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (MenuItemButton, GuiToolstripButton, MenuItemButton );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"MenuItemButton"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (ToolstripDropdownButton, GuiToolstripButton, ToolstripDropdownButton );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"ToolstripDropdownButton"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (ToolstripSplitButton, GuiToolstripButton, ToolstripSplitButton );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"ToolstripSplitButton"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (ToolstripSplitter, GuiControl, ToolstripSplitter );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"ToolstripSplitter"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (RibbonSmallButton, GuiToolstripButton, RibbonSmallButton );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"RibbonSmallButton"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (RibbonSmallDropdownButton, GuiToolstripButton, RibbonSmallDropdownButton );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"RibbonSmallDropdownButton"
,
theme
::
::
RibbonSmallDropdownButton
) );
ADD_VIRTUAL_CONTROL (RibbonSmallSplitButton, GuiToolstripButton, RibbonSmallSplitButton );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"RibbonSmallSplitButton"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (RibbonLargeButton, GuiToolstripButton, RibbonLargeButton );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"RibbonLargeButton"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (RibbonLargeDropdownButton, GuiToolstripButton, RibbonLargeDropdownButton );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"RibbonLargeDropdownButton"
,
theme
::
::
RibbonLargeDropdownButton
) );
ADD_VIRTUAL_CONTROL (RibbonLargeSplitButton, GuiToolstripButton, RibbonLargeSplitButton );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"RibbonLargeSplitButton"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (RibbonSmallIconLabel, GuiRibbonIconLabel, RibbonSmallIconLabel );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"RibbonSmallIconLabel"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (RibbonSplitter, GuiControl, RibbonSplitter );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"RibbonSplitter"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (RibbonToolstripHeader, GuiControl, RibbonToolstripHeader );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"RibbonToolstripHeader"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (CheckBox, GuiSelectableButton, CheckBox );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"CheckBox"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (RadioButton, GuiSelectableButton, RadioButton );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"RadioButton"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (HScroll, GuiScroll, HScroll );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"HScroll"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (VScroll, GuiScroll, VScroll );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"VScroll"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL (DocumentTextBox, GuiDocumentLabel, DocumentTextBox );
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"DocumentTextBox"
,
theme
::
::
) );
ADD_VIRTUAL_CONTROL_F (HTracker, GuiScroll, HTracker, InitializeTrackerProgressBar);
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"HTracker"
,
theme
::
::
,
nullptr
,
InitializeTrackerProgressBar
) );
ADD_VIRTUAL_CONTROL_F (VTracker, GuiScroll, VTracker, InitializeTrackerProgressBar);
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"VTracker"
,
theme
::
::
,
nullptr
,
InitializeTrackerProgressBar
) );
ADD_VIRTUAL_CONTROL_F (ProgressBar, GuiScroll, ProgressBar, InitializeTrackerProgressBar);
manager
->
(
::
(
description
::
<
>::
.typeName),
new
GuiTemplateControlInstanceLoader
<
>(
L"presentation::controls::Gui"
L"ProgressBar"
,
theme
::
::
,
nullptr
,
InitializeTrackerProgressBar
) );
(
manager
);
(
manager
);
(
manager
);
(
manager
);
(
manager
);
#undef ADD_TEMPLATE_CONTROL
#undef ADD_VIRTUAL_CONTROL
#undef ADD_VIRTUAL_CONTROL_F
#endif
}
void
()
override
{
}
};
GUI_REGISTER_PLUGIN(GuiPredefinedInstanceLoadersPlugin)
class
GuiRegisterPluginClass_GuiPredefinedInstanceLoadersPlugin
{
public
:
GuiRegisterPluginClass_GuiPredefinedInstanceLoadersPlugin
() {
vl
::
presentation
::
controls
::
()->
(
new
GuiPredefinedInstanceLoadersPlugin
); } }
instance_GuiRegisterPluginClass_GuiPredefinedInstanceLoadersPlugin
;
}
}
}