Update release

This commit is contained in:
vczh
2023-04-23 00:30:01 -07:00
parent d6e329c95b
commit b43bf9c96d
21 changed files with 5833 additions and 2773 deletions
+875 -739
View File
File diff suppressed because it is too large Load Diff
+187 -144
View File
File diff suppressed because it is too large Load Diff
+4
View File
@@ -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)
+4
View File
@@ -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);
+2 -1
View File
@@ -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)
+18 -12
View File
@@ -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
View File
@@ -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
***********************************************************************/
+18 -20
View File
@@ -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>
@@ -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>
@@ -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>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -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.