Layout/RichTextEmbedding

This commit is contained in:
Zihan Chen
2017-01-24 21:46:58 -08:00
parent 25de0ea3ed
commit 1e723db6f3
6 changed files with 216 additions and 131 deletions
+3 -12
View File
@@ -64,7 +64,7 @@ Compiled Workflow Type Resolver (Workflow)
vint GetMaxPassIndex()override
{
return 2;
return 1;
}
void Initialize(Ptr<GuiResourceItem> resource, GuiResourceInitializeContext& context)override
@@ -74,15 +74,6 @@ Compiled Workflow Type Resolver (Workflow)
switch (context.passIndex)
{
case 0:
if (compiled->type == GuiInstanceCompiledWorkflow::Shared)
{
if (context.usage == GuiResourceUsage::InstanceClass)
{
compiled->Initialize(true);
}
}
break;
case 1:
if (compiled->type == GuiInstanceCompiledWorkflow::InstanceClass)
{
if (context.usage == GuiResourceUsage::InstanceClass)
@@ -114,7 +105,7 @@ Compiled Workflow Type Resolver (Workflow)
vint type = (vint)obj->type;
writer << type;
if (obj->type != GuiInstanceCompiledWorkflow::TemporaryClass)
if (obj->type == GuiInstanceCompiledWorkflow::InstanceClass)
{
MemoryStream memoryStream;
obj->assembly->Serialize(memoryStream);
@@ -132,7 +123,7 @@ Compiled Workflow Type Resolver (Workflow)
auto obj = MakePtr<GuiInstanceCompiledWorkflow>();
obj->type = (GuiInstanceCompiledWorkflow::AssemblyType)type;
if (obj->type != GuiInstanceCompiledWorkflow::TemporaryClass)
if (obj->type == GuiInstanceCompiledWorkflow::InstanceClass)
{
auto memoryStream = MakePtr<MemoryStream>();
reader << (IStream&)*memoryStream.Obj();
+37 -5
View File
@@ -2110,7 +2110,7 @@ GuiEventInfoImpl
***********************************************************************/
template<typename T>
class GuiEventInfoImpl : public EventInfoImpl
class GuiEventInfoImpl : public EventInfoImpl, private IEventInfo::ICpp
{
using GuiGraphicsComposition = presentation::compositions::GuiGraphicsComposition;
@@ -2163,10 +2163,18 @@ GuiEventInfoImpl
return TypeInfoRetriver<Func<void(GuiGraphicsComposition*, T*)>>::CreateTypeInfo();
}
protected:
bool isCompositionEvent;
static WString attachTemplate;
static WString detachTemplate;
static WString invokeTemplate;
public:
GuiEventInfoImpl(ITypeDescriptor* _ownerTypeDescriptor, const WString& _name, const EventRetriverFunction& _eventRetriver)
GuiEventInfoImpl(ITypeDescriptor* _ownerTypeDescriptor, const WString& _name, const EventRetriverFunction& _eventRetriver, bool _isCompositionEvent)
:EventInfoImpl(_ownerTypeDescriptor, _name)
, eventRetriver(_eventRetriver)
, isCompositionEvent(_isCompositionEvent)
{
}
@@ -2176,10 +2184,32 @@ GuiEventInfoImpl
ICpp* GetCpp()override
{
return nullptr;
return isCompositionEvent ? this : nullptr;
}
const WString& GetAttachTemplate()override
{
return attachTemplate;
}
const WString& GetDetachTemplate()override
{
return detachTemplate;
}
const WString& GetInvokeTemplate()override
{
return invokeTemplate;
}
};
template<typename T>
WString GuiEventInfoImpl<T>::attachTemplate(L"::vl::__vwsn::EventAttach($This->GetEventReceiver()->$Name, $Handler)", false);
template<typename T>
WString GuiEventInfoImpl<T>::detachTemplate(L"::vl::__vwsn::EventDetach($This->GetEventReceiver()->$Name, $Handler)", false);
template<typename T>
WString GuiEventInfoImpl<T>::invokeTemplate(L"::vl::__vwsn::EventInvoke($This->GetEventReceiver()->$Name, $Handler)", false);
template<typename T>
struct GuiEventArgumentTypeRetriver
{
@@ -2203,7 +2233,8 @@ Macros
L ## #EVENTNAME,\
[](DescriptableObject* thisObject, bool addEventHandler){\
return &thisObject->SafeAggregationCast<ClassType>()->EVENTNAME;\
}\
},\
false\
)\
);\
@@ -2219,7 +2250,8 @@ Macros
return (GuiGraphicsEvent<GuiEventArgumentTypeRetriver<decltype(&GuiGraphicsEventReceiver::EVENTNAME)>::Type>*)0;\
}\
return &composition->GetEventReceiver()->EVENTNAME;\
}\
},\
true\
)\
);\
+89 -59
View File
@@ -8947,7 +8947,7 @@ ITypeDescriptor (type)
List,
SortedList,
Dictionary,
Unknown,
NativeCollectionReference,
};
class ITypeInfo : public virtual IDescriptable, public Description<ITypeInfo>
@@ -11832,64 +11832,6 @@ TypeFlagTester
static const TypeFlags Result=sizeof(Inherit(((ValueRetriver<TDerived>*)0)->pointer))==sizeof(void*)?TypeFlags::DictionaryType:TypeFlags::NonGenericType;
};
/***********************************************************************
TypeHintTester
***********************************************************************/
template<typename T>
struct TypeHintTester
{
static const TypeInfoHint Result = TypeInfoHint::Normal;
};
template<typename T>
struct TypeHintTester<T*>
{
static const TypeInfoHint Result = TypeHintTester<T>::Result;
};
template<typename T>
struct TypeHintTester<T&>
{
static const TypeInfoHint Result = TypeHintTester<T>::Result;
};
template<typename T>
struct TypeHintTester<const T>
{
static const TypeInfoHint Result = TypeHintTester<T>::Result;
};
template<typename T>
struct TypeHintTester<collections::LazyList<T>>
{
static const TypeInfoHint Result = TypeInfoHint::LazyList;
};
template<typename T>
struct TypeHintTester<collections::Array<T>>
{
static const TypeInfoHint Result = TypeInfoHint::Array;
};
template<typename T>
struct TypeHintTester<collections::List<T>>
{
static const TypeInfoHint Result = TypeInfoHint::List;
};
template<typename T>
struct TypeHintTester<collections::SortedList<T>>
{
static const TypeInfoHint Result = TypeInfoHint::SortedList;
};
template<typename K, typename V>
struct TypeHintTester<collections::Dictionary<K, V>>
{
static const TypeInfoHint Result = TypeInfoHint::Dictionary;
};
/***********************************************************************
TypeFlagSelector
***********************************************************************/
@@ -11959,6 +11901,85 @@ TypeFlagSelector
>::Result;
};
/***********************************************************************
TypeHintTester
***********************************************************************/
template<typename T>
struct TypeHintTester
{
static const TypeInfoHint Result = TypeInfoHint::Normal;
};
template<TypeFlags Flags>
struct TypeHintTesterForReference
{
static const TypeInfoHint Result = TypeInfoHint::NativeCollectionReference;
};
template<>
struct TypeHintTesterForReference<TypeFlags::NonGenericType>
{
static const TypeInfoHint Result = TypeInfoHint::Normal;
};
template<>
struct TypeHintTesterForReference<TypeFlags::FunctionType>
{
static const TypeInfoHint Result = TypeInfoHint::Normal;
};
template<typename T>
struct TypeHintTester<T*>
{
static const TypeInfoHint Result = TypeHintTester<T>::Result;
};
template<typename T>
struct TypeHintTester<T&>
{
static const TypeInfoHint Result = TypeHintTester<T>::Result == TypeInfoHint::Normal
? TypeHintTesterForReference<TypeFlagSelector<T&>::Result>::Result
: TypeHintTester<T>::Result
;
};
template<typename T>
struct TypeHintTester<const T>
{
static const TypeInfoHint Result = TypeHintTester<T>::Result;
};
template<typename T>
struct TypeHintTester<collections::LazyList<T>>
{
static const TypeInfoHint Result = TypeInfoHint::LazyList;
};
template<typename T>
struct TypeHintTester<collections::Array<T>>
{
static const TypeInfoHint Result = TypeInfoHint::Array;
};
template<typename T>
struct TypeHintTester<collections::List<T>>
{
static const TypeInfoHint Result = TypeInfoHint::List;
};
template<typename T>
struct TypeHintTester<collections::SortedList<T>>
{
static const TypeInfoHint Result = TypeInfoHint::SortedList;
};
template<typename K, typename V>
struct TypeHintTester<collections::Dictionary<K, V>>
{
static const TypeInfoHint Result = TypeInfoHint::Dictionary;
};
/***********************************************************************
TypeInfoRetriver
***********************************************************************/
@@ -13310,6 +13331,15 @@ namespace vl
return InSet<T>(value, reflection::description::GetLazyList<T>(collection));
}
template<typename T, typename U>
Ptr<T> UnboxCollection(U& value)
{
auto boxedValue = reflection::description::BoxParameter<U>(value);
Ptr<T> result;
reflection::description::UnboxParameter<Ptr<T>>(boxedValue, result);
return result;
}
struct CreateList
{
using IValueList = reflection::description::IValueList;
+68 -36
View File
@@ -5533,15 +5533,10 @@ ExpandBindExpression
}
{
// stable symbol order by sorting them by code
Dictionary<WString, WfExpression*> orderedObserves;
List<WfExpression*> orderedObserves;
FOREACH_INDEXER(WfExpression*, observe, observeIndex, dependency.dependencies.Keys())
auto printExpression = [](WfExpression* observe)
{
if (!observe)
{
continue;
}
stream::MemoryStream stream;
{
stream::StreamWriter writer(stream);
@@ -5550,11 +5545,28 @@ ExpandBindExpression
stream.SeekFromBegin(0);
{
stream::StreamReader reader(stream);
orderedObserves.Add(reader.ReadToEnd(), observe);
return reader.ReadToEnd();
}
}
};
FOREACH_INDEXER(WfExpression*, observe, observeIndex, orderedObserves.Values())
CopyFrom(
orderedObserves,
From(dependency.dependencies.Keys())
.Where([](WfExpression* expr)
{
return expr != nullptr;
})
.OrderBy([&](WfExpression* a, WfExpression* b)
{
auto codeA = printExpression(a);
auto codeB = printExpression(b);
auto compare = WString::Compare(codeA, codeB);
if (compare) return compare;
return a->codeRange.start.index - b->codeRange.start.index;
})
);
FOREACH_INDEXER(WfExpression*, observe, observeIndex, orderedObserves)
{
List<IEventInfo*> events;
WfExpression* parent = 0;
@@ -9623,15 +9635,7 @@ CreateTypeInfoFromType
{
if (scopeName->typeDescriptor)
{
auto hint = TypeInfoHint::Normal;
if (scopeName->typeDescriptor == description::GetTypeDescriptor<IValueReadonlyList>() ||
scopeName->typeDescriptor == description::GetTypeDescriptor<IValueList>() ||
scopeName->typeDescriptor == description::GetTypeDescriptor<IValueReadonlyDictionary>() ||
scopeName->typeDescriptor == description::GetTypeDescriptor<IValueDictionary>())
{
hint = TypeInfoHint::Unknown;
}
result = MakePtr<TypeDescriptorTypeInfo>(scopeName->typeDescriptor, hint);
result = MakePtr<TypeDescriptorTypeInfo>(scopeName->typeDescriptor, TypeInfoHint::Normal);
}
else
{
@@ -11937,7 +11941,7 @@ ValidateSemantic(Expression)
manager->errors.Add(WfErrors::RangeShouldBeInteger(node, elementType.Obj()));
}
auto enumerableType = MakePtr<TypeDescriptorTypeInfo>(description::GetTypeDescriptor<IValueEnumerable>(), TypeInfoHint::Unknown);
auto enumerableType = MakePtr<TypeDescriptorTypeInfo>(description::GetTypeDescriptor<IValueEnumerable>(), TypeInfoHint::Normal);
auto genericType = MakePtr<GenericTypeInfo>(enumerableType);
genericType->AddGenericArgument(elementType);
@@ -12082,7 +12086,7 @@ ValidateSemantic(Expression)
{
if (keyType && valueType)
{
auto classType = MakePtr<TypeDescriptorTypeInfo>(description::GetTypeDescriptor<IValueDictionary>(), TypeInfoHint::Unknown);
auto classType = MakePtr<TypeDescriptorTypeInfo>(description::GetTypeDescriptor<IValueDictionary>(), TypeInfoHint::Normal);
auto genericType = MakePtr<GenericTypeInfo>(classType);
genericType->AddGenericArgument(keyType);
genericType->AddGenericArgument(valueType);
@@ -12095,7 +12099,7 @@ ValidateSemantic(Expression)
{
if (keyType)
{
auto classType = MakePtr<TypeDescriptorTypeInfo>(description::GetTypeDescriptor<IValueList>(), TypeInfoHint::Unknown);
auto classType = MakePtr<TypeDescriptorTypeInfo>(description::GetTypeDescriptor<IValueList>(), TypeInfoHint::Normal);
auto genericType = MakePtr<GenericTypeInfo>(classType);
genericType->AddGenericArgument(keyType);
@@ -15716,6 +15720,13 @@ WfCollectClassMemberVisitor
void Visit(WfConstructorDeclaration* node)override
{
FOREACH(Ptr<WfBaseConstructorCall>, call, node->baseConstructorCalls)
{
FOREACH(Ptr<WfExpression>, argument, call->arguments)
{
CollectExpression(config, argument, memberOfClass);
}
}
CollectStatement(config, node->statement, memberOfClass);
}
@@ -16484,18 +16495,19 @@ WfGenerateExpressionVisitor
template<typename TReturnValue>
void WriteReturnValue(ITypeInfo* type, const TReturnValue& returnValueCallback, bool castReturnValue)
{
if (castReturnValue && IsCppRefGenericType(type))
if (castReturnValue)
{
writer.WriteString(L"[&](){ decltype(auto) __vwsn_temp__ = ");
returnValueCallback();
writer.WriteString(L"; return ::vl::__vwsn::Unbox<");
writer.WriteString(config->ConvertType(type));
writer.WriteString(L">(::vl::reflection::description::BoxParameter<decltype(__vwsn_temp__)>(__vwsn_temp__)); }()");
}
else
{
returnValueCallback();
if (IsCppRefGenericType(type) || type->GetHint() == TypeInfoHint::NativeCollectionReference)
{
writer.WriteString(L"::vl::__vwsn::UnboxCollection<");
writer.WriteString(config->ConvertType(type->GetTypeDescriptor()));
writer.WriteString(L">(");
returnValueCallback();
writer.WriteString(L")");
return;
}
}
returnValueCallback();
}
template<typename TType, typename TInvoke, typename TArgument, typename TInfo>
@@ -16903,6 +16915,10 @@ WfGenerateExpressionVisitor
void Visit(WfMemberExpression* node)override
{
if (node->name.value == L"MyList")
{
int a = 0;
}
auto result = config->manager->expressionResolvings[node];
auto parentResult = config->manager->expressionResolvings[node->parent.Obj()];
WriteReferenceTemplate(result,
@@ -17451,12 +17467,16 @@ WfGenerateExpressionVisitor
void Visit(WfIfExpression* node)override
{
auto firstResult = config->manager->expressionResolvings[node->trueBranch.Obj()];
auto secondResult = config->manager->expressionResolvings[node->falseBranch.Obj()];
auto mergedType = GetMergedType(firstResult.type, secondResult.type);
writer.WriteString(L"(");
Call(node->condition);
writer.WriteString(L" ? ");
Call(node->trueBranch);
Call(node->trueBranch, mergedType.Obj());
writer.WriteString(L" : ");
Call(node->falseBranch);
Call(node->falseBranch, mergedType.Obj());
writer.WriteString(L")");
}
@@ -18603,6 +18623,7 @@ MergeCppFile
void ProcessCppContent(const WString& code, const TCallback& callback)
{
vint state = NORMAL;
vint counter = 0;
StringReader reader(code);
while (!reader.IsEnd())
@@ -18644,9 +18665,20 @@ MergeCppFile
}
break;
case WAIT_CLOSE:
if (content == L"}")
if (content == L"{")
{
state = NORMAL;
counter++;
}
else if (content == L"}")
{
if (counter == 0)
{
state = NORMAL;
}
else
{
counter--;
}
}
break;
}
@@ -149,7 +149,7 @@ namespace demo
::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_6.Obj())->NotifyDataModified();
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_5.Obj())->Children().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_6));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_5.Obj())->Children()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_6));
}
(::vl::__vwsn::This(this)->__vwsn_precompile_7 = ::vl::Ptr<::vl::presentation::controls::tree::MemoryNodeProvider>(new ::vl::presentation::controls::tree::MemoryNodeProvider(::vl::Ptr<::vl::presentation::controls::tree::TreeViewItem>(new ::vl::presentation::controls::tree::TreeViewItem()))));
{
@@ -157,10 +157,10 @@ namespace demo
::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_7.Obj())->NotifyDataModified();
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_5.Obj())->Children().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_7));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_5.Obj())->Children()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_7));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_4)->Nodes().Obj())->Children().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_5));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_4)->Nodes().Obj())->Children()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_5));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_3.Obj())->GetContainer())->AddChild(::vl::__vwsn::Ensure(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_4)->GetBoundsComposition())));
@@ -195,7 +195,7 @@ namespace demo
::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_13)->SetText(::vl::WString(L"New", false));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_12)->GetToolstripItems().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_13));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_12)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_13));
}
{
auto __vwsn_controlStyle_ = ::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateMenuItemButtonStyle();
@@ -208,7 +208,7 @@ namespace demo
::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_14)->SetText(::vl::WString(L"Open", false));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_12)->GetToolstripItems().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_14));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_12)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_14));
}
{
auto __vwsn_controlStyle_ = ::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateMenuItemButtonStyle();
@@ -221,7 +221,7 @@ namespace demo
::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_15)->SetText(::vl::WString(L"Save", false));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_12)->GetToolstripItems().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_15));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_12)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_15));
}
{
auto __vwsn_controlStyle_ = ::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateMenuItemButtonStyle();
@@ -234,14 +234,14 @@ namespace demo
::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_16)->SetText(::vl::WString(L"Save As ...", false));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_12)->GetToolstripItems().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_16));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_12)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_16));
}
{
auto __vwsn_controlStyle_ = ::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateMenuSplitterStyle();
(::vl::__vwsn::This(this)->__vwsn_precompile_17 = new ::vl::presentation::controls::GuiControl(__vwsn_controlStyle_));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_12)->GetToolstripItems().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_17));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_12)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_17));
}
{
auto __vwsn_controlStyle_ = ::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateMenuItemButtonStyle();
@@ -254,10 +254,10 @@ namespace demo
::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_18)->SetText(::vl::WString(L"Exit", false));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_12)->GetToolstripItems().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_18));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_12)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_18));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_10)->GetToolstripItems().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_11));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_10)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_11));
}
{
auto __vwsn_controlStyle_ = ::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateMenuBarButtonStyle();
@@ -281,7 +281,7 @@ namespace demo
::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_21)->SetText(::vl::WString(L"Undo", false));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_20)->GetToolstripItems().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_21));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_20)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_21));
}
{
auto __vwsn_controlStyle_ = ::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateMenuItemButtonStyle();
@@ -294,14 +294,14 @@ namespace demo
::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_22)->SetText(::vl::WString(L"Redo", false));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_20)->GetToolstripItems().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_22));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_20)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_22));
}
{
auto __vwsn_controlStyle_ = ::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateMenuSplitterStyle();
(::vl::__vwsn::This(this)->__vwsn_precompile_23 = new ::vl::presentation::controls::GuiControl(__vwsn_controlStyle_));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_20)->GetToolstripItems().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_23));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_20)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_23));
}
{
auto __vwsn_controlStyle_ = ::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateMenuItemButtonStyle();
@@ -314,7 +314,7 @@ namespace demo
::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_24)->SetText(::vl::WString(L"Cut", false));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_20)->GetToolstripItems().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_24));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_20)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_24));
}
{
auto __vwsn_controlStyle_ = ::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateMenuItemButtonStyle();
@@ -327,7 +327,7 @@ namespace demo
::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_25)->SetText(::vl::WString(L"Copy", false));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_20)->GetToolstripItems().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_25));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_20)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_25));
}
{
auto __vwsn_controlStyle_ = ::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateMenuItemButtonStyle();
@@ -340,14 +340,14 @@ namespace demo
::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_26)->SetText(::vl::WString(L"Paste", false));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_20)->GetToolstripItems().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_26));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_20)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_26));
}
{
auto __vwsn_controlStyle_ = ::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateMenuSplitterStyle();
(::vl::__vwsn::This(this)->__vwsn_precompile_27 = new ::vl::presentation::controls::GuiControl(__vwsn_controlStyle_));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_20)->GetToolstripItems().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_27));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_20)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_27));
}
{
auto __vwsn_controlStyle_ = ::vl::__vwsn::This(::vl::presentation::theme::GetCurrentTheme())->CreateMenuItemButtonStyle();
@@ -360,10 +360,10 @@ namespace demo
::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_28)->SetText(::vl::WString(L"Select All", false));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_20)->GetToolstripItems().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_28));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_20)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_28));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_10)->GetToolstripItems().Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_19));
::vl::__vwsn::This(::vl::__vwsn::UnboxCollection<::vl::reflection::description::IValueList>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_10)->GetToolstripItems()).Obj())->Add(::vl::__vwsn::Box(::vl::__vwsn::This(this)->__vwsn_precompile_19));
}
{
::vl::__vwsn::This(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_9.Obj())->GetContainer())->AddChild(::vl::__vwsn::Ensure(static_cast<::vl::presentation::compositions::GuiGraphicsComposition*>(::vl::__vwsn::This(::vl::__vwsn::This(this)->__vwsn_precompile_10)->GetBoundsComposition())));
Binary file not shown.