mirror of
https://github.com/vczh-libraries/Release.git
synced 2026-05-17 23:38:47 +08:00
Update release
This commit is contained in:
+875
-739
File diff suppressed because it is too large
Load Diff
+187
-144
File diff suppressed because it is too large
Load Diff
@@ -636,6 +636,7 @@ Type Declaration
|
||||
|
||||
BEGIN_ENUM_ITEM_MERGABLE(INativeDialogService::FileDialogOptions)
|
||||
ENUM_ITEM_NAMESPACE(INativeDialogService)
|
||||
ENUM_NAMESPACE_ITEM(None)
|
||||
ENUM_NAMESPACE_ITEM(FileDialogAllowMultipleSelection)
|
||||
ENUM_NAMESPACE_ITEM(FileDialogFileMustExist)
|
||||
ENUM_NAMESPACE_ITEM(FileDialogShowReadOnlyCheckBox)
|
||||
@@ -4280,6 +4281,7 @@ namespace vl
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_31)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_32)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_33)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_34)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_4)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_5)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_6)
|
||||
@@ -4290,6 +4292,7 @@ namespace vl
|
||||
CLASS_MEMBER_FIELD(checkBold)
|
||||
CLASS_MEMBER_FIELD(checkHAA)
|
||||
CLASS_MEMBER_FIELD(checkItalic)
|
||||
CLASS_MEMBER_FIELD(checkStrikeline)
|
||||
CLASS_MEMBER_FIELD(checkUnderline)
|
||||
CLASS_MEMBER_FIELD(checkVAA)
|
||||
CLASS_MEMBER_FIELD(colorBackground)
|
||||
@@ -4335,6 +4338,7 @@ namespace vl
|
||||
CLASS_MEMBER_METHOD(OK, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(Red, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(Retry, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(Strikeline, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(TryAgain, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(Underline, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(VAA, NO_PARAMETER)
|
||||
|
||||
@@ -1410,6 +1410,10 @@ namespace vl
|
||||
{
|
||||
INVOKEGET_INTERFACE_PROXY_NOPARAMS(Retry);
|
||||
}
|
||||
::vl::WString Strikeline() override
|
||||
{
|
||||
INVOKEGET_INTERFACE_PROXY_NOPARAMS(Strikeline);
|
||||
}
|
||||
::vl::WString TryAgain() override
|
||||
{
|
||||
INVOKEGET_INTERFACE_PROXY_NOPARAMS(TryAgain);
|
||||
|
||||
@@ -2854,7 +2854,7 @@ description::Value
|
||||
#undef DEFINE_PBT_MATRIX1
|
||||
#undef DEFINE_PBT_MATRI2
|
||||
|
||||
std::partial_ordering::unordered;
|
||||
return std::partial_ordering::unordered;
|
||||
}
|
||||
|
||||
return std::partial_ordering::equivalent;
|
||||
@@ -4928,6 +4928,7 @@ LoadPredefinedTypes
|
||||
END_INTERFACE_MEMBER(IMethodGroupInfo)
|
||||
|
||||
BEGIN_ENUM_ITEM_MERGABLE(TypeDescriptorFlags)
|
||||
ENUM_CLASS_ITEM(Undefined)
|
||||
ENUM_CLASS_ITEM(Object)
|
||||
ENUM_CLASS_ITEM(IDescriptable)
|
||||
ENUM_CLASS_ITEM(Class)
|
||||
|
||||
@@ -19611,6 +19611,7 @@ WfGenerateExpressionVisitor
|
||||
auto c = node->value.value[i];
|
||||
switch (c)
|
||||
{
|
||||
case L'\\': writer.WriteString(L"\\\\"); break;
|
||||
case L'\'': writer.WriteString(L"\\\'"); break;
|
||||
case L'\"': writer.WriteString(L"\\\""); break;
|
||||
case L'\r': writer.WriteString(L"\\r"); break;
|
||||
@@ -25550,9 +25551,11 @@ GenerateInstructions(Expression)
|
||||
auto secondResult = context.manager->expressionResolvings[node->second.Obj()];
|
||||
auto firstType = firstResult.expectedType ? firstResult.expectedType : firstResult.type;
|
||||
auto secondType = secondResult.expectedType ? secondResult.expectedType : secondResult.type;
|
||||
mergedType = GetMergedType(firstType, secondType);
|
||||
|
||||
if (node->op == WfBinaryOperator::EQ || node->op == WfBinaryOperator::NE)
|
||||
{
|
||||
if (firstType->GetDecorator() == ITypeInfo::RawPtr || firstType->GetDecorator() == ITypeInfo::SharedPtr)
|
||||
if (mergedType->GetDecorator() == ITypeInfo::RawPtr || mergedType->GetDecorator() == ITypeInfo::SharedPtr)
|
||||
{
|
||||
GenerateExpressionInstructions(context, node->first);
|
||||
GenerateExpressionInstructions(context, node->second);
|
||||
@@ -25561,19 +25564,22 @@ GenerateInstructions(Expression)
|
||||
{
|
||||
INSTRUCTION(Ins::OpNot(WfInsType::Bool));
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
mergedType = GetMergedType(firstType, secondType);
|
||||
if (node->op == WfBinaryOperator::EQ || node->op == WfBinaryOperator::NE)
|
||||
{
|
||||
GenerateExpressionInstructions(context, node->first);
|
||||
GenerateExpressionInstructions(context, node->second);
|
||||
INSTRUCTION(Ins::CompareValue());
|
||||
if (node->op == WfBinaryOperator::NE)
|
||||
else
|
||||
{
|
||||
INSTRUCTION(Ins::OpNot(WfInsType::Bool));
|
||||
Ptr<ITypeInfo> mergedToStringType;
|
||||
if (mergedType->GetDecorator() == ITypeInfo::TypeDescriptor && mergedType->GetTypeDescriptor() == description::GetTypeDescriptor<WString>())
|
||||
{
|
||||
mergedToStringType = mergedType;
|
||||
}
|
||||
|
||||
GenerateExpressionInstructions(context, node->first, mergedToStringType);
|
||||
GenerateExpressionInstructions(context, node->second, mergedToStringType);
|
||||
INSTRUCTION(Ins::CompareValue());
|
||||
if (node->op == WfBinaryOperator::NE)
|
||||
{
|
||||
INSTRUCTION(Ins::OpNot(WfInsType::Bool));
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
+135
-102
@@ -3348,108 +3348,32 @@ WfRuntimeThreadContext (Operators)
|
||||
Value first, second;
|
||||
CONTEXT_ACTION(PopValue(second), L"failed to pop a value from the stack.");
|
||||
CONTEXT_ACTION(PopValue(first), L"failed to pop a value from the stack.");
|
||||
bool result = first.GetValueType() != Value::BoxedValue && second.GetValueType() != Value::BoxedValue && first.GetRawPtr() == second.GetRawPtr();
|
||||
|
||||
bool result = false;
|
||||
if (first.GetValueType() == Value::Null || second.GetValueType() == Value::Null)
|
||||
{
|
||||
result = first.GetValueType() == Value::Null && second.GetValueType() == Value::Null;
|
||||
}
|
||||
else if (first.GetValueType() == Value::BoxedValue || second.GetValueType() == Value::BoxedValue)
|
||||
{
|
||||
INTERNAL_ERROR(L"CompareReference instruction can only apply on null or pointers.");
|
||||
}
|
||||
else
|
||||
{
|
||||
result = first.GetRawPtr() == second.GetRawPtr();
|
||||
}
|
||||
CONTEXT_ACTION(PushValue(BoxValue(result)), L"failed to push a value to the stack.");
|
||||
return WfRuntimeExecutionAction::ExecuteInstruction;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
|
||||
bool OPERATOR_OpCompareValue(const Value& a, const Value& b);
|
||||
|
||||
bool OPERATOR_OpCompareValue(const WfStructInstance& as, const WfStructInstance& bs)
|
||||
{
|
||||
if (as.fieldValues.Count() == 0 && bs.fieldValues.Count() == 0) return true;
|
||||
auto td = as.fieldValues.Count() > 0 ? as.fieldValues.Keys()[0]->GetOwnerTypeDescriptor() : bs.fieldValues.Keys()[0]->GetOwnerTypeDescriptor();
|
||||
|
||||
vint ai = 0;
|
||||
vint bi = 0;
|
||||
while (ai < as.fieldValues.Count() || bi < bs.fieldValues.Count())
|
||||
{
|
||||
Value af, bf;
|
||||
auto ap = ai < as.fieldValues.Count() ? as.fieldValues.Keys()[ai] : nullptr;
|
||||
auto bp = bi < bs.fieldValues.Count() ? bs.fieldValues.Keys()[bi] : nullptr;
|
||||
auto p =
|
||||
ap == nullptr ? bp :
|
||||
bp == nullptr ? ap :
|
||||
ap < bp ? ap : bp;
|
||||
|
||||
if (p == ap)
|
||||
{
|
||||
af = as.fieldValues.Values()[ai];
|
||||
}
|
||||
else if (p->GetReturn()->GetDecorator() == ITypeInfo::TypeDescriptor)
|
||||
{
|
||||
af = p->GetReturn()->GetTypeDescriptor()->GetValueType()->CreateDefault();
|
||||
}
|
||||
|
||||
if (p == bp)
|
||||
{
|
||||
bf = bs.fieldValues.Values()[bi];
|
||||
}
|
||||
else if (p->GetReturn()->GetDecorator() == ITypeInfo::TypeDescriptor)
|
||||
{
|
||||
bf = p->GetReturn()->GetTypeDescriptor()->GetValueType()->CreateDefault();
|
||||
}
|
||||
|
||||
if (!OPERATOR_OpCompareValue(af, bf)) return false;
|
||||
|
||||
if (p == ap) ai++;
|
||||
if (p == bp) bi++;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OPERATOR_OpCompareValue(const Value& a, const Value& b)
|
||||
{
|
||||
auto avt = a.GetValueType();
|
||||
auto bvt = b.GetValueType();
|
||||
|
||||
if (avt == Value::RawPtr || avt == Value::SharedPtr)
|
||||
{
|
||||
if (bvt == Value::RawPtr || bvt == Value::SharedPtr)
|
||||
{
|
||||
auto pa = a.GetRawPtr();
|
||||
auto pb = b.GetRawPtr();
|
||||
return pa == pb;
|
||||
}
|
||||
}
|
||||
|
||||
if (avt != bvt)
|
||||
{
|
||||
return avt == bvt;
|
||||
}
|
||||
|
||||
if (avt == Value::BoxedValue)
|
||||
{
|
||||
if (auto as = a.GetBoxedValue().Cast<IValueType::TypedBox<WfStructInstance>>())
|
||||
{
|
||||
auto bs = b.GetBoxedValue().Cast<IValueType::TypedBox<WfStructInstance>>();
|
||||
if (!bs) return false;
|
||||
if (a.GetTypeDescriptor() != b.GetTypeDescriptor()) return false;
|
||||
return OPERATOR_OpCompareValue(as->value, bs->value);
|
||||
}
|
||||
if (auto ae = a.GetBoxedValue().Cast<IValueType::TypedBox<WfEnumInstance>>())
|
||||
{
|
||||
auto be = b.GetBoxedValue().Cast<IValueType::TypedBox<WfEnumInstance>>();
|
||||
if (!be) return false;
|
||||
return ae->value.value == be->value.value;
|
||||
}
|
||||
return a == b;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
WfRuntimeExecutionAction OPERATOR_OpCompareValue(WfRuntimeThreadContext& context)
|
||||
{
|
||||
Value first, second;
|
||||
CONTEXT_ACTION(PopValue(second), L"failed to pop a value from the stack.");
|
||||
CONTEXT_ACTION(PopValue(first), L"failed to pop a value from the stack.");
|
||||
|
||||
bool result = OPERATOR_OpCompareValue(first, second);
|
||||
|
||||
bool result = first == second;
|
||||
CONTEXT_ACTION(PushValue(BoxValue(result)), L"failed to push a value to the stack.");
|
||||
return WfRuntimeExecutionAction::ExecuteInstruction;
|
||||
}
|
||||
@@ -5212,19 +5136,19 @@ WfStructField
|
||||
Value WfStructField::GetValueInternal(const Value& thisObject)
|
||||
{
|
||||
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
|
||||
auto structValue = thisObject.GetBoxedValue().Cast<IValueType::TypedBox<WfStructInstance>>();
|
||||
auto structValue = thisObject.GetBoxedValue().Cast<WfStructInstance>();
|
||||
if (!structValue)
|
||||
{
|
||||
throw ArgumentTypeMismtatchException(L"thisObject", GetOwnerTypeDescriptor(), Value::BoxedValue, thisObject);
|
||||
}
|
||||
vint index = structValue->value.fieldValues.Keys().IndexOf(this);
|
||||
vint index = structValue->fieldValues.Keys().IndexOf(this);
|
||||
if (index == -1)
|
||||
{
|
||||
return returnInfo->GetTypeDescriptor()->GetValueType()->CreateDefault();
|
||||
}
|
||||
else
|
||||
{
|
||||
return structValue->value.fieldValues.Values()[index];
|
||||
return structValue->fieldValues.Values()[index];
|
||||
}
|
||||
#else
|
||||
CHECK_FAIL(L"Not Implemented under VCZH_DEBUG_METAONLY_REFLECTION!");
|
||||
@@ -5234,12 +5158,12 @@ WfStructField
|
||||
void WfStructField::SetValueInternal(Value& thisObject, const Value& newValue)
|
||||
{
|
||||
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
|
||||
auto structValue = thisObject.GetBoxedValue().Cast<IValueType::TypedBox<WfStructInstance>>();
|
||||
auto structValue = thisObject.GetBoxedValue().Cast<WfStructInstance>();
|
||||
if (!structValue)
|
||||
{
|
||||
throw ArgumentTypeMismtatchException(L"thisObject", GetOwnerTypeDescriptor(), Value::BoxedValue, thisObject);
|
||||
}
|
||||
structValue->value.fieldValues.Set(this, newValue);
|
||||
structValue->fieldValues.Set(this, newValue);
|
||||
#else
|
||||
CHECK_FAIL(L"Not Implemented under VCZH_DEBUG_METAONLY_REFLECTION!");
|
||||
#endif
|
||||
@@ -5458,7 +5382,7 @@ WfStruct
|
||||
Value WfStruct::WfValueType::CreateDefault()
|
||||
{
|
||||
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
|
||||
return Value::From(Ptr(new IValueType::TypedBox<WfStructInstance>), owner);
|
||||
return Value::From(Ptr(new WfStructInstance(owner)), owner);
|
||||
#else
|
||||
CHECK_FAIL(L"Not Implemented under VCZH_DEBUG_METAONLY_REFLECTION!");
|
||||
#endif
|
||||
@@ -5554,8 +5478,8 @@ WfEnum::WfEnumType
|
||||
Value WfEnum::WfEnumType::ToEnum(vuint64_t value)
|
||||
{
|
||||
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
|
||||
auto boxedValue = Ptr(new IValueType::TypedBox<WfEnumInstance>);
|
||||
boxedValue->value.value = value;
|
||||
auto boxedValue = Ptr(new WfEnumInstance(owner));
|
||||
boxedValue->value = value;
|
||||
return Value::From(boxedValue, owner);
|
||||
#else
|
||||
CHECK_FAIL(L"Not Implemented under VCZH_DEBUG_METAONLY_REFLECTION!");
|
||||
@@ -5565,12 +5489,12 @@ WfEnum::WfEnumType
|
||||
vuint64_t WfEnum::WfEnumType::FromEnum(const Value& value)
|
||||
{
|
||||
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
|
||||
auto enumValue = value.GetBoxedValue().Cast<IValueType::TypedBox<WfEnumInstance>>();
|
||||
auto enumValue = value.GetBoxedValue().Cast<WfEnumInstance>();
|
||||
if (!enumValue)
|
||||
{
|
||||
throw ArgumentTypeMismtatchException(L"enumValue", owner, Value::BoxedValue, value);
|
||||
}
|
||||
return enumValue->value.value;
|
||||
return enumValue->value;
|
||||
#else
|
||||
CHECK_FAIL(L"Not Implemented under VCZH_DEBUG_METAONLY_REFLECTION!");
|
||||
#endif
|
||||
@@ -5588,7 +5512,7 @@ WfEnum
|
||||
Value WfEnum::WfValueType::CreateDefault()
|
||||
{
|
||||
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
|
||||
return Value::From(Ptr(new IValueType::TypedBox<WfEnumInstance>), owner);
|
||||
return Value::From(Ptr(new WfEnumInstance(owner)), owner);
|
||||
#else
|
||||
CHECK_FAIL(L"Not Implemented under VCZH_DEBUG_METAONLY_REFLECTION!");
|
||||
#endif
|
||||
@@ -5695,6 +5619,115 @@ WfInterfaceInstance
|
||||
return proxy;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
WfStructInstance
|
||||
***********************************************************************/
|
||||
|
||||
WfStructInstance::WfStructInstance(reflection::description::ITypeDescriptor* _typeDescriptor)
|
||||
: typeDescriptor(_typeDescriptor)
|
||||
{
|
||||
}
|
||||
|
||||
PredefinedBoxableType WfStructInstance::GetBoxableType()
|
||||
{
|
||||
return PredefinedBoxableType::PBT_Unknown;
|
||||
}
|
||||
|
||||
Ptr<IBoxedValue> WfStructInstance::Copy()
|
||||
{
|
||||
auto instance = Ptr(new WfStructInstance(typeDescriptor));
|
||||
CopyFrom(instance->fieldValues, fieldValues);
|
||||
return instance;
|
||||
}
|
||||
|
||||
IBoxedValue::CompareResult WfStructInstance::ComparePrimitive(Ptr<IBoxedValue> boxedValue)
|
||||
{
|
||||
auto instance = boxedValue.Cast<WfStructInstance>();
|
||||
if (!instance) return IBoxedValue::NotComparable;
|
||||
if (typeDescriptor != instance->typeDescriptor) return IBoxedValue::NotComparable;
|
||||
|
||||
auto&& as = fieldValues;
|
||||
auto&& bs = instance->fieldValues;
|
||||
if (as.Count() == 0 && bs.Count() == 0) return IBoxedValue::Equal;
|
||||
|
||||
vint ai = 0;
|
||||
vint bi = 0;
|
||||
while (ai < as.Count() || bi < bs.Count())
|
||||
{
|
||||
Value af, bf;
|
||||
auto ap = ai < as.Count() ? as.Keys()[ai] : nullptr;
|
||||
auto bp = bi < bs.Count() ? bs.Keys()[bi] : nullptr;
|
||||
auto p =
|
||||
ap == nullptr ? bp :
|
||||
bp == nullptr ? ap :
|
||||
ap < bp ? ap : bp;
|
||||
|
||||
if (p == ap)
|
||||
{
|
||||
af = as.Values()[ai];
|
||||
}
|
||||
else if (p->GetReturn()->GetDecorator() == ITypeInfo::TypeDescriptor)
|
||||
{
|
||||
af = p->GetReturn()->GetTypeDescriptor()->GetValueType()->CreateDefault();
|
||||
}
|
||||
|
||||
if (p == bp)
|
||||
{
|
||||
bf = bs.Values()[bi];
|
||||
}
|
||||
else if (p->GetReturn()->GetDecorator() == ITypeInfo::TypeDescriptor)
|
||||
{
|
||||
bf = p->GetReturn()->GetTypeDescriptor()->GetValueType()->CreateDefault();
|
||||
}
|
||||
|
||||
auto result = af <=> bf;
|
||||
if (result < 0) return IBoxedValue::Smaller;
|
||||
if (result > 0) return IBoxedValue::Greater;
|
||||
if constexpr (std::is_same_v<decltype(result), std::partial_ordering>)
|
||||
{
|
||||
if (result == std::partial_ordering::unordered) return IBoxedValue::NotComparable;
|
||||
}
|
||||
|
||||
if (p == ap) ai++;
|
||||
if (p == bp) bi++;
|
||||
}
|
||||
|
||||
return IBoxedValue::Equal;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
WfEnumInstance
|
||||
***********************************************************************/
|
||||
|
||||
WfEnumInstance::WfEnumInstance(reflection::description::ITypeDescriptor* _typeDescriptor)
|
||||
: typeDescriptor(_typeDescriptor)
|
||||
{
|
||||
}
|
||||
|
||||
PredefinedBoxableType WfEnumInstance::GetBoxableType()
|
||||
{
|
||||
return PredefinedBoxableType::PBT_Unknown;
|
||||
}
|
||||
|
||||
Ptr<IBoxedValue> WfEnumInstance::Copy()
|
||||
{
|
||||
auto instance = Ptr(new WfEnumInstance(typeDescriptor));
|
||||
instance->value = value;
|
||||
return instance;
|
||||
}
|
||||
|
||||
IBoxedValue::CompareResult WfEnumInstance::ComparePrimitive(Ptr<IBoxedValue> boxedValue)
|
||||
{
|
||||
auto instance = boxedValue.Cast<WfEnumInstance>();
|
||||
if (!instance) return IBoxedValue::NotComparable;
|
||||
if (typeDescriptor != instance->typeDescriptor) return IBoxedValue::NotComparable;
|
||||
|
||||
auto result = value <=> instance->value;
|
||||
if (result < 0) return IBoxedValue::Smaller;
|
||||
if (result > 0) return IBoxedValue::Greater;
|
||||
return IBoxedValue::Equal;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
WfTypeImpl
|
||||
***********************************************************************/
|
||||
|
||||
@@ -801,34 +801,32 @@ Instance
|
||||
Ptr<IValueInterfaceProxy> GetProxy();
|
||||
};
|
||||
|
||||
struct WfStructInstance
|
||||
class WfStructInstance : public Object, public reflection::description::IBoxedValue
|
||||
{
|
||||
using FieldValueMap = collections::Dictionary<WfStructField*, reflection::description::Value>;
|
||||
|
||||
FieldValueMap fieldValues;
|
||||
public:
|
||||
reflection::description::ITypeDescriptor* typeDescriptor = nullptr;
|
||||
FieldValueMap fieldValues;
|
||||
|
||||
WfStructInstance()
|
||||
{
|
||||
}
|
||||
WfStructInstance(reflection::description::ITypeDescriptor* _typeDescriptor);
|
||||
|
||||
WfStructInstance(const WfStructInstance& si)
|
||||
{
|
||||
CopyFrom(fieldValues, si.fieldValues);
|
||||
}
|
||||
|
||||
WfStructInstance& operator=(const WfStructInstance& si)
|
||||
{
|
||||
if (this != &si)
|
||||
{
|
||||
CopyFrom(fieldValues, si.fieldValues);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
reflection::description::PredefinedBoxableType GetBoxableType() override;
|
||||
Ptr<IBoxedValue> Copy() override;
|
||||
CompareResult ComparePrimitive(Ptr<IBoxedValue> boxedValue) override;
|
||||
};
|
||||
|
||||
struct WfEnumInstance
|
||||
class WfEnumInstance : public Object, public reflection::description::IBoxedValue
|
||||
{
|
||||
vuint64_t value = 0;
|
||||
public:
|
||||
reflection::description::ITypeDescriptor* typeDescriptor = nullptr;
|
||||
vuint64_t value = 0;
|
||||
|
||||
WfEnumInstance(reflection::description::ITypeDescriptor* _typeDescriptor);
|
||||
|
||||
reflection::description::PredefinedBoxableType GetBoxableType() override;
|
||||
Ptr<IBoxedValue> Copy() override;
|
||||
CompareResult ComparePrimitive(Ptr<IBoxedValue> boxedValue) override;
|
||||
};
|
||||
|
||||
/***********************************************************************
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,47 @@
|
||||
<Folder>
|
||||
<Instance name="LocaleSelectorResource">
|
||||
<Instance ref.CodeBehind="false" ref.Class="demo::LocaleSelector">
|
||||
<ref.Members>
|
||||
<![CDATA[
|
||||
func GetLocaleIndex(locale: Locale): int
|
||||
{
|
||||
for (i in range (0, listLocales.Items.Count))
|
||||
{
|
||||
if (listLocales.Items[i].Text == locale)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
]]>
|
||||
</ref.Members>
|
||||
<CustomControl ref.Name="self">
|
||||
<ComboBox ref.Name="comboLocales">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0" PreferredMinSize="x:120"/>
|
||||
<att.SelectedIndex-bind>self.GetLocaleIndex(Application::GetApplication().Locale)</att.SelectedIndex-bind>
|
||||
<ev.SelectedIndexChanged-eval>
|
||||
<![CDATA[
|
||||
{
|
||||
var index = comboLocales.SelectedIndex;
|
||||
if (index == -1)
|
||||
{
|
||||
index = 0;
|
||||
}
|
||||
Application::GetApplication().Locale = cast Locale listLocales.Items[index].Text;
|
||||
}
|
||||
]]>
|
||||
</ev.SelectedIndexChanged-eval>
|
||||
<att.ListControl>
|
||||
<TextList ref.Name="listLocales" HorizontalAlwaysVisible="false" VerticalAlwaysVisible="false">
|
||||
<att.Items>
|
||||
<_ Text="en-US"/>
|
||||
<_ Text="zh-CN"/>
|
||||
</att.Items>
|
||||
</TextList>
|
||||
</att.ListControl>
|
||||
</ComboBox>
|
||||
</CustomControl>
|
||||
</Instance>
|
||||
</Instance>
|
||||
</Folder>
|
||||
+487
@@ -0,0 +1,487 @@
|
||||
<Folder>
|
||||
<LocalizedStrings name="DialogStringsInjection">
|
||||
<LocalizedStringsInjection ref.Class="demo::DialogStringsInjection" ref.InjectInto="gaclib_controls::DialogStrings">
|
||||
<Strings Locales="zh-CN">
|
||||
<String Name="OK" Text="确定"/>
|
||||
<String Name="Cancel" Text="取消"/>
|
||||
<String Name="Yes" Text="是"/>
|
||||
<String Name="No" Text="否"/>
|
||||
<String Name="Retry" Text="重试"/>
|
||||
<String Name="Abort" Text="关于"/>
|
||||
<String Name="Ignore" Text="忽略"/>
|
||||
<String Name="TryAgain" Text="再试一次"/>
|
||||
<String Name="Continue" Text="继续"/>
|
||||
|
||||
<String Name="ColorDialogTitle" Text="选择颜色"/>
|
||||
<String Name="Red" Text="红色:"/>
|
||||
<String Name="Green" Text="绿色:"/>
|
||||
<String Name="Blue" Text="蓝色:"/>
|
||||
<String Name="Color" Text="颜色:"/>
|
||||
|
||||
<String Name="FontDialogTitle" Text="选择字体"/>
|
||||
<String Name="FontNameGroup" Text="字体:"/>
|
||||
<String Name="FontSizeGroup" Text="尺寸:"/>
|
||||
<String Name="FontEffectGroup" Text="效果:"/>
|
||||
<String Name="FontColorGroup" Text="颜色:"/>
|
||||
<String Name="FontColorGroup2" Text="选择颜色:"/>
|
||||
<String Name="FontPreviewGroup" Text="预览:"/>
|
||||
<String Name="Bold" Text="粗体"/>
|
||||
<String Name="Italic" Text="斜体"/>
|
||||
<String Name="Underline" Text="下划线"/>
|
||||
<String Name="Strikeline" Text="删除线"/>
|
||||
<String Name="HAA" Text="水平抗锯齿"/>
|
||||
<String Name="VAA" Text="垂直抗锯齿"/>
|
||||
|
||||
<String Name="FileDialogFileName" Text="文件名:"/>
|
||||
<String Name="FileDialogOpen" Text="打开"/>
|
||||
<String Name="FileDialogSave" Text="保存"/>
|
||||
|
||||
<String Name="FileDialogTextLoadingFolders" Text="(正在加载……)"/>
|
||||
<String Name="FileDialogTextLoadingFiles" Text="(正在加载文件夹和文件……)"/>
|
||||
<String Name="FileDialogErrorEmptySelection" Text="应该选中至少一个文件。"/>
|
||||
<String Name="FileDialogErrorFileNotExist" Text="下列文件不存在:"/>
|
||||
<String Name="FileDialogErrorFileExpected" Text="下列文件夹不应该被选中:"/>
|
||||
<String Name="FileDialogErrorFolderNotExist" Text="文件夹不存在:"/>
|
||||
<String Name="FileDialogErrorMultipleSelectionNotEnabled" Text="本对话框不支持多选。"/>
|
||||
<String Name="FileDialogAskCreateFile" Text="你确定想要创建下列文件吗?"/>
|
||||
<String Name="FileDialogAskOverrideFile" Text="你确定想要覆盖下列文件吗?"/>
|
||||
</Strings>
|
||||
</LocalizedStringsInjection>
|
||||
</LocalizedStrings>
|
||||
|
||||
<Instance name="LocalizedDialogsTabPageResource">
|
||||
<Instance ref.CodeBehind="false" ref.Class="demo::LocalizedDialogsTabPage" xmlns:demo="demo::*">
|
||||
<TabPage ref.Name="self" Text="Dialogs">
|
||||
<Table AlignmentToParent="left:0 top:0 right:0 bottom:0" CellPadding="5">
|
||||
<att.Rows>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:Percentage percentage:1.0</_>
|
||||
</att.Rows>
|
||||
<att.Columns>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:Percentage percentage:1.0</_>
|
||||
</att.Columns>
|
||||
|
||||
<Cell Site="row:0 column:0">
|
||||
<SolidLabel Font-bind="self.DisplayFont" Color="#FFFFFF" Text="Locale only works in FakeDialogService (default in Hosted Mode)" VerticalAlignment="Center"/>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:0 column:1">
|
||||
<demo:LocaleSelector>
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</demo:LocaleSelector>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:1 column:0 columnSpan:3">
|
||||
<Tab>
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
<att.Pages>
|
||||
<demo:LocalizedMessageDialogTabPage Alt="M"/>
|
||||
<demo:LocalizedColorDialogTabPage Alt="C"/>
|
||||
<demo:LocalizedFontDialogTabPage Alt="F"/>
|
||||
<demo:LocalizedFileDialogTabPage Alt="F"/>
|
||||
</att.Pages>
|
||||
</Tab>
|
||||
</Cell>
|
||||
</Table>
|
||||
</TabPage>
|
||||
</Instance>
|
||||
</Instance>
|
||||
|
||||
<Instance name="LocalizedMessageDialogTabPageResource">
|
||||
<Instance ref.CodeBehind="false" ref.Class="demo::LocalizedMessageDialogTabPage">
|
||||
<ref.Members><![CDATA[
|
||||
var inputValues : INativeDialogService::MessageBoxButtonsInput[] = {
|
||||
INativeDialogService::MessageBoxButtonsInput::DisplayOK;
|
||||
INativeDialogService::MessageBoxButtonsInput::DisplayOKCancel;
|
||||
INativeDialogService::MessageBoxButtonsInput::DisplayYesNo;
|
||||
INativeDialogService::MessageBoxButtonsInput::DisplayYesNoCancel;
|
||||
INativeDialogService::MessageBoxButtonsInput::DisplayRetryCancel;
|
||||
INativeDialogService::MessageBoxButtonsInput::DisplayAbortRetryIgnore;
|
||||
INativeDialogService::MessageBoxButtonsInput::DisplayCancelTryAgainContinue;
|
||||
};
|
||||
var inputTexts : string[] = {
|
||||
"DisplayOK";
|
||||
"DisplayOKCancel";
|
||||
"DisplayYesNo";
|
||||
"DisplayYesNoCancel";
|
||||
"DisplayRetryCancel";
|
||||
"DisplayAbortRetryIgnore";
|
||||
"DisplayCancelTryAgainContinue";
|
||||
};
|
||||
|
||||
var defaultButtonValues : INativeDialogService::MessageBoxDefaultButton[] = {
|
||||
INativeDialogService::MessageBoxDefaultButton::DefaultFirst;
|
||||
INativeDialogService::MessageBoxDefaultButton::DefaultSecond;
|
||||
INativeDialogService::MessageBoxDefaultButton::DefaultThird;
|
||||
};
|
||||
var defaultButtonTexts : string[] = {
|
||||
"DefaultFirst";
|
||||
"DefaultSecond";
|
||||
"DefaultThird";
|
||||
};
|
||||
|
||||
var iconValues : INativeDialogService::MessageBoxIcons[] = {
|
||||
INativeDialogService::MessageBoxIcons::IconNone;
|
||||
INativeDialogService::MessageBoxIcons::IconError;
|
||||
INativeDialogService::MessageBoxIcons::IconQuestion;
|
||||
INativeDialogService::MessageBoxIcons::IconWarning;
|
||||
INativeDialogService::MessageBoxIcons::IconInformation;
|
||||
};
|
||||
var iconTexts : string[] = {
|
||||
"IconNone";
|
||||
"IconError";
|
||||
"IconQuestion";
|
||||
"IconWarning";
|
||||
"IconInformation";
|
||||
};
|
||||
|
||||
var outputValues : INativeDialogService::MessageBoxButtonsOutput[] = {
|
||||
INativeDialogService::MessageBoxButtonsOutput::SelectOK;
|
||||
INativeDialogService::MessageBoxButtonsOutput::SelectCancel;
|
||||
INativeDialogService::MessageBoxButtonsOutput::SelectYes;
|
||||
INativeDialogService::MessageBoxButtonsOutput::SelectNo;
|
||||
INativeDialogService::MessageBoxButtonsOutput::SelectRetry;
|
||||
INativeDialogService::MessageBoxButtonsOutput::SelectAbort;
|
||||
INativeDialogService::MessageBoxButtonsOutput::SelectIgnore;
|
||||
INativeDialogService::MessageBoxButtonsOutput::SelectTryAgain;
|
||||
INativeDialogService::MessageBoxButtonsOutput::SelectContinue;
|
||||
};
|
||||
var outputTexts : string[] = {
|
||||
"SelectOK";
|
||||
"SelectCancel";
|
||||
"SelectYes";
|
||||
"SelectNo";
|
||||
"SelectRetry";
|
||||
"SelectAbort";
|
||||
"SelectIgnore";
|
||||
"SelectTryAgain";
|
||||
"SelectContinue";
|
||||
};
|
||||
]]></ref.Members>
|
||||
<ref.Ctor><![CDATA[
|
||||
{
|
||||
self.comboInput.SelectedIndex = 0;
|
||||
self.comboDefaultButton.SelectedIndex = 0;
|
||||
self.comboIcon.SelectedIndex = 0;
|
||||
}
|
||||
]]></ref.Ctor>
|
||||
<TabPage ref.Name="self" Text="MessageDialog">
|
||||
<MessageDialog ref.Name="dialog"/>
|
||||
<Table CellPadding="5" BorderVisible="true" AlignmentToParent="left:0 top:0 right:0 bottom:0">
|
||||
<att.Rows>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:MinSize</_>
|
||||
</att.Rows>
|
||||
<att.Columns>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:Absolute absolute:200</_>
|
||||
<_>composeType:Percentage percentage:1.0</_>
|
||||
</att.Columns>
|
||||
|
||||
<Cell Site="row:0 column:0"><Label Text="Title:"/></Cell>
|
||||
<Cell Site="row:1 column:0"><Label Text="Text:"/></Cell>
|
||||
<Cell Site="row:2 column:0"><Label Text="Input:"/></Cell>
|
||||
<Cell Site="row:3 column:0"><Label Text="DefaultButton:"/></Cell>
|
||||
<Cell Site="row:4 column:0"><Label Text="Icon:"/></Cell>
|
||||
<Cell Site="row:5 column:0"><Label Text="Output:"/></Cell>
|
||||
|
||||
<Cell Site="row:0 column:1">
|
||||
<SinglelineTextBox ref.Name="txtTitle" Text="The Title">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</SinglelineTextBox>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:1 column:1">
|
||||
<SinglelineTextBox ref.Name="txtText" Text="This is a message!">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</SinglelineTextBox>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:2 column:1">
|
||||
<ComboBox ref.Name="comboInput">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
<att.ListControl>
|
||||
<BindableTextList ItemSource-eval="self.inputTexts" TextProperty-eval="[cast string $1]" HorizontalAlwaysVisible="false" VerticalAlwaysVisible="false"/>
|
||||
</att.ListControl>
|
||||
</ComboBox>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:3 column:1">
|
||||
<ComboBox ref.Name="comboDefaultButton">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
<att.ListControl>
|
||||
<BindableTextList ItemSource-eval="self.defaultButtonTexts" TextProperty-eval="[cast string $1]" HorizontalAlwaysVisible="false" VerticalAlwaysVisible="false"/>
|
||||
</att.ListControl>
|
||||
</ComboBox>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:4 column:1">
|
||||
<ComboBox ref.Name="comboIcon">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
<att.ListControl>
|
||||
<BindableTextList ItemSource-eval="self.iconTexts" TextProperty-eval="[cast string $1]" HorizontalAlwaysVisible="false" VerticalAlwaysVisible="false"/>
|
||||
</att.ListControl>
|
||||
</ComboBox>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:5 column:1">
|
||||
<Label ref.Name="lblOutput"/>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:6 column:1">
|
||||
<Button Text="Show Dialog">
|
||||
<ev.Clicked-eval><![CDATA[
|
||||
{
|
||||
dialog.Title = txtTitle.Text;
|
||||
dialog.Text = txtText.Text;
|
||||
dialog.Input = self.inputValues[comboInput.SelectedIndex];
|
||||
dialog.DefaultButton = self.defaultButtonValues[comboDefaultButton.SelectedIndex];
|
||||
dialog.Icon = self.iconValues[comboIcon.SelectedIndex];
|
||||
var result = dialog.ShowDialog();
|
||||
lblOutput.Text = self.outputTexts[self.outputValues.IndexOf(result)];
|
||||
}
|
||||
]]></ev.Clicked-eval>
|
||||
</Button>
|
||||
</Cell>
|
||||
</Table>
|
||||
</TabPage>
|
||||
</Instance>
|
||||
</Instance>
|
||||
|
||||
<Instance name="LocalizedColorDialogTabPageResource">
|
||||
<Instance ref.CodeBehind="false" ref.Class="demo::LocalizedColorDialogTabPage">
|
||||
<TabPage ref.Name="self" Text="ColorDialog">
|
||||
<ColorDialog ref.Name="dialog" EnabledCustomColor="true"/>
|
||||
<Table CellPadding="5" BorderVisible="true" AlignmentToParent="left:0 top:0 right:0 bottom:0">
|
||||
<att.Rows>
|
||||
<_>composeType:Absolute absolute:30</_>
|
||||
<_>composeType:MinSize</_>
|
||||
</att.Rows>
|
||||
<att.Columns>
|
||||
<_>composeType:Absolute absolute:100</_>
|
||||
<_>composeType:Percentage percentage:1.0</_>
|
||||
</att.Columns>
|
||||
|
||||
<Cell Site="row:0 column:0">
|
||||
<SolidBackground ref.Name="background" Color="#FFFFFF"/>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:1 column:0">
|
||||
<Button Text="Show Dialog">
|
||||
<ev.Clicked-eval><![CDATA[
|
||||
{
|
||||
dialog.SelectedColor = background.Color;
|
||||
if (dialog.ShowDialog())
|
||||
{
|
||||
background.Color = dialog.SelectedColor;
|
||||
}
|
||||
}
|
||||
]]></ev.Clicked-eval>
|
||||
</Button>
|
||||
</Cell>
|
||||
</Table>
|
||||
</TabPage>
|
||||
</Instance>
|
||||
</Instance>
|
||||
|
||||
<Instance name="LocalizedFontDialogTabPageResource">
|
||||
<Instance ref.CodeBehind="false" ref.Class="demo::LocalizedFontDialogTabPage">
|
||||
<TabPage ref.Name="self" Text="FontDialog">
|
||||
<FontDialog ref.Name="dialog" ForceFontExist="true"/>
|
||||
<Table CellPadding="5" BorderVisible="true" AlignmentToParent="left:0 top:0 right:0 bottom:0">
|
||||
<att.Rows>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:MinSize</_>
|
||||
</att.Rows>
|
||||
<att.Columns>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:Percentage percentage:1.0</_>
|
||||
</att.Columns>
|
||||
|
||||
<Cell Site="row:0 column:0">
|
||||
<SolidLabel ref.Name="label" Font-eval="self.DisplayFont" Color="#FFFFFF" Text="Sample Text"/>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:1 column:0">
|
||||
<CheckBox ref.Name="checkEffect" Text="Effect" Selected="false"/>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:2 column:0">
|
||||
<Button Text="Show Dialog">
|
||||
<ev.Clicked-eval><![CDATA[
|
||||
{
|
||||
dialog.ShowEffect = checkEffect.Selected;
|
||||
dialog.SelectedFont = label.Font;
|
||||
dialog.SelectedColor = label.Color;
|
||||
if (dialog.ShowDialog())
|
||||
{
|
||||
label.Font = dialog.SelectedFont;
|
||||
label.Color = dialog.SelectedColor;
|
||||
}
|
||||
}
|
||||
]]></ev.Clicked-eval>
|
||||
</Button>
|
||||
</Cell>
|
||||
</Table>
|
||||
</TabPage>
|
||||
</Instance>
|
||||
</Instance>
|
||||
|
||||
<Instance name="LocalizedFileDialogTabPageResource">
|
||||
<Instance ref.CodeBehind="false" ref.Class="demo::LocalizedFileDialogTabPage">
|
||||
<ref.Members><![CDATA[
|
||||
func SetDialogProperties(dialog : GuiFileDialogBase*) : void
|
||||
{
|
||||
dialog.Title = txtTitle.Text;
|
||||
dialog.Directory = txtDirectory.Text;
|
||||
dialog.FileName = txtFileName.Text;
|
||||
dialog.Filter = txtFilter.Text;
|
||||
dialog.FilterIndex = (cast int txtFilterIndex.Text) ?? 0;
|
||||
dialog.DefaultExtension = txtDefaultExtension.Text;
|
||||
|
||||
var options : INativeDialogService::FileDialogOptions = None;
|
||||
if (chkFileDialogAllowMultipleSelection.Selected) { options = options | INativeDialogService::FileDialogOptions::FileDialogAllowMultipleSelection; }
|
||||
if (chkFileDialogFileMustExist.Selected) { options = options | INativeDialogService::FileDialogOptions::FileDialogFileMustExist; }
|
||||
if (chkFileDialogShowReadOnlyCheckBox.Selected) { options = options | INativeDialogService::FileDialogOptions::FileDialogShowReadOnlyCheckBox; }
|
||||
if (chkFileDialogDereferenceLinks.Selected) { options = options | INativeDialogService::FileDialogOptions::FileDialogDereferenceLinks; }
|
||||
if (chkFileDialogShowNetworkButton.Selected) { options = options | INativeDialogService::FileDialogOptions::FileDialogShowNetworkButton; }
|
||||
if (chkFileDialogPromptCreateFile.Selected) { options = options | INativeDialogService::FileDialogOptions::FileDialogPromptCreateFile; }
|
||||
if (chkFileDialogPromptOverwriteFile.Selected) { options = options | INativeDialogService::FileDialogOptions::FileDialogPromptOverwriteFile; }
|
||||
if (chkFileDialogDirectoryMustExist.Selected) { options = options | INativeDialogService::FileDialogOptions::FileDialogDirectoryMustExist; }
|
||||
if (chkFileDialogAddToRecent.Selected) { options = options | INativeDialogService::FileDialogOptions::FileDialogAddToRecent; }
|
||||
dialog.Options = options;
|
||||
}
|
||||
]]></ref.Members>
|
||||
<TabPage ref.Name="self" Text="Open/Save FileDialog">
|
||||
<OpenFileDialog ref.Name="dialogOpen"/>
|
||||
<SaveFileDialog ref.Name="dialogSave"/>
|
||||
<Stack Direction="Vertical" Padding="5" AlignmentToParent="left:5 top:5 right:5 bottom:5" MinSizeLimitation="LimitToElementAndChildren">
|
||||
<StackItem>
|
||||
<Table CellPadding="5" BorderVisible="false" AlignmentToParent="left:0 top:0 right:0 bottom:0">
|
||||
<att.Rows>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:Percentage percentage:1.0</_>
|
||||
</att.Rows>
|
||||
<att.Columns>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:Absolute absolute:200</_>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:Percentage percentage:1.0</_>
|
||||
</att.Columns>
|
||||
|
||||
<Cell Site="row:0 column:0"><Label Text="Title:"/></Cell>
|
||||
<Cell Site="row:1 column:0"><Label Text="Directory:"/></Cell>
|
||||
<Cell Site="row:2 column:0"><Label Text="FileName:"/></Cell>
|
||||
<Cell Site="row:3 column:0"><Label Text="Filter:"/></Cell>
|
||||
<Cell Site="row:4 column:0"><Label Text="FilterIndex:"/></Cell>
|
||||
<Cell Site="row:5 column:0"><Label Text="DefaultExtension:"/></Cell>
|
||||
|
||||
<Cell Site="row:0 column:1">
|
||||
<SinglelineTextBox ref.Name="txtTitle" Text="The Title">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</SinglelineTextBox>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:1 column:1">
|
||||
<SinglelineTextBox ref.Name="txtDirectory" Text="C:\">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</SinglelineTextBox>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:2 column:1">
|
||||
<SinglelineTextBox ref.Name="txtFileName" Text="C:\File.txt">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</SinglelineTextBox>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:3 column:1">
|
||||
<SinglelineTextBox ref.Name="txtFilter" Text="Text Files (*.txt)|*.txt|XML Files (*.xml)|*.xml|All Files (*.*)|*.*">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</SinglelineTextBox>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:4 column:1">
|
||||
<SinglelineTextBox ref.Name="txtFilterIndex" Text="0">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</SinglelineTextBox>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:5 column:1">
|
||||
<SinglelineTextBox ref.Name="txtDefaultExtension" Text="txt">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</SinglelineTextBox>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:0 column:2 rowSpan:7">
|
||||
<Stack Direction="Vertical" AlignmentToParent="left:0 top:0 right:0 bottom:0" MinSizeLimitation="LimitToElementAndChildren">
|
||||
<StackItem><CheckBox ref.Name="chkFileDialogAllowMultipleSelection" Text="FileDialogAllowMultipleSelection"/></StackItem>
|
||||
<StackItem><CheckBox ref.Name="chkFileDialogFileMustExist" Text="FileDialogFileMustExist"/></StackItem>
|
||||
<StackItem><CheckBox ref.Name="chkFileDialogShowReadOnlyCheckBox" Text="FileDialogShowReadOnlyCheckBox"/></StackItem>
|
||||
<StackItem><CheckBox ref.Name="chkFileDialogDereferenceLinks" Text="FileDialogDereferenceLinks"/></StackItem>
|
||||
<StackItem><CheckBox ref.Name="chkFileDialogShowNetworkButton" Text="FileDialogShowNetworkButton"/></StackItem>
|
||||
<StackItem><CheckBox ref.Name="chkFileDialogPromptCreateFile" Text="FileDialogPromptCreateFile"/></StackItem>
|
||||
<StackItem><CheckBox ref.Name="chkFileDialogPromptOverwriteFile" Text="FileDialogPromptOverwriteFile"/></StackItem>
|
||||
<StackItem><CheckBox ref.Name="chkFileDialogDirectoryMustExist" Text="FileDialogDirectoryMustExist"/></StackItem>
|
||||
<StackItem><CheckBox ref.Name="chkFileDialogAddToRecent" Text="FileDialogAddToRecent"/></StackItem>
|
||||
</Stack>
|
||||
</Cell>
|
||||
</Table>
|
||||
</StackItem>
|
||||
|
||||
<StackItem><Label Text="Selected Files:"/></StackItem>
|
||||
|
||||
<StackItem>
|
||||
<BindableTextList ref.Name="lstFiles" VerticalAlwaysVisible="false" HorizontalAlwaysVisible="false">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0" PreferredMinSize="y:80"/>
|
||||
<att.TextProperty-eval>[cast string $1]</att.TextProperty-eval>
|
||||
</BindableTextList>
|
||||
</StackItem>
|
||||
|
||||
<StackItem>
|
||||
<Stack Direction="Horizontal" Padding="5" AlignmentToParent="left:0 top:0 right:0 bottom:0" MinSizeLimitation="LimitToElementAndChildren">
|
||||
<StackItem>
|
||||
<Button Text="Show Open File Dialog">
|
||||
<ev.Clicked-eval><![CDATA[
|
||||
{
|
||||
self.SetDialogProperties(dialogOpen);
|
||||
if (dialogOpen.ShowDialog())
|
||||
{
|
||||
lstFiles.ItemSource = dialogOpen.FileNames;
|
||||
}
|
||||
}
|
||||
]]></ev.Clicked-eval>
|
||||
</Button>
|
||||
</StackItem>
|
||||
<StackItem>
|
||||
<Button Text="Show Save File Dialog">
|
||||
<ev.Clicked-eval><![CDATA[
|
||||
{
|
||||
self.SetDialogProperties(dialogSave);
|
||||
if (dialogSave.ShowDialog())
|
||||
{
|
||||
lstFiles.ItemSource = {dialogSave.FileName} of string[];
|
||||
}
|
||||
}
|
||||
]]></ev.Clicked-eval>
|
||||
</Button>
|
||||
</StackItem>
|
||||
</Stack>
|
||||
</StackItem>
|
||||
</Stack>
|
||||
</TabPage>
|
||||
</Instance>
|
||||
</Instance>
|
||||
</Folder>
|
||||
+4
-86
@@ -32,72 +32,11 @@
|
||||
</Strings>
|
||||
</LocalizedStrings>
|
||||
</LocalizedStrings>
|
||||
|
||||
<LocalizedStrings name="DialogStringsInjection">
|
||||
<LocalizedStringsInjection ref.Class="demo::DialogStringsInjection" ref.InjectInto="gaclib_controls::DialogStrings">
|
||||
<Strings Locales="zh-CN">
|
||||
<String Name="OK" Text="确定"/>
|
||||
<String Name="Cancel" Text="取消"/>
|
||||
<String Name="Yes" Text="是"/>
|
||||
<String Name="No" Text="否"/>
|
||||
<String Name="Retry" Text="重试"/>
|
||||
<String Name="Abort" Text="关于"/>
|
||||
<String Name="Ignore" Text="忽略"/>
|
||||
<String Name="TryAgain" Text="再试一次"/>
|
||||
<String Name="Continue" Text="继续"/>
|
||||
|
||||
<String Name="ColorDialogTitle" Text="选择颜色"/>
|
||||
<String Name="Red" Text="红色:"/>
|
||||
<String Name="Green" Text="绿色:"/>
|
||||
<String Name="Blue" Text="蓝色:"/>
|
||||
<String Name="Color" Text="颜色:"/>
|
||||
|
||||
<String Name="FontDialogTitle" Text="选择字体"/>
|
||||
<String Name="FontNameGroup" Text="字体:"/>
|
||||
<String Name="FontSizeGroup" Text="尺寸:"/>
|
||||
<String Name="FontEffectGroup" Text="效果:"/>
|
||||
<String Name="FontColorGroup" Text="颜色:"/>
|
||||
<String Name="FontColorGroup2" Text="选择颜色:"/>
|
||||
<String Name="FontPreviewGroup" Text="预览:"/>
|
||||
<String Name="Bold" Text="粗体"/>
|
||||
<String Name="Italic" Text="斜体"/>
|
||||
<String Name="Underline" Text="下划线"/>
|
||||
<String Name="HAA" Text="水平抗锯齿"/>
|
||||
<String Name="VAA" Text="垂直抗锯齿"/>
|
||||
|
||||
<String Name="FileDialogFileName" Text="文件名:"/>
|
||||
<String Name="FileDialogOpen" Text="打开"/>
|
||||
<String Name="FileDialogSave" Text="保存"/>
|
||||
|
||||
<String Name="FileDialogTextLoadingFolders" Text="(正在加载……)"/>
|
||||
<String Name="FileDialogTextLoadingFiles" Text="(正在加载文件夹和文件……)"/>
|
||||
<String Name="FileDialogErrorEmptySelection" Text="应该选中至少一个文件。"/>
|
||||
<String Name="FileDialogErrorFileNotExist" Text="下列文件不存在:"/>
|
||||
<String Name="FileDialogErrorFileExpected" Text="下列文件夹不应该被选中:"/>
|
||||
<String Name="FileDialogErrorFolderNotExist" Text="文件夹不存在:"/>
|
||||
<String Name="FileDialogErrorMultipleSelectionNotEnabled" Text="本对话框不支持多选。"/>
|
||||
<String Name="FileDialogAskCreateFile" Text="你确定想要创建下列文件吗?"/>
|
||||
<String Name="FileDialogAskOverrideFile" Text="你确定想要覆盖下列文件吗?"/>
|
||||
</Strings>
|
||||
</LocalizedStringsInjection>
|
||||
</LocalizedStrings>
|
||||
|
||||
<Instance name="LocalizedStringsTabPageResource">
|
||||
<Instance ref.CodeBehind="false" ref.Class="demo::LocalizedStringsTabPage">
|
||||
<Instance ref.CodeBehind="false" ref.Class="demo::LocalizedStringsTabPage" xmlns:demo="demo::*">
|
||||
<ref.Members>
|
||||
<![CDATA[
|
||||
func GetLocaleIndex(locale: Locale): int
|
||||
{
|
||||
for (i in range (0, listLocales.Items.Count))
|
||||
{
|
||||
if (listLocales.Items[i].Text == locale)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
var dateTime: DateTime = Sys::GetLocalTime();
|
||||
var number: int = 2147483647;
|
||||
var currency: double = 1342177.28;
|
||||
@@ -121,30 +60,9 @@
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:0 column:1">
|
||||
<ComboBox ref.Name="comboLocales">
|
||||
<att.BoundsComposition-set PreferredMinSize="x:120"/>
|
||||
<att.SelectedIndex-bind>self.GetLocaleIndex(Application::GetApplication().Locale)</att.SelectedIndex-bind>
|
||||
<ev.SelectedIndexChanged-eval>
|
||||
<![CDATA[
|
||||
{
|
||||
var index = comboLocales.SelectedIndex;
|
||||
if (index == -1)
|
||||
{
|
||||
index = 0;
|
||||
}
|
||||
Application::GetApplication().Locale = cast Locale listLocales.Items[index].Text;
|
||||
}
|
||||
]]>
|
||||
</ev.SelectedIndexChanged-eval>
|
||||
<att.ListControl>
|
||||
<TextList ref.Name="listLocales" HorizontalAlwaysVisible="false" VerticalAlwaysVisible="false">
|
||||
<att.Items>
|
||||
<_ Text="en-US"/>
|
||||
<_ Text="zh-CN"/>
|
||||
</att.Items>
|
||||
</TextList>
|
||||
</att.ListControl>
|
||||
</ComboBox>
|
||||
<demo:LocaleSelector>
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</demo:LocaleSelector>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:1 column:0 columnSpan:3">
|
||||
|
||||
@@ -140,6 +140,7 @@
|
||||
<demo:ElementTabPage Alt="E"/>
|
||||
<demo:AnimationTabPage Alt="A"/>
|
||||
<demo:LocalizedStringsTabPage Alt="L"/>
|
||||
<demo:LocalizedDialogsTabPage Alt="L"/>
|
||||
<demo:DatePickerTabPage Alt="D"/>
|
||||
</att.Pages>
|
||||
</Tab>
|
||||
@@ -158,7 +159,7 @@
|
||||
<Instance name="TreeViewTabPageResource" content="File">TreeViewTabPage.xml</Instance>
|
||||
<Instance name="DataGridTabPageResource" content="File">DataGridTabPage.xml</Instance>
|
||||
<Folder name="DataGridComponents" content="Link">DataGridComponents.xml</Folder>
|
||||
|
||||
|
||||
<Instance name="RepeatTabPageResource" content="File">RepeatTabPage.xml</Instance>
|
||||
<Folder name="ResponsiveTabPage" content="Link">ResponsiveTabPage.xml</Folder>
|
||||
<Folder name="RepeatComponents" content="Link">RepeatComponents.xml</Folder>
|
||||
@@ -168,12 +169,14 @@
|
||||
<Folder name="DocumentEditorBase" content="Link">DocumentEditorBase.xml</Folder>
|
||||
<Folder name="DocumentEditorRibbon" content="Link">DocumentEditorRibbon.xml</Folder>
|
||||
<Folder name="DocumentEditorToolstrip" content="Link">DocumentEditorToolstrip.xml</Folder>
|
||||
|
||||
|
||||
<Instance name="ElementTabPageResource" content="File">ElementTabPage.xml</Instance>
|
||||
<Folder name="AnimationTabPage" content="Link">AnimationTabPage.xml</Folder>
|
||||
<Folder name="LocalizedStringsTabPage" content="Link">LocalizedStringsTabPage.xml</Folder>
|
||||
<Folder name="LocalizedDialogsTabPage" content="Link">LocalizedDialogsTabPage.xml</Folder>
|
||||
<Folder name="LocalizedComponents" content="Link">LocalizedComponents.xml</Folder>
|
||||
<Folder name="DatePickerTabPage" content="Link">DatePickerTabPage.xml</Folder>
|
||||
|
||||
|
||||
<Folder name="LargeImages" content="Link">Images/LargeImages.xml</Folder>
|
||||
<Folder name="SmallImages" content="Link">Images/SmallImages.xml</Folder>
|
||||
<Folder name="MiscImages" content="Link">Images/MiscImages.xml</Folder>
|
||||
|
||||
+2779
-1089
File diff suppressed because it is too large
Load Diff
+1007
-573
File diff suppressed because it is too large
Load Diff
+248
-4
@@ -78,6 +78,18 @@ namespace vl
|
||||
IMPL_CPP_TYPE_INFO(demo::IStringResourceStrings)
|
||||
IMPL_CPP_TYPE_INFO(demo::ListViewTabPage)
|
||||
IMPL_CPP_TYPE_INFO(demo::ListViewTabPageConstructor)
|
||||
IMPL_CPP_TYPE_INFO(demo::LocaleSelector)
|
||||
IMPL_CPP_TYPE_INFO(demo::LocaleSelectorConstructor)
|
||||
IMPL_CPP_TYPE_INFO(demo::LocalizedColorDialogTabPage)
|
||||
IMPL_CPP_TYPE_INFO(demo::LocalizedColorDialogTabPageConstructor)
|
||||
IMPL_CPP_TYPE_INFO(demo::LocalizedDialogsTabPage)
|
||||
IMPL_CPP_TYPE_INFO(demo::LocalizedDialogsTabPageConstructor)
|
||||
IMPL_CPP_TYPE_INFO(demo::LocalizedFileDialogTabPage)
|
||||
IMPL_CPP_TYPE_INFO(demo::LocalizedFileDialogTabPageConstructor)
|
||||
IMPL_CPP_TYPE_INFO(demo::LocalizedFontDialogTabPage)
|
||||
IMPL_CPP_TYPE_INFO(demo::LocalizedFontDialogTabPageConstructor)
|
||||
IMPL_CPP_TYPE_INFO(demo::LocalizedMessageDialogTabPage)
|
||||
IMPL_CPP_TYPE_INFO(demo::LocalizedMessageDialogTabPageConstructor)
|
||||
IMPL_CPP_TYPE_INFO(demo::LocalizedStringsTabPage)
|
||||
IMPL_CPP_TYPE_INFO(demo::LocalizedStringsTabPageConstructor)
|
||||
IMPL_CPP_TYPE_INFO(demo::MainWindow)
|
||||
@@ -1066,11 +1078,233 @@ namespace vl
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
END_CLASS_MEMBER(::demo::ListViewTabPageConstructor)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::LocaleSelector)
|
||||
CLASS_MEMBER_BASE(::vl::presentation::controls::GuiCustomControl)
|
||||
CLASS_MEMBER_BASE(::demo::LocaleSelectorConstructor)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::demo::LocaleSelector*(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetLocaleIndex, { L"locale" })
|
||||
END_CLASS_MEMBER(::demo::LocaleSelector)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::LocaleSelectorConstructor)
|
||||
CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::LocaleSelectorConstructor>(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_demo_LocaleSelector_Initialize, { L"__vwsn_this_" })
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_0)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_1)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_2)
|
||||
CLASS_MEMBER_FIELD(comboLocales)
|
||||
CLASS_MEMBER_FIELD(listLocales)
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
END_CLASS_MEMBER(::demo::LocaleSelectorConstructor)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::LocalizedColorDialogTabPage)
|
||||
CLASS_MEMBER_BASE(::vl::presentation::controls::GuiTabPage)
|
||||
CLASS_MEMBER_BASE(::demo::LocalizedColorDialogTabPageConstructor)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::demo::LocalizedColorDialogTabPage*(), NO_PARAMETER)
|
||||
END_CLASS_MEMBER(::demo::LocalizedColorDialogTabPage)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::LocalizedColorDialogTabPageConstructor)
|
||||
CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::LocalizedColorDialogTabPageConstructor>(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_demo_LocalizedColorDialogTabPage_Initialize, { L"__vwsn_this_" })
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_0)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_1)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_2)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_3)
|
||||
CLASS_MEMBER_FIELD(background)
|
||||
CLASS_MEMBER_FIELD(dialog)
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
END_CLASS_MEMBER(::demo::LocalizedColorDialogTabPageConstructor)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::LocalizedDialogsTabPage)
|
||||
CLASS_MEMBER_BASE(::vl::presentation::controls::GuiTabPage)
|
||||
CLASS_MEMBER_BASE(::demo::LocalizedDialogsTabPageConstructor)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::demo::LocalizedDialogsTabPage*(), NO_PARAMETER)
|
||||
END_CLASS_MEMBER(::demo::LocalizedDialogsTabPage)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::LocalizedDialogsTabPageConstructor)
|
||||
CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::LocalizedDialogsTabPageConstructor>(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_demo_LocalizedDialogsTabPage_Initialize, { L"__vwsn_this_" })
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_0)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_1)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_10)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_11)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_12)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_2)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_3)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_4)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_5)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_6)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_7)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_8)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_9)
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
END_CLASS_MEMBER(::demo::LocalizedDialogsTabPageConstructor)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::LocalizedFileDialogTabPage)
|
||||
CLASS_MEMBER_BASE(::vl::presentation::controls::GuiTabPage)
|
||||
CLASS_MEMBER_BASE(::demo::LocalizedFileDialogTabPageConstructor)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::demo::LocalizedFileDialogTabPage*(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(SetDialogProperties, { L"dialog" })
|
||||
END_CLASS_MEMBER(::demo::LocalizedFileDialogTabPage)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::LocalizedFileDialogTabPageConstructor)
|
||||
CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::LocalizedFileDialogTabPageConstructor>(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_demo_LocalizedFileDialogTabPage_Initialize, { L"__vwsn_this_" })
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_0)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_1)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_10)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_11)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_12)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_13)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_14)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_15)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_16)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_17)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_18)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_19)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_2)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_20)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_21)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_22)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_23)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_24)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_25)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_26)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_27)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_28)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_29)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_3)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_30)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_31)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_32)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_33)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_34)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_35)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_36)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_37)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_38)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_39)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_4)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_40)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_41)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_42)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_43)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_44)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_45)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_46)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_47)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_5)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_6)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_7)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_8)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_9)
|
||||
CLASS_MEMBER_FIELD(chkFileDialogAddToRecent)
|
||||
CLASS_MEMBER_FIELD(chkFileDialogAllowMultipleSelection)
|
||||
CLASS_MEMBER_FIELD(chkFileDialogDereferenceLinks)
|
||||
CLASS_MEMBER_FIELD(chkFileDialogDirectoryMustExist)
|
||||
CLASS_MEMBER_FIELD(chkFileDialogFileMustExist)
|
||||
CLASS_MEMBER_FIELD(chkFileDialogPromptCreateFile)
|
||||
CLASS_MEMBER_FIELD(chkFileDialogPromptOverwriteFile)
|
||||
CLASS_MEMBER_FIELD(chkFileDialogShowNetworkButton)
|
||||
CLASS_MEMBER_FIELD(chkFileDialogShowReadOnlyCheckBox)
|
||||
CLASS_MEMBER_FIELD(dialogOpen)
|
||||
CLASS_MEMBER_FIELD(dialogSave)
|
||||
CLASS_MEMBER_FIELD(lstFiles)
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
CLASS_MEMBER_FIELD(txtDefaultExtension)
|
||||
CLASS_MEMBER_FIELD(txtDirectory)
|
||||
CLASS_MEMBER_FIELD(txtFileName)
|
||||
CLASS_MEMBER_FIELD(txtFilter)
|
||||
CLASS_MEMBER_FIELD(txtFilterIndex)
|
||||
CLASS_MEMBER_FIELD(txtTitle)
|
||||
END_CLASS_MEMBER(::demo::LocalizedFileDialogTabPageConstructor)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::LocalizedFontDialogTabPage)
|
||||
CLASS_MEMBER_BASE(::vl::presentation::controls::GuiTabPage)
|
||||
CLASS_MEMBER_BASE(::demo::LocalizedFontDialogTabPageConstructor)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::demo::LocalizedFontDialogTabPage*(), NO_PARAMETER)
|
||||
END_CLASS_MEMBER(::demo::LocalizedFontDialogTabPage)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::LocalizedFontDialogTabPageConstructor)
|
||||
CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::LocalizedFontDialogTabPageConstructor>(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_demo_LocalizedFontDialogTabPage_Initialize, { L"__vwsn_this_" })
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_0)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_1)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_2)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_3)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_4)
|
||||
CLASS_MEMBER_FIELD(checkEffect)
|
||||
CLASS_MEMBER_FIELD(dialog)
|
||||
CLASS_MEMBER_FIELD(label)
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
END_CLASS_MEMBER(::demo::LocalizedFontDialogTabPageConstructor)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::LocalizedMessageDialogTabPage)
|
||||
CLASS_MEMBER_BASE(::vl::presentation::controls::GuiTabPage)
|
||||
CLASS_MEMBER_BASE(::demo::LocalizedMessageDialogTabPageConstructor)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::demo::LocalizedMessageDialogTabPage*(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_instance_ctor_, NO_PARAMETER)
|
||||
CLASS_MEMBER_FIELD(defaultButtonTexts)
|
||||
CLASS_MEMBER_FIELD(defaultButtonValues)
|
||||
CLASS_MEMBER_FIELD(iconTexts)
|
||||
CLASS_MEMBER_FIELD(iconValues)
|
||||
CLASS_MEMBER_FIELD(inputTexts)
|
||||
CLASS_MEMBER_FIELD(inputValues)
|
||||
CLASS_MEMBER_FIELD(outputTexts)
|
||||
CLASS_MEMBER_FIELD(outputValues)
|
||||
END_CLASS_MEMBER(::demo::LocalizedMessageDialogTabPage)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::LocalizedMessageDialogTabPageConstructor)
|
||||
CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::LocalizedMessageDialogTabPageConstructor>(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_demo_LocalizedMessageDialogTabPage_Initialize, { L"__vwsn_this_" })
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_0)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_1)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_10)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_11)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_12)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_13)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_14)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_15)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_16)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_17)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_18)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_19)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_2)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_20)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_21)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_22)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_23)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_24)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_25)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_26)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_27)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_28)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_3)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_4)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_5)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_6)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_7)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_8)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_9)
|
||||
CLASS_MEMBER_FIELD(comboDefaultButton)
|
||||
CLASS_MEMBER_FIELD(comboIcon)
|
||||
CLASS_MEMBER_FIELD(comboInput)
|
||||
CLASS_MEMBER_FIELD(dialog)
|
||||
CLASS_MEMBER_FIELD(lblOutput)
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
CLASS_MEMBER_FIELD(txtText)
|
||||
CLASS_MEMBER_FIELD(txtTitle)
|
||||
END_CLASS_MEMBER(::demo::LocalizedMessageDialogTabPageConstructor)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::LocalizedStringsTabPage)
|
||||
CLASS_MEMBER_BASE(::vl::presentation::controls::GuiTabPage)
|
||||
CLASS_MEMBER_BASE(::demo::LocalizedStringsTabPageConstructor)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::demo::LocalizedStringsTabPage*(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetLocaleIndex, { L"locale" })
|
||||
CLASS_MEMBER_METHOD(GetStrings, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(SetStrings, { L"__vwsn_value_" })
|
||||
CLASS_MEMBER_EVENT(StringsChanged)
|
||||
@@ -1099,7 +1333,6 @@ namespace vl
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_19)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_2)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_20)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_21)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_3)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_4)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_5)
|
||||
@@ -1107,8 +1340,6 @@ namespace vl
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_7)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_8)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_9)
|
||||
CLASS_MEMBER_FIELD(comboLocales)
|
||||
CLASS_MEMBER_FIELD(listLocales)
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
END_CLASS_MEMBER(::demo::LocalizedStringsTabPageConstructor)
|
||||
|
||||
@@ -1159,6 +1390,7 @@ namespace vl
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_39)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_4)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_40)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_41)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_5)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_6)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_7)
|
||||
@@ -1889,6 +2121,18 @@ namespace vl
|
||||
ADD_TYPE_INFO(::demo::IStringResourceStrings)
|
||||
ADD_TYPE_INFO(::demo::ListViewTabPage)
|
||||
ADD_TYPE_INFO(::demo::ListViewTabPageConstructor)
|
||||
ADD_TYPE_INFO(::demo::LocaleSelector)
|
||||
ADD_TYPE_INFO(::demo::LocaleSelectorConstructor)
|
||||
ADD_TYPE_INFO(::demo::LocalizedColorDialogTabPage)
|
||||
ADD_TYPE_INFO(::demo::LocalizedColorDialogTabPageConstructor)
|
||||
ADD_TYPE_INFO(::demo::LocalizedDialogsTabPage)
|
||||
ADD_TYPE_INFO(::demo::LocalizedDialogsTabPageConstructor)
|
||||
ADD_TYPE_INFO(::demo::LocalizedFileDialogTabPage)
|
||||
ADD_TYPE_INFO(::demo::LocalizedFileDialogTabPageConstructor)
|
||||
ADD_TYPE_INFO(::demo::LocalizedFontDialogTabPage)
|
||||
ADD_TYPE_INFO(::demo::LocalizedFontDialogTabPageConstructor)
|
||||
ADD_TYPE_INFO(::demo::LocalizedMessageDialogTabPage)
|
||||
ADD_TYPE_INFO(::demo::LocalizedMessageDialogTabPageConstructor)
|
||||
ADD_TYPE_INFO(::demo::LocalizedStringsTabPage)
|
||||
ADD_TYPE_INFO(::demo::LocalizedStringsTabPageConstructor)
|
||||
ADD_TYPE_INFO(::demo::MainWindow)
|
||||
|
||||
@@ -81,6 +81,18 @@ namespace vl
|
||||
DECL_TYPE_INFO(::demo::IStringResourceStrings)
|
||||
DECL_TYPE_INFO(::demo::ListViewTabPage)
|
||||
DECL_TYPE_INFO(::demo::ListViewTabPageConstructor)
|
||||
DECL_TYPE_INFO(::demo::LocaleSelector)
|
||||
DECL_TYPE_INFO(::demo::LocaleSelectorConstructor)
|
||||
DECL_TYPE_INFO(::demo::LocalizedColorDialogTabPage)
|
||||
DECL_TYPE_INFO(::demo::LocalizedColorDialogTabPageConstructor)
|
||||
DECL_TYPE_INFO(::demo::LocalizedDialogsTabPage)
|
||||
DECL_TYPE_INFO(::demo::LocalizedDialogsTabPageConstructor)
|
||||
DECL_TYPE_INFO(::demo::LocalizedFileDialogTabPage)
|
||||
DECL_TYPE_INFO(::demo::LocalizedFileDialogTabPageConstructor)
|
||||
DECL_TYPE_INFO(::demo::LocalizedFontDialogTabPage)
|
||||
DECL_TYPE_INFO(::demo::LocalizedFontDialogTabPageConstructor)
|
||||
DECL_TYPE_INFO(::demo::LocalizedMessageDialogTabPage)
|
||||
DECL_TYPE_INFO(::demo::LocalizedMessageDialogTabPageConstructor)
|
||||
DECL_TYPE_INFO(::demo::LocalizedStringsTabPage)
|
||||
DECL_TYPE_INFO(::demo::LocalizedStringsTabPageConstructor)
|
||||
DECL_TYPE_INFO(::demo::MainWindow)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user