#ifndef VCZH_PRESENTATION_CONTROLS_GUITHEMESTYLEFACTORY
#define VCZH_PRESENTATION_CONTROLS_GUITHEMESTYLEFACTORY
#include "GuiControlTemplates.h"
namespace
{
namespace
{
namespace
{
#define GUI_CONTROL_TEMPLATE_TYPES(F) \
F(WindowTemplate, Window) \
F(ControlTemplate, CustomControl) \
F(WindowTemplate, Tooltip) \
F(LabelTemplate, Label) \
F(LabelTemplate, ShortcutKey) \
F(ScrollViewTemplate, ScrollView) \
F(ControlTemplate, GroupBox) \
F(TabTemplate, Tab) \
F(ComboBoxTemplate, ComboBox) \
F(MultilineTextBoxTemplate, MultilineTextBox) \
F(SinglelineTextBoxTemplate, SinglelineTextBox) \
F(DocumentViewerTemplate, DocumentViewer) \
F(DocumentLabelTemplate, DocumentLabel) \
F(DocumentLabelTemplate, DocumentTextBox) \
F(ListViewTemplate, ListView) \
F(TreeViewTemplate, TreeView) \
F(TextListTemplate, TextList) \
F(SelectableButtonTemplate, ListItemBackground) \
F(SelectableButtonTemplate, TreeItemExpander) \
F(SelectableButtonTemplate, CheckTextListItem) \
F(SelectableButtonTemplate, RadioTextListItem) \
F(MenuTemplate, Menu) \
F(ControlTemplate, MenuBar) \
F(ControlTemplate, MenuSplitter) \
F(ToolstripButtonTemplate, MenuBarButton) \
F(ToolstripButtonTemplate, MenuItemButton) \
F(ControlTemplate, ToolstripToolBar) \
F(ToolstripButtonTemplate, ToolstripButton) \
F(ToolstripButtonTemplate, ToolstripDropdownButton) \
F(ToolstripButtonTemplate, ToolstripSplitButton) \
F(ControlTemplate, ToolstripSplitter) \
F(RibbonTabTemplate, RibbonTab) \
F(RibbonGroupTemplate, RibbonGroup) \
F(RibbonIconLabelTemplate, RibbonIconLabel) \
F(RibbonIconLabelTemplate, RibbonSmallIconLabel) \
F(RibbonButtonsTemplate, RibbonButtons) \
F(RibbonToolstripsTemplate, RibbonToolstrips) \
F(RibbonGalleryTemplate, RibbonGallery) \
F(RibbonToolstripMenuTemplate, RibbonToolstripMenu) \
F(RibbonGalleryListTemplate, RibbonGalleryList) \
F(TextListTemplate, RibbonGalleryItemList) \
F(ToolstripButtonTemplate, RibbonSmallButton) \
F(ToolstripButtonTemplate, RibbonSmallDropdownButton) \
F(ToolstripButtonTemplate, RibbonSmallSplitButton) \
F(ToolstripButtonTemplate, RibbonLargeButton) \
F(ToolstripButtonTemplate, RibbonLargeDropdownButton) \
F(ToolstripButtonTemplate, RibbonLargeSplitButton) \
F(ControlTemplate, RibbonSplitter) \
F(ControlTemplate, RibbonToolstripHeader) \
F(ButtonTemplate, Button) \
F(SelectableButtonTemplate, CheckBox) \
F(SelectableButtonTemplate, RadioButton) \
F(DatePickerTemplate, DatePicker) \
F(DateComboBoxTemplate, DateComboBox) \
F(ScrollTemplate, HScroll) \
F(ScrollTemplate, VScroll) \
F(ScrollTemplate, HTracker) \
F(ScrollTemplate, VTracker) \
F(ScrollTemplate, ProgressBar) \
enum
class
{
,
#define GUI_DEFINE_THEME_NAME(TEMPLATE, CONTROL) CONTROL,
GUI_CONTROL_TEMPLATE_TYPES(GUI_DEFINE_THEME_NAME)
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
, , , , , ,
,
,
,
,
,
,
,
,
,
,
,
, ,
,
,
,
,
,
,
,
,
, ,
,
,
,
,
,
,
,
,
,
,
#undef GUI_DEFINE_THEME_NAME
};
class
:
public
virtual
,
public
<
>
{
public
:
virtual
<
templates
::
>
(
) =
0
;
};
class
;
class
:
public
controls
::
,
public
<
>
{
friend
class
;
protected
:
*
=
nullptr
;
*
=
nullptr
;
controls
::
*
GetControlHostForInstance
()
override
;
public
:
();
;
#define GUI_DEFINE_ITEM_PROPERTY(TEMPLATE, CONTROL) TemplateProperty<templates::Gui##TEMPLATE> CONTROL;
GUI_CONTROL_TEMPLATE_TYPES(GUI_DEFINE_ITEM_PROPERTY)
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
GuiMultilineTextBoxTemplate
>
;
<
templates
::
GuiSinglelineTextBoxTemplate
>
;
<
templates
::
GuiDocumentViewerTemplate
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
GuiSelectableButtonTemplate
>
;
<
templates
::
GuiSelectableButtonTemplate
>
;
<
templates
::
GuiSelectableButtonTemplate
>
;
<
templates
::
GuiSelectableButtonTemplate
>
;
<
templates
::
> ;
<
templates
::
> ;
<
templates
::
> ;
<
templates
::
GuiToolstripButtonTemplate
> ;
<
templates
::
GuiToolstripButtonTemplate
> ;
<
templates
::
>
;
<
templates
::
GuiToolstripButtonTemplate
>
;
<
templates
::
GuiToolstripButtonTemplate
>
;
<
templates
::
GuiToolstripButtonTemplate
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
GuiRibbonIconLabelTemplate
>
;
<
templates
::
GuiRibbonIconLabelTemplate
>
;
<
templates
::
>
;
<
templates
::
GuiRibbonToolstripsTemplate
>
;
<
templates
::
>
;
<
templates
::
GuiRibbonToolstripMenuTemplate
> ;
<
templates
::
GuiRibbonGalleryListTemplate
>
;
<
templates
::
>
;
<
templates
::
GuiToolstripButtonTemplate
>
;
<
templates
::
GuiToolstripButtonTemplate
>
;
<
templates
::
GuiToolstripButtonTemplate
>
;
<
templates
::
GuiToolstripButtonTemplate
>
;
<
templates
::
GuiToolstripButtonTemplate
>
;
<
templates
::
GuiToolstripButtonTemplate
>
;
<
templates
::
>
;
<
templates
::
> ;
<
templates
::
>
;
<
templates
::
GuiSelectableButtonTemplate
>
;
<
templates
::
GuiSelectableButtonTemplate
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
>
;
<
templates
::
>
;
#undef GUI_DEFINE_ITEM_PROPERTY
};
extern
*
();
extern
void
();
extern
void
();
extern
bool
(
<
>
);
extern
<
>
(
const
&
);
}
}
}
#endif