Update Release

This commit is contained in:
vczh
2024-09-29 00:14:53 -07:00
parent 19c3265deb
commit 34ed13b84a
20 changed files with 5859 additions and 5066 deletions
+3 -2
View File
@@ -219,7 +219,7 @@ Helper Functions
if (desc.imageId) if (desc.imageId)
{ {
vint index = trace.imageCreations->Keys().IndexOf(desc.imageId.Value()); vint index = trace.imageCreations->Keys().IndexOf(desc.imageId.Value());
if (index!= 1) if (index != -1)
{ {
auto binary = trace.imageCreations->Values()[index].imageData; auto binary = trace.imageCreations->Values()[index].imageData;
binary->SeekFromBegin(0); binary->SeekFromBegin(0);
@@ -1563,7 +1563,8 @@ UnitTestSnapshotFileNode
WString GetName() override WString GetName() override
{ {
return file.GetFilePath().GetName(); auto name = file.GetFilePath().GetName();
return name.Left(name.Length() - 5);
} }
LazyList<Ptr<IUnitTestSnapshotFileNode>> GetChildren() override LazyList<Ptr<IUnitTestSnapshotFileNode>> GetChildren() override
+30 -4
View File
@@ -186,8 +186,21 @@ void GacUIUnitTest_Start(const WString& appName, Nullable<UnitTestScreenConfig>
auto textLog2 = JsonToString(jsonLog2, formatting); auto textLog2 = JsonToString(jsonLog2, formatting);
CHECK_ERROR(textLog == textLog2, ERROR_MESSAGE_PREFIX L"Serialization and deserialization doesn't match."); CHECK_ERROR(textLog == textLog2, ERROR_MESSAGE_PREFIX L"Serialization and deserialization doesn't match.");
} }
bool succeeded = snapshotFile.WriteAllText(textLog, false, stream::BomEncoder::Utf8);
CHECK_ERROR(succeeded, ERROR_MESSAGE_PREFIX L"Failed to write the snapshot file."); bool skipWriting = false;
if (snapshotFile.Exists())
{
auto previousLog = snapshotFile.ReadAllTextByBom();
if (previousLog == textLog)
{
skipWriting = true;
}
}
if (!skipWriting)
{
bool succeeded = snapshotFile.WriteAllText(textLog, true, stream::BomEncoder::Utf8);
CHECK_ERROR(succeeded, ERROR_MESSAGE_PREFIX L"Failed to write the snapshot file.");
}
} }
#undef ERROR_MESSAGE_PREFIX #undef ERROR_MESSAGE_PREFIX
} }
@@ -209,8 +222,21 @@ void GacUIUnitTest_Start_WithResourceAsText(const WString& appName, Nullable<Uni
WString::Unmanaged(L"[x86].txt") WString::Unmanaged(L"[x86].txt")
#endif #endif
); );
bool succeeded = snapshotFile.WriteAllText(workflow, false, stream::BomEncoder::Utf8);
CHECK_ERROR(succeeded, ERROR_MESSAGE_PREFIX L"Failed to write the snapshot file."); bool skipWriting = false;
if (snapshotFile.Exists())
{
auto previousLog = snapshotFile.ReadAllTextByBom();
if (previousLog == workflow)
{
skipWriting = true;
}
}
if (!skipWriting)
{
bool succeeded = snapshotFile.WriteAllText(workflow, true, stream::BomEncoder::Utf8);
CHECK_ERROR(succeeded, ERROR_MESSAGE_PREFIX L"Failed to write the snapshot file.");
}
} }
previousMainProxy(protocol, context); previousMainProxy(protocol, context);
}); });
+72 -48
View File
@@ -329,7 +329,7 @@ Keys
} }
/*********************************************************************** /***********************************************************************
Mouse Mouse Move Events
***********************************************************************/ ***********************************************************************/
void MouseMove(NativePoint position) void MouseMove(NativePoint position)
@@ -348,52 +348,73 @@ Mouse
} }
/*********************************************************************** /***********************************************************************
Mouse (Left) Mouse Wheel Events
***********************************************************************/ ***********************************************************************/
void _LDown(Nullable<NativePoint> position = {}) /***********************************************************************
{ Mouse Click Events
#define ERROR_MESSAGE_PREFIX CLASS_PREFIX L"_LDown(...)#" ***********************************************************************/
if (position) MouseMove(position.Value());
CHECK_ERROR(!leftPressing, ERROR_MESSAGE_PREFIX L"The button should not be being pressed.");
leftPressing = true;
UseEvents().OnIOButtonDown({ remoteprotocol::IOMouseButton::Left,MakeMouseInfo() });
#undef ERROR_MESSAGE_PREFIX
}
void _LUp(Nullable<NativePoint> position = {}) #define DEFINE_MOUSE_ACTIONS(PREFIX, LOWER, UPPER)\
{ void _ ## PREFIX ## Down(Nullable<NativePoint> position = {})\
#define ERROR_MESSAGE_PREFIX CLASS_PREFIX L"_LUp(...)#" {\
if (position) MouseMove(position.Value()); if (position) MouseMove(position.Value());\
CHECK_ERROR(leftPressing, ERROR_MESSAGE_PREFIX L"The button should be being pressed."); CHECK_ERROR(!LOWER ## Pressing, CLASS_PREFIX L"_" L ## #PREFIX L"Down(...)#" L"The button should not be being pressed.");\
leftPressing = false; LOWER ## Pressing = true;\
UseEvents().OnIOButtonUp({ remoteprotocol::IOMouseButton::Left,MakeMouseInfo() }); UseEvents().OnIOButtonDown({ remoteprotocol::IOMouseButton::UPPER,MakeMouseInfo() });\
#undef ERROR_MESSAGE_PREFIX }\
} void _ ## PREFIX ## Up(Nullable<NativePoint> position = {})\
{\
if (position) MouseMove(position.Value());\
CHECK_ERROR(LOWER ## Pressing, CLASS_PREFIX L"_" L ## #PREFIX L"Up(...)#" L"The button should be being pressed.");\
LOWER ## Pressing = false;\
UseEvents().OnIOButtonUp({ remoteprotocol::IOMouseButton::UPPER,MakeMouseInfo() });\
}\
void _ ## PREFIX ## DBClick(Nullable<NativePoint> position = {})\
{\
if (position) MouseMove(position.Value());\
CHECK_ERROR(!LOWER ## Pressing, CLASS_PREFIX L"_" L ## #PREFIX L"DBClick(...)#" L"The button should not be being pressed.");\
LOWER ## Pressing = true;\
UseEvents().OnIOButtonDoubleClick({ remoteprotocol::IOMouseButton::UPPER,MakeMouseInfo() });\
}\
void PREFIX ## Click(Nullable<NativePoint> position = {})\
{\
_ ## PREFIX ## Down(position);\
_ ## PREFIX ## Up(position);\
}\
void PREFIX ## Click(Nullable<NativePoint> position, bool ctrl, bool shift, bool alt)\
{\
if (ctrl) _KeyDown(VKEY::KEY_CONTROL);\
if (shift) _KeyDown(VKEY::KEY_SHIFT);\
if (alt) _KeyDown(VKEY::KEY_MENU);\
PREFIX ## Click(position);\
if (alt) _KeyUp(VKEY::KEY_MENU);\
if (shift) _KeyUp(VKEY::KEY_SHIFT);\
if (ctrl) _KeyUp(VKEY::KEY_CONTROL);\
}\
void PREFIX ## DBClick(Nullable<NativePoint> position = {})\
{\
_ ## PREFIX ## Down(position);\
_ ## PREFIX ## Up(position);\
_ ## PREFIX ## DBClick(position);\
_ ## PREFIX ## Up(position);\
}\
void PREFIX ## DBClick(Nullable<NativePoint> position, bool ctrl, bool shift, bool alt)\
{\
if (ctrl) _KeyDown(VKEY::KEY_CONTROL);\
if (shift) _KeyDown(VKEY::KEY_SHIFT);\
if (alt) _KeyDown(VKEY::KEY_MENU);\
PREFIX ## DBClick(position);\
if (alt) _KeyUp(VKEY::KEY_MENU);\
if (shift) _KeyUp(VKEY::KEY_SHIFT);\
if (ctrl) _KeyUp(VKEY::KEY_CONTROL);\
}\
void _LDBClick(Nullable<NativePoint> position = {}) DEFINE_MOUSE_ACTIONS(L, left, Left);
{ DEFINE_MOUSE_ACTIONS(M, middle, Middle);
#define ERROR_MESSAGE_PREFIX CLASS_PREFIX L"_LDBClick(...)#" DEFINE_MOUSE_ACTIONS(R, right, Right);
if (position) MouseMove(position.Value());
CHECK_ERROR(!leftPressing, ERROR_MESSAGE_PREFIX L"The button should not be being pressed.");
leftPressing = true;
UseEvents().OnIOButtonDoubleClick({ remoteprotocol::IOMouseButton::Left,MakeMouseInfo() });
#undef ERROR_MESSAGE_PREFIX
}
void LClick(Nullable<NativePoint> position = {}) #undef DEFINE_MOUSE_ACTIONS
{
_LDown(position);
_LUp(position);
}
void LDBClick(Nullable<NativePoint> position = {})
{
_LDown(position);
_LUp(position);
_LDBClick(position);
_LUp(position);
}
#undef CLASS_PREFIX #undef CLASS_PREFIX
}; };
@@ -808,7 +829,7 @@ IGuiRemoteProtocolMessages (Elements - SolidLabel)
remoteprotocol::ElementMeasuring_FontHeight measuring; remoteprotocol::ElementMeasuring_FontHeight measuring;
measuring.fontFamily = arguments.font.Value().fontFamily; measuring.fontFamily = arguments.font.Value().fontFamily;
measuring.fontSize = arguments.font.Value().size; measuring.fontSize = arguments.font.Value().size;
measuring.height = measuring.fontSize; measuring.height = measuring.fontSize + 4;
measuringForNextRendering.fontHeights->Add(measuring); measuringForNextRendering.fontHeights->Add(measuring);
} }
break; break;
@@ -860,7 +881,7 @@ IGuiRemoteProtocolMessages (Elements - SolidLabel)
{ {
// width of the text is 0 // width of the text is 0
// insert a line break when there is no space horizontally // insert a line break when there is no space horizontally
textHeight = size * From(lines) textHeight = 4 + size * From(lines)
.Select([columns = width / size](vint length) .Select([columns = width / size](vint length)
{ {
if (columns == 0) if (columns == 0)
@@ -878,7 +899,7 @@ IGuiRemoteProtocolMessages (Elements - SolidLabel)
{ {
// width of the text is width of the longest line // width of the text is width of the longest line
textWidth = size * From(lines).Max(); textWidth = size * From(lines).Max();
textHeight = size * lines.Count(); textHeight = 4 + size * lines.Count();
} }
if (!measuringForNextRendering.minSizes) if (!measuringForNextRendering.minSizes)
@@ -1316,8 +1337,8 @@ UnitTestRemoteProtocol
transformed transformed
}); });
candidateRenderingResult = {}; candidateRenderingResult = {};
return true;
} }
return true;
} }
return false; return false;
} }
@@ -1402,6 +1423,7 @@ UnitTestRemoteProtocol
const UnitTestFrameworkConfig& frameworkConfig; const UnitTestFrameworkConfig& frameworkConfig;
WString appName; WString appName;
collections::List<EventPair> processRemoteEvents; collections::List<EventPair> processRemoteEvents;
vint lastFrameIndex = -1;
vint nextEventIndex = 0; vint nextEventIndex = 0;
bool stopped = false; bool stopped = false;
@@ -1457,12 +1479,14 @@ IGuiRemoteProtocol
{ {
if (LogRenderingResult()) if (LogRenderingResult())
{ {
vl::unittest::UnitTest::PrintMessage(L"Execute idle frame[" + itow(nextEventIndex) + L"]", vl::unittest::UnitTest::MessageKind::Info);
auto [name, func] = processRemoteEvents[nextEventIndex]; auto [name, func] = processRemoteEvents[nextEventIndex];
vl::unittest::UnitTest::PrintMessage(L"Execute idle frame[" + (name ? name.Value() : itow(nextEventIndex)) + L"]", vl::unittest::UnitTest::MessageKind::Info);
CHECK_ERROR(lastFrameIndex != loggedTrace.frames->Count() - 1, ERROR_MESSAGE_PREFIX L"No rendering occured after the last idle frame.");
lastFrameIndex = loggedTrace.frames->Count() - 1;
if (name) if (name)
{ {
auto&& lastFrame = (*loggedTrace.frames.Obj())[loggedTrace.frames->Count() - 1]; auto&& lastFrame = (*loggedTrace.frames.Obj())[loggedTrace.frames->Count() - 1];
CHECK_ERROR(!lastFrame.frameName, ERROR_MESSAGE_PREFIX L"The last frame has already been assigned a name.");
lastFrame.frameName = name; lastFrame.frameName = name;
} }
func(); func();
+1077 -852
View File
File diff suppressed because it is too large Load Diff
+584 -427
View File
File diff suppressed because it is too large Load Diff
+2
View File
@@ -9038,9 +9038,11 @@ GuiPredefinedInstanceLoadersPlugin
ADD_VIRTUAL_CONTROL (MenuSplitter, GuiControl, MenuSplitter ); ADD_VIRTUAL_CONTROL (MenuSplitter, GuiControl, MenuSplitter );
ADD_VIRTUAL_CONTROL (MenuBarButton, GuiToolstripButton, MenuBarButton ); ADD_VIRTUAL_CONTROL (MenuBarButton, GuiToolstripButton, MenuBarButton );
ADD_VIRTUAL_CONTROL (MenuItemButton, GuiToolstripButton, MenuItemButton ); ADD_VIRTUAL_CONTROL (MenuItemButton, GuiToolstripButton, MenuItemButton );
ADD_VIRTUAL_CONTROL (ToolstripToolBarInMenu, GuiToolstripToolBar, ToolstripToolBarInMenu );
ADD_VIRTUAL_CONTROL (ToolstripDropdownButton, GuiToolstripButton, ToolstripDropdownButton ); ADD_VIRTUAL_CONTROL (ToolstripDropdownButton, GuiToolstripButton, ToolstripDropdownButton );
ADD_VIRTUAL_CONTROL (ToolstripSplitButton, GuiToolstripButton, ToolstripSplitButton ); ADD_VIRTUAL_CONTROL (ToolstripSplitButton, GuiToolstripButton, ToolstripSplitButton );
ADD_VIRTUAL_CONTROL (ToolstripSplitter, GuiControl, ToolstripSplitter ); ADD_VIRTUAL_CONTROL (ToolstripSplitter, GuiControl, ToolstripSplitter );
ADD_VIRTUAL_CONTROL (ToolstripSplitterInMenu, GuiControl, ToolstripSplitterInMenu );
ADD_VIRTUAL_CONTROL (RibbonSmallButton, GuiToolstripButton, RibbonSmallButton ); ADD_VIRTUAL_CONTROL (RibbonSmallButton, GuiToolstripButton, RibbonSmallButton );
ADD_VIRTUAL_CONTROL (RibbonSmallDropdownButton, GuiToolstripButton, RibbonSmallDropdownButton ); ADD_VIRTUAL_CONTROL (RibbonSmallDropdownButton, GuiToolstripButton, RibbonSmallDropdownButton );
ADD_VIRTUAL_CONTROL (RibbonSmallSplitButton, GuiToolstripButton, RibbonSmallSplitButton ); ADD_VIRTUAL_CONTROL (RibbonSmallSplitButton, GuiToolstripButton, RibbonSmallSplitButton );
+53 -26
View File
@@ -1830,12 +1830,26 @@ Type Declaration (Extra)
CLASS_MEMBER_CONSTRUCTOR(GuiSelectableButton::MutexGroupController*(), NO_PARAMETER) CLASS_MEMBER_CONSTRUCTOR(GuiSelectableButton::MutexGroupController*(), NO_PARAMETER)
END_CLASS_MEMBER(GuiSelectableButton::MutexGroupController) END_CLASS_MEMBER(GuiSelectableButton::MutexGroupController)
BEGIN_INTERFACE_MEMBER(GuiListControl::IItemProviderCallback) BEGIN_INTERFACE_MEMBER(list::IItemProviderCallback)
CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_BASE(IDescriptable)
CLASS_MEMBER_METHOD(OnAttached, {L"provider"}) CLASS_MEMBER_METHOD(OnAttached, {L"provider"})
CLASS_MEMBER_METHOD(OnItemModified, {L"start" _ L"count" _ L"newCount" _ L"itemReferenceUpdated"}) CLASS_MEMBER_METHOD(OnItemModified, {L"start" _ L"count" _ L"newCount" _ L"itemReferenceUpdated"})
END_INTERFACE_MEMBER(GuiListControl::IItemProviderCallback) END_INTERFACE_MEMBER(list::IItemProviderCallback)
BEGIN_INTERFACE_MEMBER(list::IItemProvider)
CLASS_MEMBER_BASE(IDescriptable)
CLASS_MEMBER_METHOD(AttachCallback, {L"value"})
CLASS_MEMBER_METHOD(DetachCallback, {L"value"})
CLASS_MEMBER_METHOD(PushEditing, NO_PARAMETER)
CLASS_MEMBER_METHOD(PopEditing, NO_PARAMETER)
CLASS_MEMBER_METHOD(IsEditing, NO_PARAMETER)
CLASS_MEMBER_METHOD(Count, NO_PARAMETER)
CLASS_MEMBER_METHOD(GetTextValue, { L"itemIndex" })
CLASS_MEMBER_METHOD(GetBindingValue, { L"itemIndex" })
CLASS_MEMBER_METHOD(RequestView, {L"identifier"})
END_INTERFACE_MEMBER(list::IItemProvider)
BEGIN_INTERFACE_MEMBER_NOPROXY(GuiListControl::IItemArrangerCallback) BEGIN_INTERFACE_MEMBER_NOPROXY(GuiListControl::IItemArrangerCallback)
CLASS_MEMBER_BASE(IDescriptable) CLASS_MEMBER_BASE(IDescriptable)
@@ -1855,22 +1869,8 @@ Type Declaration (Extra)
ENUM_CLASS_ITEM(NotMoved) ENUM_CLASS_ITEM(NotMoved)
END_ENUM_ITEM(GuiListControl::EnsureItemVisibleResult) END_ENUM_ITEM(GuiListControl::EnsureItemVisibleResult)
BEGIN_INTERFACE_MEMBER(GuiListControl::IItemProvider)
CLASS_MEMBER_BASE(IDescriptable)
CLASS_MEMBER_METHOD(AttachCallback, {L"value"})
CLASS_MEMBER_METHOD(DetachCallback, {L"value"})
CLASS_MEMBER_METHOD(PushEditing, NO_PARAMETER)
CLASS_MEMBER_METHOD(PopEditing, NO_PARAMETER)
CLASS_MEMBER_METHOD(IsEditing, NO_PARAMETER)
CLASS_MEMBER_METHOD(Count, NO_PARAMETER)
CLASS_MEMBER_METHOD(GetTextValue, { L"itemIndex" })
CLASS_MEMBER_METHOD(GetBindingValue, { L"itemIndex" })
CLASS_MEMBER_METHOD(RequestView, {L"identifier"})
END_INTERFACE_MEMBER(GuiListControl::IItemProvider)
BEGIN_INTERFACE_MEMBER(GuiListControl::IItemArranger) BEGIN_INTERFACE_MEMBER(GuiListControl::IItemArranger)
CLASS_MEMBER_BASE(GuiListControl::IItemProviderCallback) CLASS_MEMBER_BASE(list::IItemProviderCallback)
CLASS_MEMBER_PROPERTY_FAST(Callback) CLASS_MEMBER_PROPERTY_FAST(Callback)
CLASS_MEMBER_PROPERTY_READONLY_FAST(TotalSize) CLASS_MEMBER_PROPERTY_READONLY_FAST(TotalSize)
@@ -1887,7 +1887,7 @@ Type Declaration (Extra)
END_INTERFACE_MEMBER(GuiListControl::IItemArranger) END_INTERFACE_MEMBER(GuiListControl::IItemArranger)
BEGIN_CLASS_MEMBER(ItemProviderBase) BEGIN_CLASS_MEMBER(ItemProviderBase)
CLASS_MEMBER_BASE(GuiListControl::IItemProvider) CLASS_MEMBER_BASE(list::IItemProvider)
END_CLASS_MEMBER(ItemProviderBase) END_CLASS_MEMBER(ItemProviderBase)
BEGIN_CLASS_MEMBER(RangedItemArrangerBase) BEGIN_CLASS_MEMBER(RangedItemArrangerBase)
@@ -1931,7 +1931,7 @@ Type Declaration (Extra)
END_CLASS_MEMBER(TextItem) END_CLASS_MEMBER(TextItem)
BEGIN_CLASS_MEMBER(TextItemProvider) BEGIN_CLASS_MEMBER(TextItemProvider)
CLASS_MEMBER_BASE(GuiListControl::IItemProvider) CLASS_MEMBER_BASE(list::IItemProvider)
CLASS_MEMBER_BASE(ITextItemView) CLASS_MEMBER_BASE(ITextItemView)
END_CLASS_MEMBER(TextItemProvider) END_CLASS_MEMBER(TextItemProvider)
@@ -2001,7 +2001,7 @@ Type Declaration (Extra)
END_CLASS_MEMBER(ListViewColumn) END_CLASS_MEMBER(ListViewColumn)
BEGIN_CLASS_MEMBER(ListViewItemProvider) BEGIN_CLASS_MEMBER(ListViewItemProvider)
CLASS_MEMBER_BASE(GuiListControl::IItemProvider) CLASS_MEMBER_BASE(list::IItemProvider)
CLASS_MEMBER_BASE(IListViewItemView) CLASS_MEMBER_BASE(IListViewItemView)
CLASS_MEMBER_BASE(ListViewColumnItemArranger::IColumnItemView) CLASS_MEMBER_BASE(ListViewColumnItemArranger::IColumnItemView)
END_CLASS_MEMBER(ListViewItemProvider) END_CLASS_MEMBER(ListViewItemProvider)
@@ -2021,6 +2021,7 @@ Type Declaration (Extra)
CLASS_MEMBER_METHOD(GetParentMenuService, NO_PARAMETER) CLASS_MEMBER_METHOD(GetParentMenuService, NO_PARAMETER)
CLASS_MEMBER_METHOD(GetPreferredDirection, NO_PARAMETER) CLASS_MEMBER_METHOD(GetPreferredDirection, NO_PARAMETER)
CLASS_MEMBER_METHOD(GetHostThemeName, NO_PARAMETER)
CLASS_MEMBER_METHOD(IsActiveState, NO_PARAMETER) CLASS_MEMBER_METHOD(IsActiveState, NO_PARAMETER)
CLASS_MEMBER_METHOD(IsSubMenuActivatedByMouseDown, NO_PARAMETER) CLASS_MEMBER_METHOD(IsSubMenuActivatedByMouseDown, NO_PARAMETER)
CLASS_MEMBER_METHOD(MenuItemExecuted, NO_PARAMETER) CLASS_MEMBER_METHOD(MenuItemExecuted, NO_PARAMETER)
@@ -2360,6 +2361,26 @@ Type Declaration (Extra)
CLASS_MEMBER_BASE(IDataProcessorCallback) CLASS_MEMBER_BASE(IDataProcessorCallback)
END_CLASS_MEMBER(DataProvider) END_CLASS_MEMBER(DataProvider)
BEGIN_CLASS_MEMBER(GuiBindableTextList::ItemSource)
CLASS_MEMBER_BASE(ItemProviderBase)
CLASS_MEMBER_BASE(ITextItemView)
END_CLASS_MEMBER(GuiBindableTextList::ItemSource)
BEGIN_CLASS_MEMBER(GuiBindableListView::ItemSource)
CLASS_MEMBER_BASE(ItemProviderBase)
CLASS_MEMBER_BASE(IListViewItemView)
CLASS_MEMBER_BASE(ListViewColumnItemArranger::IColumnItemView)
END_CLASS_MEMBER(GuiBindableListView::ItemSource)
BEGIN_CLASS_MEMBER(GuiBindableTreeView::ItemSourceNode)
CLASS_MEMBER_BASE(INodeProvider)
END_CLASS_MEMBER(GuiBindableTreeView::ItemSourceNode)
BEGIN_CLASS_MEMBER(GuiBindableTreeView::ItemSource)
CLASS_MEMBER_BASE(NodeRootProviderBase)
CLASS_MEMBER_BASE(ITreeViewItemView)
END_CLASS_MEMBER(GuiBindableTreeView::ItemSource)
/*********************************************************************** /***********************************************************************
Type Declaration (Class) Type Declaration (Class)
***********************************************************************/ ***********************************************************************/
@@ -2582,7 +2603,7 @@ Type Declaration (Class)
BEGIN_CLASS_MEMBER(GuiListControl) BEGIN_CLASS_MEMBER(GuiListControl)
CLASS_MEMBER_BASE(GuiScrollView) CLASS_MEMBER_BASE(GuiScrollView)
CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_3(GuiListControl, GuiListControl::IItemProvider*, itemProvider, bool, acceptFocus) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_3(GuiListControl, list::IItemProvider*, itemProvider, bool, acceptFocus)
CLASS_MEMBER_GUIEVENT(AdoptedSizeInvalidated) CLASS_MEMBER_GUIEVENT(AdoptedSizeInvalidated)
CLASS_MEMBER_GUIEVENT(ItemLeftButtonDown) CLASS_MEMBER_GUIEVENT(ItemLeftButtonDown)
@@ -2610,7 +2631,7 @@ Type Declaration (Class)
BEGIN_CLASS_MEMBER(GuiSelectableListControl) BEGIN_CLASS_MEMBER(GuiSelectableListControl)
CLASS_MEMBER_BASE(GuiListControl) CLASS_MEMBER_BASE(GuiListControl)
CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiSelectableListControl, GuiListControl::IItemProvider*, itemProvider) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiSelectableListControl, list::IItemProvider*, itemProvider)
CLASS_MEMBER_GUIEVENT(SelectionChanged) CLASS_MEMBER_GUIEVENT(SelectionChanged)
@@ -2628,7 +2649,7 @@ Type Declaration (Class)
BEGIN_CLASS_MEMBER(GuiVirtualTextList) BEGIN_CLASS_MEMBER(GuiVirtualTextList)
CLASS_MEMBER_BASE(GuiSelectableListControl) CLASS_MEMBER_BASE(GuiSelectableListControl)
CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2(GuiVirtualTextList, GuiListControl::IItemProvider*, L"itemProvider") CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2(GuiVirtualTextList, list::IItemProvider*, L"itemProvider")
CLASS_MEMBER_GUIEVENT(ItemChecked) CLASS_MEMBER_GUIEVENT(ItemChecked)
CLASS_MEMBER_PROPERTY_FAST(View) CLASS_MEMBER_PROPERTY_FAST(View)
@@ -2651,14 +2672,14 @@ Type Declaration (Class)
BEGIN_CLASS_MEMBER(GuiListViewBase) BEGIN_CLASS_MEMBER(GuiListViewBase)
CLASS_MEMBER_BASE(GuiSelectableListControl) CLASS_MEMBER_BASE(GuiSelectableListControl)
CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2(GuiListViewBase, GuiListControl::IItemProvider*, itemProvider) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2(GuiListViewBase, list::IItemProvider*, itemProvider)
CLASS_MEMBER_GUIEVENT(ColumnClicked) CLASS_MEMBER_GUIEVENT(ColumnClicked)
END_CLASS_MEMBER(GuiListViewBase) END_CLASS_MEMBER(GuiListViewBase)
BEGIN_CLASS_MEMBER(GuiVirtualListView) BEGIN_CLASS_MEMBER(GuiVirtualListView)
CLASS_MEMBER_BASE(GuiListViewBase) CLASS_MEMBER_BASE(GuiListViewBase)
CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiVirtualListView, GuiListControl::IItemProvider*, itemProvider) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiVirtualListView, list::IItemProvider*, itemProvider)
CLASS_MEMBER_PROPERTY_FAST(View) CLASS_MEMBER_PROPERTY_FAST(View)
END_CLASS_MEMBER(GuiVirtualListView) END_CLASS_MEMBER(GuiVirtualListView)
@@ -3030,7 +3051,7 @@ Type Declaration (Class)
BEGIN_CLASS_MEMBER(GuiVirtualDataGrid) BEGIN_CLASS_MEMBER(GuiVirtualDataGrid)
CLASS_MEMBER_BASE(GuiVirtualListView) CLASS_MEMBER_BASE(GuiVirtualListView)
CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiVirtualDataGrid, GuiListControl::IItemProvider*, itemProvider) CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_INHERITANCE_2(GuiVirtualDataGrid, list::IItemProvider*, itemProvider)
CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(SelectedCell) CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(SelectedCell)
CLASS_MEMBER_PROPERTY_READONLY_FAST(ItemProvider) CLASS_MEMBER_PROPERTY_READONLY_FAST(ItemProvider)
@@ -3875,6 +3896,12 @@ Type Declaration (Class)
CLASS_MEMBER_PROPERTY_FAST(DateLocale) CLASS_MEMBER_PROPERTY_FAST(DateLocale)
CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Date) CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Date)
CLASS_MEMBER_PROPERTY_FAST(Font) CLASS_MEMBER_PROPERTY_FAST(Font)
CLASS_MEMBER_PROPERTY_READONLY_FAST(YearCombo)
CLASS_MEMBER_PROPERTY_READONLY_FAST(MonthCombo)
CLASS_MEMBER_PROPERTY_READONLY_FAST(DayRows)
CLASS_MEMBER_PROPERTY_READONLY_FAST(DayColumns)
CLASS_MEMBER_METHOD(GetDayButton, { L"row" _ L"column" })
CLASS_MEMBER_METHOD(GetDateOfDayButton, { L"row" _ L"column" })
END_CLASS_MEMBER(GuiCommonDatePickerLook) END_CLASS_MEMBER(GuiCommonDatePickerLook)
BEGIN_CLASS_MEMBER(GuiCommonScrollViewLook) BEGIN_CLASS_MEMBER(GuiCommonScrollViewLook)
+14 -10
View File
@@ -374,9 +374,9 @@ Type List (Controls)
F(presentation::controls::GuiSaveFileDialog)\ F(presentation::controls::GuiSaveFileDialog)\
F(presentation::controls::GuiSelectableButton::GroupController)\ F(presentation::controls::GuiSelectableButton::GroupController)\
F(presentation::controls::GuiSelectableButton::MutexGroupController)\ F(presentation::controls::GuiSelectableButton::MutexGroupController)\
F(presentation::controls::GuiListControl::IItemProviderCallback)\ F(presentation::controls::list::IItemProviderCallback)\
F(presentation::controls::list::IItemProvider)\
F(presentation::controls::GuiListControl::IItemArrangerCallback)\ F(presentation::controls::GuiListControl::IItemArrangerCallback)\
F(presentation::controls::GuiListControl::IItemProvider)\
F(presentation::controls::GuiListControl::EnsureItemVisibleResult)\ F(presentation::controls::GuiListControl::EnsureItemVisibleResult)\
F(presentation::controls::GuiListControl::IItemArranger)\ F(presentation::controls::GuiListControl::IItemArranger)\
F(presentation::controls::list::ItemProviderBase)\ F(presentation::controls::list::ItemProviderBase)\
@@ -443,6 +443,10 @@ Type List (Controls)
F(presentation::controls::list::DataReverseSorter)\ F(presentation::controls::list::DataReverseSorter)\
F(presentation::controls::list::DataColumn)\ F(presentation::controls::list::DataColumn)\
F(presentation::controls::list::DataProvider)\ F(presentation::controls::list::DataProvider)\
F(presentation::controls::GuiBindableTextList::ItemSource)\
F(presentation::controls::GuiBindableListView::ItemSource)\
F(presentation::controls::GuiBindableTreeView::ItemSourceNode)\
F(presentation::controls::GuiBindableTreeView::ItemSource)\
#define GUIREFLECTIONCONTROLS_CLASS_TYPELIST(F)\ #define GUIREFLECTIONCONTROLS_CLASS_TYPELIST(F)\
F(presentation::controls::GuiControl)\ F(presentation::controls::GuiControl)\
@@ -784,9 +788,9 @@ Interface Proxy (Compositions)
Interface Proxy (Controls) Interface Proxy (Controls)
***********************************************************************/ ***********************************************************************/
BEGIN_INTERFACE_PROXY_NOPARENT_SHAREDPTR(presentation::controls::GuiListControl::IItemProviderCallback) BEGIN_INTERFACE_PROXY_NOPARENT_SHAREDPTR(presentation::controls::list::IItemProviderCallback)
void OnAttached(presentation::controls::GuiListControl::IItemProvider* provider)override void OnAttached(presentation::controls::list::IItemProvider* provider)override
{ {
INVOKE_INTERFACE_PROXY(OnAttached, provider); INVOKE_INTERFACE_PROXY(OnAttached, provider);
} }
@@ -797,14 +801,14 @@ Interface Proxy (Controls)
} }
END_INTERFACE_PROXY(presentation::controls::GuiListControl::IItemProviderCallback) END_INTERFACE_PROXY(presentation::controls::GuiListControl::IItemProviderCallback)
BEGIN_INTERFACE_PROXY_NOPARENT_SHAREDPTR(presentation::controls::GuiListControl::IItemProvider) BEGIN_INTERFACE_PROXY_NOPARENT_SHAREDPTR(presentation::controls::list::IItemProvider)
bool AttachCallback(presentation::controls::GuiListControl::IItemProviderCallback* value)override bool AttachCallback(presentation::controls::list::IItemProviderCallback* value)override
{ {
INVOKEGET_INTERFACE_PROXY(AttachCallback, value); INVOKEGET_INTERFACE_PROXY(AttachCallback, value);
} }
bool DetachCallback(presentation::controls::GuiListControl::IItemProviderCallback* value)override bool DetachCallback(presentation::controls::list::IItemProviderCallback* value)override
{ {
INVOKEGET_INTERFACE_PROXY(DetachCallback, value); INVOKEGET_INTERFACE_PROXY(DetachCallback, value);
} }
@@ -846,7 +850,7 @@ Interface Proxy (Controls)
END_INTERFACE_PROXY(presentation::controls::GuiListControl::IItemProvider) END_INTERFACE_PROXY(presentation::controls::GuiListControl::IItemProvider)
BEGIN_INTERFACE_PROXY_SHAREDPTR(presentation::controls::GuiListControl::IItemArranger, BEGIN_INTERFACE_PROXY_SHAREDPTR(presentation::controls::GuiListControl::IItemArranger,
presentation::controls::GuiListControl::IItemProviderCallback presentation::controls::list::IItemProviderCallback
) )
void AttachListControl(presentation::controls::GuiListControl* value)override void AttachListControl(presentation::controls::GuiListControl* value)override
@@ -1103,7 +1107,7 @@ Interface Proxy (Controls)
BEGIN_INTERFACE_PROXY_NOPARENT_SHAREDPTR(presentation::controls::list::IDataGridContext) BEGIN_INTERFACE_PROXY_NOPARENT_SHAREDPTR(presentation::controls::list::IDataGridContext)
presentation::controls::GuiListControl::IItemProvider* GetItemProvider()override presentation::controls::list::IItemProvider* GetItemProvider()override
{ {
INVOKEGET_INTERFACE_PROXY_NOPARAMS(GetItemProvider); INVOKEGET_INTERFACE_PROXY_NOPARAMS(GetItemProvider);
} }
@@ -1170,7 +1174,7 @@ Interface Proxy (Controls)
BEGIN_INTERFACE_PROXY_NOPARENT_SHAREDPTR(presentation::controls::list::IDataProcessorCallback) BEGIN_INTERFACE_PROXY_NOPARENT_SHAREDPTR(presentation::controls::list::IDataProcessorCallback)
presentation::controls::GuiListControl::IItemProvider* GetItemProvider()override presentation::controls::list::IItemProvider* GetItemProvider()override
{ {
INVOKEGET_INTERFACE_PROXY_NOPARAMS(GetItemProvider); INVOKEGET_INTERFACE_PROXY_NOPARAMS(GetItemProvider);
} }
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
@@ -154,12 +154,16 @@ namespace vl
IMPL_CPP_TYPE_INFO(darkskin::ToolstripButtonTemplateConstructor) IMPL_CPP_TYPE_INFO(darkskin::ToolstripButtonTemplateConstructor)
IMPL_CPP_TYPE_INFO(darkskin::ToolstripDropdownButtonTemplate) IMPL_CPP_TYPE_INFO(darkskin::ToolstripDropdownButtonTemplate)
IMPL_CPP_TYPE_INFO(darkskin::ToolstripDropdownButtonTemplateConstructor) IMPL_CPP_TYPE_INFO(darkskin::ToolstripDropdownButtonTemplateConstructor)
IMPL_CPP_TYPE_INFO(darkskin::ToolstripInMenuTemplate)
IMPL_CPP_TYPE_INFO(darkskin::ToolstripInMenuTemplateConstructor)
IMPL_CPP_TYPE_INFO(darkskin::ToolstripMenuTemplate) IMPL_CPP_TYPE_INFO(darkskin::ToolstripMenuTemplate)
IMPL_CPP_TYPE_INFO(darkskin::ToolstripMenuTemplateConstructor) IMPL_CPP_TYPE_INFO(darkskin::ToolstripMenuTemplateConstructor)
IMPL_CPP_TYPE_INFO(darkskin::ToolstripSplitArrowTemplate) IMPL_CPP_TYPE_INFO(darkskin::ToolstripSplitArrowTemplate)
IMPL_CPP_TYPE_INFO(darkskin::ToolstripSplitArrowTemplateConstructor) IMPL_CPP_TYPE_INFO(darkskin::ToolstripSplitArrowTemplateConstructor)
IMPL_CPP_TYPE_INFO(darkskin::ToolstripSplitButtonTemplate) IMPL_CPP_TYPE_INFO(darkskin::ToolstripSplitButtonTemplate)
IMPL_CPP_TYPE_INFO(darkskin::ToolstripSplitButtonTemplateConstructor) IMPL_CPP_TYPE_INFO(darkskin::ToolstripSplitButtonTemplateConstructor)
IMPL_CPP_TYPE_INFO(darkskin::ToolstripSplitterInMenuTemplate)
IMPL_CPP_TYPE_INFO(darkskin::ToolstripSplitterInMenuTemplateConstructor)
IMPL_CPP_TYPE_INFO(darkskin::ToolstripSplitterTemplate) IMPL_CPP_TYPE_INFO(darkskin::ToolstripSplitterTemplate)
IMPL_CPP_TYPE_INFO(darkskin::ToolstripSplitterTemplateConstructor) IMPL_CPP_TYPE_INFO(darkskin::ToolstripSplitterTemplateConstructor)
IMPL_CPP_TYPE_INFO(darkskin::ToolstripTemplate) IMPL_CPP_TYPE_INFO(darkskin::ToolstripTemplate)
@@ -1365,6 +1369,21 @@ namespace vl
CLASS_MEMBER_FIELD(self) CLASS_MEMBER_FIELD(self)
END_CLASS_MEMBER(::darkskin::ToolstripDropdownButtonTemplateConstructor) END_CLASS_MEMBER(::darkskin::ToolstripDropdownButtonTemplateConstructor)
BEGIN_CLASS_MEMBER(::darkskin::ToolstripInMenuTemplate)
CLASS_MEMBER_BASE(::vl::presentation::templates::GuiControlTemplate)
CLASS_MEMBER_BASE(::darkskin::ToolstripInMenuTemplateConstructor)
CLASS_MEMBER_CONSTRUCTOR(::darkskin::ToolstripInMenuTemplate*(), NO_PARAMETER)
END_CLASS_MEMBER(::darkskin::ToolstripInMenuTemplate)
BEGIN_CLASS_MEMBER(::darkskin::ToolstripInMenuTemplateConstructor)
CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject)
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::darkskin::ToolstripInMenuTemplateConstructor>(), NO_PARAMETER)
CLASS_MEMBER_METHOD(__vwsn_darkskin_ToolstripInMenuTemplate_Initialize, { L"__vwsn_this_" })
CLASS_MEMBER_FIELD(__vwsn_precompile_0)
CLASS_MEMBER_FIELD(__vwsn_precompile_1)
CLASS_MEMBER_FIELD(container)
END_CLASS_MEMBER(::darkskin::ToolstripInMenuTemplateConstructor)
BEGIN_CLASS_MEMBER(::darkskin::ToolstripMenuTemplate) BEGIN_CLASS_MEMBER(::darkskin::ToolstripMenuTemplate)
CLASS_MEMBER_BASE(::vl::presentation::templates::GuiMenuTemplate) CLASS_MEMBER_BASE(::vl::presentation::templates::GuiMenuTemplate)
CLASS_MEMBER_BASE(::darkskin::ToolstripMenuTemplateConstructor) CLASS_MEMBER_BASE(::darkskin::ToolstripMenuTemplateConstructor)
@@ -1423,6 +1442,22 @@ namespace vl
CLASS_MEMBER_FIELD(self) CLASS_MEMBER_FIELD(self)
END_CLASS_MEMBER(::darkskin::ToolstripSplitButtonTemplateConstructor) END_CLASS_MEMBER(::darkskin::ToolstripSplitButtonTemplateConstructor)
BEGIN_CLASS_MEMBER(::darkskin::ToolstripSplitterInMenuTemplate)
CLASS_MEMBER_BASE(::vl::presentation::templates::GuiControlTemplate)
CLASS_MEMBER_BASE(::darkskin::ToolstripSplitterInMenuTemplateConstructor)
CLASS_MEMBER_CONSTRUCTOR(::darkskin::ToolstripSplitterInMenuTemplate*(), NO_PARAMETER)
END_CLASS_MEMBER(::darkskin::ToolstripSplitterInMenuTemplate)
BEGIN_CLASS_MEMBER(::darkskin::ToolstripSplitterInMenuTemplateConstructor)
CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject)
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::darkskin::ToolstripSplitterInMenuTemplateConstructor>(), NO_PARAMETER)
CLASS_MEMBER_METHOD(__vwsn_darkskin_ToolstripSplitterInMenuTemplate_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)
END_CLASS_MEMBER(::darkskin::ToolstripSplitterInMenuTemplateConstructor)
BEGIN_CLASS_MEMBER(::darkskin::ToolstripSplitterTemplate) BEGIN_CLASS_MEMBER(::darkskin::ToolstripSplitterTemplate)
CLASS_MEMBER_BASE(::vl::presentation::templates::GuiControlTemplate) CLASS_MEMBER_BASE(::vl::presentation::templates::GuiControlTemplate)
CLASS_MEMBER_BASE(::darkskin::ToolstripSplitterTemplateConstructor) CLASS_MEMBER_BASE(::darkskin::ToolstripSplitterTemplateConstructor)
@@ -1693,12 +1728,16 @@ namespace vl
ADD_TYPE_INFO(::darkskin::ToolstripButtonTemplateConstructor) ADD_TYPE_INFO(::darkskin::ToolstripButtonTemplateConstructor)
ADD_TYPE_INFO(::darkskin::ToolstripDropdownButtonTemplate) ADD_TYPE_INFO(::darkskin::ToolstripDropdownButtonTemplate)
ADD_TYPE_INFO(::darkskin::ToolstripDropdownButtonTemplateConstructor) ADD_TYPE_INFO(::darkskin::ToolstripDropdownButtonTemplateConstructor)
ADD_TYPE_INFO(::darkskin::ToolstripInMenuTemplate)
ADD_TYPE_INFO(::darkskin::ToolstripInMenuTemplateConstructor)
ADD_TYPE_INFO(::darkskin::ToolstripMenuTemplate) ADD_TYPE_INFO(::darkskin::ToolstripMenuTemplate)
ADD_TYPE_INFO(::darkskin::ToolstripMenuTemplateConstructor) ADD_TYPE_INFO(::darkskin::ToolstripMenuTemplateConstructor)
ADD_TYPE_INFO(::darkskin::ToolstripSplitArrowTemplate) ADD_TYPE_INFO(::darkskin::ToolstripSplitArrowTemplate)
ADD_TYPE_INFO(::darkskin::ToolstripSplitArrowTemplateConstructor) ADD_TYPE_INFO(::darkskin::ToolstripSplitArrowTemplateConstructor)
ADD_TYPE_INFO(::darkskin::ToolstripSplitButtonTemplate) ADD_TYPE_INFO(::darkskin::ToolstripSplitButtonTemplate)
ADD_TYPE_INFO(::darkskin::ToolstripSplitButtonTemplateConstructor) ADD_TYPE_INFO(::darkskin::ToolstripSplitButtonTemplateConstructor)
ADD_TYPE_INFO(::darkskin::ToolstripSplitterInMenuTemplate)
ADD_TYPE_INFO(::darkskin::ToolstripSplitterInMenuTemplateConstructor)
ADD_TYPE_INFO(::darkskin::ToolstripSplitterTemplate) ADD_TYPE_INFO(::darkskin::ToolstripSplitterTemplate)
ADD_TYPE_INFO(::darkskin::ToolstripSplitterTemplateConstructor) ADD_TYPE_INFO(::darkskin::ToolstripSplitterTemplateConstructor)
ADD_TYPE_INFO(::darkskin::ToolstripTemplate) ADD_TYPE_INFO(::darkskin::ToolstripTemplate)
@@ -167,12 +167,16 @@ namespace vl
DECL_TYPE_INFO(::darkskin::ToolstripButtonTemplateConstructor) DECL_TYPE_INFO(::darkskin::ToolstripButtonTemplateConstructor)
DECL_TYPE_INFO(::darkskin::ToolstripDropdownButtonTemplate) DECL_TYPE_INFO(::darkskin::ToolstripDropdownButtonTemplate)
DECL_TYPE_INFO(::darkskin::ToolstripDropdownButtonTemplateConstructor) DECL_TYPE_INFO(::darkskin::ToolstripDropdownButtonTemplateConstructor)
DECL_TYPE_INFO(::darkskin::ToolstripInMenuTemplate)
DECL_TYPE_INFO(::darkskin::ToolstripInMenuTemplateConstructor)
DECL_TYPE_INFO(::darkskin::ToolstripMenuTemplate) DECL_TYPE_INFO(::darkskin::ToolstripMenuTemplate)
DECL_TYPE_INFO(::darkskin::ToolstripMenuTemplateConstructor) DECL_TYPE_INFO(::darkskin::ToolstripMenuTemplateConstructor)
DECL_TYPE_INFO(::darkskin::ToolstripSplitArrowTemplate) DECL_TYPE_INFO(::darkskin::ToolstripSplitArrowTemplate)
DECL_TYPE_INFO(::darkskin::ToolstripSplitArrowTemplateConstructor) DECL_TYPE_INFO(::darkskin::ToolstripSplitArrowTemplateConstructor)
DECL_TYPE_INFO(::darkskin::ToolstripSplitButtonTemplate) DECL_TYPE_INFO(::darkskin::ToolstripSplitButtonTemplate)
DECL_TYPE_INFO(::darkskin::ToolstripSplitButtonTemplateConstructor) DECL_TYPE_INFO(::darkskin::ToolstripSplitButtonTemplateConstructor)
DECL_TYPE_INFO(::darkskin::ToolstripSplitterInMenuTemplate)
DECL_TYPE_INFO(::darkskin::ToolstripSplitterInMenuTemplateConstructor)
DECL_TYPE_INFO(::darkskin::ToolstripSplitterTemplate) DECL_TYPE_INFO(::darkskin::ToolstripSplitterTemplate)
DECL_TYPE_INFO(::darkskin::ToolstripSplitterTemplateConstructor) DECL_TYPE_INFO(::darkskin::ToolstripSplitterTemplateConstructor)
DECL_TYPE_INFO(::darkskin::ToolstripTemplate) DECL_TYPE_INFO(::darkskin::ToolstripTemplate)
+86 -36
View File
@@ -1299,6 +1299,7 @@ namespace vl
namespace unittest namespace unittest
{ {
using namespace vl::console; using namespace vl::console;
using namespace vl::collections;
/*********************************************************************** /***********************************************************************
UnitTest UnitTest
@@ -1435,35 +1436,54 @@ UnitTest
int UnitTest::PrintUsages() int UnitTest::PrintUsages()
{ {
PrintMessage(L"Usage: [/D | /R]", MessageKind::Error); PrintMessage(L"Usage: [/D | /R] {/F:TestFile}", MessageKind::Error);
return 1; return 1;
} }
int UnitTest::RunAndDisposeTests(Nullable<WString> option) int UnitTest::RunAndDisposeTests(const collections::Array<WString>& options)
{ {
if (option) bool unrecognized = false;
bool _D = false;
bool _R = false;
List<AString> _Fs;
for (auto&& option : From(options))
{ {
if (option.Value() == L"/D") if (option == L"/D")
{ {
suppressFailure = false; _D = true;
} }
else if (option.Value() == L"/R") else if (option == L"/R")
{ {
suppressFailure = true; _R = true;
}
else if (option.Length() > 3 && option.Left(3) == L"/F:")
{
_Fs.Add(wtoa(option.Sub(3, option.Length() - 3)));
} }
else else
{ {
return PrintUsages(); unrecognized = true;
} }
} }
else if (IsDebuggerAttached())
if (unrecognized || (_D && _R))
{
return PrintUsages();
}
if (_D)
{ {
suppressFailure = false; suppressFailure = false;
} }
else else if (_R)
{ {
suppressFailure = true; suppressFailure = true;
} }
else
{
suppressFailure = !IsDebuggerAttached();
}
{ {
UnitTestContext context; UnitTestContext context;
@@ -1485,13 +1505,47 @@ UnitTest
auto current = testHead; auto current = testHead;
while (current) while (current)
{ {
bool skipped = false;
context.failed = false; context.failed = false;
PrintMessage(atow(AString::Unmanaged(current->fileName)), MessageKind::File); if (_Fs.Count() > 0)
context.indentation = L" "; {
ExecuteAndSuppressFailure(current->testProc); skipped = true;
if (!testContext->failed) passedFiles++; for (auto fileName : From(_Fs))
totalFiles++; {
context.indentation = L""; if (current->fileName == fileName)
{
skipped = false;
break;
}
else
{
vint len = (vint)strlen(current->fileName);
if (len > fileName.Length())
{
char delimiter = current->fileName[len - fileName.Length() - 1];
if ((delimiter == L'/' || delimiter == L'\\') && current->fileName + (len - fileName.Length()) == fileName)
{
skipped = false;
break;
}
}
}
}
}
if (skipped)
{
PrintMessage(atow(AString::Unmanaged(current->fileName)) + WString::Unmanaged(L" [SKIPPED]"), MessageKind::File);
}
else
{
PrintMessage(atow(AString::Unmanaged(current->fileName)), MessageKind::File);
context.indentation = L" ";
ExecuteAndSuppressFailure(current->testProc);
if (!testContext->failed) passedFiles++;
totalFiles++;
context.indentation = L"";
}
current = current->next; current = current->next;
} }
@@ -1506,39 +1560,35 @@ UnitTest
int UnitTest::RunAndDisposeTests(int argc, wchar_t* argv[]) int UnitTest::RunAndDisposeTests(int argc, wchar_t* argv[])
{ {
if (argc < 3) if (argc < 2)
{ {
if (argc == 2) return RunAndDisposeTests({});
{
return RunAndDisposeTests({ argv[1] });
}
else
{
return RunAndDisposeTests({});
}
} }
else else
{ {
return PrintUsages(); Array<WString> options(argc - 1);
for (int i = 1; i < argc; i++)
{
options[i - 1] = WString::Unmanaged(argv[i]);
}
return RunAndDisposeTests(options);
} }
} }
int UnitTest::RunAndDisposeTests(int argc, char* argv[]) int UnitTest::RunAndDisposeTests(int argc, char* argv[])
{ {
if (argc < 3) if (argc < 2)
{ {
if (argc == 2) return RunAndDisposeTests({});
{
return RunAndDisposeTests({ atow(argv[1]) });
}
else
{
return RunAndDisposeTests({});
}
} }
else else
{ {
return PrintUsages(); Array<WString> options(argc - 1);
for (int i = 1; i < argc; i++)
{
options[i - 1] = atow(argv[i]);
}
return RunAndDisposeTests(options);
} }
} }
+1 -1
View File
@@ -9269,7 +9269,7 @@ namespace vl
protected: protected:
static bool IsDebuggerAttached(); static bool IsDebuggerAttached();
static int PrintUsages(); static int PrintUsages();
static int RunAndDisposeTests(Nullable<WString> option); static int RunAndDisposeTests(const collections::Array<WString>& options);
public: public:
UnitTest() = delete; UnitTest() = delete;
+2 -2
View File
@@ -7425,11 +7425,11 @@ InterfaceProxy::Invoke
#define INVOKEGET_INTERFACE_PROXY(METHODNAME, ...)\ #define INVOKEGET_INTERFACE_PROXY(METHODNAME, ...)\
PREPARE_INVOKE_INTERFACE_PROXY(METHODNAME, __VA_ARGS__)\ PREPARE_INVOKE_INTERFACE_PROXY(METHODNAME, __VA_ARGS__)\
return UnboxValue<decltype(METHODNAME(__VA_ARGS__))>(proxy->Invoke(_interface_proxy_methodInfo, IValueList::Create(collections::From((collections::Array<Value>&)(Value_xs(), __VA_ARGS__))))) return UnboxParameter<decltype(METHODNAME(__VA_ARGS__))>(proxy->Invoke(_interface_proxy_methodInfo, IValueList::Create(collections::From((collections::Array<Value>&)(Value_xs(), __VA_ARGS__))))).Ref()
#define INVOKEGET_INTERFACE_PROXY_NOPARAMS(METHODNAME)\ #define INVOKEGET_INTERFACE_PROXY_NOPARAMS(METHODNAME)\
PREPARE_INVOKE_INTERFACE_PROXY(METHODNAME)\ PREPARE_INVOKE_INTERFACE_PROXY(METHODNAME)\
return UnboxValue<decltype(METHODNAME())>(proxy->Invoke(_interface_proxy_methodInfo, IValueList::Create())) return UnboxParameter<decltype(METHODNAME())>(proxy->Invoke(_interface_proxy_methodInfo, IValueList::Create())).Ref()
/*********************************************************************** /***********************************************************************
Enum Enum
+1 -1
View File
@@ -370,7 +370,7 @@ Regex
/// <li><b>(=regex)</b>: The prefix of the following text should match the regex, but it is not counted in the whole match <b>(DFA incompatible)</b></li> /// <li><b>(=regex)</b>: The prefix of the following text should match the regex, but it is not counted in the whole match <b>(DFA incompatible)</b></li>
/// <li><b>(!regex)</b>: Any prefix of the following text should not match the regex, and it is not counted in the whole match <b>(DFA incompatible)</b></li> /// <li><b>(!regex)</b>: Any prefix of the following text should not match the regex, and it is not counted in the whole match <b>(DFA incompatible)</b></li>
/// <li><b>(&lt;#name&gt;regex)</b>: Name the regex "name", and it applies here</li> /// <li><b>(&lt;#name&gt;regex)</b>: Name the regex "name", and it applies here</li>
/// <li><b>(&lt;&name&gt;)</b>: Copy the named regex "name" here and apply</li> /// <li><b>(&lt;&amp;name&gt;)</b>: Copy the named regex "name" here and apply</li>
/// </ul> /// </ul>
/// </li> /// </li>
/// </ul> /// </ul>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.