diff --git a/Import/GacUI.cpp b/Import/GacUI.cpp index 15dd32d2..99762da2 100644 --- a/Import/GacUI.cpp +++ b/Import/GacUI.cpp @@ -43537,7 +43537,7 @@ GuiResourceFolder } } - void GuiResourceFolder::PrecompileResourceFolder(GuiResourcePrecompileContext& context, collections::List& errors) + void GuiResourceFolder::PrecompileResourceFolder(GuiResourcePrecompileContext& context, IGuiResourcePrecompileCallback* callback, collections::List& errors) { FOREACH(Ptr, item, items.Values()) { @@ -43546,6 +43546,10 @@ GuiResourceFolder { if (precompile->GetPassSupport(context.passIndex) == IGuiResourceTypeResolver_Precompile::PerResource) { + if (callback) + { + callback->OnPerResource(context.passIndex, item); + } precompile->PerResourcePrecompile(item, context, errors); } } @@ -43553,7 +43557,7 @@ GuiResourceFolder FOREACH(Ptr, folder, folders.Values()) { - folder->PrecompileResourceFolder(context, errors); + folder->PrecompileResourceFolder(context, callback, errors); } } @@ -43842,7 +43846,7 @@ GuiResource SaveResourceFolderToBinary(writer, typeNames); } - void GuiResource::Precompile(collections::List& errors) + void GuiResource::Precompile(IGuiResourcePrecompileCallback* callback, collections::List& errors) { if (GetFolder(L"Precompiled")) { @@ -43865,15 +43869,22 @@ GuiResource manager->GetPerResourceResolverNames(i, resolvers); if (resolvers.Count() > 0) { - PrecompileResourceFolder(context, errors); + PrecompileResourceFolder(context, callback, errors); } } { manager->GetPerPassResolverNames(i, resolvers); - FOREACH(WString, name, resolvers) + if (resolvers.Count() > 0) { - auto resolver = manager->GetTypeResolver(name); - resolver->Precompile()->PerPassPrecompile(context, errors); + if (callback) + { + callback->OnPerPass(i); + } + FOREACH(WString, name, resolvers) + { + auto resolver = manager->GetTypeResolver(name); + resolver->Precompile()->PerPassPrecompile(context, errors); + } } } } diff --git a/Import/GacUI.h b/Import/GacUI.h index b637f9d5..1b3fcc42 100644 --- a/Import/GacUI.h +++ b/Import/GacUI.h @@ -3347,6 +3347,7 @@ Resource Structure class GuiResourcePathResolver; struct GuiResourcePrecompileContext; struct GuiResourceInitializeContext; + class IGuiResourcePrecompileCallback; /// Resource item. class GuiResourceItem : public GuiResourceNodeBase, public Description @@ -3413,7 +3414,7 @@ Resource Structure void CollectTypeNames(collections::List& typeNames); void LoadResourceFolderFromBinary(DelayLoadingList& delayLoadings, stream::internal::ContextFreeReader& reader, collections::List& typeNames, collections::List& errors); void SaveResourceFolderToBinary(stream::internal::ContextFreeWriter& writer, collections::List& typeNames); - void PrecompileResourceFolder(GuiResourcePrecompileContext& context, collections::List& errors); + void PrecompileResourceFolder(GuiResourcePrecompileContext& context, IGuiResourcePrecompileCallback* callback, collections::List& errors); void InitializeResourceFolder(GuiResourceInitializeContext& context); public: /// Create a resource folder. @@ -3529,7 +3530,7 @@ Resource /// Precompile this resource to improve performance. /// All collected errors during precompiling a resource. - void Precompile(collections::List& errors); + void Precompile(IGuiResourcePrecompileCallback* callback, collections::List& errors); /// Initialize a precompiled resource. /// In which role an application is initializing this resource. @@ -3666,11 +3667,11 @@ Resource Type Resolver /// /// Represents a precompiler for resources of a specified type. /// Current resources that needs precompiling: - /// + /// Workflow: /// Pass 0: Collect workflow scripts /// Pass 1: Compile ViewModel scripts /// Pass 2: Compile Shared scripts - /// + /// Instance: /// Pass 3: Collect instance types /// Pass 4: Validate instance dependency /// Pass 5: Generate TemporaryClass scripts, ClassNameRecord @@ -3726,6 +3727,13 @@ Resource Type Resolver virtual void PerPassPrecompile(GuiResourcePrecompileContext& context, collections::List& errors) = 0; }; + class IGuiResourcePrecompileCallback : public virtual IDescriptable, public Description + { + public: + virtual void OnPerPass(vint passIndex) = 0; + virtual void OnPerResource(vint passIndex, Ptr resource) = 0; + }; + /// Provide a context for resource initializing struct GuiResourceInitializeContext : GuiResourcePrecompileContext { @@ -5952,7 +5960,7 @@ Predefined Events ***********************************************************************/ /// Notify event arguments. - struct GuiEventArgs : public Object, public Description + struct GuiEventArgs : public Object, public AggregatableDescription { /// The event raiser composition. GuiGraphicsComposition* compositionSource; @@ -5977,6 +5985,11 @@ Predefined Events ,handled(false) { } + + ~GuiEventArgs() + { + FinalizeAggregation(); + } }; /// Request event arguments. diff --git a/Import/GacUICompiler.cpp b/Import/GacUICompiler.cpp index c5c8c85b..cdf45110 100644 --- a/Import/GacUICompiler.cpp +++ b/Import/GacUICompiler.cpp @@ -2490,13 +2490,16 @@ GuiInstanceContext parameter->className = GlobalStringKey::Get(attClass->value.value); context->parameters.Add(parameter); } + else + { + errors.Add(L"ref.Parameter requires the following attributes existing at the same time: Name, Class."); + } } else if (element->name.value == L"ref.Property") { auto attName = XmlGetAttribute(element, L"Name"); auto attType = XmlGetAttribute(element, L"Type"); auto attValue = XmlGetAttribute(element, L"Value"); - auto attReadonly = XmlGetAttribute(element, L"Readonly"); if (attName && attType) { auto prop = MakePtr(); @@ -2506,12 +2509,12 @@ GuiInstanceContext { prop->value = attValue->value.value; } - if (attReadonly) - { - prop->readonly = attReadonly->value.value == L"true"; - } context->properties.Add(prop); } + else + { + errors.Add(L"ref.Property requires the following attributes existing at the same time: Name, Type."); + } } else if (element->name.value == L"ref.State") { @@ -2529,6 +2532,50 @@ GuiInstanceContext } context->states.Add(state); } + else + { + errors.Add(L"ref.State requires the following attributes existing at the same time: Name, Type."); + } + } + else if (element->name.value == L"ref.Component") + { + auto attName = XmlGetAttribute(element, L"Name"); + auto attType = XmlGetAttribute(element, L"Type"); + auto attExpression = XmlGetAttribute(element, L"Expression"); + if (attName && attType && attExpression) + { + auto component = MakePtr(); + component->name = GlobalStringKey::Get(attName->value.value); + component->typeName = attType->value.value; + if (attExpression) + { + component->expression = attExpression->value.value; + } + context->components.Add(component); + } + else + { + errors.Add(L"ref.Component requires the following attributes existing at the same time: Name, Type, Expression."); + } + } + else if (element->name.value == L"ref.Event") + { + auto attName = XmlGetAttribute(element, L"Name"); + auto attClass = XmlGetAttribute(element, L"EventArgsClass"); + if (attName) + { + auto ev = MakePtr(); + ev->name = GlobalStringKey::Get(attName->value.value); + if (attClass) + { + ev->eventArgsClass = attClass->value.value; + } + context->events.Add(ev); + } + else + { + errors.Add(L"ref.Event requires the following attributes existing at the same time: Name."); + } } else if (!context->instance) { @@ -2621,11 +2668,6 @@ GuiInstanceContext attValue->value.value = prop->value; xmlProperty->attributes.Add(attType); } - - auto attReadonly = MakePtr(); - attReadonly->name.value = L"Readonly"; - attReadonly->value.value = prop->readonly ? L"true" : L"false"; - xmlProperty->attributes.Add(attReadonly); } FOREACH(Ptr, state, states) @@ -2649,7 +2691,49 @@ GuiInstanceContext auto attValue = MakePtr(); attValue->name.value = L"Value"; attValue->value.value = state->value; - xmlState->attributes.Add(attType); + xmlState->attributes.Add(attValue); + } + } + + FOREACH(Ptr, component, components) + { + auto xmlComponent = MakePtr(); + xmlComponent->name.value = L"ref.Component"; + xmlInstance->subNodes.Add(xmlComponent); + + auto attName = MakePtr(); + attName->name.value = L"Name"; + attName->value.value = component->name.ToString(); + xmlComponent->attributes.Add(attName); + + auto attType = MakePtr(); + attType->name.value = L"Type"; + attType->value.value = component->typeName; + xmlComponent->attributes.Add(attType); + + auto attExpression = MakePtr(); + attExpression->name.value = L"Value"; + attExpression->value.value = component->expression; + xmlComponent->attributes.Add(attExpression); + } + + FOREACH(Ptr, ev, events) + { + auto xmlEvent = MakePtr(); + xmlEvent->name.value = L"ref.Event"; + xmlInstance->subNodes.Add(xmlEvent); + + auto attName = MakePtr(); + attName->name.value = L"Name"; + attName->value.value = ev->name.ToString(); + xmlEvent->attributes.Add(attName); + + if (ev->eventArgsClass != L"") + { + auto attClass = MakePtr(); + attClass->name.value = L"EventArgsClass"; + attClass->value.value = ev->eventArgsClass; + xmlEvent->attributes.Add(attClass); } } @@ -6719,6 +6803,22 @@ Workflow_GenerateInstanceClass return nullptr; } }; + + auto expressionParser = GetParserManager()->GetParser(L"WORKFLOW-EXPRESSION"); + auto parseExpression = [expressionParser, &errors](const WString& code, const WString& name)->Ptr + { + List parserErrors; + if (auto type = expressionParser->TypedParse(code, parserErrors)) + { + return type; + } + else + { + errors.Add(L"Precompile: Failed to parse " + name + L": " + code); + return nullptr; + } + }; + auto addDecl = [=](Ptr decl) { auto member = MakePtr(); @@ -6882,7 +6982,6 @@ Workflow_GenerateInstanceClass decl->statement = notImplemented(); } } - if (!prop->readonly) { auto decl = MakePtr(); addDecl(decl); @@ -6972,15 +7071,51 @@ Workflow_GenerateInstanceClass decl->name.value = prop->name.ToString(); decl->type = type; decl->getter.value = L"Get" + prop->name.ToString(); - if (!prop->readonly) - { - decl->setter.value = L"Set" + prop->name.ToString(); - } + decl->setter.value = L"Set" + prop->name.ToString(); decl->valueChangedEvent.value = prop->name.ToString() + L"Changed"; } } } + FOREACH(Ptr, component, context->components) + { + auto type = parseType(component->typeName, L"component \"" + component->name.ToString() + L" of instance \"" + context->className + L"\""); + auto expression = parseExpression(component->expression, L"component \"" + component->name.ToString() + L" of instance \"" + context->className + L"\""); + + if (type && expression) + { + { + auto decl = MakePtr(); + addDecl(decl); + + decl->anonymity = WfFunctionAnonymity::Named; + decl->name.value = L"Get" + component->name.ToString(); + decl->returnType = CopyType(type); + if (!beforePrecompile) + { + auto block = MakePtr(); + decl->statement = block; + + auto returnStat = MakePtr(); + returnStat->expression = expression; + block->statements.Add(returnStat); + } + else + { + decl->statement = notImplemented(); + } + } + { + auto decl = MakePtr(); + addDecl(decl); + + decl->name.value = component->name.ToString(); + decl->type = type; + decl->getter.value = L"Get" + component->name.ToString(); + } + } + } + auto ctor = MakePtr(); ctor->constructorType = WfConstructorType::RawPtr; auto ctorBlock = (beforePrecompile ? notImplemented() : MakePtr()); @@ -7022,6 +7157,63 @@ Workflow_GenerateInstanceClass } } + FOREACH(Ptr, ev, context->events) + { + if (ev->eventArgsClass == L"") + { + auto decl = MakePtr(); + addDecl(decl); + decl->name.value = ev->name.ToString(); + } + else if (auto type = parseType(ev->eventArgsClass + L"*", L"event \"" + ev->name.ToString() + L" of instance \"" + context->className + L"\"")) + { + { + auto decl = MakePtr(); + addDecl(decl); + decl->name.value = ev->name.ToString(); + decl->arguments.Add(GetTypeFromTypeInfo(TypeInfoRetriver::CreateTypeInfo().Obj())); + decl->arguments.Add(type); + } + if (beforePrecompile) + { + auto sharedType = MakePtr(); + sharedType->element = CopyType(type.Cast()->element); + { + auto newExpr = MakePtr(); + newExpr->type = sharedType; + + auto inferExpr = MakePtr(); + inferExpr->type = GetTypeFromTypeInfo(TypeInfoRetriver>::CreateTypeInfo().Obj()); + inferExpr->expression = newExpr; + + auto stat = MakePtr(); + stat->expression = inferExpr; + ctorBlock->statements.Add(stat); + } + { + auto nullExpr = MakePtr(); + nullExpr->value = WfLiteralValue::Null; + + auto argument = MakePtr(); + argument->type = GetTypeFromTypeInfo(TypeInfoRetriver::CreateTypeInfo().Obj()); + argument->expression = nullExpr; + + auto newExpr = MakePtr(); + newExpr->type = CopyType(sharedType); + newExpr->arguments.Add(argument); + + auto inferExpr = MakePtr(); + inferExpr->type = GetTypeFromTypeInfo(TypeInfoRetriver>::CreateTypeInfo().Obj()); + inferExpr->expression = newExpr; + + auto stat = MakePtr(); + stat->expression = inferExpr; + ctorBlock->statements.Add(stat); + } + } + } + } + FOREACH(Ptr, param, context->parameters) { if (auto type = parseType(param->className.ToString() + L"^", L"parameter \"" + param->name.ToString() + L" of instance \"" + context->className + L"\"")) diff --git a/Import/GacUICompiler.h b/Import/GacUICompiler.h index 5ca02224..18d950f0 100644 --- a/Import/GacUICompiler.h +++ b/Import/GacUICompiler.h @@ -290,7 +290,7 @@ Instance Namespace }; // Workflow: - // C++: ->Get + // C++: ->Get() class GuiInstanceParameter : public Object, public Description { public: @@ -299,19 +299,18 @@ Instance Namespace }; // Workflow: . - // C++: ->Get - // ->Set + // C++: ->Get() + // ->Set() class GuiInstanceProperty : public Object, public Description { public: GlobalStringKey name; WString typeName; - WString value; - bool readonly = false; + WString value;\ }; // Workflow: . - // C++: -> + // C++: ->() class GuiInstanceState : public Object, public Description { public: @@ -319,6 +318,25 @@ Instance Namespace WString typeName; WString value; }; + + // Workflow: . + // C++: ->Get() + class GuiInstanceComponent : public Object, public Description + { + public: + GlobalStringKey name; + WString typeName; + WString expression; + }; + + // Workflow: . + // C++: -> + class GuiInstanceEvent : public Object, public Description + { + public: + GlobalStringKey name; + WString eventArgsClass; + }; /*********************************************************************** Instance Context @@ -340,6 +358,8 @@ Instance Context typedef collections::List> ParameterList; typedef collections::List> PropertyList; typedef collections::List> StateList; + typedef collections::List> ComponentList; + typedef collections::List> EventList; typedef collections::List> StyleContextList; class ElementName : public Object @@ -362,10 +382,13 @@ Instance Context NamespaceMap namespaces; bool codeBehind = true; WString className; + collections::List stylePaths; + ParameterList parameters; PropertyList properties; StateList states; - collections::List stylePaths; + ComponentList components; + EventList events; bool appliedStyles = false; StyleContextList styles; diff --git a/Tools/GacGen.exe b/Tools/GacGen.exe index a8815c7c..a7062f31 100644 Binary files a/Tools/GacGen.exe and b/Tools/GacGen.exe differ diff --git a/Tutorial/GacUI_ControlTemplate/BlackSkin/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_ControlTemplate/BlackSkin/UI/Source/DemoPartialClasses.cpp index fed4949f..1503acc8 100644 --- a/Tutorial/GacUI_ControlTemplate/BlackSkin/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_ControlTemplate/BlackSkin/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void BottomScrollButtonTemplate::OnCreate() + { + } + + void BottomScrollButtonTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER BottomScrollButtonTemplate::BottomScrollButtonTemplate() { InitializeComponents(); + OnCreate(); } BottomScrollButtonTemplate::~BottomScrollButtonTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -32,15 +42,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void ButtonTemplate::OnCreate() + { + } + + void ButtonTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER ButtonTemplate::ButtonTemplate() { InitializeComponents(); + OnCreate(); } ButtonTemplate::~ButtonTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -50,15 +70,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void CheckBoxTemplate::OnCreate() + { + } + + void CheckBoxTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER CheckBoxTemplate::CheckBoxTemplate() { InitializeComponents(); + OnCreate(); } CheckBoxTemplate::~CheckBoxTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -68,15 +98,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void CheckItemBackgroundTemplate::OnCreate() + { + } + + void CheckItemBackgroundTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER CheckItemBackgroundTemplate::CheckItemBackgroundTemplate() { InitializeComponents(); + OnCreate(); } CheckItemBackgroundTemplate::~CheckItemBackgroundTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -86,15 +126,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void CheckTextListTemplate::OnCreate() + { + } + + void CheckTextListTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER CheckTextListTemplate::CheckTextListTemplate() { InitializeComponents(); + OnCreate(); } CheckTextListTemplate::~CheckTextListTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -104,15 +154,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void ComboBoxTemplate::OnCreate() + { + } + + void ComboBoxTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER ComboBoxTemplate::ComboBoxTemplate() { InitializeComponents(); + OnCreate(); } ComboBoxTemplate::~ComboBoxTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -122,15 +182,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void DatePickerTemplate::OnCreate() + { + } + + void DatePickerTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER DatePickerTemplate::DatePickerTemplate() { InitializeComponents(); + OnCreate(); } DatePickerTemplate::~DatePickerTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -140,15 +210,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void DocumentLabelTemplate::OnCreate() + { + } + + void DocumentLabelTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER DocumentLabelTemplate::DocumentLabelTemplate() { InitializeComponents(); + OnCreate(); } DocumentLabelTemplate::~DocumentLabelTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -158,15 +238,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void DocumentViewerTemplate::OnCreate() + { + } + + void DocumentViewerTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER DocumentViewerTemplate::DocumentViewerTemplate() { InitializeComponents(); + OnCreate(); } DocumentViewerTemplate::~DocumentViewerTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -176,15 +266,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void ExpandingDecoratorTemplate::OnCreate() + { + } + + void ExpandingDecoratorTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER ExpandingDecoratorTemplate::ExpandingDecoratorTemplate() { InitializeComponents(); + OnCreate(); } ExpandingDecoratorTemplate::~ExpandingDecoratorTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -194,15 +294,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void GroupBoxTemplate::OnCreate() + { + } + + void GroupBoxTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER GroupBoxTemplate::GroupBoxTemplate() { InitializeComponents(); + OnCreate(); } GroupBoxTemplate::~GroupBoxTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -212,15 +322,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void HScrollHandleTemplate::OnCreate() + { + } + + void HScrollHandleTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER HScrollHandleTemplate::HScrollHandleTemplate() { InitializeComponents(); + OnCreate(); } HScrollHandleTemplate::~HScrollHandleTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -230,15 +350,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void HScrollTemplate::OnCreate() + { + } + + void HScrollTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER HScrollTemplate::HScrollTemplate() { InitializeComponents(); + OnCreate(); } HScrollTemplate::~HScrollTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -248,15 +378,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void HTrackerTemplate::OnCreate() + { + } + + void HTrackerTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER HTrackerTemplate::HTrackerTemplate() { InitializeComponents(); + OnCreate(); } HTrackerTemplate::~HTrackerTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -266,15 +406,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void ItemBackgroundTemplate::OnCreate() + { + } + + void ItemBackgroundTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER ItemBackgroundTemplate::ItemBackgroundTemplate() { InitializeComponents(); + OnCreate(); } ItemBackgroundTemplate::~ItemBackgroundTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -284,15 +434,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void LabelTemplate::OnCreate() + { + } + + void LabelTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER LabelTemplate::LabelTemplate() { InitializeComponents(); + OnCreate(); } LabelTemplate::~LabelTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -302,15 +462,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void LeftScrollButtonTemplate::OnCreate() + { + } + + void LeftScrollButtonTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER LeftScrollButtonTemplate::LeftScrollButtonTemplate() { InitializeComponents(); + OnCreate(); } LeftScrollButtonTemplate::~LeftScrollButtonTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -320,15 +490,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void ListViewColumnHeaderTemplate::OnCreate() + { + } + + void ListViewColumnHeaderTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER ListViewColumnHeaderTemplate::ListViewColumnHeaderTemplate() { InitializeComponents(); + OnCreate(); } ListViewColumnHeaderTemplate::~ListViewColumnHeaderTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -338,15 +518,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void ListViewTemplate::OnCreate() + { + } + + void ListViewTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER ListViewTemplate::ListViewTemplate() { InitializeComponents(); + OnCreate(); } ListViewTemplate::~ListViewTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -356,15 +546,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MenuBarButtonTemplate::OnCreate() + { + } + + void MenuBarButtonTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MenuBarButtonTemplate::MenuBarButtonTemplate() { InitializeComponents(); + OnCreate(); } MenuBarButtonTemplate::~MenuBarButtonTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -374,15 +574,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MenuItemButtonTemplate::OnCreate() + { + } + + void MenuItemButtonTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MenuItemButtonTemplate::MenuItemButtonTemplate() { InitializeComponents(); + OnCreate(); } MenuItemButtonTemplate::~MenuItemButtonTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -392,15 +602,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MenuSplitterTemplate::OnCreate() + { + } + + void MenuSplitterTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MenuSplitterTemplate::MenuSplitterTemplate() { InitializeComponents(); + OnCreate(); } MenuSplitterTemplate::~MenuSplitterTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -410,15 +630,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MultilineTextBoxTemplate::OnCreate() + { + } + + void MultilineTextBoxTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MultilineTextBoxTemplate::MultilineTextBoxTemplate() { InitializeComponents(); + OnCreate(); } MultilineTextBoxTemplate::~MultilineTextBoxTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -428,15 +658,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void ProgressBarTemplate::OnCreate() + { + } + + void ProgressBarTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER ProgressBarTemplate::ProgressBarTemplate() { InitializeComponents(); + OnCreate(); } ProgressBarTemplate::~ProgressBarTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -446,15 +686,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void RadioButtonTemplate::OnCreate() + { + } + + void RadioButtonTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER RadioButtonTemplate::RadioButtonTemplate() { InitializeComponents(); + OnCreate(); } RadioButtonTemplate::~RadioButtonTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -464,15 +714,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void RadioTextListTemplate::OnCreate() + { + } + + void RadioTextListTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER RadioTextListTemplate::RadioTextListTemplate() { InitializeComponents(); + OnCreate(); } RadioTextListTemplate::~RadioTextListTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -482,15 +742,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void RightScrollButtonTemplate::OnCreate() + { + } + + void RightScrollButtonTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER RightScrollButtonTemplate::RightScrollButtonTemplate() { InitializeComponents(); + OnCreate(); } RightScrollButtonTemplate::~RightScrollButtonTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -500,15 +770,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void ScrollViewTemplate::OnCreate() + { + } + + void ScrollViewTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER ScrollViewTemplate::ScrollViewTemplate() { InitializeComponents(); + OnCreate(); } ScrollViewTemplate::~ScrollViewTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -518,15 +798,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void SinglelineTextBoxTemplate::OnCreate() + { + } + + void SinglelineTextBoxTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER SinglelineTextBoxTemplate::SinglelineTextBoxTemplate() { InitializeComponents(); + OnCreate(); } SinglelineTextBoxTemplate::~SinglelineTextBoxTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -536,15 +826,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void TabDropdownTemplate::OnCreate() + { + } + + void TabDropdownTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER TabDropdownTemplate::TabDropdownTemplate() { InitializeComponents(); + OnCreate(); } TabDropdownTemplate::~TabDropdownTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -554,15 +854,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void TabHeaderTemplate::OnCreate() + { + } + + void TabHeaderTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER TabHeaderTemplate::TabHeaderTemplate() { InitializeComponents(); + OnCreate(); } TabHeaderTemplate::~TabHeaderTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -572,15 +882,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void TabTemplate::OnCreate() + { + } + + void TabTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER TabTemplate::TabTemplate() { InitializeComponents(); + OnCreate(); } TabTemplate::~TabTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -590,15 +910,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void TextListTemplate::OnCreate() + { + } + + void TextListTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER TextListTemplate::TextListTemplate() { InitializeComponents(); + OnCreate(); } TextListTemplate::~TextListTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -608,15 +938,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void ToolstripButtonTemplate::OnCreate() + { + } + + void ToolstripButtonTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER ToolstripButtonTemplate::ToolstripButtonTemplate() { InitializeComponents(); + OnCreate(); } ToolstripButtonTemplate::~ToolstripButtonTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -626,15 +966,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void ToolstripDropdownButtonTemplate::OnCreate() + { + } + + void ToolstripDropdownButtonTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER ToolstripDropdownButtonTemplate::ToolstripDropdownButtonTemplate() { InitializeComponents(); + OnCreate(); } ToolstripDropdownButtonTemplate::~ToolstripDropdownButtonTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -644,15 +994,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void ToolstripMenuTemplate::OnCreate() + { + } + + void ToolstripMenuTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER ToolstripMenuTemplate::ToolstripMenuTemplate() { InitializeComponents(); + OnCreate(); } ToolstripMenuTemplate::~ToolstripMenuTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -662,15 +1022,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void ToolstripSplitArrowTemplate::OnCreate() + { + } + + void ToolstripSplitArrowTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER ToolstripSplitArrowTemplate::ToolstripSplitArrowTemplate() { InitializeComponents(); + OnCreate(); } ToolstripSplitArrowTemplate::~ToolstripSplitArrowTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -680,15 +1050,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void ToolstripSplitButtonTemplate::OnCreate() + { + } + + void ToolstripSplitButtonTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER ToolstripSplitButtonTemplate::ToolstripSplitButtonTemplate() { InitializeComponents(); + OnCreate(); } ToolstripSplitButtonTemplate::~ToolstripSplitButtonTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -698,15 +1078,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void ToolstripSplitterTemplate::OnCreate() + { + } + + void ToolstripSplitterTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER ToolstripSplitterTemplate::ToolstripSplitterTemplate() { InitializeComponents(); + OnCreate(); } ToolstripSplitterTemplate::~ToolstripSplitterTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -716,15 +1106,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void ToolstripTemplate::OnCreate() + { + } + + void ToolstripTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER ToolstripTemplate::ToolstripTemplate() { InitializeComponents(); + OnCreate(); } ToolstripTemplate::~ToolstripTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -734,15 +1134,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void TooltipTemplate::OnCreate() + { + } + + void TooltipTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER TooltipTemplate::TooltipTemplate() { InitializeComponents(); + OnCreate(); } TooltipTemplate::~TooltipTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -752,15 +1162,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void TopScrollButtonTemplate::OnCreate() + { + } + + void TopScrollButtonTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER TopScrollButtonTemplate::TopScrollButtonTemplate() { InitializeComponents(); + OnCreate(); } TopScrollButtonTemplate::~TopScrollButtonTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -770,15 +1190,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void TreeViewTemplate::OnCreate() + { + } + + void TreeViewTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER TreeViewTemplate::TreeViewTemplate() { InitializeComponents(); + OnCreate(); } TreeViewTemplate::~TreeViewTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -788,15 +1218,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void VScrollHandleTemplate::OnCreate() + { + } + + void VScrollHandleTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER VScrollHandleTemplate::VScrollHandleTemplate() { InitializeComponents(); + OnCreate(); } VScrollHandleTemplate::~VScrollHandleTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -806,15 +1246,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void VScrollTemplate::OnCreate() + { + } + + void VScrollTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER VScrollTemplate::VScrollTemplate() { InitializeComponents(); + OnCreate(); } VScrollTemplate::~VScrollTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -824,15 +1274,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void VTrackerTemplate::OnCreate() + { + } + + void VTrackerTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER VTrackerTemplate::VTrackerTemplate() { InitializeComponents(); + OnCreate(); } VTrackerTemplate::~VTrackerTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -842,15 +1302,25 @@ namespace darkskin { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void WindowTemplate::OnCreate() + { + } + + void WindowTemplate::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER WindowTemplate::WindowTemplate() { InitializeComponents(); + OnCreate(); } WindowTemplate::~WindowTemplate() { + OnDestroy(); ClearSubscriptions(); } } @@ -860,15 +1330,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow() { InitializeComponents(); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_ControlTemplate/BlackSkin/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_ControlTemplate/BlackSkin/UI/Source/DemoPartialClasses.h index 48949f49..80b49acf 100644 --- a/Tutorial/GacUI_ControlTemplate/BlackSkin/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_ControlTemplate/BlackSkin/UI/Source/DemoPartialClasses.h @@ -1571,6 +1571,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: BottomScrollButtonTemplate(); @@ -1588,6 +1590,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: ButtonTemplate(); @@ -1605,6 +1609,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: CheckBoxTemplate(); @@ -1622,6 +1628,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: CheckItemBackgroundTemplate(); @@ -1639,6 +1647,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: CheckTextListTemplate(); @@ -1656,6 +1666,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: ComboBoxTemplate(); @@ -1673,6 +1685,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: DatePickerTemplate(); @@ -1690,6 +1704,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: DocumentLabelTemplate(); @@ -1707,6 +1723,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: DocumentViewerTemplate(); @@ -1724,6 +1742,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: ExpandingDecoratorTemplate(); @@ -1741,6 +1761,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: GroupBoxTemplate(); @@ -1758,6 +1780,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: HScrollHandleTemplate(); @@ -1775,6 +1799,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: HScrollTemplate(); @@ -1792,6 +1818,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: HTrackerTemplate(); @@ -1809,6 +1837,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: ItemBackgroundTemplate(); @@ -1826,6 +1856,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: LabelTemplate(); @@ -1843,6 +1875,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: LeftScrollButtonTemplate(); @@ -1860,6 +1894,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: ListViewColumnHeaderTemplate(); @@ -1877,6 +1913,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: ListViewTemplate(); @@ -1894,6 +1932,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MenuBarButtonTemplate(); @@ -1911,6 +1951,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MenuItemButtonTemplate(); @@ -1928,6 +1970,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MenuSplitterTemplate(); @@ -1945,6 +1989,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MultilineTextBoxTemplate(); @@ -1962,6 +2008,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: ProgressBarTemplate(); @@ -1979,6 +2027,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: RadioButtonTemplate(); @@ -1996,6 +2046,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: RadioTextListTemplate(); @@ -2013,6 +2065,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: RightScrollButtonTemplate(); @@ -2030,6 +2084,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: ScrollViewTemplate(); @@ -2047,6 +2103,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: SinglelineTextBoxTemplate(); @@ -2064,6 +2122,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: TabDropdownTemplate(); @@ -2081,6 +2141,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: TabHeaderTemplate(); @@ -2098,6 +2160,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: TabTemplate(); @@ -2115,6 +2179,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: TextListTemplate(); @@ -2132,6 +2198,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: ToolstripButtonTemplate(); @@ -2149,6 +2217,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: ToolstripDropdownButtonTemplate(); @@ -2166,6 +2236,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: ToolstripMenuTemplate(); @@ -2183,6 +2255,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: ToolstripSplitArrowTemplate(); @@ -2200,6 +2274,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: ToolstripSplitButtonTemplate(); @@ -2217,6 +2293,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: ToolstripSplitterTemplate(); @@ -2234,6 +2312,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: ToolstripTemplate(); @@ -2251,6 +2331,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: TooltipTemplate(); @@ -2268,6 +2350,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: TopScrollButtonTemplate(); @@ -2285,6 +2369,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: TreeViewTemplate(); @@ -2302,6 +2388,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: VScrollHandleTemplate(); @@ -2319,6 +2407,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: VScrollTemplate(); @@ -2336,6 +2426,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: VTrackerTemplate(); @@ -2353,6 +2445,8 @@ namespace darkskin protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: WindowTemplate(); @@ -2370,6 +2464,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(); diff --git a/Tutorial/GacUI_ControlTemplate/UIRes/BlackSkin.bin b/Tutorial/GacUI_ControlTemplate/UIRes/BlackSkin.bin index 4d150787..c7d8db78 100644 Binary files a/Tutorial/GacUI_ControlTemplate/UIRes/BlackSkin.bin and b/Tutorial/GacUI_ControlTemplate/UIRes/BlackSkin.bin differ diff --git a/Tutorial/GacUI_Controls/ContainersAndButtons/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Controls/ContainersAndButtons/UI/Source/DemoPartialClasses.cpp index aa0483a1..4be7d2d3 100644 --- a/Tutorial/GacUI_Controls/ContainersAndButtons/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Controls/ContainersAndButtons/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow() { InitializeComponents(); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Controls/ContainersAndButtons/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Controls/ContainersAndButtons/UI/Source/DemoPartialClasses.h index 30998adf..0ce96883 100644 --- a/Tutorial/GacUI_Controls/ContainersAndButtons/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Controls/ContainersAndButtons/UI/Source/DemoPartialClasses.h @@ -65,6 +65,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(); diff --git a/Tutorial/GacUI_Controls/TextEditor/UI/Source/AboutWindow.cpp b/Tutorial/GacUI_Controls/TextEditor/UI/Source/AboutWindow.cpp index 870ded45..02eb8dc4 100644 --- a/Tutorial/GacUI_Controls/TextEditor/UI/Source/AboutWindow.cpp +++ b/Tutorial/GacUI_Controls/TextEditor/UI/Source/AboutWindow.cpp @@ -18,15 +18,25 @@ namespace demo ShellExecute(NULL, L"OPEN", documentLabel->GetActiveHyperlinkReference().Buffer(), NULL, NULL, SW_MAXIMIZE); } + void AboutWindow::OnCreate() + { + } + + void AboutWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER AboutWindow::AboutWindow() { InitializeComponents(); + OnCreate(); } AboutWindow::~AboutWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Controls/TextEditor/UI/Source/AboutWindow.h b/Tutorial/GacUI_Controls/TextEditor/UI/Source/AboutWindow.h index d359f1cb..4e088d5e 100644 --- a/Tutorial/GacUI_Controls/TextEditor/UI/Source/AboutWindow.h +++ b/Tutorial/GacUI_Controls/TextEditor/UI/Source/AboutWindow.h @@ -21,6 +21,8 @@ namespace demo // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) void documentLabel_ActiveHyperlinkExecuted(GuiGraphicsComposition* sender, vl::presentation::compositions::GuiEventArgs& arguments); + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: AboutWindow(); diff --git a/Tutorial/GacUI_Controls/TextEditor/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Controls/TextEditor/UI/Source/DemoPartialClasses.cpp index 24225541..31753d3d 100644 --- a/Tutorial/GacUI_Controls/TextEditor/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Controls/TextEditor/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void FindWindow::OnCreate() + { + } + + void FindWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER FindWindow::FindWindow(Ptr ViewModel) { InitializeComponents(ViewModel); + OnCreate(); } FindWindow::~FindWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Controls/TextEditor/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Controls/TextEditor/UI/Source/DemoPartialClasses.h index 4c73e2b4..8ddb6cfa 100644 --- a/Tutorial/GacUI_Controls/TextEditor/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Controls/TextEditor/UI/Source/DemoPartialClasses.h @@ -238,6 +238,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: FindWindow(Ptr ViewModel); diff --git a/Tutorial/GacUI_Controls/TextEditor/UI/Source/MainWindow.cpp b/Tutorial/GacUI_Controls/TextEditor/UI/Source/MainWindow.cpp index bbcf1544..df703102 100644 --- a/Tutorial/GacUI_Controls/TextEditor/UI/Source/MainWindow.cpp +++ b/Tutorial/GacUI_Controls/TextEditor/UI/Source/MainWindow.cpp @@ -188,6 +188,17 @@ namespace demo arguments.cancel = !CanCloseFile(); } + void MainWindow::OnCreate() + { + findWindow = MakePtr(MakePtr(textBox)); + findWindow->MoveToScreenCenter(); + findWindow->GetNativeWindow()->SetParent(GetNativeWindow()); + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER bool MainWindow::CanCloseFile() @@ -312,13 +323,12 @@ namespace demo MainWindow::MainWindow() { InitializeComponents(); - findWindow = MakePtr(MakePtr(textBox)); - findWindow->MoveToScreenCenter(); - findWindow->GetNativeWindow()->SetParent(GetNativeWindow()); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } diff --git a/Tutorial/GacUI_Controls/TextEditor/UI/Source/MainWindow.h b/Tutorial/GacUI_Controls/TextEditor/UI/Source/MainWindow.h index 1e9f259f..64895e45 100644 --- a/Tutorial/GacUI_Controls/TextEditor/UI/Source/MainWindow.h +++ b/Tutorial/GacUI_Controls/TextEditor/UI/Source/MainWindow.h @@ -38,6 +38,8 @@ namespace demo void commandFileSaveAs_Executed(GuiGraphicsComposition* sender, vl::presentation::compositions::GuiEventArgs& arguments); void commandFileSave_Executed(GuiGraphicsComposition* sender, vl::presentation::compositions::GuiEventArgs& arguments); void window_Closing(GuiGraphicsComposition* sender, vl::presentation::compositions::GuiRequestEventArgs& arguments); + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER private: diff --git a/Tutorial/GacUI_Controls/UIRes/ContainersAndButtons.bin b/Tutorial/GacUI_Controls/UIRes/ContainersAndButtons.bin index 4956084d..e4dbed00 100644 Binary files a/Tutorial/GacUI_Controls/UIRes/ContainersAndButtons.bin and b/Tutorial/GacUI_Controls/UIRes/ContainersAndButtons.bin differ diff --git a/Tutorial/GacUI_Controls/UIRes/TextEditor.bin b/Tutorial/GacUI_Controls/UIRes/TextEditor.bin index cecf7088..055b1738 100644 Binary files a/Tutorial/GacUI_Controls/UIRes/TextEditor.bin and b/Tutorial/GacUI_Controls/UIRes/TextEditor.bin differ diff --git a/Tutorial/GacUI_HelloWorlds/CppXml/UI/Source/HelloWorldPartialClasses.cpp b/Tutorial/GacUI_HelloWorlds/CppXml/UI/Source/HelloWorldPartialClasses.cpp index 6e19f328..865b3365 100644 --- a/Tutorial/GacUI_HelloWorlds/CppXml/UI/Source/HelloWorldPartialClasses.cpp +++ b/Tutorial/GacUI_HelloWorlds/CppXml/UI/Source/HelloWorldPartialClasses.cpp @@ -14,15 +14,25 @@ namespace helloworld { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow() { InitializeComponents(); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_HelloWorlds/CppXml/UI/Source/HelloWorldPartialClasses.h b/Tutorial/GacUI_HelloWorlds/CppXml/UI/Source/HelloWorldPartialClasses.h index 176e6533..37ca8785 100644 --- a/Tutorial/GacUI_HelloWorlds/CppXml/UI/Source/HelloWorldPartialClasses.h +++ b/Tutorial/GacUI_HelloWorlds/CppXml/UI/Source/HelloWorldPartialClasses.h @@ -62,6 +62,8 @@ namespace helloworld protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(); diff --git a/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/HelloWorldPartialClasses.h b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/HelloWorldPartialClasses.h index c7d19eb4..6baf7b0b 100644 --- a/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/HelloWorldPartialClasses.h +++ b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/HelloWorldPartialClasses.h @@ -81,6 +81,7 @@ namespace helloworld ,textBoxPassword(0) ,textBoxUserName(0) { + this->HasLoggedIn_ = vl::reflection::description::UnboxValue(vl::reflection::description::Value::From(L"false", reflection::description::GetTypeDescriptor())); } Ptr GetViewModel() diff --git a/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/MainWindow.cpp b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/MainWindow.cpp index 1874905f..70fac95c 100644 --- a/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/MainWindow.cpp +++ b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/MainWindow.cpp @@ -21,15 +21,25 @@ namespace helloworld } } + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow(Ptr ViewModel) { InitializeComponents(ViewModel); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/MainWindow.h b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/MainWindow.h index 7413c7b3..f4f1aaee 100644 --- a/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/MainWindow.h +++ b/Tutorial/GacUI_HelloWorlds/MVVM/UI/Source/MainWindow.h @@ -21,6 +21,8 @@ namespace helloworld // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) void buttonSignUp_Clicked(GuiGraphicsComposition* sender, vl::presentation::compositions::GuiEventArgs& arguments); + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(Ptr ViewModel); diff --git a/Tutorial/GacUI_HelloWorlds/UIRes/CppXml.bin b/Tutorial/GacUI_HelloWorlds/UIRes/CppXml.bin index eed58bf0..aca72a7e 100644 Binary files a/Tutorial/GacUI_HelloWorlds/UIRes/CppXml.bin and b/Tutorial/GacUI_HelloWorlds/UIRes/CppXml.bin differ diff --git a/Tutorial/GacUI_HelloWorlds/UIRes/MVVM.bin b/Tutorial/GacUI_HelloWorlds/UIRes/MVVM.bin index 8e7b9745..03d9290c 100644 Binary files a/Tutorial/GacUI_HelloWorlds/UIRes/MVVM.bin and b/Tutorial/GacUI_HelloWorlds/UIRes/MVVM.bin differ diff --git a/Tutorial/GacUI_HelloWorlds/UIRes/Xml.bin b/Tutorial/GacUI_HelloWorlds/UIRes/Xml.bin index b223fb4e..a66a0ab3 100644 Binary files a/Tutorial/GacUI_HelloWorlds/UIRes/Xml.bin and b/Tutorial/GacUI_HelloWorlds/UIRes/Xml.bin differ diff --git a/Tutorial/GacUI_Layout/Alignment/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Layout/Alignment/UI/Source/DemoPartialClasses.cpp index aa0483a1..4be7d2d3 100644 --- a/Tutorial/GacUI_Layout/Alignment/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Layout/Alignment/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow() { InitializeComponents(); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Layout/Alignment/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Layout/Alignment/UI/Source/DemoPartialClasses.h index 8088a85f..8383bfe1 100644 --- a/Tutorial/GacUI_Layout/Alignment/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Layout/Alignment/UI/Source/DemoPartialClasses.h @@ -62,6 +62,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(); diff --git a/Tutorial/GacUI_Layout/Flow/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Layout/Flow/UI/Source/DemoPartialClasses.cpp index aa0483a1..4be7d2d3 100644 --- a/Tutorial/GacUI_Layout/Flow/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Layout/Flow/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow() { InitializeComponents(); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Layout/Flow/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Layout/Flow/UI/Source/DemoPartialClasses.h index 70f473f2..eaf8b3a5 100644 --- a/Tutorial/GacUI_Layout/Flow/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Layout/Flow/UI/Source/DemoPartialClasses.h @@ -77,6 +77,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(); diff --git a/Tutorial/GacUI_Layout/RichTextEmbedding/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Layout/RichTextEmbedding/UI/Source/DemoPartialClasses.cpp index 61230574..195b2964 100644 --- a/Tutorial/GacUI_Layout/RichTextEmbedding/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Layout/RichTextEmbedding/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow(Ptr ViewModel) { InitializeComponents(ViewModel); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Layout/RichTextEmbedding/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Layout/RichTextEmbedding/UI/Source/DemoPartialClasses.h index 3624621e..ecb57827 100644 --- a/Tutorial/GacUI_Layout/RichTextEmbedding/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Layout/RichTextEmbedding/UI/Source/DemoPartialClasses.h @@ -81,6 +81,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(Ptr ViewModel); diff --git a/Tutorial/GacUI_Layout/Stack/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Layout/Stack/UI/Source/DemoPartialClasses.cpp index aa0483a1..4be7d2d3 100644 --- a/Tutorial/GacUI_Layout/Stack/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Layout/Stack/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow() { InitializeComponents(); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Layout/Stack/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Layout/Stack/UI/Source/DemoPartialClasses.h index d0a9eab7..dd8c9a18 100644 --- a/Tutorial/GacUI_Layout/Stack/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Layout/Stack/UI/Source/DemoPartialClasses.h @@ -68,6 +68,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(); diff --git a/Tutorial/GacUI_Layout/Table/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Layout/Table/UI/Source/DemoPartialClasses.cpp index aa0483a1..4be7d2d3 100644 --- a/Tutorial/GacUI_Layout/Table/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Layout/Table/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow() { InitializeComponents(); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Layout/Table/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Layout/Table/UI/Source/DemoPartialClasses.h index 8088a85f..8383bfe1 100644 --- a/Tutorial/GacUI_Layout/Table/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Layout/Table/UI/Source/DemoPartialClasses.h @@ -62,6 +62,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(); diff --git a/Tutorial/GacUI_Layout/UIRes/Alignment.bin b/Tutorial/GacUI_Layout/UIRes/Alignment.bin index 17650812..1895d38b 100644 Binary files a/Tutorial/GacUI_Layout/UIRes/Alignment.bin and b/Tutorial/GacUI_Layout/UIRes/Alignment.bin differ diff --git a/Tutorial/GacUI_Layout/UIRes/Flow.bin b/Tutorial/GacUI_Layout/UIRes/Flow.bin index 6d0d9be3..868ea5f8 100644 Binary files a/Tutorial/GacUI_Layout/UIRes/Flow.bin and b/Tutorial/GacUI_Layout/UIRes/Flow.bin differ diff --git a/Tutorial/GacUI_Layout/UIRes/RichTextEmbedding.bin b/Tutorial/GacUI_Layout/UIRes/RichTextEmbedding.bin index 2b96e768..da361940 100644 Binary files a/Tutorial/GacUI_Layout/UIRes/RichTextEmbedding.bin and b/Tutorial/GacUI_Layout/UIRes/RichTextEmbedding.bin differ diff --git a/Tutorial/GacUI_Layout/UIRes/Stack.bin b/Tutorial/GacUI_Layout/UIRes/Stack.bin index 85366001..a0be62d1 100644 Binary files a/Tutorial/GacUI_Layout/UIRes/Stack.bin and b/Tutorial/GacUI_Layout/UIRes/Stack.bin differ diff --git a/Tutorial/GacUI_Layout/UIRes/Table.bin b/Tutorial/GacUI_Layout/UIRes/Table.bin index 4921cc49..51df0f0c 100644 Binary files a/Tutorial/GacUI_Layout/UIRes/Table.bin and b/Tutorial/GacUI_Layout/UIRes/Table.bin differ diff --git a/Tutorial/GacUI_Xml/Binding_Bind/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Xml/Binding_Bind/UI/Source/DemoPartialClasses.cpp index aa0483a1..4be7d2d3 100644 --- a/Tutorial/GacUI_Xml/Binding_Bind/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Xml/Binding_Bind/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow() { InitializeComponents(); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Xml/Binding_Bind/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Xml/Binding_Bind/UI/Source/DemoPartialClasses.h index b18085c5..c5aedbb3 100644 --- a/Tutorial/GacUI_Xml/Binding_Bind/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Xml/Binding_Bind/UI/Source/DemoPartialClasses.h @@ -71,6 +71,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(); diff --git a/Tutorial/GacUI_Xml/Binding_Eval/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Xml/Binding_Eval/UI/Source/DemoPartialClasses.cpp index aa0483a1..4be7d2d3 100644 --- a/Tutorial/GacUI_Xml/Binding_Eval/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Xml/Binding_Eval/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow() { InitializeComponents(); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Xml/Binding_Eval/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Xml/Binding_Eval/UI/Source/DemoPartialClasses.h index 8088a85f..8383bfe1 100644 --- a/Tutorial/GacUI_Xml/Binding_Eval/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Xml/Binding_Eval/UI/Source/DemoPartialClasses.h @@ -62,6 +62,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(); diff --git a/Tutorial/GacUI_Xml/Binding_Format/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Xml/Binding_Format/UI/Source/DemoPartialClasses.cpp index aa0483a1..4be7d2d3 100644 --- a/Tutorial/GacUI_Xml/Binding_Format/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Xml/Binding_Format/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow() { InitializeComponents(); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Xml/Binding_Format/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Xml/Binding_Format/UI/Source/DemoPartialClasses.h index 26a89bd8..91c962da 100644 --- a/Tutorial/GacUI_Xml/Binding_Format/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Xml/Binding_Format/UI/Source/DemoPartialClasses.h @@ -65,6 +65,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(); diff --git a/Tutorial/GacUI_Xml/Binding_Uri/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Xml/Binding_Uri/UI/Source/DemoPartialClasses.cpp index 30fe14bc..6deacb8c 100644 --- a/Tutorial/GacUI_Xml/Binding_Uri/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Xml/Binding_Uri/UI/Source/DemoPartialClasses.cpp @@ -18,15 +18,25 @@ namespace demo { } + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow() { InitializeComponents(); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Xml/Binding_Uri/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Xml/Binding_Uri/UI/Source/DemoPartialClasses.h index 76739187..ed4b692d 100644 --- a/Tutorial/GacUI_Xml/Binding_Uri/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Xml/Binding_Uri/UI/Source/DemoPartialClasses.h @@ -66,6 +66,8 @@ namespace demo // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) void documentLabel_ActiveHyperlinkExecuted(GuiGraphicsComposition* sender, vl::presentation::compositions::GuiEventArgs& arguments); + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(); diff --git a/Tutorial/GacUI_Xml/Binding_ViewModel/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Xml/Binding_ViewModel/UI/Source/DemoPartialClasses.cpp index e3d76e68..e15a5bc4 100644 --- a/Tutorial/GacUI_Xml/Binding_ViewModel/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Xml/Binding_ViewModel/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow(Ptr ViewModel) { InitializeComponents(ViewModel); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Xml/Binding_ViewModel/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Xml/Binding_ViewModel/UI/Source/DemoPartialClasses.h index 7a5ad841..865186d6 100644 --- a/Tutorial/GacUI_Xml/Binding_ViewModel/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Xml/Binding_ViewModel/UI/Source/DemoPartialClasses.h @@ -81,6 +81,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(Ptr ViewModel); diff --git a/Tutorial/GacUI_Xml/Event_Cpp/UI/Source/MainWindow.cpp b/Tutorial/GacUI_Xml/Event_Cpp/UI/Source/MainWindow.cpp index ced33fb6..6e50154d 100644 --- a/Tutorial/GacUI_Xml/Event_Cpp/UI/Source/MainWindow.cpp +++ b/Tutorial/GacUI_Xml/Event_Cpp/UI/Source/MainWindow.cpp @@ -25,16 +25,25 @@ namespace demo textBoxC->SetText(c); } + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow() { InitializeComponents(); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } - diff --git a/Tutorial/GacUI_Xml/Event_Cpp/UI/Source/MainWindow.h b/Tutorial/GacUI_Xml/Event_Cpp/UI/Source/MainWindow.h index 4ea0fa74..4355f2b5 100644 --- a/Tutorial/GacUI_Xml/Event_Cpp/UI/Source/MainWindow.h +++ b/Tutorial/GacUI_Xml/Event_Cpp/UI/Source/MainWindow.h @@ -21,6 +21,8 @@ namespace demo // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) void buttonCalculate_Clicked(GuiGraphicsComposition* sender, vl::presentation::compositions::GuiEventArgs& arguments); + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(); diff --git a/Tutorial/GacUI_Xml/Event_Script/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Xml/Event_Script/UI/Source/DemoPartialClasses.cpp index aa0483a1..4be7d2d3 100644 --- a/Tutorial/GacUI_Xml/Event_Script/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Xml/Event_Script/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow() { InitializeComponents(); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Xml/Event_Script/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Xml/Event_Script/UI/Source/DemoPartialClasses.h index b18085c5..c5aedbb3 100644 --- a/Tutorial/GacUI_Xml/Event_Script/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Xml/Event_Script/UI/Source/DemoPartialClasses.h @@ -71,6 +71,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(); diff --git a/Tutorial/GacUI_Xml/Event_ViewModel/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Xml/Event_ViewModel/UI/Source/DemoPartialClasses.cpp index bcccfbe4..57181774 100644 --- a/Tutorial/GacUI_Xml/Event_ViewModel/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Xml/Event_ViewModel/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow(Ptr ViewModel) { InitializeComponents(ViewModel); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Xml/Event_ViewModel/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Xml/Event_ViewModel/UI/Source/DemoPartialClasses.h index 5237cbd0..79568157 100644 --- a/Tutorial/GacUI_Xml/Event_ViewModel/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Xml/Event_ViewModel/UI/Source/DemoPartialClasses.h @@ -88,6 +88,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(Ptr ViewModel); diff --git a/Tutorial/GacUI_Xml/Instance_Control/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Xml/Instance_Control/UI/Source/DemoPartialClasses.cpp index e5cc97c5..e48c0447 100644 --- a/Tutorial/GacUI_Xml/Instance_Control/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Xml/Instance_Control/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow() { InitializeComponents(); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } @@ -32,15 +42,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MyControl::OnCreate() + { + } + + void MyControl::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MyControl::MyControl() { InitializeComponents(); + OnCreate(); } MyControl::~MyControl() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Xml/Instance_Control/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Xml/Instance_Control/UI/Source/DemoPartialClasses.h index 01f07709..bd66549f 100644 --- a/Tutorial/GacUI_Xml/Instance_Control/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Xml/Instance_Control/UI/Source/DemoPartialClasses.h @@ -91,6 +91,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(); @@ -108,6 +110,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MyControl(); diff --git a/Tutorial/GacUI_Xml/Instance_MultipleWindows/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Xml/Instance_MultipleWindows/UI/Source/DemoPartialClasses.cpp index 5348969d..36902221 100644 --- a/Tutorial/GacUI_Xml/Instance_MultipleWindows/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Xml/Instance_MultipleWindows/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void AnotherWindow::OnCreate() + { + } + + void AnotherWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER AnotherWindow::AnotherWindow() { InitializeComponents(); + OnCreate(); } AnotherWindow::~AnotherWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Xml/Instance_MultipleWindows/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Xml/Instance_MultipleWindows/UI/Source/DemoPartialClasses.h index a7c3ec11..4432f275 100644 --- a/Tutorial/GacUI_Xml/Instance_MultipleWindows/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Xml/Instance_MultipleWindows/UI/Source/DemoPartialClasses.h @@ -88,6 +88,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: AnotherWindow(); diff --git a/Tutorial/GacUI_Xml/Instance_MultipleWindows/UI/Source/MainWindow.cpp b/Tutorial/GacUI_Xml/Instance_MultipleWindows/UI/Source/MainWindow.cpp index 98f204cd..83511198 100644 --- a/Tutorial/GacUI_Xml/Instance_MultipleWindows/UI/Source/MainWindow.cpp +++ b/Tutorial/GacUI_Xml/Instance_MultipleWindows/UI/Source/MainWindow.cpp @@ -19,15 +19,25 @@ namespace demo window->ShowModalAndDelete(this, [](){}); } + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow() { InitializeComponents(); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Xml/Instance_MultipleWindows/UI/Source/MainWindow.h b/Tutorial/GacUI_Xml/Instance_MultipleWindows/UI/Source/MainWindow.h index 6474d2db..7eaa135b 100644 --- a/Tutorial/GacUI_Xml/Instance_MultipleWindows/UI/Source/MainWindow.h +++ b/Tutorial/GacUI_Xml/Instance_MultipleWindows/UI/Source/MainWindow.h @@ -21,6 +21,8 @@ namespace demo // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) void buttonShowWindow_Clicked(GuiGraphicsComposition* sender, vl::presentation::compositions::GuiEventArgs& arguments); + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(); diff --git a/Tutorial/GacUI_Xml/Instance_Window/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Xml/Instance_Window/UI/Source/DemoPartialClasses.cpp index aa0483a1..4be7d2d3 100644 --- a/Tutorial/GacUI_Xml/Instance_Window/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Xml/Instance_Window/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow() { InitializeComponents(); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Xml/Instance_Window/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Xml/Instance_Window/UI/Source/DemoPartialClasses.h index 8088a85f..8383bfe1 100644 --- a/Tutorial/GacUI_Xml/Instance_Window/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Xml/Instance_Window/UI/Source/DemoPartialClasses.h @@ -62,6 +62,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(); diff --git a/Tutorial/GacUI_Xml/Member_Field/UI/Source/MainWindow.cpp b/Tutorial/GacUI_Xml/Member_Field/UI/Source/MainWindow.cpp index 3bf0e3bc..d1bb8baf 100644 --- a/Tutorial/GacUI_Xml/Member_Field/UI/Source/MainWindow.cpp +++ b/Tutorial/GacUI_Xml/Member_Field/UI/Source/MainWindow.cpp @@ -17,15 +17,25 @@ namespace demo textBoxB->SetText(itow(this->integerState)); } + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow() { InitializeComponents(); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Xml/Member_Field/UI/Source/MainWindow.h b/Tutorial/GacUI_Xml/Member_Field/UI/Source/MainWindow.h index 603d9c20..50199984 100644 --- a/Tutorial/GacUI_Xml/Member_Field/UI/Source/MainWindow.h +++ b/Tutorial/GacUI_Xml/Member_Field/UI/Source/MainWindow.h @@ -21,6 +21,8 @@ namespace demo // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) void buttonPaste_Clicked(GuiGraphicsComposition* sender, vl::presentation::compositions::GuiEventArgs& arguments); + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(); diff --git a/Tutorial/GacUI_Xml/Member_Parameter/UI/Source/DemoPartialClasses.cpp b/Tutorial/GacUI_Xml/Member_Parameter/UI/Source/DemoPartialClasses.cpp index d8dbbb7f..b0ead512 100644 --- a/Tutorial/GacUI_Xml/Member_Parameter/UI/Source/DemoPartialClasses.cpp +++ b/Tutorial/GacUI_Xml/Member_Parameter/UI/Source/DemoPartialClasses.cpp @@ -14,15 +14,25 @@ namespace demo { // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void MainWindow::OnCreate() + { + } + + void MainWindow::OnDestroy() + { + } + // #endregion CLASS_MEMBER_GUIEVENT_HANDLER MainWindow::MainWindow(Ptr ViewModel) { InitializeComponents(ViewModel); + OnCreate(); } MainWindow::~MainWindow() { + OnDestroy(); ClearSubscriptions(); } } diff --git a/Tutorial/GacUI_Xml/Member_Parameter/UI/Source/DemoPartialClasses.h b/Tutorial/GacUI_Xml/Member_Parameter/UI/Source/DemoPartialClasses.h index 0f43c1f8..581a591e 100644 --- a/Tutorial/GacUI_Xml/Member_Parameter/UI/Source/DemoPartialClasses.h +++ b/Tutorial/GacUI_Xml/Member_Parameter/UI/Source/DemoPartialClasses.h @@ -78,6 +78,8 @@ namespace demo protected: // #region CLASS_MEMBER_GUIEVENT_HANDLER (DO NOT PUT OTHER CONTENT IN THIS #region.) + void OnCreate(); + void OnDestroy(); // #endregion CLASS_MEMBER_GUIEVENT_HANDLER public: MainWindow(Ptr ViewModel); diff --git a/Tutorial/GacUI_Xml/UIRes/Binding_Bind.bin b/Tutorial/GacUI_Xml/UIRes/Binding_Bind.bin index 45f35210..b58c3415 100644 Binary files a/Tutorial/GacUI_Xml/UIRes/Binding_Bind.bin and b/Tutorial/GacUI_Xml/UIRes/Binding_Bind.bin differ diff --git a/Tutorial/GacUI_Xml/UIRes/Binding_Eval.bin b/Tutorial/GacUI_Xml/UIRes/Binding_Eval.bin index 51fff159..ff2c850f 100644 Binary files a/Tutorial/GacUI_Xml/UIRes/Binding_Eval.bin and b/Tutorial/GacUI_Xml/UIRes/Binding_Eval.bin differ diff --git a/Tutorial/GacUI_Xml/UIRes/Binding_Format.bin b/Tutorial/GacUI_Xml/UIRes/Binding_Format.bin index bf8e60c3..9764dfc8 100644 Binary files a/Tutorial/GacUI_Xml/UIRes/Binding_Format.bin and b/Tutorial/GacUI_Xml/UIRes/Binding_Format.bin differ diff --git a/Tutorial/GacUI_Xml/UIRes/Binding_Uri.bin b/Tutorial/GacUI_Xml/UIRes/Binding_Uri.bin index ebe199c0..dc32e3a6 100644 Binary files a/Tutorial/GacUI_Xml/UIRes/Binding_Uri.bin and b/Tutorial/GacUI_Xml/UIRes/Binding_Uri.bin differ diff --git a/Tutorial/GacUI_Xml/UIRes/Binding_ViewModel.bin b/Tutorial/GacUI_Xml/UIRes/Binding_ViewModel.bin index b71dfd71..34e438db 100644 Binary files a/Tutorial/GacUI_Xml/UIRes/Binding_ViewModel.bin and b/Tutorial/GacUI_Xml/UIRes/Binding_ViewModel.bin differ diff --git a/Tutorial/GacUI_Xml/UIRes/Event_Cpp.bin b/Tutorial/GacUI_Xml/UIRes/Event_Cpp.bin index c9a13b02..881cee2d 100644 Binary files a/Tutorial/GacUI_Xml/UIRes/Event_Cpp.bin and b/Tutorial/GacUI_Xml/UIRes/Event_Cpp.bin differ diff --git a/Tutorial/GacUI_Xml/UIRes/Event_Script.bin b/Tutorial/GacUI_Xml/UIRes/Event_Script.bin index efc9cd99..75f721e6 100644 Binary files a/Tutorial/GacUI_Xml/UIRes/Event_Script.bin and b/Tutorial/GacUI_Xml/UIRes/Event_Script.bin differ diff --git a/Tutorial/GacUI_Xml/UIRes/Event_ViewModel.bin b/Tutorial/GacUI_Xml/UIRes/Event_ViewModel.bin index 54612b1a..e5d9bb91 100644 Binary files a/Tutorial/GacUI_Xml/UIRes/Event_ViewModel.bin and b/Tutorial/GacUI_Xml/UIRes/Event_ViewModel.bin differ diff --git a/Tutorial/GacUI_Xml/UIRes/Instance_Control.bin b/Tutorial/GacUI_Xml/UIRes/Instance_Control.bin index b7f3a87d..97383a22 100644 Binary files a/Tutorial/GacUI_Xml/UIRes/Instance_Control.bin and b/Tutorial/GacUI_Xml/UIRes/Instance_Control.bin differ diff --git a/Tutorial/GacUI_Xml/UIRes/Instance_MultipleWindows.bin b/Tutorial/GacUI_Xml/UIRes/Instance_MultipleWindows.bin index a2cc02bc..d1e679e6 100644 Binary files a/Tutorial/GacUI_Xml/UIRes/Instance_MultipleWindows.bin and b/Tutorial/GacUI_Xml/UIRes/Instance_MultipleWindows.bin differ diff --git a/Tutorial/GacUI_Xml/UIRes/Instance_Window.bin b/Tutorial/GacUI_Xml/UIRes/Instance_Window.bin index 6a9340ca..5a697c5b 100644 Binary files a/Tutorial/GacUI_Xml/UIRes/Instance_Window.bin and b/Tutorial/GacUI_Xml/UIRes/Instance_Window.bin differ diff --git a/Tutorial/GacUI_Xml/UIRes/Member_Field.bin b/Tutorial/GacUI_Xml/UIRes/Member_Field.bin index 83e9dd1d..f806831c 100644 Binary files a/Tutorial/GacUI_Xml/UIRes/Member_Field.bin and b/Tutorial/GacUI_Xml/UIRes/Member_Field.bin differ diff --git a/Tutorial/GacUI_Xml/UIRes/Member_Parameter.bin b/Tutorial/GacUI_Xml/UIRes/Member_Parameter.bin index 62d84fea..3d2aa164 100644 Binary files a/Tutorial/GacUI_Xml/UIRes/Member_Parameter.bin and b/Tutorial/GacUI_Xml/UIRes/Member_Parameter.bin differ diff --git a/Tutorial/GacUI_Xml/UIRes/Member_Property.bin b/Tutorial/GacUI_Xml/UIRes/Member_Property.bin index f4fad5f6..fe0d524c 100644 Binary files a/Tutorial/GacUI_Xml/UIRes/Member_Property.bin and b/Tutorial/GacUI_Xml/UIRes/Member_Property.bin differ