void Load()override { #ifndef VCZH_DEBUG_NO_REFLECTION IGuiInstanceLoaderManager* manager=GetInstanceLoaderManager(); #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->SetLoader(new GuiControlInstanceLoader); /* REAL-CONTROL-TYPE THEME-NAME */ ADD_TEMPLATE_CONTROL ( GuiCustomControl, CustomControl ); ADD_TEMPLATE_CONTROL ( GuiLabel, Label ); ADD_TEMPLATE_CONTROL ( GuiButton, Button ); ADD_TEMPLATE_CONTROL ( GuiTabPage, CustomControl ); ADD_TEMPLATE_CONTROL ( GuiTab, Tab ); ADD_TEMPLATE_CONTROL ( GuiScrollContainer, ScrollView ); ADD_TEMPLATE_CONTROL ( GuiWindow, Window ); ADD_TEMPLATE_CONTROL ( GuiTextList, TextList ); ADD_TEMPLATE_CONTROL ( GuiBindableTextList, TextList ); ADD_TEMPLATE_CONTROL ( GuiListView, ListView ); ADD_TEMPLATE_CONTROL ( GuiBindableListView, ListView ); ADD_TEMPLATE_CONTROL ( GuiMultilineTextBox, MultilineTextBox ); ADD_TEMPLATE_CONTROL ( GuiSinglelineTextBox, SinglelineTextBox ); ADD_TEMPLATE_CONTROL ( GuiDatePicker, DatePicker ); ADD_TEMPLATE_CONTROL ( GuiDateComboBox, DateComboBox ); ADD_TEMPLATE_CONTROL ( GuiRibbonTab, RibbonTab ); ADD_TEMPLATE_CONTROL ( GuiRibbonTabPage, CustomControl ); ADD_TEMPLATE_CONTROL ( GuiRibbonGroup, RibbonGroup ); ADD_TEMPLATE_CONTROL ( GuiRibbonIconLabel, RibbonIconLabel ); ADD_TEMPLATE_CONTROL ( GuiRibbonToolstrips, RibbonToolstrips ); ADD_TEMPLATE_CONTROL ( GuiRibbonGallery, RibbonGallery ); ADD_TEMPLATE_CONTROL ( GuiBindableRibbonGalleryList, RibbonGalleryList ); /* VIRTUAL-CONTROL-TYPE REAL-CONTROL-TYPE THEME-NAME */ ADD_VIRTUAL_CONTROL (GroupBox, GuiControl, GroupBox ); ADD_VIRTUAL_CONTROL (MenuSplitter, GuiControl, MenuSplitter ); ADD_VIRTUAL_CONTROL (MenuBarButton, GuiToolstripButton, MenuBarButton ); ADD_VIRTUAL_CONTROL (MenuItemButton, GuiToolstripButton, MenuItemButton ); ADD_VIRTUAL_CONTROL (ToolstripDropdownButton, GuiToolstripButton, ToolstripDropdownButton ); ADD_VIRTUAL_CONTROL (ToolstripSplitButton, GuiToolstripButton, ToolstripSplitButton ); ADD_VIRTUAL_CONTROL (ToolstripSplitter, GuiControl, ToolstripSplitter ); ADD_VIRTUAL_CONTROL (RibbonSmallButton, GuiToolstripButton, RibbonSmallButton ); ADD_VIRTUAL_CONTROL (RibbonSmallDropdownButton, GuiToolstripButton, RibbonSmallDropdownButton ); ADD_VIRTUAL_CONTROL (RibbonSmallSplitButton, GuiToolstripButton, RibbonSmallSplitButton ); ADD_VIRTUAL_CONTROL (RibbonLargeButton, GuiToolstripButton, RibbonLargeButton ); ADD_VIRTUAL_CONTROL (RibbonLargeDropdownButton, GuiToolstripButton, RibbonLargeDropdownButton ); ADD_VIRTUAL_CONTROL (RibbonLargeSplitButton, GuiToolstripButton, RibbonLargeSplitButton ); ADD_VIRTUAL_CONTROL (RibbonSmallIconLabel, GuiRibbonIconLabel, RibbonSmallIconLabel ); ADD_VIRTUAL_CONTROL (RibbonSplitter, GuiControl, RibbonSplitter ); ADD_VIRTUAL_CONTROL (RibbonToolstripHeader, GuiControl, RibbonToolstripHeader ); ADD_VIRTUAL_CONTROL (CheckBox, GuiSelectableButton, CheckBox ); ADD_VIRTUAL_CONTROL (RadioButton, GuiSelectableButton, RadioButton ); ADD_VIRTUAL_CONTROL (HScroll, GuiScroll, HScroll ); ADD_VIRTUAL_CONTROL (VScroll, GuiScroll, VScroll ); ADD_VIRTUAL_CONTROL (DocumentTextBox, GuiDocumentLabel, DocumentTextBox ); ADD_VIRTUAL_CONTROL_F (HTracker, GuiScroll, HTracker, InitializeTrackerProgressBar); ADD_VIRTUAL_CONTROL_F (VTracker, GuiScroll, VTracker, InitializeTrackerProgressBar); ADD_VIRTUAL_CONTROL_F (ProgressBar, GuiScroll, ProgressBar, InitializeTrackerProgressBar); LoadToolstripControls(manager); LoadListControls(manager); LoadDocumentControls(manager); LoadCompositions(manager); LoadTemplates(manager); #undef ADD_TEMPLATE_CONTROL #undef ADD_VIRTUAL_CONTROL #undef ADD_VIRTUAL_CONTROL_F #endif }
void AfterLoad()override { #ifndef VCZH_DEBUG_NO_REFLECTION IGuiInstanceLoaderManager* manager=GetInstanceLoaderManager(); #define ADD_VIRTUAL_TYPE_LOADER(TYPENAME, LOADER)\ manager->CreateVirtualType(\ GlobalStringKey::Get(description::TypeInfo<TYPENAME>::TypeName),\ new LOADER\ ) #define ADD_TEMPLATE_CONTROL(TYPENAME, STYLE_METHOD, TEMPLATE)\ manager->SetLoader(\ new GuiTemplateControlInstanceLoader<TYPENAME, TEMPLATE##_StyleProvider, TEMPLATE>(\ L"presentation::controls::" L ## #TYPENAME,\ L ## #STYLE_METHOD\ )\ ) #define ADD_TEMPLATE_CONTROL_2(TYPENAME, STYLE_METHOD, ARGUMENT_METHOD, TEMPLATE)\ manager->SetLoader(\ new GuiTemplateControlInstanceLoader<TYPENAME, TEMPLATE##_StyleProvider, TEMPLATE>(\ L"presentation::controls::" L ## #TYPENAME,\ L ## #STYLE_METHOD,\ L ## #ARGUMENT_METHOD\ )\ ) #define ADD_TEMPLATE_CONTROL_3(TYPENAME, STYLE_METHOD, ARGUMENT_FUNCTION, TEMPLATE)\ manager->SetLoader(\ new GuiTemplateControlInstanceLoader<TYPENAME, TEMPLATE##_StyleProvider, TEMPLATE>(\ L"presentation::controls::" L ## #TYPENAME,\ L ## #STYLE_METHOD,\ ARGUMENT_FUNCTION\ )\ ) #define ADD_VIRTUAL_CONTROL(VIRTUALTYPENAME, TYPENAME, STYLE_METHOD, TEMPLATE)\ manager->CreateVirtualType(GlobalStringKey::Get(description::TypeInfo<TYPENAME>::TypeName),\ new GuiTemplateControlInstanceLoader<TYPENAME, TEMPLATE##_StyleProvider, TEMPLATE>(\ L"presentation::controls::Gui" L ## #VIRTUALTYPENAME,\ L ## #STYLE_METHOD\ )\ ) #define ADD_VIRTUAL_CONTROL_2(VIRTUALTYPENAME, TYPENAME, STYLE_METHOD, ARGUMENT_METHOD, TEMPLATE)\ manager->CreateVirtualType(GlobalStringKey::Get(description::TypeInfo<TYPENAME>::TypeName),\ new GuiTemplateControlInstanceLoader<TYPENAME, TEMPLATE##_StyleProvider, TEMPLATE>(\ L"presentation::controls::Gui" L ## #VIRTUALTYPENAME,\ L ## #STYLE_METHOD,\ L ## #ARGUMENT_METHOD\ )\ ) #define ADD_VIRTUAL_CONTROL_F(VIRTUALTYPENAME, TYPENAME, STYLE_METHOD, TEMPLATE, INIT_FUNCTION)\ manager->CreateVirtualType(GlobalStringKey::Get(description::TypeInfo<TYPENAME>::TypeName),\ new GuiTemplateControlInstanceLoader<TYPENAME, TEMPLATE##_StyleProvider, TEMPLATE>(\ L"presentation::controls::Gui" L ## #VIRTUALTYPENAME,\ L ## #STYLE_METHOD,\ INIT_FUNCTION\ )\ ) manager->SetLoader(new GuiControlInstanceLoader); ADD_TEMPLATE_CONTROL ( GuiCustomControl, CreateCustomControlStyle, GuiControlTemplate ); ADD_TEMPLATE_CONTROL ( GuiLabel, CreateLabelStyle, GuiLabelTemplate ); ADD_TEMPLATE_CONTROL ( GuiButton, CreateButtonStyle, GuiButtonTemplate ); ADD_TEMPLATE_CONTROL ( GuiScrollContainer, CreateScrollContainerStyle, GuiScrollViewTemplate ); ADD_TEMPLATE_CONTROL ( GuiWindow, CreateWindowStyle, GuiWindowTemplate ); ADD_TEMPLATE_CONTROL_2 ( GuiTextList, CreateTextListStyle, CreateTextListItemStyle, GuiTextListTemplate ); ADD_TEMPLATE_CONTROL ( GuiMultilineTextBox, CreateMultilineTextBoxStyle, GuiMultilineTextBoxTemplate ); ADD_TEMPLATE_CONTROL ( GuiSinglelineTextBox, CreateTextBoxStyle, GuiSinglelineTextBoxTemplate ); ADD_TEMPLATE_CONTROL ( GuiDatePicker, CreateDatePickerStyle, GuiDatePickerTemplate ); ADD_TEMPLATE_CONTROL_3 ( GuiDateComboBox, CreateComboBoxStyle, CreateStandardDataPicker, GuiDateComboBoxTemplate ); ADD_TEMPLATE_CONTROL ( GuiStringGrid, CreateListViewStyle, GuiListViewTemplate ); ADD_VIRTUAL_CONTROL (GroupBox, GuiControl, CreateGroupBoxStyle, GuiControlTemplate ); ADD_VIRTUAL_CONTROL (MenuSplitter, GuiControl, CreateMenuSplitterStyle, GuiControlTemplate ); ADD_VIRTUAL_CONTROL (MenuBarButton, GuiToolstripButton, CreateMenuBarButtonStyle, GuiToolstripButtonTemplate ); ADD_VIRTUAL_CONTROL (MenuItemButton, GuiToolstripButton, CreateMenuItemButtonStyle, GuiToolstripButtonTemplate ); ADD_VIRTUAL_CONTROL (ToolstripDropdownButton, GuiToolstripButton, CreateToolBarDropdownButtonStyle, GuiToolstripButtonTemplate ); ADD_VIRTUAL_CONTROL (ToolstripSplitButton, GuiToolstripButton, CreateToolBarSplitButtonStyle, GuiToolstripButtonTemplate ); ADD_VIRTUAL_CONTROL (ToolstripSplitter, GuiControl, CreateToolBarSplitterStyle, GuiControlTemplate ); ADD_VIRTUAL_CONTROL (CheckBox, GuiSelectableButton, CreateCheckBoxStyle, GuiSelectableButtonTemplate ); ADD_VIRTUAL_CONTROL (RadioButton, GuiSelectableButton, CreateRadioButtonStyle, GuiSelectableButtonTemplate ); ADD_VIRTUAL_CONTROL (HScroll, GuiScroll, CreateHScrollStyle, GuiScrollTemplate ); ADD_VIRTUAL_CONTROL (VScroll, GuiScroll, CreateVScrollStyle, GuiScrollTemplate ); ADD_VIRTUAL_CONTROL (DocumentTextBox, GuiDocumentLabel, CreateDocumentTextBoxStyle, GuiDocumentLabelTemplate ); ADD_VIRTUAL_CONTROL_F (HTracker, GuiScroll, CreateHTrackerStyle, GuiScrollTemplate, InitializeTrackerProgressBar); ADD_VIRTUAL_CONTROL_F (VTracker, GuiScroll, CreateVTrackerStyle, GuiScrollTemplate, InitializeTrackerProgressBar); ADD_VIRTUAL_CONTROL_F (ProgressBar, GuiScroll, CreateProgressBarStyle, GuiScrollTemplate, InitializeTrackerProgressBar); ADD_VIRTUAL_CONTROL_2 (CheckTextList, GuiTextList, CreateTextListStyle, CreateCheckTextListItemStyle, GuiTextListTemplate ); ADD_VIRTUAL_CONTROL_2 (RadioTextList, GuiTextList, CreateTextListStyle, CreateRadioTextListItemStyle, GuiTextListTemplate ); LoadTabControls(manager); LoadToolstripControls(manager); LoadListControls(manager); LoadDocumentControls(manager); LoadCompositions(manager); #undef ADD_VIRTUAL_TYPE_LOADER #undef ADD_TEMPLATE_CONTROL #undef ADD_TEMPLATE_CONTROL_2 #undef ADD_TEMPLATE_CONTROL_3 #undef ADD_VIRTUAL_CONTROL #undef ADD_VIRTUAL_CONTROL_2 #undef ADD_VIRTUAL_CONTROL_F #endif }