/*********************************************************************** THIS FILE IS AUTOMATICALLY GENERATED. DO NOT MODIFY DEVELOPER: Zihan Chen(vczh) ***********************************************************************/ #include "GacUIReflection.h" /*********************************************************************** .\GUIINSTANCECOMPILEDWORKFLOW.CPP ***********************************************************************/ namespace vl { namespace presentation { using namespace stream; using namespace workflow::runtime; using namespace controls; using namespace reflection; using namespace reflection::description; /*********************************************************************** GuiInstanceSharedScript ***********************************************************************/ GuiInstanceCompiledWorkflow::GuiInstanceCompiledWorkflow() { } GuiInstanceCompiledWorkflow::~GuiInstanceCompiledWorkflow() { UnloadAssembly(); } bool GuiInstanceCompiledWorkflow::Initialize(bool initializeContext, workflow::runtime::WfAssemblyLoadErrors& loadErrors) { if (binaryToLoad) { assembly = WfAssembly::Deserialize(*binaryToLoad.Obj(), loadErrors); if (!assembly) { return false; } binaryToLoad = nullptr; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA context = nullptr; #endif } #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA if (initializeContext && !context) { context = Ptr(new WfRuntimeGlobalContext(assembly)); LoadFunction(context, L"")(); } #else if (initializeContext) { if (assembly->typeImpl) { if (auto tm = GetGlobalTypeManager()) { tm->AddTypeLoader(assembly->typeImpl); } } } #endif return true; } void GuiInstanceCompiledWorkflow::UnloadAssembly() { UnloadTypes(); assembly = nullptr; } void GuiInstanceCompiledWorkflow::UnloadTypes() { #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA context = nullptr; #else if (assembly && assembly->typeImpl) { if (auto tm = GetGlobalTypeManager()) { tm->RemoveTypeLoader(assembly->typeImpl); } } #endif } /*********************************************************************** Compiled Workflow Type Resolver (Workflow) ***********************************************************************/ class GuiResourceCompiledWorkflowTypeResolver : public Object , public IGuiResourceTypeResolver , private IGuiResourceTypeResolver_Initialize , private IGuiResourceTypeResolver_DirectLoadStream { public: WString GetType()override { return L"Workflow"; } bool XmlSerializable()override { return false; } bool StreamSerializable()override { return true; } vint GetMaxPassIndex()override { return 1; } void Initialize(Ptr resource, GuiResourceInitializeContext& context, GuiResourceError::List& errors)override { if (auto compiled = resource->GetContent().Cast()) { switch (context.passIndex) { case 0: if (compiled->type == GuiInstanceCompiledWorkflow::InstanceClass) { if (context.usage == GuiResourceUsage::InstanceClass) { WfAssemblyLoadErrors loadErrors; if (!compiled->Initialize(true, loadErrors)) { for (auto loadError : loadErrors.duplicatedTypes) { errors.Add({ {resource},L"Failed to add an existing type: " + loadError }); } for (auto loadError : loadErrors.unresolvedTypes) { errors.Add({ {resource},L"Unable to resolve type: " + loadError }); } for (auto loadError : loadErrors.unresolvedMembers) { errors.Add({ {resource},L"Unable to resolve member: " + loadError }); } } } } break; } } } IGuiResourceTypeResolver_Initialize* Initialize()override { return this; } IGuiResourceTypeResolver_DirectLoadStream* DirectLoadStream()override { return this; } void SerializePrecompiled(Ptr resource, Ptr content, stream::IStream& resourceStream)override { if (auto obj = content.Cast()) { internal::ContextFreeWriter writer(resourceStream); vint type = (vint)obj->type; writer << type; if (obj->type == GuiInstanceCompiledWorkflow::InstanceClass) { stream::MemoryStream memoryStream; obj->assembly->Serialize(memoryStream); writer << (stream::IStream&)memoryStream; } } } Ptr ResolveResourcePrecompiled(Ptr resource, stream::IStream& resourceStream, GuiResourceError::List& errors)override { internal::ContextFreeReader reader(resourceStream); vint type; reader << type; auto obj = Ptr(new GuiInstanceCompiledWorkflow); obj->type = (GuiInstanceCompiledWorkflow::AssemblyType)type; if (obj->type == GuiInstanceCompiledWorkflow::InstanceClass) { auto memoryStream = Ptr(new stream::MemoryStream); reader << (stream::IStream&)*memoryStream.Obj(); obj->binaryToLoad = memoryStream; } return obj; } }; /*********************************************************************** Plugin ***********************************************************************/ class GuiRuntimeTypeResolversPlugin : public Object, public IGuiPlugin { public: GUI_PLUGIN_NAME(GacUI_Compiler_WorkflowTypeResolvers) { GUI_PLUGIN_DEPEND(GacUI_Res_ResourceResolver); } void Load()override { IGuiResourceResolverManager* manager = GetResourceResolverManager(); manager->SetTypeResolver(Ptr(new GuiResourceCompiledWorkflowTypeResolver)); } void Unload()override { } }; GUI_REGISTER_PLUGIN(GuiRuntimeTypeResolversPlugin) } } /*********************************************************************** .\TYPEDESCRIPTORS\GUIREFLECTIONBASIC.CPP ***********************************************************************/ namespace vl { namespace reflection { namespace description { using namespace glr::xml; using namespace presentation; using namespace helper_types; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA /*********************************************************************** Type Declaration ***********************************************************************/ #define _ , #define GUI_TEMPLATE_PROPERTY_REFLECTION(CLASS, TYPE, NAME)\ CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(NAME) BEGIN_STRUCT_MEMBER(SiteValue) STRUCT_MEMBER(row) STRUCT_MEMBER(column) STRUCT_MEMBER(rowSpan) STRUCT_MEMBER(columnSpan) END_STRUCT_MEMBER(SiteValue) BEGIN_STRUCT_MEMBER(Color) valueType = Ptr(new SerializableValueType); serializableType = Ptr(new SerializableType); STRUCT_MEMBER(r) STRUCT_MEMBER(g) STRUCT_MEMBER(b) STRUCT_MEMBER(a) STRUCT_MEMBER(value) END_STRUCT_MEMBER(Color) BEGIN_ENUM_ITEM(Alignment) ENUM_CLASS_ITEM(Left) ENUM_CLASS_ITEM(Top) ENUM_CLASS_ITEM(Center) ENUM_CLASS_ITEM(Right) ENUM_CLASS_ITEM(Bottom) END_ENUM_ITEM(Alignment) BEGIN_ENUM_ITEM(AxisDirection) ENUM_CLASS_ITEM(LeftDown) ENUM_CLASS_ITEM(RightDown) ENUM_CLASS_ITEM(LeftUp) ENUM_CLASS_ITEM(RightUp) ENUM_CLASS_ITEM(DownLeft) ENUM_CLASS_ITEM(DownRight) ENUM_CLASS_ITEM(UpLeft) ENUM_CLASS_ITEM(UpRight) END_ENUM_ITEM(AxisDirection) BEGIN_STRUCT_MEMBER(TextPos) STRUCT_MEMBER(row) STRUCT_MEMBER(column) END_STRUCT_MEMBER(TextPos) BEGIN_STRUCT_MEMBER(GridPos) STRUCT_MEMBER(row) STRUCT_MEMBER(column) END_STRUCT_MEMBER(GridPos) BEGIN_STRUCT_MEMBER(NativeCoordinate) STRUCT_MEMBER(value) END_STRUCT_MEMBER(NativeCoordinate) BEGIN_STRUCT_MEMBER(Point) STRUCT_MEMBER(x) STRUCT_MEMBER(y) END_STRUCT_MEMBER(Point) BEGIN_STRUCT_MEMBER(NativePoint) STRUCT_MEMBER(x) STRUCT_MEMBER(y) END_STRUCT_MEMBER(NativePoint) BEGIN_STRUCT_MEMBER(Size) STRUCT_MEMBER(x) STRUCT_MEMBER(y) END_STRUCT_MEMBER(Size) BEGIN_STRUCT_MEMBER(NativeSize) STRUCT_MEMBER(x) STRUCT_MEMBER(y) END_STRUCT_MEMBER(NativeSize) BEGIN_STRUCT_MEMBER(Rect) STRUCT_MEMBER(x1) STRUCT_MEMBER(y1) STRUCT_MEMBER(x2) STRUCT_MEMBER(y2) END_STRUCT_MEMBER(Rect) BEGIN_STRUCT_MEMBER(NativeRect) STRUCT_MEMBER(x1) STRUCT_MEMBER(y1) STRUCT_MEMBER(x2) STRUCT_MEMBER(y2) END_STRUCT_MEMBER(NativeRect) BEGIN_STRUCT_MEMBER(Margin) STRUCT_MEMBER(left) STRUCT_MEMBER(top) STRUCT_MEMBER(right) STRUCT_MEMBER(bottom) END_STRUCT_MEMBER(Margin) BEGIN_STRUCT_MEMBER(NativeMargin) STRUCT_MEMBER(left) STRUCT_MEMBER(top) STRUCT_MEMBER(right) STRUCT_MEMBER(bottom) END_STRUCT_MEMBER(NativeMargin) BEGIN_STRUCT_MEMBER(FontProperties) STRUCT_MEMBER(fontFamily) STRUCT_MEMBER(size) STRUCT_MEMBER(bold) STRUCT_MEMBER(italic) STRUCT_MEMBER(underline) STRUCT_MEMBER(strikeline) STRUCT_MEMBER(antialias) STRUCT_MEMBER(verticalAntialias) END_STRUCT_MEMBER(FontProperties) #define GUI_DEFINE_KEYBOARD_CODE_ENUM_ITEM(NAME, CODE) ENUM_CLASS_ITEM(KEY_##NAME) BEGIN_ENUM_ITEM(VKEY) ENUM_CLASS_ITEM(KEY_UNKNOWN) GUI_DEFINE_KEYBOARD_CODE(GUI_DEFINE_KEYBOARD_CODE_ENUM_ITEM) END_ENUM_ITEM(VKEY) #undef GUI_DEFINE_KEYBOARD_CODE_ENUM_ITEM BEGIN_STRUCT_MEMBER_FLAG(GlobalStringKey, TypeDescriptorFlags::Primitive) valueType = Ptr(new SerializableValueType); serializableType = Ptr(new SerializableType); END_STRUCT_MEMBER(GlobalStringKey) BEGIN_INTERFACE_MEMBER_NOPROXY(INativeImageFrame) CLASS_MEMBER_METHOD(GetImage, NO_PARAMETER) CLASS_MEMBER_METHOD(GetSize, NO_PARAMETER) END_INTERFACE_MEMBER(INativeImageFrame) BEGIN_INTERFACE_MEMBER_NOPROXY(INativeImage) CLASS_MEMBER_METHOD(GetFormat, NO_PARAMETER) CLASS_MEMBER_METHOD(GetFrameCount, NO_PARAMETER) CLASS_MEMBER_METHOD(GetFrame, {L"index"}) CLASS_MEMBER_EXTERNALCTOR(Ptr(const WString&), {L"filePath"}, vl::reflection::description::INativeImage_Constructor) END_INTERFACE_MEMBER(INativeImage) BEGIN_ENUM_ITEM(INativeImage::FormatType) ENUM_ITEM_NAMESPACE(INativeImage) ENUM_NAMESPACE_ITEM(Bmp) ENUM_NAMESPACE_ITEM(Gif) ENUM_NAMESPACE_ITEM(Icon) ENUM_NAMESPACE_ITEM(Jpeg) ENUM_NAMESPACE_ITEM(Png) ENUM_NAMESPACE_ITEM(Tiff) ENUM_NAMESPACE_ITEM(Wmp) ENUM_NAMESPACE_ITEM(Unknown) END_ENUM_ITEM(INativeImage::FormatType) BEGIN_INTERFACE_MEMBER_NOPROXY(INativeCursor) CLASS_MEMBER_METHOD(IsSystemCursor, NO_PARAMETER) CLASS_MEMBER_METHOD(GetSystemCursorType, NO_PARAMETER) CLASS_MEMBER_EXTERNALCTOR(INativeCursor*(), NO_PARAMETER, vl::reflection::description::INativeCursor_Constructor1) CLASS_MEMBER_EXTERNALCTOR(INativeCursor*(INativeCursor::SystemCursorType), NO_PARAMETER, vl::reflection::description::INativeCursor_Constructor2) END_INTERFACE_MEMBER(INativeCursor) BEGIN_ENUM_ITEM(INativeCursor::SystemCursorType) ENUM_ITEM_NAMESPACE(INativeCursor) ENUM_NAMESPACE_ITEM(SmallWaiting) ENUM_NAMESPACE_ITEM(LargeWaiting) ENUM_NAMESPACE_ITEM(Arrow) ENUM_NAMESPACE_ITEM(Cross) ENUM_NAMESPACE_ITEM(Hand) ENUM_NAMESPACE_ITEM(Help) ENUM_NAMESPACE_ITEM(IBeam) ENUM_NAMESPACE_ITEM(SizeAll) ENUM_NAMESPACE_ITEM(SizeNESW) ENUM_NAMESPACE_ITEM(SizeNS) ENUM_NAMESPACE_ITEM(SizeNWSE) ENUM_NAMESPACE_ITEM(SizeWE) END_ENUM_ITEM(INativeCursor::SystemCursorType) BEGIN_INTERFACE_MEMBER_NOPROXY(INativeWindow) CLASS_MEMBER_PROPERTY_FAST(Bounds) CLASS_MEMBER_PROPERTY_FAST(ClientSize) CLASS_MEMBER_PROPERTY_READONLY_FAST(ClientBoundsInScreen) CLASS_MEMBER_PROPERTY_FAST(Title) CLASS_MEMBER_PROPERTY_FAST(WindowCursor) CLASS_MEMBER_PROPERTY_FAST(CaretPoint) CLASS_MEMBER_PROPERTY_FAST(Parent) CLASS_MEMBER_PROPERTY_READONLY_FAST(WindowMode) CLASS_MEMBER_PROPERTY_READONLY_FAST(CustomFramePadding) CLASS_MEMBER_PROPERTY_FAST(Icon) CLASS_MEMBER_PROPERTY_READONLY_FAST(SizeState) CLASS_MEMBER_PROPERTY_FAST(MinimizedBox) CLASS_MEMBER_PROPERTY_FAST(MaximizedBox) CLASS_MEMBER_PROPERTY_FAST(Border) CLASS_MEMBER_PROPERTY_FAST(SizeBox) CLASS_MEMBER_PROPERTY_FAST(IconVisible) CLASS_MEMBER_PROPERTY_FAST(TitleBar) CLASS_MEMBER_PROPERTY_FAST(TopMost) CLASS_MEMBER_METHOD(EnableCustomFrameMode, NO_PARAMETER) CLASS_MEMBER_METHOD(DisableCustomFrameMode, NO_PARAMETER) CLASS_MEMBER_METHOD(IsCustomFrameModeEnabled, NO_PARAMETER) CLASS_MEMBER_METHOD(Show, NO_PARAMETER) CLASS_MEMBER_METHOD(ShowDeactivated, NO_PARAMETER) CLASS_MEMBER_METHOD(ShowRestored, NO_PARAMETER) CLASS_MEMBER_METHOD(ShowMaximized, NO_PARAMETER) CLASS_MEMBER_METHOD(ShowMinimized, NO_PARAMETER) CLASS_MEMBER_METHOD(Hide, NO_PARAMETER) CLASS_MEMBER_METHOD(IsVisible, NO_PARAMETER) CLASS_MEMBER_METHOD(Enable, NO_PARAMETER) CLASS_MEMBER_METHOD(Disable, NO_PARAMETER) CLASS_MEMBER_METHOD(IsEnabled, NO_PARAMETER) CLASS_MEMBER_METHOD(SetFocus, NO_PARAMETER) CLASS_MEMBER_METHOD(IsFocused, NO_PARAMETER) CLASS_MEMBER_METHOD(SetActivate, NO_PARAMETER) CLASS_MEMBER_METHOD(IsActivated, NO_PARAMETER) CLASS_MEMBER_METHOD(ShowInTaskBar, NO_PARAMETER) CLASS_MEMBER_METHOD(HideInTaskBar, NO_PARAMETER) CLASS_MEMBER_METHOD(IsAppearedInTaskBar, NO_PARAMETER) CLASS_MEMBER_METHOD(EnableActivate, NO_PARAMETER) CLASS_MEMBER_METHOD(DisableActivate, NO_PARAMETER) CLASS_MEMBER_METHOD(IsEnabledActivate, NO_PARAMETER) CLASS_MEMBER_METHOD(RequireCapture, NO_PARAMETER) CLASS_MEMBER_METHOD(ReleaseCapture, NO_PARAMETER) CLASS_MEMBER_METHOD(IsCapturing, NO_PARAMETER) CLASS_MEMBER_METHOD(RedrawContent, NO_PARAMETER) END_INTERFACE_MEMBER(INativeWindow) BEGIN_ENUM_ITEM(INativeWindow::WindowSizeState) ENUM_ITEM_NAMESPACE(INativeWindow) ENUM_NAMESPACE_ITEM(Minimized) ENUM_NAMESPACE_ITEM(Restored) ENUM_NAMESPACE_ITEM(Maximized) END_ENUM_ITEM(INativeWindow::WindowSizeState) BEGIN_ENUM_ITEM(INativeWindow::WindowMode) ENUM_ITEM_NAMESPACE(INativeWindow) ENUM_NAMESPACE_ITEM(Normal) ENUM_NAMESPACE_ITEM(Tooltip) ENUM_NAMESPACE_ITEM(Popup) ENUM_NAMESPACE_ITEM(Menu) END_ENUM_ITEM(INativeWindow::WindowMode) BEGIN_INTERFACE_MEMBER_NOPROXY(INativeDelay) CLASS_MEMBER_PROPERTY_READONLY_FAST(Status) CLASS_MEMBER_METHOD(Delay, {L"milliseconds"}) CLASS_MEMBER_METHOD(Cancel, NO_PARAMETER) END_INTERFACE_MEMBER(INativeDelay) BEGIN_ENUM_ITEM(INativeDelay::ExecuteStatus) ENUM_ITEM_NAMESPACE(INativeDelay) ENUM_NAMESPACE_ITEM(Pending) ENUM_NAMESPACE_ITEM(Executing) ENUM_NAMESPACE_ITEM(Executed) ENUM_NAMESPACE_ITEM(Canceled) END_ENUM_ITEM(INativeDelay::ExecuteStatus) BEGIN_INTERFACE_MEMBER_NOPROXY(INativeScreen) CLASS_MEMBER_PROPERTY_READONLY_FAST(Bounds); CLASS_MEMBER_PROPERTY_READONLY_FAST(ClientBounds); CLASS_MEMBER_PROPERTY_READONLY_FAST(Name); CLASS_MEMBER_PROPERTY_READONLY_FAST(ScalingX); CLASS_MEMBER_PROPERTY_READONLY_FAST(ScalingY); CLASS_MEMBER_METHOD(IsPrimary, NO_PARAMETER) END_INTERFACE_MEMBER(INativeScreen) BEGIN_INTERFACE_MEMBER_NOPROXY(INativeImageService) CLASS_MEMBER_METHOD(CreateImageFromFile, {L"path"}) END_INTERFACE_MEMBER(INativeImageService) BEGIN_INTERFACE_MEMBER_NOPROXY(INativeResourceService) CLASS_MEMBER_PROPERTY_READONLY_FAST(DefaultSystemCursor) CLASS_MEMBER_PROPERTY_FAST(DefaultFont) CLASS_MEMBER_METHOD(GetSystemCursor, {L"type"}) END_INTERFACE_MEMBER(INativeResourceService) BEGIN_INTERFACE_MEMBER_NOPROXY(INativeAsyncService) CLASS_MEMBER_METHOD(IsInMainThread, {L"type"}) CLASS_MEMBER_METHOD(InvokeAsync, {L"proc"}) CLASS_MEMBER_METHOD(InvokeInMainThread, {L"window" _ L"proc"}) CLASS_MEMBER_METHOD(InvokeInMainThreadAndWait, {L"window" _ L"proc" _ L"milliseconds"}) CLASS_MEMBER_METHOD(DelayExecute, {L"proc" _ L"milliseconds"}) CLASS_MEMBER_METHOD(DelayExecuteInMainThread, {L"proc" _ L"milliseconds"}) END_INTERFACE_MEMBER(INativeAsyncService) BEGIN_INTERFACE_MEMBER_NOPROXY(INativeClipboardReader) CLASS_MEMBER_METHOD(ContainsText, NO_PARAMETER) CLASS_MEMBER_METHOD(GetText, NO_PARAMETER) CLASS_MEMBER_METHOD(ContainsDocument, NO_PARAMETER) CLASS_MEMBER_METHOD(GetDocument, NO_PARAMETER) CLASS_MEMBER_METHOD(ContainsImage, NO_PARAMETER) CLASS_MEMBER_METHOD(GetImage, NO_PARAMETER) END_INTERFACE_MEMBER(INativeClipboardReader) BEGIN_INTERFACE_MEMBER_NOPROXY(INativeClipboardWriter) CLASS_MEMBER_METHOD(SetText, { L"value" }) CLASS_MEMBER_METHOD(SetDocument, { L"value" }) CLASS_MEMBER_METHOD(SetImage, { L"value" }) CLASS_MEMBER_METHOD(Submit, NO_PARAMETER) END_INTERFACE_MEMBER(INativeClipboardWriter) BEGIN_INTERFACE_MEMBER_NOPROXY(INativeClipboardService) CLASS_MEMBER_METHOD(ReadClipboard, NO_PARAMETER) CLASS_MEMBER_METHOD(WriteClipboard, NO_PARAMETER) END_INTERFACE_MEMBER(INativeClipboardService) BEGIN_INTERFACE_MEMBER_NOPROXY(INativeScreenService) CLASS_MEMBER_PROPERTY_READONLY_FAST(ScreenCount) CLASS_MEMBER_METHOD_OVERLOAD(GetScreen, {L"index"}, INativeScreen*(INativeScreenService::*)(vint)) CLASS_MEMBER_METHOD_OVERLOAD(GetScreen, {L"window"}, INativeScreen*(INativeScreenService::*)(INativeWindow*)) END_INTERFACE_MEMBER(INativeScreenService) BEGIN_INTERFACE_MEMBER_NOPROXY(INativeInputService) CLASS_MEMBER_METHOD(IsKeyPressing, { L"code" }) CLASS_MEMBER_METHOD(IsKeyToggled, { L"code" }) CLASS_MEMBER_METHOD(GetKeyName, { L"code" }) CLASS_MEMBER_METHOD(GetKey, { L"name" }) END_INTERFACE_MEMBER(INativeInputService) BEGIN_ENUM_ITEM(INativeDialogService::MessageBoxButtonsInput) ENUM_ITEM_NAMESPACE(INativeDialogService) ENUM_NAMESPACE_ITEM(DisplayOK) ENUM_NAMESPACE_ITEM(DisplayOKCancel) ENUM_NAMESPACE_ITEM(DisplayYesNo) ENUM_NAMESPACE_ITEM(DisplayYesNoCancel) ENUM_NAMESPACE_ITEM(DisplayRetryCancel) ENUM_NAMESPACE_ITEM(DisplayAbortRetryIgnore) ENUM_NAMESPACE_ITEM(DisplayCancelTryAgainContinue) END_ENUM_ITEM(INativeDialogService::MessageBoxButtonsInput) BEGIN_ENUM_ITEM(INativeDialogService::MessageBoxButtonsOutput) ENUM_ITEM_NAMESPACE(INativeDialogService) ENUM_NAMESPACE_ITEM(SelectOK) ENUM_NAMESPACE_ITEM(SelectCancel) ENUM_NAMESPACE_ITEM(SelectYes) ENUM_NAMESPACE_ITEM(SelectNo) ENUM_NAMESPACE_ITEM(SelectRetry) ENUM_NAMESPACE_ITEM(SelectAbort) ENUM_NAMESPACE_ITEM(SelectIgnore) ENUM_NAMESPACE_ITEM(SelectTryAgain) ENUM_NAMESPACE_ITEM(SelectContinue) END_ENUM_ITEM(INativeDialogService::MessageBoxButtonsOutput) BEGIN_ENUM_ITEM(INativeDialogService::MessageBoxDefaultButton) ENUM_ITEM_NAMESPACE(INativeDialogService) ENUM_NAMESPACE_ITEM(DefaultFirst) ENUM_NAMESPACE_ITEM(DefaultSecond) ENUM_NAMESPACE_ITEM(DefaultThird) END_ENUM_ITEM(INativeDialogService::MessageBoxDefaultButton) BEGIN_ENUM_ITEM(INativeDialogService::MessageBoxIcons) ENUM_ITEM_NAMESPACE(INativeDialogService) ENUM_NAMESPACE_ITEM(IconNone) ENUM_NAMESPACE_ITEM(IconError) ENUM_NAMESPACE_ITEM(IconQuestion) ENUM_NAMESPACE_ITEM(IconWarning) ENUM_NAMESPACE_ITEM(IconInformation) END_ENUM_ITEM(INativeDialogService::MessageBoxIcons) BEGIN_ENUM_ITEM(INativeDialogService::MessageBoxModalOptions) ENUM_ITEM_NAMESPACE(INativeDialogService) ENUM_NAMESPACE_ITEM(ModalWindow) ENUM_NAMESPACE_ITEM(ModalTask) ENUM_NAMESPACE_ITEM(ModalSystem) END_ENUM_ITEM(INativeDialogService::MessageBoxModalOptions) BEGIN_ENUM_ITEM(INativeDialogService::ColorDialogCustomColorOptions) ENUM_ITEM_NAMESPACE(INativeDialogService) ENUM_NAMESPACE_ITEM(CustomColorDisabled) ENUM_NAMESPACE_ITEM(CustomColorEnabled) ENUM_NAMESPACE_ITEM(CustomColorOpened) END_ENUM_ITEM(INativeDialogService::ColorDialogCustomColorOptions) BEGIN_ENUM_ITEM(INativeDialogService::FileDialogTypes) ENUM_ITEM_NAMESPACE(INativeDialogService) ENUM_NAMESPACE_ITEM(FileDialogOpen) ENUM_NAMESPACE_ITEM(FileDialogOpenPreview) ENUM_NAMESPACE_ITEM(FileDialogSave) ENUM_NAMESPACE_ITEM(FileDialogSavePreview) END_ENUM_ITEM(INativeDialogService::FileDialogTypes) BEGIN_ENUM_ITEM_MERGABLE(INativeDialogService::FileDialogOptions) ENUM_ITEM_NAMESPACE(INativeDialogService) ENUM_NAMESPACE_ITEM(FileDialogAllowMultipleSelection) ENUM_NAMESPACE_ITEM(FileDialogFileMustExist) ENUM_NAMESPACE_ITEM(FileDialogShowReadOnlyCheckBox) ENUM_NAMESPACE_ITEM(FileDialogDereferenceLinks) ENUM_NAMESPACE_ITEM(FileDialogShowNetworkButton) ENUM_NAMESPACE_ITEM(FileDialogPromptCreateFile) ENUM_NAMESPACE_ITEM(FileDialogPromptOverwriteFile) ENUM_NAMESPACE_ITEM(FileDialogDirectoryMustExist) ENUM_NAMESPACE_ITEM(FileDialogAddToRecent) END_ENUM_ITEM(INativeDialogService::FileDialogOptions) BEGIN_INTERFACE_MEMBER_NOPROXY(INativeController) CLASS_MEMBER_STATIC_EXTERNALMETHOD(GetCurrentController, NO_PARAMETER, INativeController*(*)(), vl::presentation::GetCurrentController) CLASS_MEMBER_PROPERTY_READONLY_FAST(ExecutablePath) CLASS_MEMBER_METHOD(ResourceService, NO_PARAMETER) CLASS_MEMBER_METHOD(AsyncService, NO_PARAMETER) CLASS_MEMBER_METHOD(ClipboardService, NO_PARAMETER) CLASS_MEMBER_METHOD(ImageService, NO_PARAMETER) CLASS_MEMBER_METHOD(ScreenService, NO_PARAMETER) CLASS_MEMBER_METHOD(InputService, NO_PARAMETER) END_INTERFACE_MEMBER(INativeController) BEGIN_CLASS_MEMBER(GuiImageData) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_CONSTRUCTOR(Ptr(Ptr, vint), {L"image" _ L"frameIndex"}) CLASS_MEMBER_METHOD(GetImage, NO_PARAMETER) CLASS_MEMBER_METHOD(GetFrameIndex, NO_PARAMETER) CLASS_MEMBER_PROPERTY_READONLY(Image, GetImage) CLASS_MEMBER_PROPERTY_READONLY(FrameIndex, GetFrameIndex) END_CLASS_MEMBER(GuiImageData) BEGIN_CLASS_MEMBER(GuiTextData) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_CONSTRUCTOR(Ptr(const WString&), {L"text"}) CLASS_MEMBER_PROPERTY_READONLY_FAST(Text) END_CLASS_MEMBER(GuiTextData) BEGIN_STRUCT_MEMBER(DocumentFontSize) valueType = Ptr(new SerializableValueType); serializableType = Ptr(new SerializableType); STRUCT_MEMBER(size) STRUCT_MEMBER(relative) END_STRUCT_MEMBER(DocumentFontSize) BEGIN_CLASS_MEMBER(DocumentStyleProperties) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_FIELD(face) CLASS_MEMBER_FIELD(size) CLASS_MEMBER_FIELD(color) CLASS_MEMBER_FIELD(backgroundColor) CLASS_MEMBER_FIELD(bold) CLASS_MEMBER_FIELD(italic) CLASS_MEMBER_FIELD(underline) CLASS_MEMBER_FIELD(strikeline) CLASS_MEMBER_FIELD(antialias) CLASS_MEMBER_FIELD(verticalAntialias) END_CLASS_MEMBER(DocumentStyleProperties) BEGIN_CLASS_MEMBER(DocumentRun) END_CLASS_MEMBER(DocumentRun) BEGIN_CLASS_MEMBER(DocumentContainerRun) CLASS_MEMBER_BASE(DocumentRun) CLASS_MEMBER_FIELD(runs) END_CLASS_MEMBER(DocumentContainerRun) BEGIN_CLASS_MEMBER(DocumentContentRun) CLASS_MEMBER_BASE(DocumentRun) CLASS_MEMBER_PROPERTY_READONLY_FAST(RepresentationText) END_CLASS_MEMBER(DocumentContentRun) BEGIN_CLASS_MEMBER(DocumentTextRun) CLASS_MEMBER_BASE(DocumentContentRun) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_FIELD(text) END_CLASS_MEMBER(DocumentTextRun) BEGIN_CLASS_MEMBER(DocumentInlineObjectRun) CLASS_MEMBER_BASE(DocumentContentRun) CLASS_MEMBER_FIELD(size) CLASS_MEMBER_FIELD(baseline) END_CLASS_MEMBER(DocumentInlineObjectRun) BEGIN_CLASS_MEMBER(DocumentImageRun) CLASS_MEMBER_BASE(DocumentInlineObjectRun) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_FIELD(image) CLASS_MEMBER_FIELD(frameIndex) CLASS_MEMBER_FIELD(source) END_CLASS_MEMBER(DocumentImageRun) BEGIN_CLASS_MEMBER(DocumentEmbeddedObjectRun) CLASS_MEMBER_BASE(DocumentInlineObjectRun) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_FIELD(name) END_CLASS_MEMBER(DocumentEmbeddedObjectRun) BEGIN_CLASS_MEMBER(DocumentStylePropertiesRun) CLASS_MEMBER_BASE(DocumentContainerRun) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_FIELD(style) END_CLASS_MEMBER(DocumentStylePropertiesRun) BEGIN_CLASS_MEMBER(DocumentStyleApplicationRun) CLASS_MEMBER_BASE(DocumentContainerRun) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_FIELD(styleName) END_CLASS_MEMBER(DocumentStyleApplicationRun) BEGIN_CLASS_MEMBER(DocumentHyperlinkRun::Package) CLASS_MEMBER_FIELD(hyperlinks) CLASS_MEMBER_FIELD(row) CLASS_MEMBER_FIELD(start) CLASS_MEMBER_FIELD(end) END_CLASS_MEMBER(DocumentHyperlinkRun::Package) BEGIN_CLASS_MEMBER(DocumentHyperlinkRun) CLASS_MEMBER_BASE(DocumentStyleApplicationRun) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_FIELD(normalStyleName) CLASS_MEMBER_FIELD(activeStyleName) CLASS_MEMBER_FIELD(reference) END_CLASS_MEMBER(DocumentHyperlinkRun) BEGIN_CLASS_MEMBER(DocumentParagraphRun) CLASS_MEMBER_BASE(DocumentContainerRun) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_FIELD(alignment) CLASS_MEMBER_METHOD_OVERLOAD(GetText, {L"skipNonTextContent"}, WString(DocumentParagraphRun::*)(bool)) END_CLASS_MEMBER(DocumentParagraphRun) BEGIN_CLASS_MEMBER(DocumentStyle) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_FIELD(parentStyleName) CLASS_MEMBER_FIELD(styles) CLASS_MEMBER_FIELD(resolvedStyles) END_CLASS_MEMBER(DocumentStyle) BEGIN_CLASS_MEMBER(DocumentModel) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_FIELD(paragraphs) CLASS_MEMBER_FIELD(styles) CLASS_MEMBER_METHOD_OVERLOAD(GetText, {L"skipNonTextContent"}, WString(DocumentModel::*)(bool)) CLASS_MEMBER_STATIC_METHOD(LoadFromXml, {L"resource" _ L"xml" _ L"workingDirectory" _ L"errors"}) CLASS_MEMBER_METHOD_OVERLOAD(SaveToXml, NO_PARAMETER, Ptr(DocumentModel::*)()) END_CLASS_MEMBER(DocumentModel) BEGIN_CLASS_MEMBER(GuiResourceNodeBase) CLASS_MEMBER_PROPERTY_READONLY_FAST(Parent) CLASS_MEMBER_PROPERTY_READONLY_FAST(Name) CLASS_MEMBER_PROPERTY_READONLY_FAST(ResourcePath) CLASS_MEMBER_PROPERTY_READONLY_FAST(FileContentPath) CLASS_MEMBER_PROPERTY_READONLY_FAST(FileAbsolutePath) CLASS_MEMBER_METHOD(SetFileContentPath, { L"content" _ L"absolute" }) END_CLASS_MEMBER(GuiResourceNodeBase) BEGIN_STRUCT_MEMBER(GuiResourceLocation) STRUCT_MEMBER(resourcePath) STRUCT_MEMBER(filePath) END_STRUCT_MEMBER(GuiResourceLocation) BEGIN_STRUCT_MEMBER(GuiResourceTextPos) STRUCT_MEMBER(originalLocation) STRUCT_MEMBER(row) STRUCT_MEMBER(column) END_STRUCT_MEMBER(GuiResourceTextPos) BEGIN_STRUCT_MEMBER(GuiResourceError) STRUCT_MEMBER(location) STRUCT_MEMBER(position) STRUCT_MEMBER(message) END_STRUCT_MEMBER(GuiResourceError) BEGIN_CLASS_MEMBER(GuiResourceItem) CLASS_MEMBER_BASE(GuiResourceNodeBase) CLASS_MEMBER_METHOD(GetContent, NO_PARAMETER) CLASS_MEMBER_METHOD(SetContent, {L"typeName" _ L"value"}) CLASS_MEMBER_METHOD(AsImage, NO_PARAMETER) CLASS_MEMBER_METHOD(AsXml, NO_PARAMETER) CLASS_MEMBER_METHOD(AsString, NO_PARAMETER) CLASS_MEMBER_METHOD(AsDocument, NO_PARAMETER) END_CLASS_MEMBER(GuiResourceItem) BEGIN_CLASS_MEMBER(GuiResourceFolder) CLASS_MEMBER_BASE(GuiResourceNodeBase) CLASS_MEMBER_PROPERTY_READONLY_FAST(Items) CLASS_MEMBER_PROPERTY_READONLY_FAST(Folders) CLASS_MEMBER_METHOD(GetItem, { L"name" }) CLASS_MEMBER_METHOD(AddItem, { L"name" _ L"item" }) CLASS_MEMBER_METHOD(RemoveItem, { L"name" }) CLASS_MEMBER_METHOD(ClearItems, NO_PARAMETER) CLASS_MEMBER_METHOD(GetFolder, { L"name" }) CLASS_MEMBER_METHOD(AddFolder, { L"name" _ L"folder" }) CLASS_MEMBER_METHOD(RemoveFolder, { L"name" }) CLASS_MEMBER_METHOD(ClearFolders, NO_PARAMETER) CLASS_MEMBER_METHOD(GetValueByPath, { L"path" }) CLASS_MEMBER_METHOD(GetFolderByPath, { L"path" }) CLASS_MEMBER_METHOD(CreateValueByPath, { L"path" _ L"typeName" _ L"value" }) END_CLASS_MEMBER(GuiResourceFolder) BEGIN_CLASS_MEMBER(GuiResource) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_READONLY_FAST(WorkingDirectory) CLASS_MEMBER_METHOD(GetDocumentByPath, {L"path"}) CLASS_MEMBER_METHOD(GetImageByPath, {L"path"}) CLASS_MEMBER_METHOD(GetXmlByPath, {L"path"}) CLASS_MEMBER_METHOD(GetStringByPath, {L"path"}) END_CLASS_MEMBER(GuiResource) BEGIN_CLASS_MEMBER(GuiResourcePathResolver) CLASS_MEMBER_CONSTRUCTOR(Ptr(Ptr, WString), {L"resource" _ L"workingDirectory"}) CLASS_MEMBER_METHOD(ResolveResource, {L"protocol" _ L"path"}) END_CLASS_MEMBER(GuiResourcePathResolver) BEGIN_ENUM_ITEM(GuiResourceUsage) ENUM_CLASS_ITEM(DataOnly) ENUM_CLASS_ITEM(InstanceClass) END_ENUM_ITEM(GuiResourceUsage) BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiResourceManager) CLASS_MEMBER_STATIC_EXTERNALMETHOD(GetResourceManager, NO_PARAMETER, IGuiResourceManager*(*)(), vl::presentation::GetResourceManager) CLASS_MEMBER_METHOD(SetResource, { L"name" _ L"resource" _ L"usage" }) CLASS_MEMBER_METHOD(GetResource, { L"name" }) CLASS_MEMBER_METHOD(GetResourceFromClassName, { L"name" }) END_INTERFACE_MEMBER(IGuiResourceManager) BEGIN_ENUM_ITEM(INativeWindowListener::HitTestResult) ENUM_ITEM_NAMESPACE(INativeWindowListener) ENUM_NAMESPACE_ITEM(BorderNoSizing) ENUM_NAMESPACE_ITEM(BorderLeft) ENUM_NAMESPACE_ITEM(BorderRight) ENUM_NAMESPACE_ITEM(BorderTop) ENUM_NAMESPACE_ITEM(BorderBottom) ENUM_NAMESPACE_ITEM(BorderLeftTop) ENUM_NAMESPACE_ITEM(BorderRightTop) ENUM_NAMESPACE_ITEM(BorderLeftBottom) ENUM_NAMESPACE_ITEM(BorderRightBottom) ENUM_NAMESPACE_ITEM(Title) ENUM_NAMESPACE_ITEM(ButtonMinimum) ENUM_NAMESPACE_ITEM(ButtonMaximum) ENUM_NAMESPACE_ITEM(ButtonClose) ENUM_NAMESPACE_ITEM(Client) ENUM_NAMESPACE_ITEM(Icon) ENUM_NAMESPACE_ITEM(NoDecision) END_ENUM_ITEM(INativeWindowListener::HitTestResult) #undef GUI_TEMPLATE_PROPERTY_REFLECTION #undef _ /*********************************************************************** Type Loader ***********************************************************************/ class GuiBasicTypeLoader : public Object, public ITypeLoader { public: void Load(ITypeManager* manager) { GUIREFLECTIONBASIC_TYPELIST(ADD_TYPE_INFO) } void Unload(ITypeManager* manager) { } }; #endif bool LoadGuiBasicTypes() { #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA ITypeManager* manager=GetGlobalTypeManager(); if(manager) { auto loader=Ptr(new GuiBasicTypeLoader); return manager->AddTypeLoader(loader); } #endif return false; } } } } /*********************************************************************** .\TYPEDESCRIPTORS\GUIREFLECTIONCOMPOSITIONS.CPP ***********************************************************************/ namespace vl { namespace reflection { namespace description { using namespace collections; using namespace presentation; using namespace presentation::compositions; using namespace presentation::controls; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA #define _ , #define INTERFACE_IDENTIFIER(INTERFACE)\ CLASS_MEMBER_STATIC_EXTERNALMETHOD(GetIdentifier, NO_PARAMETER, WString(*)(), vl::presentation::controls::QueryServiceHelper<::INTERFACE>::GetIdentifier) /*********************************************************************** Type Declaration (Extra) ***********************************************************************/ BEGIN_ENUM_ITEM(KeyDirection) ENUM_CLASS_ITEM(Up) ENUM_CLASS_ITEM(Down) ENUM_CLASS_ITEM(Left) ENUM_CLASS_ITEM(Right) ENUM_CLASS_ITEM(Home) ENUM_CLASS_ITEM(End) ENUM_CLASS_ITEM(PageUp) ENUM_CLASS_ITEM(PageDown) ENUM_CLASS_ITEM(PageLeft) ENUM_CLASS_ITEM(PageRight) END_ENUM_ITEM(KeyDirection) BEGIN_INTERFACE_MEMBER(IGuiAxis) CLASS_MEMBER_METHOD(RealSizeToVirtualSize, {L"size"}) CLASS_MEMBER_METHOD(VirtualSizeToRealSize, {L"size"}) CLASS_MEMBER_METHOD(RealPointToVirtualPoint, {L"realFullSize" _ L"point"}) CLASS_MEMBER_METHOD(VirtualPointToRealPoint, {L"realFullSize" _ L"point"}) CLASS_MEMBER_METHOD(RealRectToVirtualRect, {L"realFullSize" _ L"rect"}) CLASS_MEMBER_METHOD(VirtualRectToRealRect, {L"realFullSize" _ L"rect"}) CLASS_MEMBER_METHOD(RealMarginToVirtualMargin, {L"margin"}) CLASS_MEMBER_METHOD(VirtualMarginToRealMargin, {L"margin"}) CLASS_MEMBER_METHOD(RealKeyDirectionToVirtualKeyDirection, {L"key"}) END_INTERFACE_MEMBER(IGuiAxis) BEGIN_CLASS_MEMBER(GuiDefaultAxis) CLASS_MEMBER_BASE(IGuiAxis) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) END_CLASS_MEMBER(GuiDefaultAxis) BEGIN_CLASS_MEMBER(GuiAxis) CLASS_MEMBER_BASE(IGuiAxis) CLASS_MEMBER_CONSTRUCTOR(Ptr(AxisDirection), {L"axisDirection"}) CLASS_MEMBER_PROPERTY_READONLY_FAST(Direction) END_CLASS_MEMBER(GuiAxis) BEGIN_ENUM_ITEM(GuiGraphicsComposition::MinSizeLimitation) ENUM_ITEM_NAMESPACE(GuiGraphicsComposition) ENUM_NAMESPACE_ITEM(NoLimit) ENUM_NAMESPACE_ITEM(LimitToElement) ENUM_NAMESPACE_ITEM(LimitToElementAndChildren) END_ENUM_ITEM(GuiGraphicsComposition::MinSizeLimitation) BEGIN_ENUM_ITEM(GuiStackComposition::Direction) ENUM_ITEM_NAMESPACE(GuiStackComposition) ENUM_NAMESPACE_ITEM(Horizontal) ENUM_NAMESPACE_ITEM(Vertical) ENUM_NAMESPACE_ITEM(ReversedHorizontal) ENUM_NAMESPACE_ITEM(ReversedVertical) END_ENUM_ITEM(GuiStackComposition::Direction) BEGIN_STRUCT_MEMBER(GuiCellOption) STRUCT_MEMBER(composeType) STRUCT_MEMBER(absolute) STRUCT_MEMBER(percentage) END_STRUCT_MEMBER(GuiCellOption) BEGIN_ENUM_ITEM(GuiCellOption::ComposeType) ENUM_ITEM_NAMESPACE(GuiCellOption) ENUM_NAMESPACE_ITEM(Absolute) ENUM_NAMESPACE_ITEM(Percentage) ENUM_NAMESPACE_ITEM(MinSize) END_ENUM_ITEM(GuiCellOption::ComposeType) BEGIN_STRUCT_MEMBER(GuiFlowOption) STRUCT_MEMBER(baseline) STRUCT_MEMBER(percentage) STRUCT_MEMBER(distance) END_STRUCT_MEMBER(GuiFlowOption) BEGIN_ENUM_ITEM(GuiFlowOption::BaselineType) ENUM_ITEM_NAMESPACE(GuiFlowOption) ENUM_NAMESPACE_ITEM(Percentage) ENUM_NAMESPACE_ITEM(FromTop) ENUM_NAMESPACE_ITEM(FromBottom) END_ENUM_ITEM(GuiFlowOption::BaselineType) BEGIN_ENUM_ITEM(FlowAlignment) ENUM_CLASS_ITEM(Left) ENUM_CLASS_ITEM(Center) ENUM_CLASS_ITEM(Extend) END_ENUM_ITEM(FlowAlignment) BEGIN_ENUM_ITEM(GuiSideAlignedComposition::Direction) ENUM_ITEM_NAMESPACE(GuiSideAlignedComposition) ENUM_NAMESPACE_ITEM(Left) ENUM_NAMESPACE_ITEM(Top) ENUM_NAMESPACE_ITEM(Right) ENUM_NAMESPACE_ITEM(Bottom) END_ENUM_ITEM(GuiSideAlignedComposition::Direction) BEGIN_ENUM_ITEM(ResponsiveDirection) ENUM_CLASS_ITEM(Horizontal) ENUM_CLASS_ITEM(Vertical) ENUM_CLASS_ITEM(Both) END_ENUM_ITEM(ResponsiveDirection) BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiShortcutKeyItem) CLASS_MEMBER_PROPERTY_READONLY_FAST(Manager) CLASS_MEMBER_PROPERTY_READONLY_FAST(Name) END_INTERFACE_MEMBER(IGuiShortcutKeyItem) BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiShortcutKeyManager) CLASS_MEMBER_PROPERTY_READONLY_FAST(ItemCount) CLASS_MEMBER_METHOD(GetItem, {L"index"}) END_INTERFACE_MEMBER(IGuiShortcutKeyManager) BEGIN_CLASS_MEMBER(GuiShortcutKeyManager) CLASS_MEMBER_BASE(IGuiShortcutKeyManager) CLASS_MEMBER_CONSTRUCTOR(GuiShortcutKeyManager*(), NO_PARAMETER) CLASS_MEMBER_METHOD(CreateShortcut, {L"ctrl" _ L"shift" _ L"alt" _ L"ket"}) CLASS_MEMBER_METHOD(DestroyShortcut, {L"ctrl" _ L"shift" _ L"alt" _ L"ket"}) CLASS_MEMBER_METHOD(TryGetShortcut, {L"ctrl" _ L"shift" _ L"alt" _ L"ket"}) END_CLASS_MEMBER(GuiShortcutKeyManager) BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiAltAction) INTERFACE_IDENTIFIER(vl::presentation::compositions::IGuiAltAction) CLASS_MEMBER_PROPERTY_READONLY_FAST(Alt) CLASS_MEMBER_METHOD(IsAltEnabled, NO_PARAMETER) CLASS_MEMBER_METHOD(IsAltAvailable, NO_PARAMETER) CLASS_MEMBER_METHOD(GetAltComposition, NO_PARAMETER) CLASS_MEMBER_METHOD(GetActivatingAltHost, NO_PARAMETER) CLASS_MEMBER_METHOD(OnActiveAlt, NO_PARAMETER) END_INTERFACE_MEMBER(IGuiAltAction) BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiAltActionContainer) INTERFACE_IDENTIFIER(vl::presentation::compositions::IGuiAltActionContainer) CLASS_MEMBER_PROPERTY_READONLY_FAST(AltActionCount) CLASS_MEMBER_METHOD(GetAltAction, { L"index" }) END_INTERFACE_MEMBER(IGuiAltActionContainer) BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiAltActionHost) INTERFACE_IDENTIFIER(vl::presentation::compositions::IGuiAltActionHost) CLASS_MEMBER_PROPERTY_READONLY_FAST(AltComposition) CLASS_MEMBER_PROPERTY_READONLY_FAST(PreviousAltHost) CLASS_MEMBER_METHOD(OnActivatedAltHost, { L"previousHost" }) CLASS_MEMBER_METHOD(OnDeactivatedAltHost, NO_PARAMETER) CLASS_MEMBER_EXTERNALMETHOD(CollectAltActions, {L"actions"}, void(IGuiAltActionHost::*)(List&), vl::reflection::description::IGuiAltActionHost_CollectAltActions) END_INTERFACE_MEMBER(IGuiAltActionHost) BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiTabAction) INTERFACE_IDENTIFIER(vl::presentation::compositions::IGuiTabAction) CLASS_MEMBER_PROPERTY_READONLY_FAST(AcceptTabInput) CLASS_MEMBER_PROPERTY_READONLY_FAST(TabPriority) CLASS_MEMBER_METHOD(IsTabEnabled, NO_PARAMETER) CLASS_MEMBER_METHOD(IsTabAvailable, NO_PARAMETER) END_INTERFACE_MEMBER(IGuiTabAction) /*********************************************************************** Type Declaration (Class) ***********************************************************************/ BEGIN_CLASS_MEMBER(GuiGraphicsComposition) CLASS_MEMBER_EXTERNALMETHOD(SafeDelete, NO_PARAMETER, void(GuiGraphicsComposition::*)(), vl::presentation::compositions::SafeDeleteComposition) CLASS_MEMBER_GUIEVENT_COMPOSITION(leftButtonDown) CLASS_MEMBER_GUIEVENT_COMPOSITION(leftButtonUp) CLASS_MEMBER_GUIEVENT_COMPOSITION(leftButtonDoubleClick) CLASS_MEMBER_GUIEVENT_COMPOSITION(middleButtonDown) CLASS_MEMBER_GUIEVENT_COMPOSITION(middleButtonUp) CLASS_MEMBER_GUIEVENT_COMPOSITION(middleButtonDoubleClick) CLASS_MEMBER_GUIEVENT_COMPOSITION(rightButtonDown) CLASS_MEMBER_GUIEVENT_COMPOSITION(rightButtonUp) CLASS_MEMBER_GUIEVENT_COMPOSITION(rightButtonDoubleClick) CLASS_MEMBER_GUIEVENT_COMPOSITION(horizontalWheel) CLASS_MEMBER_GUIEVENT_COMPOSITION(verticalWheel) CLASS_MEMBER_GUIEVENT_COMPOSITION(mouseMove) CLASS_MEMBER_GUIEVENT_COMPOSITION(mouseEnter) CLASS_MEMBER_GUIEVENT_COMPOSITION(mouseLeave) CLASS_MEMBER_GUIEVENT_COMPOSITION(previewKey) CLASS_MEMBER_GUIEVENT_COMPOSITION(keyDown) CLASS_MEMBER_GUIEVENT_COMPOSITION(keyUp) CLASS_MEMBER_GUIEVENT_COMPOSITION(systemKeyDown) CLASS_MEMBER_GUIEVENT_COMPOSITION(systemKeyUp) CLASS_MEMBER_GUIEVENT_COMPOSITION(previewCharInput) CLASS_MEMBER_GUIEVENT_COMPOSITION(charInput) CLASS_MEMBER_GUIEVENT_COMPOSITION(gotFocus) CLASS_MEMBER_GUIEVENT_COMPOSITION(lostFocus) CLASS_MEMBER_GUIEVENT_COMPOSITION(caretNotify) CLASS_MEMBER_GUIEVENT_COMPOSITION(clipboardNotify) CLASS_MEMBER_GUIEVENT_COMPOSITION(renderTargetChanged) CLASS_MEMBER_PROPERTY_READONLY_FAST(Parent) CLASS_MEMBER_PROPERTY_FAST(OwnedElement) CLASS_MEMBER_PROPERTY_FAST(Visible) CLASS_MEMBER_PROPERTY_FAST(MinSizeLimitation) CLASS_MEMBER_PROPERTY_READONLY_FAST(GlobalBounds) CLASS_MEMBER_PROPERTY_FAST(TransparentToMouse) CLASS_MEMBER_PROPERTY_READONLY_FAST(AssociatedControl) CLASS_MEMBER_PROPERTY_FAST(AssociatedCursor) CLASS_MEMBER_PROPERTY_FAST(AssociatedHitTestResult) CLASS_MEMBER_PROPERTY_READONLY_FAST(RelatedControl) CLASS_MEMBER_PROPERTY_READONLY_FAST(RelatedControlHost) CLASS_MEMBER_PROPERTY_READONLY_FAST(RelatedCursor) CLASS_MEMBER_PROPERTY_FAST(Margin) CLASS_MEMBER_PROPERTY_FAST(InternalMargin) CLASS_MEMBER_PROPERTY_FAST(PreferredMinSize) CLASS_MEMBER_PROPERTY_READONLY_FAST(ClientArea) CLASS_MEMBER_PROPERTY_READONLY_FAST(MinPreferredClientSize) CLASS_MEMBER_PROPERTY_READONLY_FAST(PreferredBounds) CLASS_MEMBER_PROPERTY_READONLY_FAST(Bounds) CLASS_MEMBER_METHOD_RENAME(GetChildren, Children, NO_PARAMETER) CLASS_MEMBER_PROPERTY_READONLY(Children, GetChildren) CLASS_MEMBER_METHOD(AddChild, {L"child"}) CLASS_MEMBER_METHOD(InsertChild, {L"index" _ L"child"}) CLASS_MEMBER_METHOD(RemoveChild, {L"child"}) CLASS_MEMBER_METHOD(MoveChild, {L"child" _ L"newIndex"}) CLASS_MEMBER_METHOD(Render, {L"size"}) CLASS_MEMBER_METHOD(FindComposition, {L"location" _ L"forMouseEvent"}) CLASS_MEMBER_METHOD(ForceCalculateSizeImmediately, NO_PARAMETER) CLASS_MEMBER_METHOD(IsSizeAffectParent, NO_PARAMETER) END_CLASS_MEMBER(GuiGraphicsComposition) BEGIN_CLASS_MEMBER(GuiGraphicsSite) CLASS_MEMBER_BASE(GuiGraphicsComposition) CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(Bounds) END_CLASS_MEMBER(GuiGraphicsSite) BEGIN_CLASS_MEMBER(GuiWindowComposition) CLASS_MEMBER_BASE(GuiGraphicsSite) CLASS_MEMBER_CONSTRUCTOR(GuiWindowComposition*(), NO_PARAMETER) END_CLASS_MEMBER(GuiWindowComposition) BEGIN_CLASS_MEMBER(GuiBoundsComposition) CLASS_MEMBER_BASE(GuiGraphicsSite) CLASS_MEMBER_CONSTRUCTOR(GuiBoundsComposition*(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_FAST(SizeAffectParent) CLASS_MEMBER_PROPERTY_EVENT_FAST(Bounds, BoundsChanged) CLASS_MEMBER_PROPERTY_FAST(AlignmentToParent) CLASS_MEMBER_METHOD(IsAlignedToParent, NO_PARAMETER) END_CLASS_MEMBER(GuiBoundsComposition) BEGIN_CLASS_MEMBER(GuiStackComposition) CLASS_MEMBER_BASE(GuiBoundsComposition) CLASS_MEMBER_CONSTRUCTOR(GuiStackComposition*(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_READONLY_FAST(StackItems) CLASS_MEMBER_PROPERTY_FAST(Direction) CLASS_MEMBER_PROPERTY_FAST(Padding) CLASS_MEMBER_PROPERTY_FAST(ExtraMargin) CLASS_MEMBER_METHOD(InsertStackItem, {L"index" _ L"item"}) CLASS_MEMBER_METHOD(IsStackItemClipped, NO_PARAMETER) CLASS_MEMBER_METHOD(EnsureVisible, {L"index"}) END_CLASS_MEMBER(GuiStackComposition) BEGIN_CLASS_MEMBER(GuiStackItemComposition) CLASS_MEMBER_BASE(GuiGraphicsSite) CLASS_MEMBER_CONSTRUCTOR(GuiStackItemComposition*(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_EVENT_FAST(Bounds, BoundsChanged) CLASS_MEMBER_PROPERTY_FAST(ExtraMargin) END_CLASS_MEMBER(GuiStackItemComposition) BEGIN_CLASS_MEMBER(GuiTableComposition) CLASS_MEMBER_BASE(GuiBoundsComposition) CLASS_MEMBER_CONSTRUCTOR(GuiTableComposition*(), NO_PARAMETER) CLASS_MEMBER_GUIEVENT(ConfigChanged) CLASS_MEMBER_PROPERTY_FAST(CellPadding) CLASS_MEMBER_PROPERTY_FAST(BorderVisible) CLASS_MEMBER_METHOD(GetRows, NO_PARAMETER) CLASS_MEMBER_EXTERNALMETHOD(SetRows, {L"value"}, void(GuiTableComposition::*)(vint), vl::reflection::description::GuiTableComposition_SetRows) CLASS_MEMBER_PROPERTY(Rows, GetRows, SetRows) CLASS_MEMBER_METHOD(GetColumns, NO_PARAMETER) CLASS_MEMBER_EXTERNALMETHOD(SetColumns, {L"value"}, void(GuiTableComposition::*)(vint), vl::reflection::description::GuiTableComposition_SetColumns) CLASS_MEMBER_PROPERTY(Columns, GetColumns, SetColumns) CLASS_MEMBER_METHOD(SetRowsAndColumns, {L"rows" _ L"columns"}) CLASS_MEMBER_METHOD(GetSitedCell, {L"rows" _ L"columns"}) CLASS_MEMBER_METHOD(GetRowOption, {L"row"}) CLASS_MEMBER_METHOD(SetRowOption, {L"row" _ L"option"}) CLASS_MEMBER_METHOD(GetColumnOption, {L"column"}) CLASS_MEMBER_METHOD(SetColumnOption, {L"column" _ L"option"}) CLASS_MEMBER_METHOD(GetCellArea, NO_PARAMETER) CLASS_MEMBER_METHOD(UpdateCellBounds, NO_PARAMETER) END_CLASS_MEMBER(GuiTableComposition) BEGIN_CLASS_MEMBER(GuiCellComposition) CLASS_MEMBER_BASE(GuiGraphicsSite) CLASS_MEMBER_CONSTRUCTOR(GuiCellComposition*(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_READONLY_FAST(TableParent) CLASS_MEMBER_PROPERTY_READONLY_FAST(Row) CLASS_MEMBER_PROPERTY_READONLY_FAST(RowSpan) CLASS_MEMBER_PROPERTY_READONLY_FAST(Column) CLASS_MEMBER_PROPERTY_READONLY_FAST(ColumnSpan) CLASS_MEMBER_METHOD(SetSite, {L"row" _ L"column" _ L"rowSpan" _ L"columnSpan"}) END_CLASS_MEMBER(GuiCellComposition) BEGIN_CLASS_MEMBER(GuiTableSplitterCompositionBase) CLASS_MEMBER_BASE(GuiGraphicsSite) CLASS_MEMBER_PROPERTY_READONLY_FAST(TableParent) END_CLASS_MEMBER(GuiRowSplitterComposition) BEGIN_CLASS_MEMBER(GuiRowSplitterComposition) CLASS_MEMBER_BASE(GuiTableSplitterCompositionBase) CLASS_MEMBER_CONSTRUCTOR(GuiRowSplitterComposition*(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_FAST(RowsToTheTop) END_CLASS_MEMBER(GuiRowSplitterComposition) BEGIN_CLASS_MEMBER(GuiColumnSplitterComposition) CLASS_MEMBER_BASE(GuiTableSplitterCompositionBase) CLASS_MEMBER_CONSTRUCTOR(GuiColumnSplitterComposition*(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_FAST(ColumnsToTheLeft) END_CLASS_MEMBER(GuiColumnSplitterComposition) BEGIN_CLASS_MEMBER(GuiFlowComposition) CLASS_MEMBER_BASE(GuiBoundsComposition) CLASS_MEMBER_CONSTRUCTOR(GuiFlowComposition*(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_READONLY_FAST(FlowItems) CLASS_MEMBER_PROPERTY_FAST(ExtraMargin) CLASS_MEMBER_PROPERTY_FAST(RowPadding) CLASS_MEMBER_PROPERTY_FAST(ColumnPadding) CLASS_MEMBER_PROPERTY_FAST(Axis) CLASS_MEMBER_PROPERTY_FAST(Alignment) CLASS_MEMBER_METHOD(InsertFlowItem, { L"index" _ L"item" }) END_CLASS_MEMBER(GuiFlowComposition) BEGIN_CLASS_MEMBER(GuiFlowItemComposition) CLASS_MEMBER_BASE(GuiGraphicsSite) CLASS_MEMBER_CONSTRUCTOR(GuiFlowItemComposition*(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_EVENT_FAST(Bounds, BoundsChanged) CLASS_MEMBER_PROPERTY_FAST(ExtraMargin) CLASS_MEMBER_PROPERTY_FAST(FlowOption) END_CLASS_MEMBER(GuiFlowItemComposition) BEGIN_CLASS_MEMBER(GuiSideAlignedComposition) CLASS_MEMBER_BASE(GuiGraphicsSite) CLASS_MEMBER_CONSTRUCTOR(GuiSideAlignedComposition*(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_FAST(Direction) CLASS_MEMBER_PROPERTY_FAST(MaxLength) CLASS_MEMBER_PROPERTY_FAST(MaxRatio) END_CLASS_MEMBER(GuiSideAlignedComposition) BEGIN_CLASS_MEMBER(GuiPartialViewComposition) CLASS_MEMBER_BASE(GuiGraphicsSite) CLASS_MEMBER_CONSTRUCTOR(GuiPartialViewComposition*(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_FAST(WidthRatio) CLASS_MEMBER_PROPERTY_FAST(WidthPageSize) CLASS_MEMBER_PROPERTY_FAST(HeightRatio) CLASS_MEMBER_PROPERTY_FAST(HeightPageSize) END_CLASS_MEMBER(GuiPartialViewComposition) BEGIN_CLASS_MEMBER(GuiSharedSizeItemComposition) CLASS_MEMBER_BASE(GuiBoundsComposition) CLASS_MEMBER_CONSTRUCTOR(GuiSharedSizeItemComposition*(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_FAST(Group) CLASS_MEMBER_PROPERTY_FAST(SharedWidth) CLASS_MEMBER_PROPERTY_FAST(SharedHeight) END_CLASS_MEMBER(GuiSharedSizeItemComposition) BEGIN_CLASS_MEMBER(GuiSharedSizeRootComposition) CLASS_MEMBER_BASE(GuiBoundsComposition) CLASS_MEMBER_CONSTRUCTOR(GuiSharedSizeRootComposition*(), NO_PARAMETER) END_CLASS_MEMBER(GuiSharedSizeRootComposition) BEGIN_CLASS_MEMBER(GuiRepeatCompositionBase) CLASS_MEMBER_GUIEVENT(ItemInserted) CLASS_MEMBER_GUIEVENT(ItemRemoved) CLASS_MEMBER_PROPERTY_FAST(ItemTemplate) CLASS_MEMBER_PROPERTY_FAST(ItemSource) END_CLASS_MEMBER(GuiRepeatCompositionBase) BEGIN_CLASS_MEMBER(GuiRepeatStackComposition) CLASS_MEMBER_BASE(GuiStackComposition) CLASS_MEMBER_BASE(GuiRepeatCompositionBase) CLASS_MEMBER_CONSTRUCTOR(GuiRepeatStackComposition*(), NO_PARAMETER) END_CLASS_MEMBER(GuiRepeatStackComposition) BEGIN_CLASS_MEMBER(GuiRepeatFlowComposition) CLASS_MEMBER_BASE(GuiFlowComposition) CLASS_MEMBER_BASE(GuiRepeatCompositionBase) CLASS_MEMBER_CONSTRUCTOR(GuiRepeatFlowComposition*(), NO_PARAMETER) END_CLASS_MEMBER(GuiRepeatFlowComposition) BEGIN_CLASS_MEMBER(GuiResponsiveCompositionBase) CLASS_MEMBER_BASE(GuiBoundsComposition) CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(LevelCount) CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(CurrentLevel) CLASS_MEMBER_PROPERTY_FAST(Direction) CLASS_MEMBER_METHOD(LevelDown, NO_PARAMETER) CLASS_MEMBER_METHOD(LevelUp, NO_PARAMETER) END_CLASS_MEMBER(GuiResponsiveCompositionBase) BEGIN_CLASS_MEMBER(GuiResponsiveSharedComposition) CLASS_MEMBER_BASE(GuiBoundsComposition) CLASS_MEMBER_CONSTRUCTOR(GuiResponsiveSharedComposition*(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_FAST(Shared) END_CLASS_MEMBER(GuiResponsiveSharedComposition) BEGIN_CLASS_MEMBER(GuiResponsiveViewComposition) CLASS_MEMBER_BASE(GuiResponsiveCompositionBase) CLASS_MEMBER_CONSTRUCTOR(GuiResponsiveViewComposition*(), NO_PARAMETER) CLASS_MEMBER_GUIEVENT(BeforeSwitchingView) CLASS_MEMBER_PROPERTY_READONLY_FAST(CurrentView) CLASS_MEMBER_PROPERTY_READONLY_FAST(SharedControls) CLASS_MEMBER_PROPERTY_READONLY_FAST(Views) END_CLASS_MEMBER(GuiResponsiveViewComposition) BEGIN_CLASS_MEMBER(GuiResponsiveFixedComposition) CLASS_MEMBER_BASE(GuiResponsiveCompositionBase) CLASS_MEMBER_CONSTRUCTOR(GuiResponsiveFixedComposition*(), NO_PARAMETER) END_CLASS_MEMBER(GuiResponsiveFixedComposition) BEGIN_CLASS_MEMBER(GuiResponsiveStackComposition) CLASS_MEMBER_BASE(GuiResponsiveCompositionBase) CLASS_MEMBER_CONSTRUCTOR(GuiResponsiveStackComposition*(), NO_PARAMETER) END_CLASS_MEMBER(GuiResponsiveStackComposition) BEGIN_CLASS_MEMBER(GuiResponsiveGroupComposition) CLASS_MEMBER_BASE(GuiResponsiveCompositionBase) CLASS_MEMBER_CONSTRUCTOR(GuiResponsiveGroupComposition*(), NO_PARAMETER) END_CLASS_MEMBER(GuiResponsiveGroupComposition) BEGIN_CLASS_MEMBER(GuiResponsiveContainerComposition) CLASS_MEMBER_BASE(GuiBoundsComposition) CLASS_MEMBER_CONSTRUCTOR(GuiResponsiveContainerComposition*(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_FAST(ResponsiveTarget) END_CLASS_MEMBER(GuiResponsiveContainerComposition) #undef INTERFACE_IDENTIFIER #undef _ /*********************************************************************** Type Loader ***********************************************************************/ class GuiCompositionTypeLoader : public Object, public ITypeLoader { public: void Load(ITypeManager* manager) { GUIREFLECTIONCOMPOSITION_TYPELIST(ADD_TYPE_INFO) } void Unload(ITypeManager* manager) { } }; #endif bool LoadGuiCompositionTypes() { #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA ITypeManager* manager=GetGlobalTypeManager(); if(manager) { auto loader=Ptr(new GuiCompositionTypeLoader); return manager->AddTypeLoader(loader); } #endif return false; } } } } /*********************************************************************** .\TYPEDESCRIPTORS\GUIREFLECTIONCONTROLS.CPP ***********************************************************************/ namespace vl { namespace reflection { namespace description { using namespace presentation; using namespace presentation::templates; using namespace presentation::controls; using namespace presentation::controls::list; using namespace presentation::controls::tree; using namespace presentation::elements::text; using namespace presentation::theme; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA #define _ , #define CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(CONTROL)\ CLASS_MEMBER_CONSTRUCTOR(CONTROL*(ThemeName), {L"themeName"})\ #define CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(CONTROL)\ CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(CONTROL)\ CLASS_MEMBER_METHOD(TypedControlTemplateObject, {L"ensureExists"})\ #define CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(CONTROL, TYPE2, PARAM2)\ CLASS_MEMBER_CONSTRUCTOR(CONTROL*(ThemeName, TYPE2), {L"themeName" _ L ## #PARAM2 })\ #define CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2(CONTROL, TYPE2, PARAM2)\ CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(CONTROL, TYPE2, PARAM2)\ CLASS_MEMBER_METHOD(TypedControlTemplateObject, {L"ensureExists"})\ #define CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_3(CONTROL, TYPE2, PARAM2, TYPE3, PARAM3)\ CLASS_MEMBER_CONSTRUCTOR(CONTROL*(ThemeName, TYPE2, TYPE3), {L"themeName" _ L ## #PARAM2 _ L ## #PARAM3})\ #define CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_3(CONTROL, TYPE2, PARAM2, TYPE3, PARAM3)\ CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_3(CONTROL, TYPE2, PARAM2, TYPE3, PARAM3)\ CLASS_MEMBER_METHOD(TypedControlTemplateObject, {L"ensureExists"})\ #define INTERFACE_IDENTIFIER(INTERFACE)\ CLASS_MEMBER_STATIC_EXTERNALMETHOD(GetIdentifier, NO_PARAMETER, WString(*)(), vl::presentation::controls::QueryServiceHelper<::INTERFACE>::GetIdentifier) /*********************************************************************** Type Declaration (Extra) ***********************************************************************/ BEGIN_CLASS_MEMBER(GuiApplication) CLASS_MEMBER_STATIC_EXTERNALMETHOD(GetApplication, NO_PARAMETER, GuiApplication*(*)(), vl::presentation::controls::GetApplication) CLASS_MEMBER_EVENT(LocaleChanged) CLASS_MEMBER_PROPERTY_EVENT_FAST(Locale, LocaleChanged) CLASS_MEMBER_PROPERTY_READONLY_FAST(MainWindow) CLASS_MEMBER_PROPERTY_READONLY_FAST(TooltipOwner) CLASS_MEMBER_PROPERTY_READONLY_FAST(ExecutablePath) CLASS_MEMBER_PROPERTY_READONLY_FAST(ExecutableFolder) CLASS_MEMBER_PROPERTY_READONLY_FAST(Windows) CLASS_MEMBER_METHOD(Run, NO_PARAMETER) CLASS_MEMBER_METHOD(ShowTooltip, {L"owner" _ L"tooltip" _ L"preferredContentWidth" _ L"location"}) CLASS_MEMBER_METHOD(CloseTooltip, NO_PARAMETER) CLASS_MEMBER_METHOD(IsInMainThread, NO_PARAMETER) CLASS_MEMBER_METHOD(InvokeAsync, {L"proc"}) CLASS_MEMBER_METHOD(InvokeInMainThread, {L"controlHost" _ L"proc"}) CLASS_MEMBER_METHOD(InvokeInMainThreadAndWait, {L"controlHost" _ L"proc" _ L"milliseconds"}) CLASS_MEMBER_METHOD(DelayExecute, {L"proc" _ L"milliseconds"}) CLASS_MEMBER_METHOD(DelayExecuteInMainThread, {L"proc" _ L"milliseconds"}) CLASS_MEMBER_METHOD(RunGuiTask, { L"controlHost" _ L"proc" }) END_CLASS_MEMBER(GuiApplication) BEGIN_ENUM_ITEM(ThemeName) #define GUI_DEFINE_THEME_NAME(TEMPLATE, CONTROL) ENUM_CLASS_ITEM(CONTROL) GUI_CONTROL_TEMPLATE_TYPES(GUI_DEFINE_THEME_NAME) #undef GUI_DEFINE_THEME_NAME END_ENUM_ITEM(ThemeName) BEGIN_INTERFACE_MEMBER_NOPROXY(ITheme) CLASS_MEMBER_STATIC_EXTERNALMETHOD(GetCurrentTheme, NO_PARAMETER, ITheme*(*)(), vl::presentation::theme::GetCurrentTheme) CLASS_MEMBER_STATIC_EXTERNALMETHOD(RegisterTheme, {L"name" _ L"theme"}, bool(*)(const WString&, Ptr), vl::presentation::theme::RegisterTheme) CLASS_MEMBER_STATIC_EXTERNALMETHOD(UnrgisterTheme, {L"name"}, Ptr(*)(const WString&), vl::presentation::theme::UnregisterTheme) CLASS_MEMBER_METHOD(CreateStyle, {L"themeName"}) END_INTERFACE_MEMBER(ITheme) BEGIN_CLASS_MEMBER(ThemeTemplates) CLASS_MEMBER_BASE(GuiInstanceRootObject) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_FIELD(Name) #define GUI_DEFINE_ITEM_PROPERTY(TEMPLATE, CONTROL) CLASS_MEMBER_FIELD(CONTROL) GUI_CONTROL_TEMPLATE_TYPES(GUI_DEFINE_ITEM_PROPERTY) #undef GUI_DEFINE_ITEM_PROPERTY END_CLASS_MEMBER(ThemeTemplates) BEGIN_CLASS_MEMBER(GuiDialogBase) CLASS_MEMBER_BASE(GuiComponent) END_CLASS_MEMBER(GuiDialogBase) BEGIN_CLASS_MEMBER(GuiMessageDialog) CLASS_MEMBER_BASE(GuiDialogBase) CLASS_MEMBER_CONSTRUCTOR(GuiMessageDialog*(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_FAST(Input) CLASS_MEMBER_PROPERTY_FAST(DefaultButton) CLASS_MEMBER_PROPERTY_FAST(Icon) CLASS_MEMBER_PROPERTY_FAST(ModalOption) CLASS_MEMBER_PROPERTY_FAST(Text) CLASS_MEMBER_PROPERTY_FAST(Title) CLASS_MEMBER_METHOD(ShowDialog, NO_PARAMETER) END_CLASS_MEMBER(GuiMessageDialog) BEGIN_CLASS_MEMBER(GuiColorDialog) CLASS_MEMBER_BASE(GuiDialogBase) CLASS_MEMBER_CONSTRUCTOR(GuiColorDialog*(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_FAST(EnabledCustomColor) CLASS_MEMBER_PROPERTY_FAST(OpenedCustomColor) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SelectedColor) CLASS_MEMBER_PROPERTY_READONLY_FAST(CustomColors) CLASS_MEMBER_METHOD(ShowDialog, NO_PARAMETER) END_CLASS_MEMBER(GuiColorDialog) BEGIN_CLASS_MEMBER(GuiFontDialog) CLASS_MEMBER_BASE(GuiDialogBase) CLASS_MEMBER_CONSTRUCTOR(GuiFontDialog*(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SelectedFont) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SelectedColor) CLASS_MEMBER_PROPERTY_FAST(ShowSelection) CLASS_MEMBER_PROPERTY_FAST(ShowEffect) CLASS_MEMBER_PROPERTY_FAST(ForceFontExist) CLASS_MEMBER_METHOD(ShowDialog, NO_PARAMETER) END_CLASS_MEMBER(GuiFontDialog) BEGIN_CLASS_MEMBER(GuiFileDialogBase) CLASS_MEMBER_BASE(GuiDialogBase) CLASS_MEMBER_PROPERTY_FAST(Filter) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(FilterIndex) CLASS_MEMBER_PROPERTY_FAST(EnabledPreview) CLASS_MEMBER_PROPERTY_FAST(Title) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(FileName) CLASS_MEMBER_PROPERTY_FAST(Directory) CLASS_MEMBER_PROPERTY_FAST(DefaultExtension) CLASS_MEMBER_PROPERTY_FAST(Options) END_CLASS_MEMBER(GuiFileDialogBase) BEGIN_CLASS_MEMBER(GuiOpenFileDialog) CLASS_MEMBER_BASE(GuiFileDialogBase) CLASS_MEMBER_CONSTRUCTOR(GuiOpenFileDialog*(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_READONLY_FAST(FileNames) CLASS_MEMBER_METHOD(ShowDialog, NO_PARAMETER) END_CLASS_MEMBER(GuiOpenFileDialog) BEGIN_CLASS_MEMBER(GuiSaveFileDialog) CLASS_MEMBER_BASE(GuiFileDialogBase) CLASS_MEMBER_CONSTRUCTOR(GuiSaveFileDialog*(), NO_PARAMETER) CLASS_MEMBER_METHOD(ShowDialog, NO_PARAMETER) END_CLASS_MEMBER(GuiSaveFileDialog) BEGIN_CLASS_MEMBER(GuiSelectableButton::GroupController) CLASS_MEMBER_BASE(GuiComponent) CLASS_MEMBER_METHOD(Attach, {L"button"}) CLASS_MEMBER_METHOD(Detach, {L"button"}) CLASS_MEMBER_METHOD(OnSelectedChanged, {L"button"}) END_CLASS_MEMBER(GuiSelectableButton::GroupController) BEGIN_CLASS_MEMBER(GuiSelectableButton::MutexGroupController) CLASS_MEMBER_BASE(GuiSelectableButton::GroupController) CLASS_MEMBER_CONSTRUCTOR(GuiSelectableButton::MutexGroupController*(), NO_PARAMETER) END_CLASS_MEMBER(GuiSelectableButton::MutexGroupController) BEGIN_INTERFACE_MEMBER(GuiListControl::IItemProviderCallback) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_METHOD(OnAttached, {L"provider"}) CLASS_MEMBER_METHOD(OnItemModified, {L"start" _ L"count" _ L"newCount"}) END_INTERFACE_MEMBER(GuiListControl::IItemProviderCallback) BEGIN_INTERFACE_MEMBER_NOPROXY(GuiListControl::IItemArrangerCallback) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_METHOD(RequestItem, {L"itemIndex" _ L"itemComposition"}) CLASS_MEMBER_METHOD(ReleaseItem, {L"style"}) CLASS_MEMBER_METHOD(SetViewLocation, {L"value"}) CLASS_MEMBER_METHOD(GetStylePreferredSize, {L"style"}) CLASS_MEMBER_METHOD(SetStyleAlignmentToParent, {L"style" _ L"margin"}) CLASS_MEMBER_METHOD(GetStyleBounds, {L"style"}) CLASS_MEMBER_METHOD(SetStyleBounds, {L"style" _ L"bounds"}) CLASS_MEMBER_METHOD(GetContainerComposition, NO_PARAMETER) CLASS_MEMBER_METHOD(OnTotalSizeChanged, NO_PARAMETER) END_INTERFACE_MEMBER(GuiListControl::IItemArrangerCallback) BEGIN_ENUM_ITEM(GuiListControl::EnsureItemVisibleResult) ENUM_CLASS_ITEM(ItemNotExists) ENUM_CLASS_ITEM(Moved) ENUM_CLASS_ITEM(NotMoved) END_ENUM_ITEM(GuiListControl::EnsureItemVisibleResult) BEGIN_INTERFACE_MEMBER(GuiListControl::IItemProvider) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_METHOD(AttachCallback, {L"value"}) CLASS_MEMBER_METHOD(DetachCallback, {L"value"}) CLASS_MEMBER_METHOD(PushEditing, NO_PARAMETER) CLASS_MEMBER_METHOD(PopEditing, NO_PARAMETER) CLASS_MEMBER_METHOD(IsEditing, NO_PARAMETER) CLASS_MEMBER_METHOD(Count, NO_PARAMETER) CLASS_MEMBER_METHOD(GetTextValue, { L"itemIndex" }) CLASS_MEMBER_METHOD(GetBindingValue, { L"itemIndex" }) CLASS_MEMBER_METHOD(RequestView, {L"identifier"}) END_INTERFACE_MEMBER(GuiListControl::IItemProvider) BEGIN_INTERFACE_MEMBER(GuiListControl::IItemArranger) CLASS_MEMBER_BASE(GuiListControl::IItemProviderCallback) CLASS_MEMBER_PROPERTY_FAST(Callback) CLASS_MEMBER_PROPERTY_READONLY_FAST(TotalSize) CLASS_MEMBER_METHOD(AttachListControl, {L"value"}) CLASS_MEMBER_METHOD(DetachListControl, NO_PARAMETER) CLASS_MEMBER_METHOD(GetVisibleStyle, {L"itemIndex"}) CLASS_MEMBER_METHOD(GetVisibleIndex, {L"style"}) CLASS_MEMBER_METHOD(ReloadVisibleStyles, NO_PARAMETER) CLASS_MEMBER_METHOD(OnViewChanged, {L"bounds"}) CLASS_MEMBER_METHOD(FindItem, {L"itemIndex" _ L"key"}) CLASS_MEMBER_METHOD(EnsureItemVisible, {L"itemIndex"}) CLASS_MEMBER_METHOD(GetAdoptedSize, {L"expectedSize"}) END_INTERFACE_MEMBER(GuiListControl::IItemArranger) BEGIN_CLASS_MEMBER(ItemProviderBase) CLASS_MEMBER_BASE(GuiListControl::IItemProvider) END_CLASS_MEMBER(ItemProviderBase) BEGIN_CLASS_MEMBER(RangedItemArrangerBase) CLASS_MEMBER_BASE(GuiListControl::IItemArranger) END_CLASS_MEMBER(RangedItemArrangerBase) BEGIN_CLASS_MEMBER(FreeHeightItemArranger) CLASS_MEMBER_BASE(RangedItemArrangerBase) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) END_CLASS_MEMBER(FreeHeightItemArranger) BEGIN_CLASS_MEMBER(FixedHeightItemArranger) CLASS_MEMBER_BASE(RangedItemArrangerBase) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) END_CLASS_MEMBER(FixedHeightItemArranger) BEGIN_CLASS_MEMBER(FixedSizeMultiColumnItemArranger) CLASS_MEMBER_BASE(RangedItemArrangerBase) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) END_CLASS_MEMBER(FixedSizeMultiColumnItemArranger) BEGIN_CLASS_MEMBER(FixedHeightMultiColumnItemArranger) CLASS_MEMBER_BASE(RangedItemArrangerBase) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) END_CLASS_MEMBER(FixedHeightMultiColumnItemArranger) BEGIN_INTERFACE_MEMBER(ITextItemView) INTERFACE_IDENTIFIER(vl::presentation::controls::list::ITextItemView) CLASS_MEMBER_METHOD(GetChecked, {L"itemIndex"}) CLASS_MEMBER_METHOD(SetChecked, {L"itemIndex" _ L"value"}) END_INTERFACE_MEMBER(ITextItemView) BEGIN_CLASS_MEMBER(TextItem) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_CONSTRUCTOR(Ptr(const WString&), {L"text"}) CLASS_MEMBER_CONSTRUCTOR(Ptr(const WString&, bool), {L"text" _ L"checked"}) CLASS_MEMBER_PROPERTY_FAST(Text) CLASS_MEMBER_PROPERTY_FAST(Checked) END_CLASS_MEMBER(TextItem) BEGIN_CLASS_MEMBER(TextItemProvider) CLASS_MEMBER_BASE(GuiListControl::IItemProvider) CLASS_MEMBER_BASE(ITextItemView) END_CLASS_MEMBER(TextItemProvider) BEGIN_ENUM_ITEM(TextListView) ENUM_CLASS_ITEM(Text) ENUM_CLASS_ITEM(Check) ENUM_CLASS_ITEM(Radio) ENUM_CLASS_ITEM(Unknown) END_ENUM_ITEM(TextListView) BEGIN_INTERFACE_MEMBER(IListViewItemView) INTERFACE_IDENTIFIER(vl::presentation::controls::list::IListViewItemView) CLASS_MEMBER_METHOD(GetSmallImage, {L"itemIndex"}) CLASS_MEMBER_METHOD(GetLargeImage, {L"itemIndex"}) CLASS_MEMBER_METHOD(GetText, {L"itemIndex"}) CLASS_MEMBER_METHOD(GetSubItem, {L"itemIndex" _ L"index"}) CLASS_MEMBER_METHOD(GetDataColumnCount, NO_PARAMETER) CLASS_MEMBER_METHOD(GetDataColumn, {L"index"}) CLASS_MEMBER_METHOD(GetColumnCount, NO_PARAMETER) CLASS_MEMBER_METHOD(GetColumnText, {L"index"}) END_INTERFACE_MEMBER(ListViewItemStyleProvider::IListViewItemView) BEGIN_CLASS_MEMBER(ListViewColumnItemArranger) CLASS_MEMBER_BASE(FixedHeightItemArranger) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) END_CLASS_MEMBER(ListViewColumnItemArranger) BEGIN_CLASS_MEMBER(ListViewColumnItemArranger::IColumnItemViewCallback) CLASS_MEMBER_METHOD(OnColumnChanged, NO_PARAMETER) END_CLASS_MEMBER(ListViewColumnItemArranger::IColumnItemViewCallback) BEGIN_INTERFACE_MEMBER(ListViewColumnItemArranger::IColumnItemView) CLASS_MEMBER_BASE(IDescriptable) INTERFACE_IDENTIFIER(vl::presentation::controls::list::ListViewColumnItemArranger::IColumnItemView) CLASS_MEMBER_METHOD(AttachCallback, {L"value"}) CLASS_MEMBER_METHOD(DetachCallback, {L"value"}) CLASS_MEMBER_METHOD(GetColumnSize, {L"index"}) CLASS_MEMBER_METHOD(SetColumnSize, {L"index" _ L"value"}) CLASS_MEMBER_METHOD(GetDropdownPopup, {L"index"}) CLASS_MEMBER_METHOD(GetSortingState, {L"index"}) END_INTERFACE_MEMBER(ListViewColumnItemArranger::IColumnItemView) BEGIN_CLASS_MEMBER(ListViewItem) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_FAST(SmallImage) CLASS_MEMBER_PROPERTY_FAST(LargeImage) CLASS_MEMBER_PROPERTY_FAST(Text) CLASS_MEMBER_PROPERTY_READONLY_FAST(SubItems) CLASS_MEMBER_PROPERTY_FAST(Tag) END_CLASS_MEMBER(ListViewItem) BEGIN_CLASS_MEMBER(ListViewColumn) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_CONSTRUCTOR(Ptr(const WString&), {L"text"}) CLASS_MEMBER_CONSTRUCTOR(Ptr(const WString&, vint), {L"text" _ L"size"}) CLASS_MEMBER_PROPERTY_FAST(Text) CLASS_MEMBER_PROPERTY_FAST(TextProperty) CLASS_MEMBER_PROPERTY_FAST(Size) CLASS_MEMBER_PROPERTY_FAST(OwnPopup) CLASS_MEMBER_PROPERTY_FAST(DropdownPopup) CLASS_MEMBER_PROPERTY_FAST(SortingState) END_CLASS_MEMBER(ListViewColumn) BEGIN_CLASS_MEMBER(ListViewItemProvider) CLASS_MEMBER_BASE(GuiListControl::IItemProvider) CLASS_MEMBER_BASE(IListViewItemView) CLASS_MEMBER_BASE(ListViewColumnItemArranger::IColumnItemView) END_CLASS_MEMBER(ListViewItemProvider) BEGIN_ENUM_ITEM(ListViewView) ENUM_CLASS_ITEM(BigIcon) ENUM_CLASS_ITEM(SmallIcon) ENUM_CLASS_ITEM(List) ENUM_CLASS_ITEM(Tile) ENUM_CLASS_ITEM(Information) ENUM_CLASS_ITEM(Detail) ENUM_CLASS_ITEM(Unknown) END_ENUM_ITEM(ListViewView) BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiMenuService) INTERFACE_IDENTIFIER(vl::presentation::controls::IGuiMenuService) CLASS_MEMBER_METHOD(GetParentMenuService, NO_PARAMETER) CLASS_MEMBER_METHOD(GetPreferredDirection, NO_PARAMETER) CLASS_MEMBER_METHOD(IsActiveState, NO_PARAMETER) CLASS_MEMBER_METHOD(IsSubMenuActivatedByMouseDown, NO_PARAMETER) CLASS_MEMBER_METHOD(MenuItemExecuted, NO_PARAMETER) CLASS_MEMBER_METHOD(GetOpeningMenu, NO_PARAMETER) CLASS_MEMBER_METHOD(MenuOpened, {L"menu"}) CLASS_MEMBER_METHOD(MenuClosed, {L"menu"}) END_INTERFACE_MEMBER(IGuiMenuService) BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiMenuDropdownProvider) INTERFACE_IDENTIFIER(vl::presentation::controls::IGuiMenuDropdownProvider) CLASS_MEMBER_METHOD(ProvideDropdownMenu, NO_PARAMETER) END_INTERFACE_MEMBER(IGuiMenuDropdownProvider) BEGIN_ENUM_ITEM(IGuiMenuService::Direction) ENUM_ITEM_NAMESPACE(IGuiMenuService) ENUM_NAMESPACE_ITEM(Horizontal) ENUM_NAMESPACE_ITEM(Vertical) END_ENUM_ITEM(IGuiMenuService::Direction) BEGIN_INTERFACE_MEMBER_NOPROXY(INodeProviderCallback) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_METHOD(OnAttached, {L"provider"}) CLASS_MEMBER_METHOD(OnBeforeItemModified, {L"parentNode" _ L"start" _ L"count" _ L"newCount"}) CLASS_MEMBER_METHOD(OnAfterItemModified, {L"parentNode" _ L"start" _ L"count" _ L"newCount"}) CLASS_MEMBER_METHOD(OnItemExpanded, {L"node"}) CLASS_MEMBER_METHOD(OnItemCollapsed, {L"node"}) END_INTERFACE_MEMBER(INodeProviderCallback) BEGIN_INTERFACE_MEMBER(INodeProvider) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_PROPERTY_FAST(Expanding) CLASS_MEMBER_PROPERTY_READONLY_FAST(ChildCount) CLASS_MEMBER_PROPERTY_READONLY_FAST(Parent) CLASS_MEMBER_METHOD(CalculateTotalVisibleNodes, NO_PARAMETER) CLASS_MEMBER_METHOD(GetChild, {L"index"}) END_INTERFACE_MEMBER(INodeProvider) BEGIN_INTERFACE_MEMBER(INodeRootProvider) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_PROPERTY_READONLY_FAST(RootNode) CLASS_MEMBER_METHOD(CanGetNodeByVisibleIndex, NO_PARAMETER) CLASS_MEMBER_METHOD(GetNodeByVisibleIndex, {L"index"}) CLASS_MEMBER_METHOD(AttachCallback, {L"value"}) CLASS_MEMBER_METHOD(DetachCallback, {L"value"}) CLASS_MEMBER_METHOD(GetTextValue, { L"node" }) CLASS_MEMBER_METHOD(GetBindingValue, { L"node" }) CLASS_MEMBER_METHOD(RequestView, {L"identifier"}) END_INTERFACE_MEMBER(INodeRootProvider) BEGIN_INTERFACE_MEMBER(INodeItemView) INTERFACE_IDENTIFIER(vl::presentation::controls::tree::INodeItemView) CLASS_MEMBER_METHOD(RequestNode, {L"index"}) CLASS_MEMBER_METHOD(CalculateNodeVisibilityIndex, {L"node"}) END_INTERFACE_MEMBER(INodeItemView) BEGIN_CLASS_MEMBER(NodeItemProvider) CLASS_MEMBER_BASE(ItemProviderBase) CLASS_MEMBER_BASE(INodeItemView) END_CLASS_MEMBER(NodeItemProvider) BEGIN_CLASS_MEMBER(MemoryNodeProvider) CLASS_MEMBER_BASE(INodeProvider) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_CONSTRUCTOR(Ptr(Ptr), {L"data"}) CLASS_MEMBER_PROPERTY_FAST(Data) CLASS_MEMBER_METHOD(NotifyDataModified, NO_PARAMETER) CLASS_MEMBER_METHOD_RENAME(GetChildren, Children, NO_PARAMETER) CLASS_MEMBER_PROPERTY_READONLY(Children, GetChildren) END_CLASS_MEMBER(MemoryNodeProvider) BEGIN_CLASS_MEMBER(NodeRootProviderBase) CLASS_MEMBER_BASE(INodeRootProvider) END_CLASS_MEMBER(NodeRootProviderBase) BEGIN_CLASS_MEMBER(MemoryNodeRootProvider) CLASS_MEMBER_BASE(MemoryNodeProvider) CLASS_MEMBER_BASE(NodeRootProviderBase) CLASS_MEMBER_PROPERTY_READONLY_FAST(RootNode) CLASS_MEMBER_METHOD(GetMemoryNode, {L"node"}) END_CLASS_MEMBER(MemoryNodeRootProvider) BEGIN_INTERFACE_MEMBER(ITreeViewItemView) INTERFACE_IDENTIFIER(vl::presentation::controls::tree::ITreeViewItemView) CLASS_MEMBER_METHOD(GetNodeImage, {L"node"}) END_INTERFACE_MEMBER(ITreeViewItemView) BEGIN_CLASS_MEMBER(TreeViewItem) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_CONSTRUCTOR(Ptr(const Ptr&, const WString&), {L"image" _ L"text"}) CLASS_MEMBER_FIELD(image) CLASS_MEMBER_FIELD(text) CLASS_MEMBER_FIELD(tag) END_CLASS_MEMBER(TreeViewItem) BEGIN_CLASS_MEMBER(TreeViewItemRootProvider) CLASS_MEMBER_BASE(MemoryNodeRootProvider) CLASS_MEMBER_BASE(ITreeViewItemView) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_METHOD(GetTreeViewData, {L"node"}) CLASS_MEMBER_METHOD(SetTreeViewData, {L"node" _ L"value"}) CLASS_MEMBER_METHOD(UpdateTreeViewData, {L"node"}) END_CLASS_MEMBER(TreeViewItemRootProvider) BEGIN_CLASS_MEMBER(GuiToolstripCommand) CLASS_MEMBER_BASE(GuiComponent) CLASS_MEMBER_CONSTRUCTOR(GuiToolstripCommand*(), NO_PARAMETER) CLASS_MEMBER_GUIEVENT(Executed) CLASS_MEMBER_GUIEVENT(DescriptionChanged) CLASS_MEMBER_PROPERTY_EVENT_FAST(LargeImage, DescriptionChanged) CLASS_MEMBER_PROPERTY_EVENT_FAST(Image, DescriptionChanged) CLASS_MEMBER_PROPERTY_EVENT_FAST(Text, DescriptionChanged) CLASS_MEMBER_PROPERTY_EVENT_FAST(Shortcut, DescriptionChanged) CLASS_MEMBER_PROPERTY_EVENT_FAST(ShortcutBuilder, DescriptionChanged) CLASS_MEMBER_PROPERTY_EVENT_FAST(Enabled, DescriptionChanged) CLASS_MEMBER_PROPERTY_EVENT_FAST(Selected, DescriptionChanged) END_CLASS_MEMBER(GuiToolstripCommand) BEGIN_ENUM_ITEM(RibbonButtonSize) ENUM_CLASS_ITEM(Large) ENUM_CLASS_ITEM(Small) ENUM_CLASS_ITEM(Icon) END_ENUM_ITEM(RibbonButtonSize) BEGIN_STRUCT_MEMBER(GalleryPos) STRUCT_MEMBER(group) STRUCT_MEMBER(item) END_STRUCT_MEMBER(GalleryPos) BEGIN_CLASS_MEMBER(GalleryGroup) CLASS_MEMBER_PROPERTY_READONLY_FAST(Name) CLASS_MEMBER_PROPERTY_READONLY_FAST(ItemValues) END_CLASS_MEMBER(GalleryGroup) BEGIN_CLASS_MEMBER(GroupedDataSource) CLASS_MEMBER_PROPERTY_FAST(ItemSource) CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(GroupEnabled) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(GroupTitleProperty) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(GroupChildrenProperty) CLASS_MEMBER_PROPERTY_READONLY_FAST(Groups) END_CLASS_MEMBER(GroupedDataSource) BEGIN_CLASS_MEMBER(GuiDocumentItem) CLASS_MEMBER_CONSTRUCTOR(Ptr(const WString&), { L"name" }) CLASS_MEMBER_PROPERTY_READONLY_FAST(Container) CLASS_MEMBER_PROPERTY_READONLY_FAST(Name) END_CLASS_MEMBER(GuiDocumentItem) BEGIN_ENUM_ITEM(GuiDocumentCommonInterface::EditMode) ENUM_ITEM_NAMESPACE(GuiDocumentCommonInterface) ENUM_NAMESPACE_ITEM(ViewOnly) ENUM_NAMESPACE_ITEM(Selectable) ENUM_NAMESPACE_ITEM(Editable) END_ENUM_ITEM(GuiDocumentCommonInterface::EditMode) BEGIN_INTERFACE_MEMBER(IDataGridContext) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_PROPERTY_READONLY_FAST(ItemProvider) CLASS_MEMBER_PROPERTY_READONLY_FAST(ListViewControlTemplate) CLASS_MEMBER_METHOD(RequestSaveData, NO_PARAMETER) END_INTERFACE_MEMBER(IDataGridContext) BEGIN_INTERFACE_MEMBER_NOPROXY(IDataVisualizerFactory) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_METHOD(CreateVisualizer, {L"dataGridContext"}) END_INTERFACE_MEMBER(IDataVisualizerFactory) BEGIN_INTERFACE_MEMBER_NOPROXY(IDataVisualizer) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_PROPERTY_READONLY_FAST(Factory) CLASS_MEMBER_PROPERTY_READONLY_FAST(Template) CLASS_MEMBER_METHOD(BeforeVisualizeCell, {L"itemProvider" _ L"row" _ L"column"}) CLASS_MEMBER_METHOD(SetSelected, {L"value"}) END_INTERFACE_MEMBER(IDataVisualizer) BEGIN_INTERFACE_MEMBER_NOPROXY(IDataEditorFactory) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_METHOD(CreateEditor, {L"dataGridContext"}) END_INTERFACE_MEMBER(IDataEditorFactory) BEGIN_INTERFACE_MEMBER_NOPROXY(IDataEditor) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_PROPERTY_READONLY_FAST(Factory) CLASS_MEMBER_PROPERTY_READONLY_FAST(Template) CLASS_MEMBER_PROPERTY_READONLY_FAST(CellValueSaved) CLASS_MEMBER_METHOD(BeforeEditCell, {L"itemProvider" _ L"row" _ L"column"}) END_INTERFACE_MEMBER(IDataEditor) BEGIN_INTERFACE_MEMBER(IDataGridView) CLASS_MEMBER_BASE(IDescriptable) INTERFACE_IDENTIFIER(vl::presentation::controls::list::IDataGridView) CLASS_MEMBER_PROPERTY_READONLY_FAST(SortedColumn) CLASS_MEMBER_METHOD(IsColumnSortable, {L"column"}) CLASS_MEMBER_METHOD(SortByColumn, {L"column" _ L"ascending"}) CLASS_MEMBER_METHOD(IsSortOrderAscending, NO_PARAMETER) CLASS_MEMBER_METHOD(GetCellSpan, {L"row" _ L"column"}) CLASS_MEMBER_METHOD(GetCellDataVisualizerFactory, {L"row" _ L"column"}) CLASS_MEMBER_METHOD(GetCellDataEditorFactory, {L"row" _ L"column"}) CLASS_MEMBER_METHOD(GetBindingCellValue, {L"row" _ L"column"}) CLASS_MEMBER_METHOD(SetBindingCellValue, {L"row" _ L"column" _ L"value"}) END_INTERFACE_MEMBER(IDataGridView) BEGIN_CLASS_MEMBER(DataVisualizerBase) CLASS_MEMBER_BASE(IDataVisualizer) END_CLASS_MEMBER(DataVisualizerBase) BEGIN_CLASS_MEMBER(DataVisualizerFactory) CLASS_MEMBER_BASE(IDataVisualizerFactory) CLASS_MEMBER_CONSTRUCTOR(Ptr(TemplateProperty, Ptr), { L"templateFactory" _ L"decoratedFactory"}) END_CLASS_MEMBER(DataVisualizerFactory) BEGIN_CLASS_MEMBER(DataEditorBase) CLASS_MEMBER_BASE(IDataEditor) END_CLASS_MEMBER(DataEditorBase) BEGIN_CLASS_MEMBER(DataEditorFactory) CLASS_MEMBER_BASE(IDataEditorFactory) CLASS_MEMBER_CONSTRUCTOR(Ptr(TemplateProperty), { L"templateFactory" }) END_CLASS_MEMBER(DataEditorFactory) BEGIN_INTERFACE_MEMBER(IDataProcessorCallback) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_PROPERTY_READONLY_FAST(ItemProvider) CLASS_MEMBER_METHOD(OnProcessorChanged, NO_PARAMETER) END_INTERFACE_MEMBER(IDataProcessorCallback) BEGIN_INTERFACE_MEMBER(IDataFilter) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_METHOD(SetCallback, { L"value" }) CLASS_MEMBER_METHOD(Filter, { L"row" }) END_INTERFACE_MEMBER(IDataFilter) BEGIN_INTERFACE_MEMBER(IDataSorter) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_METHOD(SetCallback, { L"value" }) CLASS_MEMBER_METHOD(Compare, { L"row1" _ L"row2" }) END_INTERFACE_MEMBER(IDataSorter) BEGIN_CLASS_MEMBER(DataFilterBase) CLASS_MEMBER_BASE(IDataFilter) END_CLASS_MEMBER(DataFilterBase) BEGIN_CLASS_MEMBER(DataMultipleFilter) CLASS_MEMBER_BASE(DataFilterBase) CLASS_MEMBER_METHOD(AddSubFilter, {L"value"}) CLASS_MEMBER_METHOD(RemoveSubFilter, {L"value"}) END_CLASS_MEMBER(DataMultipleFilter) BEGIN_CLASS_MEMBER(DataAndFilter) CLASS_MEMBER_BASE(DataMultipleFilter) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) END_CLASS_MEMBER(DataAndFilter) BEGIN_CLASS_MEMBER(DataOrFilter) CLASS_MEMBER_BASE(DataMultipleFilter) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) END_CLASS_MEMBER(DataOrFilter) BEGIN_CLASS_MEMBER(DataNotFilter) CLASS_MEMBER_BASE(DataFilterBase) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_METHOD(SetSubFilter, {L"value"}) END_CLASS_MEMBER(DataNotFilter) BEGIN_CLASS_MEMBER(DataSorterBase) CLASS_MEMBER_BASE(IDataSorter) END_CLASS_MEMBER(DataSorterBase) BEGIN_CLASS_MEMBER(DataMultipleSorter) CLASS_MEMBER_BASE(DataSorterBase) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_METHOD(SetLeftSorter, {L"value"}) CLASS_MEMBER_METHOD(SetRightSorter, {L"value"}) END_CLASS_MEMBER(DataMultipleSorter) BEGIN_CLASS_MEMBER(DataReverseSorter) CLASS_MEMBER_BASE(DataSorterBase) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_METHOD(SetSubSorter, {L"value"}) END_CLASS_MEMBER(DataReverseSorter) BEGIN_CLASS_MEMBER(DataColumn) CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER) CLASS_MEMBER_PROPERTY_FAST(Text) CLASS_MEMBER_PROPERTY_FAST(Size) CLASS_MEMBER_PROPERTY_FAST(OwnPopup) CLASS_MEMBER_PROPERTY_FAST(Popup) CLASS_MEMBER_PROPERTY_FAST(Filter) CLASS_MEMBER_PROPERTY_FAST(Sorter) CLASS_MEMBER_PROPERTY_FAST(VisualizerFactory) CLASS_MEMBER_PROPERTY_FAST(EditorFactory) CLASS_MEMBER_METHOD(GetCellText, { L"row" }) CLASS_MEMBER_METHOD(GetCellValue, { L"row" }) CLASS_MEMBER_METHOD(SetCellValue, { L"row" _ L"value" }) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(TextProperty) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ValueProperty) END_CLASS_MEMBER(DataColumn) BEGIN_CLASS_MEMBER(DataProvider) CLASS_MEMBER_BASE(ItemProviderBase) CLASS_MEMBER_BASE(IListViewItemView) CLASS_MEMBER_BASE(ListViewColumnItemArranger::IColumnItemView) CLASS_MEMBER_BASE(IDataGridView) CLASS_MEMBER_BASE(IDataProcessorCallback) END_CLASS_MEMBER(DataProvider) /*********************************************************************** Type Declaration (Class) ***********************************************************************/ BEGIN_CLASS_MEMBER(GuiDisposedFlag) CLASS_MEMBER_METHOD(IsDisposed, NO_PARAMETER) END_CLASS_MEMBER(GuiDisposedFlag) BEGIN_CLASS_MEMBER(GuiControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiControl) CLASS_MEMBER_EXTERNALMETHOD(SafeDelete, NO_PARAMETER, void(GuiControl::*)(), vl::presentation::compositions::SafeDeleteControl) CLASS_MEMBER_PROPERTY_READONLY_FAST(DisposedFlag) CLASS_MEMBER_GUIEVENT(ControlSignalTrigerred) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ControlThemeName) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ControlTemplate) CLASS_MEMBER_PROPERTY_READONLY_FAST(ControlTemplateObject) CLASS_MEMBER_PROPERTY_READONLY_FAST(BoundsComposition) CLASS_MEMBER_PROPERTY_READONLY_FAST(ContainerComposition) CLASS_MEMBER_PROPERTY_READONLY_FAST(FocusableComposition) CLASS_MEMBER_PROPERTY_READONLY_FAST(Parent) CLASS_MEMBER_PROPERTY_READONLY_FAST(ChildrenCount) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(RelatedControlHost, RenderTargetChanged) CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(VisuallyEnabled) CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(Focused) CLASS_MEMBER_PROPERTY_FAST(AcceptTabInput) CLASS_MEMBER_PROPERTY_FAST(TabPriority) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Enabled) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Visible) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Alt) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Text) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Font) CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(DisplayFont) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Context) CLASS_MEMBER_PROPERTY_FAST(Tag) CLASS_MEMBER_PROPERTY_FAST(TooltipControl) CLASS_MEMBER_PROPERTY_FAST(TooltipWidth) CLASS_MEMBER_METHOD(SetControlThemeNameAndTemplate, { L"themeNameValue" _ L"controlTemplateValue" }) CLASS_MEMBER_METHOD(SetActivatingAltHost, { L"host" }) CLASS_MEMBER_METHOD(GetChild, {L"index"}) CLASS_MEMBER_METHOD(AddChild, {L"control"}) CLASS_MEMBER_METHOD(HasChild, {L"control"}) CLASS_MEMBER_METHOD(SetFocus, NO_PARAMETER) CLASS_MEMBER_METHOD(DisplayTooltip, {L"location"}) CLASS_MEMBER_METHOD(CloseTooltip, NO_PARAMETER) CLASS_MEMBER_METHOD(QueryService, {L"identifier"}) CLASS_MEMBER_METHOD(AddService, { L"identifier" _ L"value" }) END_CLASS_MEMBER(GuiControl) BEGIN_CLASS_MEMBER(GuiCustomControl) CLASS_MEMBER_BASE(GuiControl) CLASS_MEMBER_BASE(GuiInstanceRootObject) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiCustomControl) END_CLASS_MEMBER(GuiCustomControl) BEGIN_CLASS_MEMBER(GuiLabel) CLASS_MEMBER_BASE(GuiControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiLabel) CLASS_MEMBER_PROPERTY_FAST(TextColor) END_CLASS_MEMBER(GuiLabel) BEGIN_CLASS_MEMBER(GuiButton) CLASS_MEMBER_BASE(GuiControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiButton) CLASS_MEMBER_GUIEVENT(Clicked) CLASS_MEMBER_PROPERTY_FAST(ClickOnMouseUp) CLASS_MEMBER_PROPERTY_FAST(AutoFocus) CLASS_MEMBER_PROPERTY_FAST(IgnoreChildControlMouseEvents) END_CLASS_MEMBER(GuiButton) BEGIN_CLASS_MEMBER(GuiSelectableButton) CLASS_MEMBER_BASE(GuiButton) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiSelectableButton) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(GroupController) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(AutoSelection) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Selected) END_CLASS_MEMBER(GuiSelectableButton) BEGIN_CLASS_MEMBER(GuiScroll) CLASS_MEMBER_BASE(GuiControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiScroll) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(TotalSize) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(PageSize) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Position) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SmallMove) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(BigMove) CLASS_MEMBER_PROPERTY_READONLY_FAST(MinPosition) CLASS_MEMBER_PROPERTY_READONLY_FAST(MaxPosition) CLASS_MEMBER_PROPERTY_FAST(AutoFocus) END_CLASS_MEMBER(GuiScroll) BEGIN_CLASS_MEMBER(GuiTabPage) CLASS_MEMBER_BASE(GuiCustomControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiTabPage) CLASS_MEMBER_PROPERTY_READONLY_FAST(OwnerTab) END_CLASS_MEMBER(GuiTabPage) BEGIN_CLASS_MEMBER(GuiTab) CLASS_MEMBER_BASE(GuiControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiTab) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SelectedPage) CLASS_MEMBER_PROPERTY_READONLY_FAST(Pages) END_CLASS_MEMBER(GuiTab) BEGIN_CLASS_MEMBER(GuiScrollView) CLASS_MEMBER_BASE(GuiControl) CLASS_MEMBER_PROPERTY_READONLY_FAST(ViewSize) CLASS_MEMBER_PROPERTY_READONLY_FAST(ViewBounds) CLASS_MEMBER_PROPERTY_READONLY_FAST(ViewPosition) CLASS_MEMBER_PROPERTY_READONLY_FAST(HorizontalScroll) CLASS_MEMBER_PROPERTY_READONLY_FAST(VerticalScroll) CLASS_MEMBER_PROPERTY_FAST(HorizontalAlwaysVisible) CLASS_MEMBER_PROPERTY_FAST(VerticalAlwaysVisible) CLASS_MEMBER_METHOD(CalculateView, NO_PARAMETER) END_CLASS_MEMBER(GuiScrollView) BEGIN_CLASS_MEMBER(GuiScrollContainer) CLASS_MEMBER_BASE(GuiScrollView) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiScrollContainer) CLASS_MEMBER_PROPERTY_FAST(ExtendToFullWidth) CLASS_MEMBER_PROPERTY_FAST(ExtendToFullHeight) END_CLASS_MEMBER(GuiScrollContainer) BEGIN_CLASS_MEMBER(GuiControlHost) CLASS_MEMBER_BASE(GuiControl) CLASS_MEMBER_BASE(GuiInstanceRootObject) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiControlHost, INativeWindow::WindowMode, mode) CLASS_MEMBER_GUIEVENT(WindowGotFocus) CLASS_MEMBER_GUIEVENT(WindowLostFocus) CLASS_MEMBER_GUIEVENT(WindowActivated) CLASS_MEMBER_GUIEVENT(WindowDeactivated) CLASS_MEMBER_GUIEVENT(WindowOpened) CLASS_MEMBER_GUIEVENT(WindowClosing) CLASS_MEMBER_GUIEVENT(WindowClosed) CLASS_MEMBER_GUIEVENT(WindowDestroying) CLASS_MEMBER_PROPERTY_READONLY_FAST(MainComposition) CLASS_MEMBER_PROPERTY_FAST(ShowInTaskBar) CLASS_MEMBER_PROPERTY_FAST(EnabledActivate) CLASS_MEMBER_PROPERTY_FAST(TopMost) CLASS_MEMBER_PROPERTY_FAST(ClientSize) CLASS_MEMBER_PROPERTY_FAST(Location) CLASS_MEMBER_PROPERTY_FAST(ShortcutKeyManager) CLASS_MEMBER_PROPERTY_READONLY_FAST(RelatedScreen) CLASS_MEMBER_METHOD(DeleteAfterProcessingAllEvents, NO_PARAMETER) CLASS_MEMBER_METHOD(ForceCalculateSizeImmediately, NO_PARAMETER) CLASS_MEMBER_METHOD(GetFocused, NO_PARAMETER) CLASS_MEMBER_METHOD(SetFocused, NO_PARAMETER) CLASS_MEMBER_METHOD(GetActivated, NO_PARAMETER) CLASS_MEMBER_METHOD(SetActivated, NO_PARAMETER) CLASS_MEMBER_METHOD(SetBounds, {L"location" _ L"size"}) CLASS_MEMBER_METHOD(Show, NO_PARAMETER) CLASS_MEMBER_METHOD(ShowDeactivated, NO_PARAMETER) CLASS_MEMBER_METHOD(ShowRestored, NO_PARAMETER) CLASS_MEMBER_METHOD(ShowMaximized, NO_PARAMETER) CLASS_MEMBER_METHOD(ShowMinimized, NO_PARAMETER) CLASS_MEMBER_METHOD(Hide, NO_PARAMETER) CLASS_MEMBER_METHOD(Close, NO_PARAMETER) CLASS_MEMBER_METHOD(GetOpening, NO_PARAMETER) END_CLASS_MEMBER(GuiControlHost) BEGIN_CLASS_MEMBER(GuiWindow) CLASS_MEMBER_BASE(GuiControlHost) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiWindow) CLASS_MEMBER_GUIEVENT(ClipboardUpdated) CLASS_MEMBER_PROPERTY_FAST(MaximizedBox) CLASS_MEMBER_PROPERTY_FAST(MinimizedBox) CLASS_MEMBER_PROPERTY_FAST(Border) CLASS_MEMBER_PROPERTY_FAST(SizeBox) CLASS_MEMBER_PROPERTY_FAST(IconVisible) CLASS_MEMBER_PROPERTY_FAST(TitleBar) CLASS_MEMBER_PROPERTY_FAST(Icon) CLASS_MEMBER_METHOD_OVERLOAD(MoveToScreenCenter, NO_PARAMETER, void(GuiWindow::*)()) CLASS_MEMBER_METHOD_OVERLOAD(MoveToScreenCenter, { L"screen" }, void(GuiWindow::*)(INativeScreen*)) CLASS_MEMBER_METHOD(ShowModal, { L"owner" _ L"callback" }) CLASS_MEMBER_METHOD(ShowModalAndDelete, { L"owner" _ L"callback" }) CLASS_MEMBER_METHOD(ShowModalAsync, { L"owner" }) END_CLASS_MEMBER(GuiWindow) BEGIN_CLASS_MEMBER(GuiPopup) CLASS_MEMBER_BASE(GuiWindow) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiPopup) CLASS_MEMBER_METHOD_OVERLOAD(ShowPopup, {L"location" _ L"screen"}, void(GuiPopup::*)(NativePoint _ INativeScreen*)) CLASS_MEMBER_METHOD_OVERLOAD(ShowPopup, {L"control" _ L"bounds" _ L"preferredTopBottomSide"}, void(GuiPopup::*)(GuiControl* _ Rect _ bool)) CLASS_MEMBER_METHOD_OVERLOAD(ShowPopup, {L"control" _ L"location"}, void(GuiPopup::*)(GuiControl* _ Point)) CLASS_MEMBER_METHOD_OVERLOAD(ShowPopup, {L"control" _ L"preferredTopBottomSide"}, void(GuiPopup::*)(GuiControl* _ bool)) END_CLASS_MEMBER(GuiPopup) BEGIN_CLASS_MEMBER(GuiTooltip) CLASS_MEMBER_BASE(GuiPopup) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiTooltip) CLASS_MEMBER_PROPERTY_FAST(PreferredContentWidth) CLASS_MEMBER_PROPERTY_FAST(TemporaryContentControl) END_CLASS_MEMBER(GuiTooltip) BEGIN_CLASS_MEMBER(GuiListControl) CLASS_MEMBER_BASE(GuiScrollView) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_3(GuiListControl, GuiListControl::IItemProvider*, itemProvider, bool, acceptFocus) CLASS_MEMBER_GUIEVENT(AdoptedSizeInvalidated) CLASS_MEMBER_GUIEVENT(ItemLeftButtonDown) CLASS_MEMBER_GUIEVENT(ItemLeftButtonUp) CLASS_MEMBER_GUIEVENT(ItemLeftButtonDoubleClick) CLASS_MEMBER_GUIEVENT(ItemMiddleButtonDown) CLASS_MEMBER_GUIEVENT(ItemMiddleButtonUp) CLASS_MEMBER_GUIEVENT(ItemMiddleButtonDoubleClick) CLASS_MEMBER_GUIEVENT(ItemRightButtonDown) CLASS_MEMBER_GUIEVENT(ItemRightButtonUp) CLASS_MEMBER_GUIEVENT(ItemRightButtonDoubleClick) CLASS_MEMBER_GUIEVENT(ItemMouseMove) CLASS_MEMBER_GUIEVENT(ItemMouseEnter) CLASS_MEMBER_GUIEVENT(ItemMouseLeave) CLASS_MEMBER_PROPERTY_READONLY_FAST(ItemProvider) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ItemTemplate) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Arranger) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Axis) CLASS_MEMBER_PROPERTY_FAST(DisplayItemBackground) CLASS_MEMBER_METHOD(EnsureItemVisible, {L"itemIndex"}) CLASS_MEMBER_METHOD(GetAdoptedSize, {L"expectedSize"}) END_CLASS_MEMBER(GuiListControl) BEGIN_CLASS_MEMBER(GuiSelectableListControl) CLASS_MEMBER_BASE(GuiListControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiSelectableListControl, GuiListControl::IItemProvider*, itemProvider) CLASS_MEMBER_GUIEVENT(SelectionChanged) CLASS_MEMBER_PROPERTY_FAST(MultiSelect) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItems, SelectionChanged) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItemIndex, SelectionChanged) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItemText, SelectionChanged) CLASS_MEMBER_METHOD(GetSelected, {L"itemIndex"}) CLASS_MEMBER_METHOD(SetSelected, {L"itemIndex" _ L"value"}) CLASS_MEMBER_METHOD(SelectItemsByClick, {L"itemIndex" _ L"ctrl" _ L"shift" _ L"leftButton"}) CLASS_MEMBER_METHOD(SelectItemsByKey, {L"code" _ L"ctrl" _ L"shift"}) CLASS_MEMBER_METHOD(ClearSelection, NO_PARAMETER) END_CLASS_MEMBER(GuiSelectableListControl) BEGIN_CLASS_MEMBER(GuiVirtualTextList) CLASS_MEMBER_BASE(GuiSelectableListControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2(GuiVirtualTextList, GuiListControl::IItemProvider*, L"itemProvider") CLASS_MEMBER_GUIEVENT(ItemChecked) CLASS_MEMBER_PROPERTY_FAST(View) END_CLASS_MEMBER(GuiVirtualTextList) BEGIN_CLASS_MEMBER(GuiTextList) CLASS_MEMBER_BASE(GuiVirtualTextList) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiTextList) CLASS_MEMBER_PROPERTY_READONLY_FAST(Items) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItem, SelectionChanged) END_CLASS_MEMBER(GuiTextList) BEGIN_CLASS_MEMBER(GuiListViewColumnHeader) CLASS_MEMBER_BASE(GuiMenuButton) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiListViewColumnHeader) CLASS_MEMBER_PROPERTY_FAST(ColumnSortingState) END_CLASS_MEMBER(GuiListViewColumnHeader) BEGIN_CLASS_MEMBER(GuiListViewBase) CLASS_MEMBER_BASE(GuiSelectableListControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2(GuiListViewBase, GuiListControl::IItemProvider*, itemProvider) CLASS_MEMBER_GUIEVENT(ColumnClicked) END_CLASS_MEMBER(GuiListViewBase) BEGIN_CLASS_MEMBER(GuiVirtualListView) CLASS_MEMBER_BASE(GuiListViewBase) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiVirtualListView, GuiListControl::IItemProvider*, itemProvider) CLASS_MEMBER_PROPERTY_FAST(View) END_CLASS_MEMBER(GuiVirtualListView) BEGIN_CLASS_MEMBER(GuiListView) CLASS_MEMBER_BASE(GuiVirtualListView) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiListView) CLASS_MEMBER_PROPERTY_READONLY_FAST(DataColumns) CLASS_MEMBER_PROPERTY_READONLY_FAST(Columns) CLASS_MEMBER_PROPERTY_READONLY_FAST(Items) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItem, SelectionChanged) END_CLASS_MEMBER(GuiListView) BEGIN_CLASS_MEMBER(GuiMenu) CLASS_MEMBER_BASE(GuiPopup) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2(GuiMenu, GuiControl*, owner) CLASS_MEMBER_PROPERTY_FAST(HideOnDeactivateAltHost) CLASS_MEMBER_METHOD(UpdateMenuService, NO_PARAMETER) END_CLASS_MEMBER(GuiMenu) BEGIN_CLASS_MEMBER(GuiMenuBar) CLASS_MEMBER_BASE(GuiControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiMenuBar) END_CLASS_MEMBER(GuiMenuBar) BEGIN_CLASS_MEMBER(GuiMenuButton) CLASS_MEMBER_BASE(GuiSelectableButton) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiMenuButton) CLASS_MEMBER_GUIEVENT(BeforeSubMenuOpening) CLASS_MEMBER_GUIEVENT(AfterSubMenuOpening) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(LargeImage) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Image) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ShortcutText) CLASS_MEMBER_PROPERTY_READONLY_FAST(SubMenu) CLASS_MEMBER_PROPERTY_READONLY_FAST(OwnedSubMenu) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SubMenuOpening) CLASS_MEMBER_PROPERTY_FAST(PreferredMenuClientSize) CLASS_MEMBER_PROPERTY_FAST(CascadeAction) CLASS_MEMBER_METHOD(IsSubMenuExists, NO_PARAMETER) CLASS_MEMBER_METHOD(CreateSubMenu, {L"subMenuStyleController"}) CLASS_MEMBER_METHOD(SetSubMenu, {L"value" _ L"owned"}) END_CLASS_MEMBER(GuiMenuButton) BEGIN_CLASS_MEMBER(GuiVirtualTreeListControl) CLASS_MEMBER_BASE(GuiSelectableListControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2(GuiVirtualTreeListControl, Ptr, rootNodeProvider) CLASS_MEMBER_GUIEVENT(NodeLeftButtonDown) CLASS_MEMBER_GUIEVENT(NodeLeftButtonUp) CLASS_MEMBER_GUIEVENT(NodeLeftButtonDoubleClick) CLASS_MEMBER_GUIEVENT(NodeMiddleButtonDown) CLASS_MEMBER_GUIEVENT(NodeMiddleButtonUp) CLASS_MEMBER_GUIEVENT(NodeMiddleButtonDoubleClick) CLASS_MEMBER_GUIEVENT(NodeRightButtonDown) CLASS_MEMBER_GUIEVENT(NodeRightButtonUp) CLASS_MEMBER_GUIEVENT(NodeRightButtonDoubleClick) CLASS_MEMBER_GUIEVENT(NodeMouseMove) CLASS_MEMBER_GUIEVENT(NodeMouseEnter) CLASS_MEMBER_GUIEVENT(NodeMouseLeave) CLASS_MEMBER_GUIEVENT(NodeExpanded) CLASS_MEMBER_GUIEVENT(NodeCollapsed) CLASS_MEMBER_PROPERTY_READONLY_FAST(NodeItemView) CLASS_MEMBER_PROPERTY_READONLY_FAST(NodeRootProvider) END_CLASS_MEMBER(GuiVirtualTreeListControl) BEGIN_CLASS_MEMBER(GuiVirtualTreeView) CLASS_MEMBER_BASE(GuiVirtualTreeListControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiVirtualTreeView, Ptr, rootNodeProvider) END_CLASS_MEMBER(GuiVirtualTreeView) BEGIN_CLASS_MEMBER(GuiTreeView) CLASS_MEMBER_BASE(GuiVirtualTreeView) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiTreeView) CLASS_MEMBER_METHOD_RENAME(GetNodes, Nodes, NO_PARAMETER) CLASS_MEMBER_PROPERTY_READONLY(Nodes, GetNodes) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItem, SelectionChanged) END_CLASS_MEMBER(GuiTreeView) BEGIN_CLASS_MEMBER(GuiComboBoxBase) CLASS_MEMBER_BASE(GuiMenuButton) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiComboBoxBase) END_CLASS_MEMBER(GuiComboBoxBase) BEGIN_CLASS_MEMBER(GuiComboBoxListControl) CLASS_MEMBER_BASE(GuiComboBoxBase) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiComboBoxListControl, GuiSelectableListControl*, containedListControl) CLASS_MEMBER_PROPERTY_READONLY_FAST(ContainedListControl) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ItemTemplate) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SelectedIndex) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItem, SelectedIndexChanged) CLASS_MEMBER_PROPERTY_READONLY_FAST(ItemProvider) END_CLASS_MEMBER(GuiComboBoxListControl) BEGIN_CLASS_MEMBER(GuiToolstripMenu) CLASS_MEMBER_BASE(GuiMenu) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiToolstripMenu, GuiControl*, owner) CLASS_MEMBER_PROPERTY_READONLY_FAST(ToolstripItems) END_CLASS_MEMBER(GuiToolstripMenu) BEGIN_CLASS_MEMBER(GuiToolstripMenuBar) CLASS_MEMBER_BASE(GuiMenuBar) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiToolstripMenuBar) CLASS_MEMBER_PROPERTY_READONLY_FAST(ToolstripItems) END_CLASS_MEMBER(GuiToolstripMenuBar) BEGIN_CLASS_MEMBER(GuiToolstripToolBar) CLASS_MEMBER_BASE(GuiControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiToolstripToolBar) CLASS_MEMBER_PROPERTY_READONLY_FAST(ToolstripItems) END_CLASS_MEMBER(GuiToolstripToolBar) BEGIN_CLASS_MEMBER(GuiToolstripButton) CLASS_MEMBER_BASE(GuiMenuButton) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiToolstripButton) CLASS_MEMBER_PROPERTY_FAST(Command) CLASS_MEMBER_PROPERTY_READONLY_FAST(ToolstripSubMenu) CLASS_MEMBER_METHOD(EnsureToolstripSubMenu, NO_PARAMETER) CLASS_MEMBER_METHOD(CreateToolstripSubMenu, {L"subMenuStyleController"}) END_CLASS_MEMBER(GuiToolstripButton) BEGIN_CLASS_MEMBER(GuiToolstripNestedContainer) CLASS_MEMBER_BASE(GuiControl) END_CLASS_MEMBER(GuiToolstripGroupContainer) BEGIN_CLASS_MEMBER(GuiToolstripGroupContainer) CLASS_MEMBER_BASE(GuiToolstripNestedContainer) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiToolstripGroupContainer) CLASS_MEMBER_PROPERTY_FAST(SplitterTemplate) CLASS_MEMBER_PROPERTY_READONLY_FAST(ToolstripItems) END_CLASS_MEMBER(GuiToolstripGroupContainer) BEGIN_CLASS_MEMBER(GuiToolstripGroup) CLASS_MEMBER_BASE(GuiToolstripNestedContainer) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiToolstripGroup) CLASS_MEMBER_PROPERTY_READONLY_FAST(ToolstripItems) END_CLASS_MEMBER(GuiToolstripGroup) BEGIN_CLASS_MEMBER(GuiRibbonTab) CLASS_MEMBER_BASE(GuiTab) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiRibbonTab) CLASS_MEMBER_PROPERTY_READONLY_FAST(BeforeHeaders) CLASS_MEMBER_PROPERTY_READONLY_FAST(AfterHeaders) END_CLASS_MEMBER(GuiRibbonTab) BEGIN_CLASS_MEMBER(GuiRibbonTabPage) CLASS_MEMBER_BASE(GuiTabPage) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiRibbonTabPage) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Highlighted) CLASS_MEMBER_PROPERTY_READONLY_FAST(Groups) END_CLASS_MEMBER(GuiRibbonTabPage) BEGIN_CLASS_MEMBER(GuiRibbonGroup) CLASS_MEMBER_BASE(GuiControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiRibbonGroup) CLASS_MEMBER_GUIEVENT(ExpandButtonClicked) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Expandable) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(LargeImage) CLASS_MEMBER_PROPERTY_READONLY_FAST(Items) END_CLASS_MEMBER(GuiRibbonGroup) BEGIN_CLASS_MEMBER(GuiRibbonIconLabel) CLASS_MEMBER_BASE(GuiControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiRibbonIconLabel) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Image) END_CLASS_MEMBER(GuiRibbonIconLabel) BEGIN_CLASS_MEMBER(GuiRibbonButtons) CLASS_MEMBER_BASE(GuiControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_3(GuiRibbonButtons, RibbonButtonSize, maxSize, RibbonButtonSize, minSize) CLASS_MEMBER_PROPERTY_READONLY_FAST(Buttons) END_CLASS_MEMBER(GuiRibbonButtons) BEGIN_CLASS_MEMBER(GuiRibbonToolstrips) CLASS_MEMBER_BASE(GuiControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiRibbonToolstrips) CLASS_MEMBER_PROPERTY_READONLY_FAST(Groups) END_CLASS_MEMBER(GuiRibbonToolstrips) BEGIN_CLASS_MEMBER(GuiRibbonGallery) CLASS_MEMBER_BASE(GuiControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiRibbonGallery) CLASS_MEMBER_GUIEVENT(RequestedScrollUp) CLASS_MEMBER_GUIEVENT(RequestedScrollDown) CLASS_MEMBER_GUIEVENT(RequestedDropdown) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ScrollUpEnabled) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ScrollDownEnabled) END_CLASS_MEMBER(GuiRibbonGallery) BEGIN_CLASS_MEMBER(GuiRibbonToolstripMenu) CLASS_MEMBER_BASE(GuiToolstripMenu) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiRibbonToolstripMenu, GuiControl*, owner) CLASS_MEMBER_PROPERTY_READONLY_FAST(ContentComposition) END_CLASS_MEMBER(GuiRibbonToolstripMenu) BEGIN_CLASS_MEMBER(GuiBindableRibbonGalleryList) CLASS_MEMBER_BASE(GuiRibbonGallery) CLASS_MEMBER_BASE(GroupedDataSource) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiBindableRibbonGalleryList) CLASS_MEMBER_GUIEVENT(SelectionChanged) CLASS_MEMBER_GUIEVENT(PreviewStarted) CLASS_MEMBER_GUIEVENT(PreviewStopped) CLASS_MEMBER_GUIEVENT(ItemApplied) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ItemTemplate) CLASS_MEMBER_PROPERTY_READONLY_FAST(SubMenu) CLASS_MEMBER_PROPERTY_FAST(MinCount) CLASS_MEMBER_PROPERTY_FAST(MaxCount) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedIndex, SelectionChanged) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItem, SelectionChanged) CLASS_MEMBER_PROPERTY_FAST(VisibleItemCount) CLASS_MEMBER_METHOD(IndexToGalleryPos, { L"index" }) CLASS_MEMBER_METHOD(GalleryPosToIndex, { L"pos" }) CLASS_MEMBER_METHOD(ApplyItem, { L"index" }) CLASS_MEMBER_METHOD(SelectItem, { L"index" }) END_CLASS_MEMBER(GuiBindableRibbonGalleryList) BEGIN_CLASS_MEMBER(GuiDocumentCommonInterface) CLASS_MEMBER_PROPERTY_FAST(Document) CLASS_MEMBER_PROPERTY_FAST(EditMode) CLASS_MEMBER_GUIEVENT(ActiveHyperlinkChanged) CLASS_MEMBER_GUIEVENT(ActiveHyperlinkExecuted) CLASS_MEMBER_GUIEVENT(SelectionChanged) CLASS_MEMBER_GUIEVENT(UndoRedoChanged) CLASS_MEMBER_METHOD(AddDocumentItem, { L"value" }) CLASS_MEMBER_METHOD(RemoveDocumentItem, { L"value" }) CLASS_MEMBER_PROPERTY_READONLY_FAST(DocumentItems) CLASS_MEMBER_PROPERTY_READONLY_FAST(CaretBegin) CLASS_MEMBER_PROPERTY_READONLY_FAST(CaretEnd) CLASS_MEMBER_PROPERTY_READONLY_FAST(ActiveHyperlinkReference) CLASS_MEMBER_PROPERTY_EVENT_FAST(SelectionText, SelectionChanged) CLASS_MEMBER_PROPERTY_EVENT_FAST(SelectionModel, SelectionChanged) CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(Modified) CLASS_MEMBER_METHOD(SetCaret, {L"begin" _ L"end" _ L"frontSide"}) CLASS_MEMBER_METHOD(CalculateCaretFromPoint, {L"point"}) CLASS_MEMBER_METHOD(GetCaretBounds, {L"caret" _ L"frontSide"}) CLASS_MEMBER_METHOD(NotifyParagraphUpdated, {L"index" _ L"oldCount" _ L"newCount" _ L"updatedText"}) CLASS_MEMBER_METHOD(EditRun, {L"begin" _ L"end" _ L"model" _ L"copy"}) CLASS_MEMBER_METHOD(EditText, {L"begin" _ L"end" _ L"frontSide" _ L"text"}) CLASS_MEMBER_METHOD(EditStyle, {L"begin" _ L"end" _ L"style"}) CLASS_MEMBER_METHOD(EditImage, {L"begin" _ L"end" _ L"image"}) CLASS_MEMBER_METHOD(EditHyperlink, {L"paragraphIndex" _ L"begin" _ L"end" _ L"reference" _ L"normalStyleName" _ L"activeStyleName"}) CLASS_MEMBER_METHOD(RemoveHyperlink, {L"paragraphIndex" _ L"begin" _ L"end"}) CLASS_MEMBER_METHOD(EditStyleName, {L"begin" _ L"end" _ L"styleName"}) CLASS_MEMBER_METHOD(RemoveStyleName, {L"begin" _ L"end" _ L"image"}) CLASS_MEMBER_METHOD(RenameStyle, {L"oldStyleName" _ L"newStyleName"}) CLASS_MEMBER_METHOD(ClearStyle, {L"begin" _ L"end"}) CLASS_MEMBER_METHOD(SummarizeStyle, {L"begin" _ L"end"}) CLASS_MEMBER_METHOD(SummarizeStyleName, { L"begin" _ L"end" }) CLASS_MEMBER_METHOD(SetParagraphAlignments, { L"begin" _ L"end" _ L"alignments" }) CLASS_MEMBER_METHOD(SetParagraphAlignment, { L"begin" _ L"end" _ L"alignment" }) CLASS_MEMBER_METHOD(SummarizeParagraphAlignment, { L"begin" _ L"end" }) CLASS_MEMBER_METHOD(SelectAll, NO_PARAMETER) CLASS_MEMBER_METHOD(CanCut, NO_PARAMETER) CLASS_MEMBER_METHOD(CanCopy, NO_PARAMETER) CLASS_MEMBER_METHOD(CanPaste, NO_PARAMETER) CLASS_MEMBER_METHOD(Cut, NO_PARAMETER) CLASS_MEMBER_METHOD(Copy, NO_PARAMETER) CLASS_MEMBER_METHOD(Paste, NO_PARAMETER) CLASS_MEMBER_METHOD(CanUndo, NO_PARAMETER) CLASS_MEMBER_METHOD(CanRedo, NO_PARAMETER) CLASS_MEMBER_METHOD(ClearUndoRedo, NO_PARAMETER) CLASS_MEMBER_METHOD(NotifyModificationSaved, NO_PARAMETER) CLASS_MEMBER_METHOD(Undo, NO_PARAMETER) CLASS_MEMBER_METHOD(Redo, NO_PARAMETER) END_CLASS_MEMBER(GuiDocumentCommonInterface) BEGIN_CLASS_MEMBER(GuiDocumentViewer) CLASS_MEMBER_BASE(GuiScrollContainer) CLASS_MEMBER_BASE(GuiDocumentCommonInterface) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiDocumentViewer) END_CLASS_MEMBER(GuiDocumentViewer) BEGIN_CLASS_MEMBER(GuiDocumentLabel) CLASS_MEMBER_BASE(GuiControl) CLASS_MEMBER_BASE(GuiDocumentCommonInterface) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiDocumentLabel) END_CLASS_MEMBER(GuiDocumentLabel) BEGIN_CLASS_MEMBER(GuiTextBoxCommonInterface) CLASS_MEMBER_GUIEVENT(SelectionChanged) CLASS_MEMBER_GUIEVENT(UndoRedoChanged) CLASS_MEMBER_PROPERTY_FAST(Readonly) CLASS_MEMBER_PROPERTY_EVENT_FAST(SelectionText, SelectionChanged) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(CaretBegin, SelectionChanged) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(CaretEnd, SelectionChanged) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(CaretSmall, SelectionChanged) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(CaretLarge, SelectionChanged) CLASS_MEMBER_PROPERTY_READONLY_FAST(RowCount) CLASS_MEMBER_PROPERTY_READONLY_FAST(RowHeight) CLASS_MEMBER_PROPERTY_READONLY_FAST(MaxWidth) CLASS_MEMBER_PROPERTY_READONLY_FAST(MaxHeight) CLASS_MEMBER_PROPERTY_READONLY_FAST(EditVersion) CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(Modified) CLASS_MEMBER_METHOD(CanCut, NO_PARAMETER) CLASS_MEMBER_METHOD(CanCopy, NO_PARAMETER) CLASS_MEMBER_METHOD(CanPaste, NO_PARAMETER) CLASS_MEMBER_METHOD(Cut, NO_PARAMETER) CLASS_MEMBER_METHOD(Copy, NO_PARAMETER) CLASS_MEMBER_METHOD(Paste, NO_PARAMETER) CLASS_MEMBER_METHOD(SelectAll, NO_PARAMETER) CLASS_MEMBER_METHOD(Select, {L"begin" _ L"end"}) CLASS_MEMBER_METHOD(SetSelectionTextAsKeyInput, {L"value"}) CLASS_MEMBER_METHOD(GetRowText, {L"row"}) CLASS_MEMBER_METHOD(GetFragmentText, {L"start" _ L"end"}) CLASS_MEMBER_METHOD(GetRowWidth, {L"row"}) CLASS_MEMBER_METHOD(GetTextPosFromPoint, {L"point"}) CLASS_MEMBER_METHOD(GetPointFromTextPos, {L"pos"}) CLASS_MEMBER_METHOD(GetRectFromTextPos, {L"pos"}) CLASS_MEMBER_METHOD(GetNearestTextPos, {L"point"}) CLASS_MEMBER_METHOD(CanUndo, NO_PARAMETER) CLASS_MEMBER_METHOD(CanRedo, NO_PARAMETER) CLASS_MEMBER_METHOD(ClearUndoRedo, NO_PARAMETER) CLASS_MEMBER_METHOD(NotifyModificationSaved, NO_PARAMETER) CLASS_MEMBER_METHOD(Undo, NO_PARAMETER) CLASS_MEMBER_METHOD(Redo, NO_PARAMETER) END_CLASS_MEMBER(GuiTextBoxCommonInterface) BEGIN_CLASS_MEMBER(GuiMultilineTextBox) CLASS_MEMBER_BASE(GuiScrollView) CLASS_MEMBER_BASE(GuiTextBoxCommonInterface) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiMultilineTextBox) END_CLASS_MEMBER(GuiMultilineTextBox) BEGIN_CLASS_MEMBER(GuiSinglelineTextBox) CLASS_MEMBER_BASE(GuiControl) CLASS_MEMBER_BASE(GuiTextBoxCommonInterface) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiSinglelineTextBox) CLASS_MEMBER_PROPERTY_FAST(PasswordChar) END_CLASS_MEMBER(GuiSinglelineTextBox) BEGIN_CLASS_MEMBER(GuiVirtualDataGrid) CLASS_MEMBER_BASE(GuiVirtualListView) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiVirtualDataGrid, GuiListControl::IItemProvider*, itemProvider) CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(SelectedCell) CLASS_MEMBER_PROPERTY_READONLY_FAST(ItemProvider) CLASS_MEMBER_METHOD(SetViewToDefault, NO_PARAMETER) CLASS_MEMBER_METHOD(SelectCell, { L"value" _ L"openEditor" }) END_CLASS_MEMBER(GuiVirtualDataGrid) BEGIN_CLASS_MEMBER(GuiDatePicker) CLASS_MEMBER_BASE(GuiControl) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiDatePicker) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Date) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(DateFormat) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(DateLocale) CLASS_MEMBER_GUIEVENT(DateSelected); CLASS_MEMBER_GUIEVENT(DateNavigated); END_CLASS_MEMBER(GuiDatePicker) BEGIN_CLASS_MEMBER(GuiDateComboBox) CLASS_MEMBER_BASE(GuiComboBoxBase) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiDateComboBox) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SelectedDate) CLASS_MEMBER_PROPERTY_READONLY_FAST(DatePicker) END_CLASS_MEMBER(GuiDateComboBox) BEGIN_CLASS_MEMBER(GuiBindableTextList) CLASS_MEMBER_BASE(GuiVirtualTextList) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiBindableTextList) CLASS_MEMBER_PROPERTY_FAST(ItemSource) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(TextProperty) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(CheckedProperty) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItem, SelectionChanged) END_CLASS_MEMBER(GuiBindableTextList) BEGIN_CLASS_MEMBER(GuiBindableListView) CLASS_MEMBER_BASE(GuiVirtualListView) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiBindableListView) CLASS_MEMBER_PROPERTY_READONLY_FAST(DataColumns) CLASS_MEMBER_PROPERTY_READONLY_FAST(Columns) CLASS_MEMBER_PROPERTY_FAST(ItemSource) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(LargeImageProperty) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SmallImageProperty) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItem, SelectionChanged) END_CLASS_MEMBER(GuiBindableListView) BEGIN_CLASS_MEMBER(GuiBindableTreeView) CLASS_MEMBER_BASE(GuiVirtualTreeView) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiBindableTreeView) CLASS_MEMBER_PROPERTY_FAST(ItemSource) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(TextProperty) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ImageProperty) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ChildrenProperty) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItem, SelectionChanged) END_CLASS_MEMBER(GuiBindableTreeView) BEGIN_CLASS_MEMBER(GuiBindableDataGrid) CLASS_MEMBER_BASE(GuiVirtualDataGrid) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE(GuiBindableDataGrid) CLASS_MEMBER_PROPERTY_READONLY_FAST(DataColumns) CLASS_MEMBER_PROPERTY_READONLY_FAST(Columns) CLASS_MEMBER_PROPERTY_FAST(ItemSource) CLASS_MEMBER_PROPERTY_FAST(AdditionalFilter) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(LargeImageProperty) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(SmallImageProperty) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedRowValue, SelectedCellChanged) CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedCellValue, SelectedCellChanged) END_CLASS_MEMBER(GuiBindableDataGrid) #undef INTERFACE_IDENTIFIER #undef CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_3 #undef CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_3 #undef CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2 #undef CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2 #undef CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE #undef CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE #undef _ /*********************************************************************** Type Loader ***********************************************************************/ class GuiControlsTypeLoader : public Object, public ITypeLoader { public: void Load(ITypeManager* manager) { GUIREFLECTIONCONTROLS_TYPELIST(ADD_TYPE_INFO) } void Unload(ITypeManager* manager) { } }; #endif bool LoadGuiControlTypes() { #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA ITypeManager* manager=GetGlobalTypeManager(); if(manager) { auto loader=Ptr(new GuiControlsTypeLoader); return manager->AddTypeLoader(loader); } #endif return false; } } } } /*********************************************************************** .\TYPEDESCRIPTORS\GUIREFLECTIONELEMENTS.CPP ***********************************************************************/ namespace vl { namespace reflection { namespace description { using namespace presentation; using namespace presentation::elements; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA #define _ , #define ELEMENT_CONSTRUCTOR(ELEMENT)\ CLASS_MEMBER_EXTERNALCTOR(Ptr(), NO_PARAMETER, vl::reflection::description::Element_Constructor<::vl::presentation::elements::ELEMENT>) /*********************************************************************** Type Declaration (Extra) ***********************************************************************/ BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiGraphicsElement) CLASS_MEMBER_PROPERTY_READONLY_FAST(OwnerComposition) END_INTERFACE_MEMBER(IGuiGraphicsElement) BEGIN_CLASS_MEMBER(IGuiGraphicsParagraph) CLASS_MEMBER_BASE(IDescriptable) END_CLASS_MEMBER(IGuiGraphicsParagraph) BEGIN_ENUM_ITEM(IGuiGraphicsParagraph::CaretRelativePosition) ENUM_ITEM_NAMESPACE(IGuiGraphicsParagraph) ENUM_NAMESPACE_ITEM(CaretFirst) ENUM_NAMESPACE_ITEM(CaretLast) ENUM_NAMESPACE_ITEM(CaretLineFirst) ENUM_NAMESPACE_ITEM(CaretLineLast) ENUM_NAMESPACE_ITEM(CaretMoveLeft) ENUM_NAMESPACE_ITEM(CaretMoveRight) ENUM_NAMESPACE_ITEM(CaretMoveUp) ENUM_NAMESPACE_ITEM(CaretMoveDown) END_ENUM_ITEM(IGuiGraphicsParagraph::CaretRelativePosition) BEGIN_ENUM_ITEM(ElementShapeType) ENUM_CLASS_ITEM(Rectangle) ENUM_CLASS_ITEM(Ellipse) ENUM_CLASS_ITEM(RoundRect) END_ENUM_ITEM(ElementShapeType) BEGIN_STRUCT_MEMBER(ElementShape) STRUCT_MEMBER(shapeType) STRUCT_MEMBER(radiusX) STRUCT_MEMBER(radiusY) END_STRUCT_MEMBER(ElementShape) BEGIN_ENUM_ITEM(Gui3DSplitterElement::Direction) ENUM_ITEM_NAMESPACE(Gui3DSplitterElement) ENUM_NAMESPACE_ITEM(Horizontal) ENUM_NAMESPACE_ITEM(Vertical) END_ENUM_ITEM(Gui3DSplitterElement::Direction) BEGIN_ENUM_ITEM(GuiGradientBackgroundElement::Direction) ENUM_ITEM_NAMESPACE(GuiGradientBackgroundElement) ENUM_NAMESPACE_ITEM(Horizontal) ENUM_NAMESPACE_ITEM(Vertical) ENUM_NAMESPACE_ITEM(Slash) ENUM_NAMESPACE_ITEM(Backslash) END_ENUM_ITEM(GuiGradientBackgroundElement::Direction) BEGIN_CLASS_MEMBER(text::TextLines) CLASS_MEMBER_PROPERTY_READONLY_FAST(Count) CLASS_MEMBER_PROPERTY_FAST(TabSpaceCount) CLASS_MEMBER_PROPERTY_READONLY_FAST(RowHeight) CLASS_MEMBER_PROPERTY_READONLY_FAST(MaxWidth) CLASS_MEMBER_PROPERTY_READONLY_FAST(MaxHeight) CLASS_MEMBER_PROPERTY_FAST(PasswordChar) CLASS_MEMBER_METHOD_OVERLOAD(GetText, NO_PARAMETER, WString(text::TextLines::*)()) CLASS_MEMBER_METHOD_OVERLOAD(GetText, {L"start" _ L"end"}, WString(text::TextLines::*)(TextPos _ TextPos)) CLASS_MEMBER_METHOD(SetText, {L"value"}) CLASS_MEMBER_METHOD(RemoveLines, {L"start" _ L"end"}) CLASS_MEMBER_METHOD(IsAvailable, {L"pos"}) CLASS_MEMBER_METHOD(Normalize, {L"pos"}) CLASS_MEMBER_METHOD_OVERLOAD(Modify, {L"start" _ L"end" _ L"input"}, TextPos(text::TextLines::*)(TextPos _ TextPos _ const WString&)) CLASS_MEMBER_METHOD(Clear, NO_PARAMETER) CLASS_MEMBER_METHOD(ClearMeasurement, NO_PARAMETER) CLASS_MEMBER_METHOD(MeasureRow, {L"row"}) CLASS_MEMBER_METHOD(GetRowWidth, {L"row"}) CLASS_MEMBER_METHOD(GetTextPosFromPoint, {L"point"}) CLASS_MEMBER_METHOD(GetPointFromTextPos, {L"pos"}) CLASS_MEMBER_METHOD(GetRectFromTextPos, {L"pos"}) END_CLASS_MEMBER(text::TextLines) BEGIN_STRUCT_MEMBER(text::ColorItem) STRUCT_MEMBER(text) STRUCT_MEMBER(background) END_STRUCT_MEMBER(text::ColorItem) BEGIN_STRUCT_MEMBER(text::ColorEntry) STRUCT_MEMBER(normal) STRUCT_MEMBER(selectedFocused) STRUCT_MEMBER(selectedUnfocused) END_STRUCT_MEMBER(text::ColorEntry) /*********************************************************************** Type Declaration (Class) ***********************************************************************/ BEGIN_CLASS_MEMBER(GuiFocusRectangleElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) ELEMENT_CONSTRUCTOR(GuiFocusRectangleElement) END_CLASS_MEMBER(GuiFocusRectangleElement) BEGIN_CLASS_MEMBER(GuiSolidBorderElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) ELEMENT_CONSTRUCTOR(GuiSolidBorderElement) CLASS_MEMBER_PROPERTY_FAST(Color) CLASS_MEMBER_PROPERTY_FAST(Shape) END_CLASS_MEMBER(GuiSolidBorderElement) BEGIN_CLASS_MEMBER(Gui3DBorderElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) ELEMENT_CONSTRUCTOR(Gui3DBorderElement) CLASS_MEMBER_METHOD(SetColors, {L"value1" _ L"value2"}) CLASS_MEMBER_PROPERTY_FAST(Color1) CLASS_MEMBER_PROPERTY_FAST(Color2) END_CLASS_MEMBER(Gui3DBorderElement) BEGIN_CLASS_MEMBER(Gui3DSplitterElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) ELEMENT_CONSTRUCTOR(Gui3DSplitterElement) CLASS_MEMBER_METHOD(SetColors, {L"value1" _ L"value2"}) CLASS_MEMBER_PROPERTY_FAST(Color1) CLASS_MEMBER_PROPERTY_FAST(Color2) CLASS_MEMBER_PROPERTY_FAST(Direction) END_CLASS_MEMBER(Gui3DSplitterElement) BEGIN_CLASS_MEMBER(GuiSolidBackgroundElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) ELEMENT_CONSTRUCTOR(GuiSolidBackgroundElement) CLASS_MEMBER_PROPERTY_FAST(Color) CLASS_MEMBER_PROPERTY_FAST(Shape) END_CLASS_MEMBER(GuiSolidBackgroundElement) BEGIN_CLASS_MEMBER(GuiGradientBackgroundElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) ELEMENT_CONSTRUCTOR(GuiGradientBackgroundElement) CLASS_MEMBER_METHOD(SetColors, {L"value1" _ L"value2"}) CLASS_MEMBER_PROPERTY_FAST(Color1) CLASS_MEMBER_PROPERTY_FAST(Color2) CLASS_MEMBER_PROPERTY_FAST(Direction) CLASS_MEMBER_PROPERTY_FAST(Shape) END_CLASS_MEMBER(GuiGradientBackgroundElement) BEGIN_CLASS_MEMBER(GuiInnerShadowElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) ELEMENT_CONSTRUCTOR(GuiInnerShadowElement) CLASS_MEMBER_PROPERTY_FAST(Color) CLASS_MEMBER_PROPERTY_FAST(Thickness) END_CLASS_MEMBER(GuiInnerShadowElement) BEGIN_CLASS_MEMBER(GuiSolidLabelElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) ELEMENT_CONSTRUCTOR(GuiSolidLabelElement) CLASS_MEMBER_METHOD(SetAlignments, {L"horizontal" _ L"vertical"}) CLASS_MEMBER_PROPERTY_FAST(Color) CLASS_MEMBER_PROPERTY_FAST(Font) CLASS_MEMBER_PROPERTY_FAST(Text) CLASS_MEMBER_PROPERTY_FAST(HorizontalAlignment) CLASS_MEMBER_PROPERTY_FAST(VerticalAlignment) CLASS_MEMBER_PROPERTY_FAST(WrapLine) CLASS_MEMBER_PROPERTY_FAST(Ellipse) CLASS_MEMBER_PROPERTY_FAST(Multiline) CLASS_MEMBER_PROPERTY_FAST(WrapLineHeightCalculation) END_CLASS_MEMBER(GuiSolidLabelElement) BEGIN_CLASS_MEMBER(GuiImageFrameElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) ELEMENT_CONSTRUCTOR(GuiImageFrameElement) CLASS_MEMBER_METHOD(GetImage, NO_PARAMETER) CLASS_MEMBER_METHOD_OVERLOAD(SetImage, {L"value"}, void(GuiImageFrameElement::*)(Ptr)) CLASS_MEMBER_METHOD_OVERLOAD(SetImage, {L"image" _ L"frameIndex"}, void(GuiImageFrameElement::*)(Ptr _ vint)) CLASS_MEMBER_PROPERTY(Image, GetImage, SetImage) CLASS_MEMBER_PROPERTY_FAST(FrameIndex) CLASS_MEMBER_PROPERTY_FAST(HorizontalAlignment) CLASS_MEMBER_PROPERTY_FAST(VerticalAlignment) CLASS_MEMBER_PROPERTY_FAST(Stretch) CLASS_MEMBER_PROPERTY_FAST(Enabled) END_CLASS_MEMBER(GuiImageFrameElement) BEGIN_CLASS_MEMBER(GuiPolygonElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) ELEMENT_CONSTRUCTOR(GuiPolygonElement) CLASS_MEMBER_METHOD_RENAME(GetPoints, GetPointsArray, NO_PARAMETER); CLASS_MEMBER_METHOD_RENAME(SetPoints, SetPointsArray, {L"points"}); CLASS_MEMBER_PROPERTY(Points, GetPoints, SetPoints); CLASS_MEMBER_PROPERTY_FAST(Size) CLASS_MEMBER_PROPERTY_FAST(BorderColor) CLASS_MEMBER_PROPERTY_FAST(BackgroundColor) END_CLASS_MEMBER(GuiPolygonElement) BEGIN_CLASS_MEMBER(GuiColorizedTextElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) ELEMENT_CONSTRUCTOR(GuiColorizedTextElement) CLASS_MEMBER_PROPERTY_FAST(Font) CLASS_MEMBER_PROPERTY_FAST(PasswordChar) CLASS_MEMBER_PROPERTY_FAST(ViewPosition) CLASS_MEMBER_PROPERTY_FAST(VisuallyEnabled) CLASS_MEMBER_PROPERTY_FAST(Focused) CLASS_MEMBER_PROPERTY_FAST(CaretBegin) CLASS_MEMBER_PROPERTY_FAST(CaretEnd) CLASS_MEMBER_PROPERTY_FAST(CaretVisible) CLASS_MEMBER_PROPERTY_FAST(CaretColor) CLASS_MEMBER_EXTERNALMETHOD(GetLines, NO_PARAMETER, text::TextLines*(GuiColorizedTextElement::*)(), vl::reflection::description::GuiColorizedTextElement_GetLines) CLASS_MEMBER_PROPERTY_READONLY(Lines, GetLines) CLASS_MEMBER_PROPERTY_FAST(Colors) END_CLASS_MEMBER(GuiColorizedTextElement) BEGIN_CLASS_MEMBER(GuiDocumentElement) CLASS_MEMBER_BASE(IGuiGraphicsElement) ELEMENT_CONSTRUCTOR(GuiDocumentElement) CLASS_MEMBER_PROPERTY_FAST(Document) CLASS_MEMBER_PROPERTY_READONLY_FAST(CaretBegin) CLASS_MEMBER_PROPERTY_READONLY_FAST(CaretEnd) CLASS_MEMBER_PROPERTY_FAST(CaretVisible) CLASS_MEMBER_PROPERTY_FAST(CaretColor) CLASS_MEMBER_METHOD(IsCaretEndPreferFrontSide, NO_PARAMETER) CLASS_MEMBER_METHOD(SetCaret, {L"begin" _ L"end" _ L"frontSide"}) CLASS_MEMBER_METHOD(CalculateCaret, {L"comparingCaret" _ L"position" _ L"preferFrontSide"}) CLASS_MEMBER_METHOD(CalculateCaretFromPoint, {L"point"}) CLASS_MEMBER_METHOD(GetCaretBounds, {L"caret" _ L"frontSide"}) CLASS_MEMBER_METHOD(NotifyParagraphUpdated, {L"index" _ L"oldCount" _ L"newCount" _ L"updatedText"}) CLASS_MEMBER_METHOD(EditRun, {L"begin" _ L"end" _ L"model" _ L"copy"}) CLASS_MEMBER_METHOD(EditText, {L"begin" _ L"end" _ L"frontSide" _ L"text"}) CLASS_MEMBER_METHOD(EditStyle, {L"begin" _ L"end" _ L"style"}) CLASS_MEMBER_METHOD(EditImage, {L"begin" _ L"end" _ L"image"}) CLASS_MEMBER_METHOD(EditImage, {L"paragraphIndex" _ L"begin" _ L"end" _ L"reference" _ L"normalStyleName" _ L"activeStyleName"}) CLASS_MEMBER_METHOD(RemoveHyperlink, {L"paragraphIndex" _ L"begin" _ L"end"}) CLASS_MEMBER_METHOD(EditStyleName, {L"begin" _ L"end" _ L"styleName"}) CLASS_MEMBER_METHOD(RemoveStyleName, {L"begin" _ L"end" _ L"image"}) CLASS_MEMBER_METHOD(RenameStyle, {L"oldStyleName" _ L"newStyleName"}) CLASS_MEMBER_METHOD(ClearStyle, {L"begin" _ L"end"}) CLASS_MEMBER_METHOD(SummarizeStyle, {L"begin" _ L"end"}) CLASS_MEMBER_METHOD(SummarizeStyleName, { L"begin" _ L"end" }) CLASS_MEMBER_METHOD(SetParagraphAlignment, {L"begin" _ L"end" _ L"alignments"}) CLASS_MEMBER_METHOD(SummarizeParagraphAlignment, { L"begin" _ L"end" }) CLASS_MEMBER_METHOD(GetHyperlinkFromPoint, {L"point"}) END_CLASS_MEMBER(GuiDocumentElement) #undef ELEMENT_CONSTRUCTOR #undef _ /*********************************************************************** Type Loader ***********************************************************************/ class GuiElementTypeLoader : public Object, public ITypeLoader { public: void Load(ITypeManager* manager) { GUIREFLECTIONELEMENT_TYPELIST(ADD_TYPE_INFO) } void Unload(ITypeManager* manager) { } }; #endif bool LoadGuiElementTypes() { #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA ITypeManager* manager=GetGlobalTypeManager(); if(manager) { auto loader=Ptr(new GuiElementTypeLoader); return manager->AddTypeLoader(loader); } #endif return false; } } } } /*********************************************************************** .\TYPEDESCRIPTORS\GUIREFLECTIONEVENTS.CPP ***********************************************************************/ namespace vl { namespace reflection { namespace description { using namespace presentation::compositions; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA /*********************************************************************** Type Declaration ***********************************************************************/ #define _ , #define EVENTARGS_CONSTRUCTOR(EVENTARGS)\ CLASS_MEMBER_CONSTRUCTOR(Ptr(), NO_PARAMETER)\ CLASS_MEMBER_CONSTRUCTOR(Ptr(GuiGraphicsComposition*), {L"composition"}) BEGIN_CLASS_MEMBER(GuiEventArgs) EVENTARGS_CONSTRUCTOR(GuiEventArgs) CLASS_MEMBER_FIELD(compositionSource) CLASS_MEMBER_FIELD(eventSource) CLASS_MEMBER_FIELD(handled) END_CLASS_MEMBER(GuiEventArgs) BEGIN_CLASS_MEMBER(GuiRequestEventArgs) CLASS_MEMBER_BASE(GuiEventArgs) EVENTARGS_CONSTRUCTOR(GuiRequestEventArgs) CLASS_MEMBER_FIELD(cancel) END_CLASS_MEMBER(GuiRequestEventArgs) BEGIN_CLASS_MEMBER(GuiKeyEventArgs) CLASS_MEMBER_BASE(GuiEventArgs) EVENTARGS_CONSTRUCTOR(GuiKeyEventArgs) CLASS_MEMBER_FIELD(code) CLASS_MEMBER_FIELD(ctrl) CLASS_MEMBER_FIELD(shift) CLASS_MEMBER_FIELD(alt) CLASS_MEMBER_FIELD(capslock) CLASS_MEMBER_FIELD(autoRepeatKeyDown) END_CLASS_MEMBER(GuiKeyEventArgs) BEGIN_CLASS_MEMBER(GuiCharEventArgs) CLASS_MEMBER_BASE(GuiEventArgs) EVENTARGS_CONSTRUCTOR(GuiCharEventArgs) CLASS_MEMBER_FIELD(code) CLASS_MEMBER_FIELD(ctrl) CLASS_MEMBER_FIELD(shift) CLASS_MEMBER_FIELD(alt) CLASS_MEMBER_FIELD(capslock) END_CLASS_MEMBER(GuiCharEventArgs) BEGIN_CLASS_MEMBER(GuiMouseEventArgs) CLASS_MEMBER_BASE(GuiEventArgs) EVENTARGS_CONSTRUCTOR(GuiMouseEventArgs) CLASS_MEMBER_FIELD(ctrl) CLASS_MEMBER_FIELD(shift) CLASS_MEMBER_FIELD(left) CLASS_MEMBER_FIELD(middle) CLASS_MEMBER_FIELD(right) CLASS_MEMBER_FIELD(x) CLASS_MEMBER_FIELD(y) CLASS_MEMBER_FIELD(wheel) CLASS_MEMBER_FIELD(nonClient) END_CLASS_MEMBER(GuiMouseEventArgs) BEGIN_ENUM_ITEM(ControlSignal) ENUM_CLASS_ITEM(RenderTargetChanged) ENUM_CLASS_ITEM(ParentLineChanged) ENUM_CLASS_ITEM(ServiceAdded) END_ENUM_ITEM(ControlSignal) BEGIN_CLASS_MEMBER(GuiControlSignalEventArgs) CLASS_MEMBER_BASE(GuiEventArgs) CLASS_MEMBER_FIELD(controlSignal) END_CLASS_MEMBER(GuiControlSignalEventArgs) BEGIN_CLASS_MEMBER(GuiItemEventArgs) CLASS_MEMBER_BASE(GuiEventArgs) EVENTARGS_CONSTRUCTOR(GuiItemEventArgs) CLASS_MEMBER_FIELD(itemIndex) END_CLASS_MEMBER(GuiItemEventArgs) BEGIN_CLASS_MEMBER(GuiItemMouseEventArgs) CLASS_MEMBER_BASE(GuiMouseEventArgs) EVENTARGS_CONSTRUCTOR(GuiItemMouseEventArgs) CLASS_MEMBER_FIELD(itemIndex) END_CLASS_MEMBER(GuiItemMouseEventArgs) BEGIN_CLASS_MEMBER(GuiNodeEventArgs) CLASS_MEMBER_BASE(GuiEventArgs) EVENTARGS_CONSTRUCTOR(GuiNodeEventArgs) CLASS_MEMBER_FIELD(node) END_CLASS_MEMBER(GuiNodeEventArgs) BEGIN_CLASS_MEMBER(GuiNodeMouseEventArgs) CLASS_MEMBER_BASE(GuiMouseEventArgs) EVENTARGS_CONSTRUCTOR(GuiNodeMouseEventArgs) CLASS_MEMBER_FIELD(node) END_CLASS_MEMBER(GuiNodeMouseEventArgs) #undef EVENTARGS_CONSTRUCTOR #undef _ /*********************************************************************** Type Loader ***********************************************************************/ class GuiEventTypeLoader : public Object, public ITypeLoader { public: void Load(ITypeManager* manager) { GUIREFLECTIONEVENT_TYPELIST(ADD_TYPE_INFO) } void Unload(ITypeManager* manager) { } }; #endif bool LoadGuiEventTypes() { #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA ITypeManager* manager=GetGlobalTypeManager(); if(manager) { auto loader=Ptr(new GuiEventTypeLoader); return manager->AddTypeLoader(loader); } #endif return false; } } } } /*********************************************************************** .\TYPEDESCRIPTORS\GUIREFLECTIONPLUGIN.CPP ***********************************************************************/ /*********************************************************************** Plugin ***********************************************************************/ namespace vl { namespace reflection { namespace description { #define GUIREFLECTIONTEMPLATES_IMPL_VL_TYPE_INFO(NAME, BASE) IMPL_VL_TYPE_INFO(presentation::templates::NAME) GUIREFLECTIONBASIC_TYPELIST(IMPL_VL_TYPE_INFO) GUIREFLECTIONELEMENT_TYPELIST(IMPL_VL_TYPE_INFO) GUIREFLECTIONCOMPOSITION_TYPELIST(IMPL_VL_TYPE_INFO) GUIREFLECTIONEVENT_TYPELIST(IMPL_VL_TYPE_INFO) GUIREFLECTIONTEMPLATES_TYPELIST(IMPL_VL_TYPE_INFO) GUIREFLECTIONCONTROLS_TYPELIST(IMPL_VL_TYPE_INFO) #undef GUIREFLECTIONTEMPLATES_IMPL_VL_TYPE_INFO #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA extern bool LoadGuiBasicTypes(); extern bool LoadGuiElementTypes(); extern bool LoadGuiCompositionTypes(); extern bool LoadGuiEventTypes(); extern bool LoadGuiTemplateTypes(); extern bool LoadGuiControlTypes(); using namespace presentation::controls; class GuiReflectionPlugin : public Object, public IGuiPlugin { public: GUI_PLUGIN_NAME(GacUI_Instance_Reflection) { } void Load()override { LoadPredefinedTypes(); LoadParsing2Types(); XmlAstLoadTypes(); JsonAstLoadTypes(); WfLoadLibraryTypes(); LoadGuiBasicTypes(); LoadGuiElementTypes(); LoadGuiCompositionTypes(); LoadGuiEventTypes(); LoadGuiTemplateTypes(); LoadGuiControlTypes(); } void Unload()override { } }; GUI_REGISTER_PLUGIN(GuiReflectionPlugin) #endif } } } /*********************************************************************** .\TYPEDESCRIPTORS\GUIREFLECTIONTEMPLATES.CPP ***********************************************************************/ namespace vl { namespace reflection { namespace description { using namespace presentation; using namespace presentation::compositions; using namespace presentation::controls; using namespace presentation::controls::list; using namespace presentation::templates; #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA #define _ , #define GUI_TEMPLATE_PROPERTY_REFLECTION(CLASS, TYPE, NAME, VALUE)\ CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(NAME) /*********************************************************************** Type Declaration (Extra) ***********************************************************************/ BEGIN_ENUM_ITEM(ButtonState) ENUM_CLASS_ITEM(Normal) ENUM_CLASS_ITEM(Active) ENUM_CLASS_ITEM(Pressed) END_ENUM_ITEM(ButtonState) BEGIN_ENUM_ITEM(ColumnSortingState) ENUM_CLASS_ITEM(NotSorted) ENUM_CLASS_ITEM(Ascending) ENUM_CLASS_ITEM(Descending) END_ENUM_ITEM(ColumnSortingState) BEGIN_ENUM_ITEM(TabPageOrder) ENUM_CLASS_ITEM(Unknown) ENUM_CLASS_ITEM(LeftToRight) ENUM_CLASS_ITEM(RightToLeft) ENUM_CLASS_ITEM(TopToBottom) ENUM_CLASS_ITEM(BottomToTop) END_ENUM_ITEM(TabPageOrder) BEGIN_ENUM_ITEM(BoolOption) ENUM_CLASS_ITEM(AlwaysTrue) ENUM_CLASS_ITEM(AlwaysFalse) ENUM_CLASS_ITEM(Customizable) END_ENUM_ITEM(BoolOption) BEGIN_INTERFACE_MEMBER_NOPROXY(ITextBoxCommandExecutor) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_METHOD(UnsafeSetText, { L"value" }) END_INTERFACE_MEMBER(ITextBoxCommandExecutor) BEGIN_INTERFACE_MEMBER_NOPROXY(IScrollCommandExecutor) CLASS_MEMBER_METHOD(SmallDecrease, NO_PARAMETER) CLASS_MEMBER_METHOD(SmallIncrease, NO_PARAMETER) CLASS_MEMBER_METHOD(BigDecrease, NO_PARAMETER) CLASS_MEMBER_METHOD(BigIncrease, NO_PARAMETER) CLASS_MEMBER_METHOD(SetTotalSize, { L"value" }) CLASS_MEMBER_METHOD(SetPageSize, { L"value" }) CLASS_MEMBER_METHOD(SetPosition, { L"value" }) END_INTERFACE_MEMBER(IScrollCommandExecutor) BEGIN_INTERFACE_MEMBER_NOPROXY(ITabCommandExecutor) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_METHOD(ShowTab, { L"index" _ L"setFocus" }) END_INTERFACE_MEMBER(ITabCommandExecutor) BEGIN_INTERFACE_MEMBER_NOPROXY(IDatePickerCommandExecutor) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_METHOD(NotifyDateChanged, NO_PARAMETER) CLASS_MEMBER_METHOD(NotifyDateNavigated, NO_PARAMETER) CLASS_MEMBER_METHOD(NotifyDateSelected, NO_PARAMETER) END_INTERFACE_MEMBER(IDatePickerCommandExecutor) BEGIN_INTERFACE_MEMBER_NOPROXY(IRibbonGroupCommandExecutor) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_METHOD(NotifyExpandButtonClicked, NO_PARAMETER) END_INTERFACE_MEMBER(IRibbonGroupCommandExecutor) BEGIN_INTERFACE_MEMBER_NOPROXY(IRibbonGalleryCommandExecutor) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_METHOD(NotifyScrollUp, NO_PARAMETER) CLASS_MEMBER_METHOD(NotifyScrollDown, NO_PARAMETER) CLASS_MEMBER_METHOD(NotifyDropdown, NO_PARAMETER) END_INTERFACE_MEMBER(IRibbonGalleryCommandExecutor) BEGIN_CLASS_MEMBER(GuiComponent) END_CLASS_MEMBER(GuiComponent) BEGIN_INTERFACE_MEMBER(IGuiAnimation) CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_PROPERTY_READONLY_FAST(Stopped) CLASS_MEMBER_METHOD(Start, NO_PARAMETER) CLASS_MEMBER_METHOD(Pause, NO_PARAMETER) CLASS_MEMBER_METHOD(Resume, NO_PARAMETER) CLASS_MEMBER_METHOD(Run, NO_PARAMETER) CLASS_MEMBER_STATIC_METHOD_OVERLOAD(CreateAnimation, { L"run" _ L"milliseconds" }, Ptr(*)(const Func&, vuint64_t)) CLASS_MEMBER_STATIC_METHOD_OVERLOAD(CreateAnimation, { L"run" }, Ptr(*)(const Func&)) END_INTERFACE_MEMBER(IGuiAnimation) BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiAnimationCoroutine::IImpl) CLASS_MEMBER_BASE(IGuiAnimation) END_INTERFACE_MEMBER(IGuiAnimationCoroutine::IImpl) BEGIN_CLASS_MEMBER(IGuiAnimationCoroutine) CLASS_MEMBER_STATIC_METHOD(WaitAndPause, { L"impl" _ L"milliseconds" }) CLASS_MEMBER_STATIC_METHOD(PlayAndWaitAndPause, { L"impl" _ L"animation" }) CLASS_MEMBER_STATIC_METHOD(PlayInGroupAndPause, { L"impl" _ L"animation" _ L"groupId" }) CLASS_MEMBER_STATIC_METHOD(WaitForGroupAndPause, { L"impl" _ L"groupId" }) CLASS_MEMBER_STATIC_METHOD(ReturnAndExit, { L"impl" }) CLASS_MEMBER_STATIC_METHOD(Create, { L"creator" }) END_CLASS_MEMBER(IGuiAnimationCoroutine) BEGIN_CLASS_MEMBER(GuiInstanceRootObject) CLASS_MEMBER_METHOD_OVERLOAD(FinalizeInstanceRecursively, {L"thisObject"}, void(GuiInstanceRootObject::*)(GuiTemplate*)) CLASS_MEMBER_METHOD_OVERLOAD(FinalizeInstanceRecursively, {L"thisObject"}, void(GuiInstanceRootObject::*)(GuiCustomControl*)) CLASS_MEMBER_METHOD_OVERLOAD(FinalizeInstanceRecursively, {L"thisObject"}, void(GuiInstanceRootObject::*)(GuiControlHost*)) CLASS_MEMBER_METHOD(FinalizeGeneralInstance, {L"thisObject"}) CLASS_MEMBER_METHOD(SetResourceResolver, {L"resolver"}) CLASS_MEMBER_METHOD(ResolveResource, {L"protocol" _ L"path" _ L"ensureExist"}) CLASS_MEMBER_METHOD(AddSubscription, {L"subscription"}) CLASS_MEMBER_METHOD(UpdateSubscriptions, NO_PARAMETER) CLASS_MEMBER_METHOD(AddComponent, {L"component"}) CLASS_MEMBER_METHOD(AddControlHostComponent, {L"controlHost"}) CLASS_MEMBER_METHOD(AddAnimation, { L"animation" }) CLASS_MEMBER_METHOD(KillAnimation, { L"animation" }) END_CLASS_MEMBER(GuiInstanceRootObject) BEGIN_CLASS_MEMBER(GuiCommonScrollBehavior) CLASS_MEMBER_BASE(GuiComponent) CLASS_MEMBER_CONSTRUCTOR(GuiCommonScrollBehavior*(), NO_PARAMETER) CLASS_MEMBER_METHOD(AttachScrollTemplate, { L"value" }) CLASS_MEMBER_METHOD(AttachDecreaseButton, { L"button" }) CLASS_MEMBER_METHOD(AttachIncreaseButton, { L"button" }) CLASS_MEMBER_METHOD(AttachHorizontalScrollHandle, { L"partialView" }) CLASS_MEMBER_METHOD(AttachVerticalScrollHandle, { L"partialView" }) CLASS_MEMBER_METHOD(AttachHorizontalTrackerHandle, { L"partialView" }) CLASS_MEMBER_METHOD(AttachVerticalTrackerHandle, { L"partialView" }) CLASS_MEMBER_METHOD(GetHorizontalTrackerHandlerPosition, { L"handle" _ L"totalSize" _ L"pageSize" _ L"position" }) CLASS_MEMBER_METHOD(GetVerticalTrackerHandlerPosition, { L"handle" _ L"totalSize" _ L"pageSize" _ L"position" }) END_CLASS_MEMBER(GuiCommonScrollBehavior) /*********************************************************************** Type Declaration (Class) ***********************************************************************/ BEGIN_CLASS_MEMBER(GuiTemplate) CLASS_MEMBER_BASE(GuiBoundsComposition) CLASS_MEMBER_BASE(GuiInstanceRootObject) CLASS_MEMBER_CONSTRUCTOR(GuiTemplate*(), NO_PARAMETER) GuiTemplate_PROPERTIES(GUI_TEMPLATE_PROPERTY_REFLECTION) END_CLASS_MEMBER(GuiTemplate) #define GUI_CONTROL_TEMPLATE(NAME, BASE)\ BEGIN_CLASS_MEMBER(NAME)\ CLASS_MEMBER_BASE(BASE)\ CLASS_MEMBER_CONSTRUCTOR(NAME*(), NO_PARAMETER)\ NAME ## _PROPERTIES(GUI_TEMPLATE_PROPERTY_REFLECTION)\ END_CLASS_MEMBER(NAME)\ GUI_CONTROL_TEMPLATE(GuiListItemTemplate, GuiTemplate) GUI_CONTROL_TEMPLATE_DECL(GUI_CONTROL_TEMPLATE) GUI_ITEM_TEMPLATE_DECL(GUI_CONTROL_TEMPLATE) BEGIN_CLASS_MEMBER(GuiCommonDatePickerLook) CLASS_MEMBER_BASE(GuiTemplate) CLASS_MEMBER_CONSTRUCTOR(GuiCommonDatePickerLook*(Color, Color, Color), { L"backgroundColor" _ L"primaryTextColor" _ L"secondaryTextColor" }) CLASS_MEMBER_PROPERTY_FAST(Commands) CLASS_MEMBER_PROPERTY_FAST(DateButtonTemplate) CLASS_MEMBER_PROPERTY_FAST(DateTextListTemplate) CLASS_MEMBER_PROPERTY_FAST(DateComboBoxTemplate) CLASS_MEMBER_PROPERTY_FAST(DateLocale) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Date) CLASS_MEMBER_PROPERTY_FAST(Font) END_CLASS_MEMBER(GuiCommonDatePickerLook) BEGIN_CLASS_MEMBER(GuiCommonScrollViewLook) CLASS_MEMBER_BASE(GuiTemplate) CLASS_MEMBER_CONSTRUCTOR(GuiCommonScrollViewLook*(vint), { L"defaultScrollSize" }) CLASS_MEMBER_PROPERTY_FAST(HScrollTemplate) CLASS_MEMBER_PROPERTY_FAST(VScrollTemplate) CLASS_MEMBER_PROPERTY_READONLY_FAST(HScroll) CLASS_MEMBER_PROPERTY_READONLY_FAST(VScroll) CLASS_MEMBER_PROPERTY_READONLY_FAST(ContainerComposition) END_CLASS_MEMBER(GuiCommonScrollViewLook) BEGIN_CLASS_MEMBER(MainColumnVisualizerTemplate) CLASS_MEMBER_BASE(GuiGridVisualizerTemplate) CLASS_MEMBER_CONSTRUCTOR(MainColumnVisualizerTemplate*(), NO_PARAMETER) END_CLASS_MEMBER(MainColumnVisualizerTemplate) BEGIN_CLASS_MEMBER(SubColumnVisualizerTemplate) CLASS_MEMBER_BASE(GuiGridVisualizerTemplate) CLASS_MEMBER_CONSTRUCTOR(SubColumnVisualizerTemplate*(), NO_PARAMETER) END_CLASS_MEMBER(SubColumnVisualizerTemplate) BEGIN_CLASS_MEMBER(HyperlinkVisualizerTemplate) CLASS_MEMBER_BASE(SubColumnVisualizerTemplate) CLASS_MEMBER_CONSTRUCTOR(HyperlinkVisualizerTemplate*(), NO_PARAMETER) END_CLASS_MEMBER(HyperlinkVisualizerTemplate) BEGIN_CLASS_MEMBER(FocusRectangleVisualizerTemplate) CLASS_MEMBER_BASE(GuiGridVisualizerTemplate) CLASS_MEMBER_CONSTRUCTOR(FocusRectangleVisualizerTemplate*(), NO_PARAMETER) END_CLASS_MEMBER(FocusRectangleVisualizerTemplate) BEGIN_CLASS_MEMBER(CellBorderVisualizerTemplate) CLASS_MEMBER_BASE(GuiGridVisualizerTemplate) CLASS_MEMBER_CONSTRUCTOR(CellBorderVisualizerTemplate*(), NO_PARAMETER) END_CLASS_MEMBER(CellBorderVisualizerTemplate) #undef GUI_CONTROL_TEMPLATE #undef GUI_TEMPLATE_PROPERTY_REFLECTION #undef _ /*********************************************************************** Type Loader ***********************************************************************/ class GuiTemplateTypeLoader : public Object, public ITypeLoader { public: void Load(ITypeManager* manager) { #define GUIREFLECTIONTEMPLATES_ADD_TYPE_INFO(NAME, BASE) ADD_TYPE_INFO(presentation::templates::NAME) GUIREFLECTIONTEMPLATES_TYPELIST(ADD_TYPE_INFO) #undef GUIREFLECTIONTEMPLATES_ADD_TYPE_INFO } void Unload(ITypeManager* manager) { } }; #endif bool LoadGuiTemplateTypes() { #ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA ITypeManager* manager=GetGlobalTypeManager(); if(manager) { auto loader=Ptr(new GuiTemplateTypeLoader); return manager->AddTypeLoader(loader); } #endif return false; } } } }