mirror of
https://github.com/vczh-libraries/Release.git
synced 2026-05-21 22:51:26 +08:00
Update import
This commit is contained in:
+32
-7
@@ -1888,6 +1888,7 @@ namespace vl
|
||||
|
||||
namespace controls
|
||||
{
|
||||
using namespace reflection::description;
|
||||
|
||||
/***********************************************************************
|
||||
GuiTabPage
|
||||
@@ -2003,7 +2004,7 @@ GuiTab
|
||||
{
|
||||
auto ct = TypedControlTemplateObject(true);
|
||||
ct->SetCommands(commandExecutor.Obj());
|
||||
ct->SetTabPages(tabPages.GetWrapper());
|
||||
ct->SetTabPages(UnboxValue<Ptr<IValueObservableList>>(BoxParameter(tabPages)));
|
||||
ct->SetSelectedTabPage(selectedPage);
|
||||
}
|
||||
|
||||
@@ -5471,6 +5472,11 @@ DataProvider
|
||||
|
||||
DataProvider::~DataProvider()
|
||||
{
|
||||
if (itemChangedEventHandler)
|
||||
{
|
||||
auto ol = itemSource.Cast<IValueObservableList>();
|
||||
ol->ItemChanged.Remove(itemChangedEventHandler);
|
||||
}
|
||||
}
|
||||
|
||||
Ptr<IDataFilter> DataProvider::GetAdditionalFilter()
|
||||
@@ -5828,7 +5834,11 @@ GuiBindableTextList::ItemSource
|
||||
|
||||
GuiBindableTextList::ItemSource::~ItemSource()
|
||||
{
|
||||
SetItemSource(nullptr);
|
||||
if (itemChangedEventHandler)
|
||||
{
|
||||
auto ol = itemSource.Cast<IValueObservableList>();
|
||||
ol->ItemChanged.Remove(itemChangedEventHandler);
|
||||
}
|
||||
}
|
||||
|
||||
Ptr<description::IValueEnumerable> GuiBindableTextList::ItemSource::GetItemSource()
|
||||
@@ -6035,7 +6045,11 @@ GuiBindableListView::ItemSource
|
||||
|
||||
GuiBindableListView::ItemSource::~ItemSource()
|
||||
{
|
||||
SetItemSource(nullptr);
|
||||
if (itemChangedEventHandler)
|
||||
{
|
||||
auto ol = itemSource.Cast<IValueObservableList>();
|
||||
ol->ItemChanged.Remove(itemChangedEventHandler);
|
||||
}
|
||||
}
|
||||
|
||||
Ptr<description::IValueEnumerable> GuiBindableListView::ItemSource::GetItemSource()
|
||||
@@ -6488,6 +6502,11 @@ GuiBindableTreeView::ItemSourceNode
|
||||
|
||||
GuiBindableTreeView::ItemSourceNode::~ItemSourceNode()
|
||||
{
|
||||
if (itemChangedEventHandler)
|
||||
{
|
||||
auto ol = childrenVirtualList.Cast<IValueObservableList>();
|
||||
ol->ItemChanged.Remove(itemChangedEventHandler);
|
||||
}
|
||||
}
|
||||
|
||||
description::Value GuiBindableTreeView::ItemSourceNode::GetItemSource()
|
||||
@@ -22432,12 +22451,14 @@ list::GroupedDataSource
|
||||
GroupTitlePropertyChanged.SetAssociatedComposition(associatedComposition);
|
||||
GroupChildrenPropertyChanged.SetAssociatedComposition(associatedComposition);
|
||||
|
||||
groupChangedHandler = groupedItemSource.GetWrapper()->ItemChanged.Add(this, &GroupedDataSource::OnGroupChanged);
|
||||
auto vol = UnboxValue<Ptr<IValueObservableList>>(BoxParameter(groupedItemSource));
|
||||
groupChangedHandler = vol->ItemChanged.Add(this, &GroupedDataSource::OnGroupChanged);
|
||||
}
|
||||
|
||||
GroupedDataSource::~GroupedDataSource()
|
||||
{
|
||||
joinedItemSource.GetWrapper()->ItemChanged.Remove(groupChangedHandler);
|
||||
auto vol = UnboxValue<Ptr<IValueObservableList>>(BoxParameter(joinedItemSource));
|
||||
vol->ItemChanged.Remove(groupChangedHandler);
|
||||
}
|
||||
|
||||
Ptr<IValueEnumerable> GroupedDataSource::GetItemSource()
|
||||
@@ -22779,7 +22800,7 @@ GuiBindableRibbonGalleryList
|
||||
itemList = new GuiBindableTextList(theme::ThemeName::RibbonGalleryItemList);
|
||||
itemList->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 0, 0, 0));
|
||||
itemList->SetArranger(itemListArranger);
|
||||
itemList->SetItemSource(joinedItemSource.GetWrapper());
|
||||
itemList->SetItemSource(UnboxValue<Ptr<IValueObservableList>>(BoxParameter(joinedItemSource)));
|
||||
itemList->SelectionChanged.AttachMethod(this, &GuiBindableRibbonGalleryList::OnItemListSelectionChanged);
|
||||
itemList->ItemMouseEnter.AttachMethod(this, &GuiBindableRibbonGalleryList::OnItemListItemMouseEnter);
|
||||
itemList->ItemMouseLeave.AttachMethod(this, &GuiBindableRibbonGalleryList::OnItemListItemMouseLeave);
|
||||
@@ -22797,7 +22818,7 @@ GuiBindableRibbonGalleryList
|
||||
groupStack->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren);
|
||||
groupStack->SetAlignmentToParent(Margin(0, 0, 0, 0));
|
||||
groupStack->SetDirection(GuiStackComposition::Vertical);
|
||||
groupStack->SetItemSource(groupedItemSource.GetWrapper());
|
||||
groupStack->SetItemSource(UnboxValue<Ptr<IValueObservableList>>(BoxParameter(groupedItemSource)));
|
||||
groupContainer->GetContainerComposition()->AddChild(groupStack);
|
||||
MenuResetGroupTemplate();
|
||||
}
|
||||
@@ -26081,6 +26102,10 @@ GuiRepeatCompositionBase
|
||||
|
||||
GuiRepeatCompositionBase::~GuiRepeatCompositionBase()
|
||||
{
|
||||
if (itemChangedHandler)
|
||||
{
|
||||
itemSource.Cast<IValueObservableList>()->ItemChanged.Remove(itemChangedHandler);
|
||||
}
|
||||
}
|
||||
|
||||
GuiRepeatCompositionBase::ItemStyleProperty GuiRepeatCompositionBase::GetItemTemplate()
|
||||
|
||||
+80
-96
@@ -5,8 +5,8 @@ DEVELOPER: Zihan Chen(vczh)
|
||||
#include "VlppParser.h"
|
||||
#include "VlppWorkflowLibrary.h"
|
||||
#include "VlppReflection.h"
|
||||
#include "VlppOS.h"
|
||||
#include "Vlpp.h"
|
||||
#include "VlppOS.h"
|
||||
#include "VlppRegex.h"
|
||||
|
||||
/***********************************************************************
|
||||
@@ -72,6 +72,14 @@ Enumerations
|
||||
UpRight,
|
||||
};
|
||||
|
||||
#define GUI_DEFINE_COMPARE_OPERATORS(TYPE)\
|
||||
inline bool operator==(const TYPE& right)const { return Compare(right) == 0; } \
|
||||
inline bool operator!=(const TYPE& right)const { return Compare(right) != 0; } \
|
||||
inline bool operator< (const TYPE& right)const { return Compare(right) < 0; } \
|
||||
inline bool operator<=(const TYPE& right)const { return Compare(right) <= 0; } \
|
||||
inline bool operator> (const TYPE& right)const { return Compare(right) > 0; } \
|
||||
inline bool operator>=(const TYPE& right)const { return Compare(right) >= 0; } \
|
||||
|
||||
/***********************************************************************
|
||||
TextPos
|
||||
***********************************************************************/
|
||||
@@ -100,21 +108,14 @@ TextPos
|
||||
{
|
||||
}
|
||||
|
||||
vint Compare(const TextPos& value)const
|
||||
inline vint Compare(const TextPos& value)const
|
||||
{
|
||||
if(row<value.row) return -1;
|
||||
if(row>value.row) return 1;
|
||||
if(column<value.column) return -1;
|
||||
if(column>value.column) return 1;
|
||||
vint result;
|
||||
if ((result = row - value.row) != 0) return result;
|
||||
if ((result = column - value.column) != 0) return result;
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool operator==(const TextPos& value)const {return Compare(value)==0;}
|
||||
bool operator!=(const TextPos& value)const {return Compare(value)!=0;}
|
||||
bool operator<(const TextPos& value)const {return Compare(value)<0;}
|
||||
bool operator<=(const TextPos& value)const {return Compare(value)<=0;}
|
||||
bool operator>(const TextPos& value)const {return Compare(value)>0;}
|
||||
bool operator>=(const TextPos& value)const {return Compare(value)>=0;}
|
||||
GUI_DEFINE_COMPARE_OPERATORS(TextPos)
|
||||
};
|
||||
|
||||
/***********************************************************************
|
||||
@@ -145,21 +146,14 @@ GridPos
|
||||
{
|
||||
}
|
||||
|
||||
vint Compare(const GridPos& value)const
|
||||
inline vint Compare(const GridPos& value)const
|
||||
{
|
||||
if(row<value.row) return -1;
|
||||
if(row>value.row) return 1;
|
||||
if(column<value.column) return -1;
|
||||
if(column>value.column) return 1;
|
||||
vint result;
|
||||
if ((result = row - value.row) != 0) return result;
|
||||
if ((result = column - value.column) != 0) return result;
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool operator==(const GridPos& value)const {return Compare(value)==0;}
|
||||
bool operator!=(const GridPos& value)const {return Compare(value)!=0;}
|
||||
bool operator<(const GridPos& value)const {return Compare(value)<0;}
|
||||
bool operator<=(const GridPos& value)const {return Compare(value)<=0;}
|
||||
bool operator>(const GridPos& value)const {return Compare(value)>0;}
|
||||
bool operator>=(const GridPos& value)const {return Compare(value)>=0;}
|
||||
GUI_DEFINE_COMPARE_OPERATORS(GridPos)
|
||||
};
|
||||
|
||||
/***********************************************************************
|
||||
@@ -185,12 +179,8 @@ Coordinate
|
||||
NativeCoordinate& operator=(const NativeCoordinate& _value) = default;
|
||||
NativeCoordinate& operator=(NativeCoordinate&& _value) = default;
|
||||
|
||||
inline bool operator==(NativeCoordinate c)const { return value == c.value; };
|
||||
inline bool operator!=(NativeCoordinate c)const { return value != c.value; };
|
||||
inline bool operator<(NativeCoordinate c)const { return value < c.value; };
|
||||
inline bool operator<=(NativeCoordinate c)const { return value <= c.value; };
|
||||
inline bool operator>(NativeCoordinate c)const { return value > c.value; };
|
||||
inline bool operator>=(NativeCoordinate c)const { return value >= c.value; };
|
||||
inline vint Compare(NativeCoordinate c) const { return value - c.value; }
|
||||
GUI_DEFINE_COMPARE_OPERATORS(NativeCoordinate)
|
||||
|
||||
inline NativeCoordinate operator+(NativeCoordinate c)const { return value + c.value; };
|
||||
inline NativeCoordinate operator-(NativeCoordinate c)const { return value - c.value; };
|
||||
@@ -203,6 +193,9 @@ Coordinate
|
||||
inline NativeCoordinate& operator/=(NativeCoordinate c) { value /= c.value; return *this; };
|
||||
};
|
||||
|
||||
inline vint CompareCoordinate(vint a, vint b) { return a - b; }
|
||||
inline vint CompareCoordinate(NativeCoordinate a, NativeCoordinate b) { return a.value - b.value; }
|
||||
|
||||
/***********************************************************************
|
||||
Point
|
||||
***********************************************************************/
|
||||
@@ -233,15 +226,14 @@ Point
|
||||
{
|
||||
}
|
||||
|
||||
bool operator==(Point_<T> point)const
|
||||
inline vint Compare(const Point_<T>& value)const
|
||||
{
|
||||
return x == point.x && y == point.y;
|
||||
}
|
||||
|
||||
bool operator!=(Point_<T> point)const
|
||||
{
|
||||
return x != point.x || y != point.y;
|
||||
vint result;
|
||||
if ((result = CompareCoordinate(x, value.x)) != 0) return result;
|
||||
if ((result = CompareCoordinate(y, value.y)) != 0) return result;
|
||||
return 0;
|
||||
}
|
||||
GUI_DEFINE_COMPARE_OPERATORS(Point_<T>)
|
||||
};
|
||||
|
||||
using Point = Point_<GuiCoordinate>;
|
||||
@@ -277,15 +269,14 @@ Size
|
||||
{
|
||||
}
|
||||
|
||||
bool operator==(Size_<T> size)const
|
||||
inline vint Compare(const Size_<T>& value)const
|
||||
{
|
||||
return x == size.x && y == size.y;
|
||||
}
|
||||
|
||||
bool operator!=(Size_<T> size)const
|
||||
{
|
||||
return x != size.x || y != size.y;
|
||||
vint result;
|
||||
if ((result = CompareCoordinate(x, value.x)) != 0) return result;
|
||||
if ((result = CompareCoordinate(y, value.y)) != 0) return result;
|
||||
return 0;
|
||||
}
|
||||
GUI_DEFINE_COMPARE_OPERATORS(Size_<T>)
|
||||
};
|
||||
|
||||
using Size = Size_<GuiCoordinate>;
|
||||
@@ -334,15 +325,16 @@ Rectangle
|
||||
{
|
||||
}
|
||||
|
||||
bool operator==(Rect_<T> rect)const
|
||||
inline vint Compare(const Rect_<T>& value)const
|
||||
{
|
||||
return x1 == rect.x1 && y1 == rect.y1 && x2 == rect.x2 && y2 == rect.y2;
|
||||
}
|
||||
|
||||
bool operator!=(Rect_<T> rect)const
|
||||
{
|
||||
return x1 != rect.x1 || y1 != rect.y1 || x2 != rect.x2 || y2 != rect.y2;
|
||||
vint result;
|
||||
if ((result = CompareCoordinate(x1, value.x1)) != 0) return result;
|
||||
if ((result = CompareCoordinate(y1, value.y1)) != 0) return result;
|
||||
if ((result = CompareCoordinate(x2, value.x2)) != 0) return result;
|
||||
if ((result = CompareCoordinate(y2, value.y2)) != 0) return result;
|
||||
return 0;
|
||||
}
|
||||
GUI_DEFINE_COMPARE_OPERATORS(Rect_<T>)
|
||||
|
||||
Point_<T> LeftTop()const
|
||||
{
|
||||
@@ -545,8 +537,9 @@ Color
|
||||
|
||||
vint Compare(Color color)const
|
||||
{
|
||||
return value-color.value;
|
||||
return value - color.value;
|
||||
}
|
||||
GUI_DEFINE_COMPARE_OPERATORS(Color)
|
||||
|
||||
static Color Parse(const WString& value)
|
||||
{
|
||||
@@ -594,13 +587,6 @@ Color
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
bool operator==(Color color)const {return Compare(color)==0;}
|
||||
bool operator!=(Color color)const {return Compare(color)!=0;}
|
||||
bool operator<(Color color)const {return Compare(color)<0;}
|
||||
bool operator<=(Color color)const {return Compare(color)<=0;}
|
||||
bool operator>(Color color)const {return Compare(color)>0;}
|
||||
bool operator>=(Color color)const {return Compare(color)>=0;}
|
||||
};
|
||||
|
||||
/***********************************************************************
|
||||
@@ -641,15 +627,16 @@ Margin
|
||||
{
|
||||
}
|
||||
|
||||
bool operator==(Margin_<T> margin)const
|
||||
inline vint Compare(const Margin_<T>& value)const
|
||||
{
|
||||
return left==margin.left && top==margin.top && right==margin.right && bottom==margin.bottom;
|
||||
}
|
||||
|
||||
bool operator!=(Margin_<T> margin)const
|
||||
{
|
||||
return left!=margin.left || top!=margin.top || right!=margin.right || bottom!=margin.bottom;
|
||||
vint result;
|
||||
if ((result = CompareCoordinate(left, value.left)) != 0) return result;
|
||||
if ((result = CompareCoordinate(top, value.top)) != 0) return result;
|
||||
if ((result = CompareCoordinate(right, value.right)) != 0) return result;
|
||||
if ((result = CompareCoordinate(bottom, value.bottom)) != 0) return result;
|
||||
return 0;
|
||||
}
|
||||
GUI_DEFINE_COMPARE_OPERATORS(Margin_<T>)
|
||||
};
|
||||
|
||||
using Margin = Margin_<GuiCoordinate>;
|
||||
@@ -735,13 +722,7 @@ Resources
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool operator==(const FontProperties& value)const {return Compare(value)==0;}
|
||||
bool operator!=(const FontProperties& value)const {return Compare(value)!=0;}
|
||||
bool operator<(const FontProperties& value)const {return Compare(value)<0;}
|
||||
bool operator<=(const FontProperties& value)const {return Compare(value)<=0;}
|
||||
bool operator>(const FontProperties& value)const {return Compare(value)>0;}
|
||||
bool operator>=(const FontProperties& value)const {return Compare(value)>=0;}
|
||||
GUI_DEFINE_COMPARE_OPERATORS(FontProperties)
|
||||
};
|
||||
|
||||
/***********************************************************************
|
||||
@@ -6409,13 +6390,8 @@ Global String Key
|
||||
vint key = -1;
|
||||
|
||||
public:
|
||||
static vint Compare(GlobalStringKey a, GlobalStringKey b){ return a.key - b.key; }
|
||||
bool operator==(GlobalStringKey g)const{ return key == g.key; }
|
||||
bool operator!=(GlobalStringKey g)const{ return key != g.key; }
|
||||
bool operator<(GlobalStringKey g)const{ return key < g.key; }
|
||||
bool operator<=(GlobalStringKey g)const{ return key <= g.key; }
|
||||
bool operator>(GlobalStringKey g)const{ return key > g.key; }
|
||||
bool operator>=(GlobalStringKey g)const{ return key >= g.key; }
|
||||
inline vint Compare(GlobalStringKey value)const{ return key - value.key; }
|
||||
GUI_DEFINE_COMPARE_OPERATORS(GlobalStringKey)
|
||||
|
||||
static GlobalStringKey Get(const WString& string);
|
||||
vint ToKey()const;
|
||||
@@ -9228,8 +9204,14 @@ Colorized Plain Text (model)
|
||||
/// </summary>
|
||||
Color background;
|
||||
|
||||
bool operator==(const ColorItem& value)const { return text == value.text && background == value.background; }
|
||||
bool operator!=(const ColorItem& value)const { return !(*this == value); }
|
||||
inline vint Compare(const ColorItem& value)const
|
||||
{
|
||||
vint result;
|
||||
if ((result = text.Compare(value.text)) != 0) return result;
|
||||
if ((result = background.Compare(value.background)) != 0) return result;
|
||||
return 0;
|
||||
}
|
||||
GUI_DEFINE_COMPARE_OPERATORS(ColorItem)
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
@@ -9250,8 +9232,15 @@ Colorized Plain Text (model)
|
||||
/// </summary>
|
||||
ColorItem selectedUnfocused;
|
||||
|
||||
bool operator==(const ColorEntry& value)const {return normal == value.normal && selectedFocused == value.selectedFocused && selectedUnfocused == value.selectedUnfocused;}
|
||||
bool operator!=(const ColorEntry& value)const {return !(*this == value);}
|
||||
inline vint Compare(const ColorEntry& value)const
|
||||
{
|
||||
vint result;
|
||||
if ((result = normal.Compare(value.normal)) != 0) return result;
|
||||
if ((result = selectedFocused.Compare(value.selectedFocused)) != 0) return result;
|
||||
if ((result = selectedUnfocused.Compare(value.selectedUnfocused)) != 0) return result;
|
||||
return 0;
|
||||
}
|
||||
GUI_DEFINE_COMPARE_OPERATORS(ColorEntry)
|
||||
};
|
||||
}
|
||||
|
||||
@@ -19205,19 +19194,14 @@ Ribbon Gallery List
|
||||
{
|
||||
}
|
||||
|
||||
vint Compare(GalleryPos value)const
|
||||
inline vint Compare(const GalleryPos& value)const
|
||||
{
|
||||
vint result = group - value.group;
|
||||
if (result != 0) return result;
|
||||
return item - value.item;
|
||||
vint result;
|
||||
if ((result = group - value.group) != 0) return result;
|
||||
if ((result = item - value.item) != 0) return result;
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool operator==(const GalleryPos& value)const { return Compare(value) == 0; }
|
||||
bool operator!=(const GalleryPos& value)const { return Compare(value) != 0; }
|
||||
bool operator<(const GalleryPos& value)const { return Compare(value)<0; }
|
||||
bool operator<=(const GalleryPos& value)const { return Compare(value) <= 0; }
|
||||
bool operator>(const GalleryPos& value)const { return Compare(value)>0; }
|
||||
bool operator>=(const GalleryPos& value)const { return Compare(value) >= 0; }
|
||||
GUI_DEFINE_COMPARE_OPERATORS(GalleryPos)
|
||||
};
|
||||
|
||||
namespace list
|
||||
|
||||
@@ -8,8 +8,8 @@ DEVELOPER: Zihan Chen(vczh)
|
||||
#include "VlppParser.h"
|
||||
#include "VlppWorkflowLibrary.h"
|
||||
#include "VlppReflection.h"
|
||||
#include "VlppOS.h"
|
||||
#include "Vlpp.h"
|
||||
#include "VlppOS.h"
|
||||
#include "VlppRegex.h"
|
||||
#include "VlppWorkflowRuntime.h"
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ DEVELOPER: Zihan Chen(vczh)
|
||||
#include "VlppParser.h"
|
||||
#include "VlppWorkflowLibrary.h"
|
||||
#include "VlppReflection.h"
|
||||
#include "VlppOS.h"
|
||||
#include "Vlpp.h"
|
||||
#include "VlppOS.h"
|
||||
#include "VlppRegex.h"
|
||||
#include "VlppWorkflowRuntime.h"
|
||||
|
||||
|
||||
@@ -224,12 +224,14 @@ WindowsDirect2DParagraph
|
||||
TextRange(){}
|
||||
TextRange(vint _start, vint _end):start(_start),end(_end){}
|
||||
|
||||
bool operator==(const TextRange& range) const { return start==range.start; }
|
||||
bool operator!=(const TextRange& range) const { return start!=range.start; }
|
||||
bool operator<(const TextRange& range) const { return start<range.start; }
|
||||
bool operator<=(const TextRange& range) const { return start<=range.start; }
|
||||
bool operator>(const TextRange& range) const { return start>range.start; }
|
||||
bool operator>=(const TextRange& range) const { return start>=range.start; }
|
||||
inline vint Compare(const TextRange& value)const
|
||||
{
|
||||
vint result;
|
||||
if ((result = start - value.start) != 0) return result;
|
||||
if ((result = end - value.end) != 0) return result;
|
||||
return 0;
|
||||
}
|
||||
GUI_DEFINE_COMPARE_OPERATORS(TextRange)
|
||||
};
|
||||
|
||||
typedef Dictionary<IGuiGraphicsElement*, ComPtr<WindowsDirect2DElementInlineObject>> InlineElementMap;
|
||||
|
||||
+17
-9
@@ -6,8 +6,8 @@ DEVELOPER: Zihan Chen(vczh)
|
||||
#include "VlppParser.h"
|
||||
#include "VlppWorkflowLibrary.h"
|
||||
#include "VlppReflection.h"
|
||||
#include "VlppOS.h"
|
||||
#include "Vlpp.h"
|
||||
#include "VlppOS.h"
|
||||
#include "VlppRegex.h"
|
||||
|
||||
/***********************************************************************
|
||||
@@ -1431,12 +1431,14 @@ UniscribeColor
|
||||
UniscribeColorRange(){}
|
||||
UniscribeColorRange(vint _start, vint _end):start(_start),end(_end){}
|
||||
|
||||
bool operator==(const UniscribeColorRange& range) const { return start==range.start; }
|
||||
bool operator!=(const UniscribeColorRange& range) const { return start!=range.start; }
|
||||
bool operator<(const UniscribeColorRange& range) const { return start<range.start; }
|
||||
bool operator<=(const UniscribeColorRange& range) const { return start<=range.start; }
|
||||
bool operator>(const UniscribeColorRange& range) const { return start>range.start; }
|
||||
bool operator>=(const UniscribeColorRange& range) const { return start>=range.start; }
|
||||
inline vint Compare(const UniscribeColorRange& value)const
|
||||
{
|
||||
vint result;
|
||||
if ((result = start - value.start) != 0) return result;
|
||||
if ((result = end - value.end) != 0) return result;
|
||||
return 0;
|
||||
}
|
||||
GUI_DEFINE_COMPARE_OPERATORS(UniscribeColorRange)
|
||||
};
|
||||
|
||||
struct UniscribeColor
|
||||
@@ -1447,8 +1449,14 @@ UniscribeColor
|
||||
UniscribeColor(){}
|
||||
UniscribeColor(Color _fontColor, Color _backgroundColor):fontColor(_fontColor),backgroundColor(_backgroundColor){}
|
||||
|
||||
bool operator==(const UniscribeColor& color) const { return fontColor==color.fontColor && backgroundColor==color.backgroundColor; }
|
||||
bool operator!=(const UniscribeColor& color) const { return fontColor!=color.fontColor || backgroundColor!=color.backgroundColor; }
|
||||
inline vint Compare(const UniscribeColor& value)const
|
||||
{
|
||||
vint result;
|
||||
if ((result = fontColor.Compare(value.fontColor)) != 0) return result;
|
||||
if ((result = backgroundColor.Compare(value.backgroundColor)) != 0) return result;
|
||||
return 0;
|
||||
}
|
||||
GUI_DEFINE_COMPARE_OPERATORS(UniscribeColor)
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23932,7 +23932,7 @@ namespace darkskin
|
||||
}
|
||||
(this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>()));
|
||||
{
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateList().Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(8); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(8); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(5); return __vwsn_temp__; }());
|
||||
@@ -24445,7 +24445,7 @@ Class (::darkskin::ComboBoxTemplateConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_8 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>()));
|
||||
{
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateList().Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }());
|
||||
@@ -24979,7 +24979,7 @@ Class (::darkskin::ExpandingDecoratorTemplateConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_3 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>()));
|
||||
{
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateList().Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(1); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(1); __vwsn_temp__.y = static_cast<::vl::vint>(8); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(1); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(1); __vwsn_temp__.y = static_cast<::vl::vint>(8); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(7); __vwsn_temp__.y = static_cast<::vl::vint>(9); return __vwsn_temp__; }());
|
||||
@@ -24996,7 +24996,7 @@ Class (::darkskin::ExpandingDecoratorTemplateConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_5 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>()));
|
||||
{
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateList().Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(7); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(7); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_5.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(7); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(7); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_5.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_5.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(7); __vwsn_temp__.y = static_cast<::vl::vint>(9); return __vwsn_temp__; }());
|
||||
@@ -25736,7 +25736,7 @@ Class (::darkskin::LeftScrollButtonTemplateConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>()));
|
||||
{
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateList().Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(8); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(8); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(9); return __vwsn_temp__; }());
|
||||
@@ -25876,7 +25876,7 @@ Class (::darkskin::ListViewColumnHeaderTemplateConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_8 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>()));
|
||||
{
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateList().Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(3); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(3); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(7); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }());
|
||||
@@ -25893,7 +25893,7 @@ Class (::darkskin::ListViewColumnHeaderTemplateConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_10 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>()));
|
||||
{
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateList().Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(3); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_10.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(3); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_10.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_10.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(7); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }());
|
||||
@@ -26376,7 +26376,7 @@ Class (::darkskin::MenuItemButtonTemplateConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_11 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>()));
|
||||
{
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateList().Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(3); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(6); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_11.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(3); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(6); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_11.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_11.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(7); return __vwsn_temp__; }());
|
||||
@@ -27051,7 +27051,7 @@ Class (::darkskin::RibbonGalleryDropdownButtonTemplateConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_4 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>()));
|
||||
{
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateList().Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(8); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_4.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(8); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_4.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_4.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(5); return __vwsn_temp__; }());
|
||||
@@ -27373,7 +27373,7 @@ Class (::darkskin::RibbonGroupExpandButtonTemplateConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>()));
|
||||
{
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateList().Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(6); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(6); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_1.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(6); __vwsn_temp__.y = static_cast<::vl::vint>(6); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(6); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_1.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_1.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(7); __vwsn_temp__.y = static_cast<::vl::vint>(7); return __vwsn_temp__; }());
|
||||
@@ -28060,7 +28060,7 @@ Class (::darkskin::RibbonLargeDropdownButtonTemplateConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_12 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>()));
|
||||
{
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateList().Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_12.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_12.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_12.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }());
|
||||
@@ -28643,7 +28643,7 @@ Class (::darkskin::RibbonSmallDropdownButtonTemplateConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_11 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>()));
|
||||
{
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateList().Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_11.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_11.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_11.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }());
|
||||
@@ -29186,7 +29186,7 @@ Class (::darkskin::RibbonSplitArrowTemplateConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_6 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>()));
|
||||
{
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateList().Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_6.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_6.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_6.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }());
|
||||
@@ -29570,7 +29570,7 @@ Class (::darkskin::RightScrollButtonTemplateConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>()));
|
||||
{
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateList().Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(8); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(8); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(9); return __vwsn_temp__; }());
|
||||
@@ -30835,7 +30835,7 @@ Class (::darkskin::ToolstripDropdownButtonTemplateConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_8 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>()));
|
||||
{
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateList().Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_8.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }());
|
||||
@@ -31032,7 +31032,7 @@ Class (::darkskin::ToolstripSplitArrowTemplateConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_3 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>()));
|
||||
{
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateList().Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(2); __vwsn_temp__.y = static_cast<::vl::vint>(2); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(5); __vwsn_temp__.y = static_cast<::vl::vint>(3); return __vwsn_temp__; }());
|
||||
@@ -31479,7 +31479,7 @@ Class (::darkskin::TopScrollButtonTemplateConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_2 = ::vl::Ptr<::vl::presentation::elements::GuiPolygonElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiPolygonElement>()));
|
||||
{
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateList().Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Add([&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(8); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
[&]()->decltype(auto){ auto __vwsn_temp_x0 = ::vl::__vwsn::Box(::vl::Ptr<::vl::reflection::description::IValueReadonlyList>((::vl::__vwsn::CreateArray().Resize(3).Set(0, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(0); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }()).Set(1, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(4); __vwsn_temp__.y = static_cast<::vl::vint>(0); return __vwsn_temp__; }()).Set(2, [&](){ ::vl::presentation::Point __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(8); __vwsn_temp__.y = static_cast<::vl::vint>(4); return __vwsn_temp__; }())).list)); ::vl::collections::Array<::vl::presentation::Point> __vwsn_temp_0; ::vl::reflection::description::UnboxParameter(__vwsn_temp_x0, __vwsn_temp_0); return ::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetPointsArray(__vwsn_temp_0); }();
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_2.Obj())->SetSize([&](){ ::vl::presentation::Size __vwsn_temp__; __vwsn_temp__.x = static_cast<::vl::vint>(9); __vwsn_temp__.y = static_cast<::vl::vint>(5); return __vwsn_temp__; }());
|
||||
|
||||
@@ -6,8 +6,8 @@ DEVELOPER: Zihan Chen(vczh)
|
||||
#include "VlppParser.h"
|
||||
#include "VlppWorkflowLibrary.h"
|
||||
#include "VlppReflection.h"
|
||||
#include "VlppOS.h"
|
||||
#include "Vlpp.h"
|
||||
#include "VlppOS.h"
|
||||
#include "VlppRegex.h"
|
||||
|
||||
/***********************************************************************
|
||||
|
||||
@@ -8,8 +8,8 @@ DEVELOPER: Zihan Chen(vczh)
|
||||
#include "VlppParser.h"
|
||||
#include "VlppWorkflowLibrary.h"
|
||||
#include "VlppReflection.h"
|
||||
#include "VlppOS.h"
|
||||
#include "Vlpp.h"
|
||||
#include "VlppOS.h"
|
||||
#include "VlppRegex.h"
|
||||
|
||||
/***********************************************************************
|
||||
|
||||
+209
-171
File diff suppressed because it is too large
Load Diff
+20
-21
@@ -3148,9 +3148,9 @@ CreateLookAhead
|
||||
void CopyStableLookAheads(List<Ptr<ParsingTable::LookAheadInfo>>& la, List<Ptr<ParsingTable::LookAheadInfo>>& sla, const List<Ptr<ParsingTable::LookAheadInfo>>& la2)
|
||||
{
|
||||
CopyFrom(sla, From(la)
|
||||
.Where([&](Ptr<ParsingTable::LookAheadInfo> lai)
|
||||
.Where([&](auto&& lai)
|
||||
{
|
||||
return From(la2).All([&](Ptr<ParsingTable::LookAheadInfo> lai2)
|
||||
return From(la2).All([&](auto&& lai2)
|
||||
{
|
||||
return ParsingTable::LookAheadInfo::TestPrefix(lai, lai2)==ParsingTable::LookAheadInfo::NotPrefix;
|
||||
});
|
||||
@@ -3188,9 +3188,9 @@ CreateLookAhead
|
||||
{
|
||||
CopyFrom(sla, t->lookAheads, true);
|
||||
CopyFrom(t->lookAheads, From(sla)
|
||||
.Where([&](Ptr<ParsingTable::LookAheadInfo> lai)
|
||||
.Where([&](auto&& lai)
|
||||
{
|
||||
return From(sla).All([&](Ptr<ParsingTable::LookAheadInfo> lai2)
|
||||
return From(sla).All([&](auto&& lai2)
|
||||
{
|
||||
if(lai==lai2) return true;
|
||||
ParsingTable::LookAheadInfo::PrefixResult result=ParsingTable::LookAheadInfo::TestPrefix(lai, lai2);
|
||||
@@ -3730,19 +3730,18 @@ GenerateTable
|
||||
CopyFrom(
|
||||
bag->transitionItems,
|
||||
From(bag->transitionItems)
|
||||
.OrderBy([&](Ptr<ParsingTable::TransitionItem> t1, Ptr<ParsingTable::TransitionItem> t2)
|
||||
{
|
||||
// stable transition order
|
||||
vint i1 = bag->transitionItems.IndexOf(t1.Obj());
|
||||
vint i2 = bag->transitionItems.IndexOf(t2.Obj());
|
||||
auto defaultOrder =
|
||||
i1 < i2 ? ParsingTable::TransitionItem::CorrectOrder :
|
||||
i1 > i2 ? ParsingTable::TransitionItem::WrongOrder :
|
||||
ParsingTable::TransitionItem::SameOrder
|
||||
;
|
||||
return ParsingTable::TransitionItem::Compare(t1, t2, defaultOrder);
|
||||
})
|
||||
);
|
||||
.OrderBy([&](auto&& t1, auto&& t2)
|
||||
{
|
||||
// stable transition order
|
||||
vint i1 = bag->transitionItems.IndexOf(t1.Obj());
|
||||
vint i2 = bag->transitionItems.IndexOf(t2.Obj());
|
||||
auto defaultOrder =
|
||||
i1 < i2 ? ParsingTable::TransitionItem::CorrectOrder :
|
||||
i1 > i2 ? ParsingTable::TransitionItem::WrongOrder :
|
||||
ParsingTable::TransitionItem::SameOrder
|
||||
;
|
||||
return ParsingTable::TransitionItem::Compare(t1, t2, defaultOrder);
|
||||
}));
|
||||
|
||||
// build look ahead inside a transition
|
||||
for (vint k1 = 0; k1 < bag->transitionItems.Count() - 1; k1++)
|
||||
@@ -4510,8 +4509,8 @@ CreateNondeterministicPDAFromEpsilonPDA
|
||||
CopyFrom(
|
||||
newStates,
|
||||
From(epsilonPDA->states)
|
||||
.Where([&](Ptr<State> s) {return oldNewStateMap.Keys().Contains(s.Obj()); })
|
||||
.Select([&](Ptr<State> s) { return oldNewStateMap[s.Obj()]; })
|
||||
.Where([&](auto&& s) {return oldNewStateMap.Keys().Contains(s.Obj()); })
|
||||
.Select([&](auto&& s) { return oldNewStateMap[s.Obj()]; })
|
||||
);
|
||||
DeleteUnnecessaryStates(automaton, newRuleInfo, newStates);
|
||||
MergeStates(automaton, newRuleInfo, newStates);
|
||||
@@ -8715,7 +8714,7 @@ ParsingTreeNode
|
||||
CopyFrom(
|
||||
cachedOrderedSubNodes,
|
||||
From(subNodes)
|
||||
.Where([=](Ptr<ParsingTreeNode> node)
|
||||
.Where([=](auto&& node)
|
||||
{
|
||||
const auto& range = node->GetCodeRange();
|
||||
return !range.start.IsInvalid() && !range.end.IsInvalid();
|
||||
@@ -10463,7 +10462,7 @@ Linq To Xml
|
||||
{
|
||||
return From(element->subNodes)
|
||||
.FindType<XmlElement>()
|
||||
.Where([name](Ptr<XmlElement> e){return e->name.value==name;});
|
||||
.Where([name](auto&& e){return e->name.value==name;});
|
||||
}
|
||||
|
||||
WString XmlGetValue(XmlElement* element)
|
||||
|
||||
+3
-3
@@ -3,8 +3,8 @@ THIS FILE IS AUTOMATICALLY GENERATED. DO NOT MODIFY
|
||||
DEVELOPER: Zihan Chen(vczh)
|
||||
***********************************************************************/
|
||||
#include "VlppReflection.h"
|
||||
#include "VlppOS.h"
|
||||
#include "Vlpp.h"
|
||||
#include "VlppOS.h"
|
||||
#include "VlppRegex.h"
|
||||
|
||||
/***********************************************************************
|
||||
@@ -2269,7 +2269,7 @@ Syntax Analyzer
|
||||
void Reset()override;
|
||||
};
|
||||
|
||||
class TokenLookAhead : public Object, public collections::IEnumerable<vint>
|
||||
class TokenLookAhead : public collections::EnumerableBase<vint>
|
||||
{
|
||||
protected:
|
||||
const ParsingTokenWalker* walker;
|
||||
@@ -2279,7 +2279,7 @@ Syntax Analyzer
|
||||
collections::IEnumerator<vint>* CreateEnumerator()const override;
|
||||
};
|
||||
|
||||
class ReduceLookAhead : public Object, public collections::IEnumerable<vint>
|
||||
class ReduceLookAhead : public collections::EnumerableBase<vint>
|
||||
{
|
||||
protected:
|
||||
const ParsingTokenWalker* walker;
|
||||
|
||||
@@ -2532,6 +2532,27 @@ IValueEnumerable
|
||||
return new ValueEnumerableWrapper<Ptr<IEnumerable<Value>>>(enumerable);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
IValueArray
|
||||
***********************************************************************/
|
||||
|
||||
Ptr<IValueArray> IValueArray::Create()
|
||||
{
|
||||
return Create(LazyList<Value>());
|
||||
}
|
||||
|
||||
Ptr<IValueArray> IValueArray::Create(Ptr<IValueReadonlyList> values)
|
||||
{
|
||||
return Create(GetLazyList<Value>(values));
|
||||
}
|
||||
|
||||
Ptr<IValueArray> IValueArray::Create(collections::LazyList<Value> values)
|
||||
{
|
||||
Ptr<Array<Value>> list = new Array<Value>;
|
||||
CopyFrom(*list.Obj(), values);
|
||||
return new ValueArrayWrapper<Ptr<Array<Value>>>(list);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
IValueList
|
||||
***********************************************************************/
|
||||
@@ -2711,6 +2732,7 @@ TypeName
|
||||
IMPL_TYPE_INFO_RENAME(vl::reflection::description::IValueEnumerator, system::Enumerator)
|
||||
IMPL_TYPE_INFO_RENAME(vl::reflection::description::IValueEnumerable, system::Enumerable)
|
||||
IMPL_TYPE_INFO_RENAME(vl::reflection::description::IValueReadonlyList, system::ReadonlyList)
|
||||
IMPL_TYPE_INFO_RENAME(vl::reflection::description::IValueArray, system::Array)
|
||||
IMPL_TYPE_INFO_RENAME(vl::reflection::description::IValueList, system::List)
|
||||
IMPL_TYPE_INFO_RENAME(vl::reflection::description::IValueObservableList, system::ObservableList)
|
||||
IMPL_TYPE_INFO_RENAME(vl::reflection::description::IValueReadonlyDictionary, system::ReadonlyDictionary)
|
||||
@@ -3254,6 +3276,15 @@ LoadPredefinedTypes
|
||||
CLASS_MEMBER_METHOD(IndexOf, { L"value" })
|
||||
END_INTERFACE_MEMBER(IValueReadonlyList)
|
||||
|
||||
BEGIN_INTERFACE_MEMBER(IValueArray)
|
||||
CLASS_MEMBER_BASE(IValueReadonlyList)
|
||||
CLASS_MEMBER_EXTERNALCTOR(Ptr<IValueArray>(), NO_PARAMETER, vl::reflection::description::IValueArray::Create)
|
||||
CLASS_MEMBER_EXTERNALCTOR(Ptr<IValueArray>(Ptr<IValueReadonlyList>), { L"values" }, vl::reflection::description::IValueArray::Create)
|
||||
|
||||
CLASS_MEMBER_METHOD(Set, { L"index" _ L"value" })
|
||||
CLASS_MEMBER_METHOD(Resize, { L"size" })
|
||||
END_INTERFACE_MEMBER(IValueArray)
|
||||
|
||||
BEGIN_INTERFACE_MEMBER(IValueList)
|
||||
CLASS_MEMBER_BASE(IValueReadonlyList)
|
||||
CLASS_MEMBER_EXTERNALCTOR(Ptr<IValueList>(), NO_PARAMETER, vl::reflection::description::IValueList::Create)
|
||||
|
||||
+1316
-1214
File diff suppressed because it is too large
Load Diff
@@ -585,7 +585,7 @@ RegexTokens
|
||||
{
|
||||
}
|
||||
|
||||
IEnumerator<RegexToken>* RegexTokens::CreateEnumerator()const
|
||||
IEnumerator<RegexToken>* RegexTokens::CreateEnumerator() const
|
||||
{
|
||||
return new RegexTokenEnumerator(pure, stateTokens, code.Buffer(), codeIndex, proc);
|
||||
}
|
||||
|
||||
+4
-4
@@ -635,7 +635,7 @@ Tokenizer
|
||||
/// }
|
||||
/// }
|
||||
/// ]]></example>
|
||||
class RegexTokens : public Object, public collections::IEnumerable<RegexToken>
|
||||
class RegexTokens : public collections::EnumerableBase<RegexToken>
|
||||
{
|
||||
friend class RegexLexer;
|
||||
protected:
|
||||
@@ -649,8 +649,8 @@ Tokenizer
|
||||
public:
|
||||
RegexTokens(const RegexTokens& tokens);
|
||||
~RegexTokens();
|
||||
|
||||
collections::IEnumerator<RegexToken>* CreateEnumerator()const;
|
||||
|
||||
collections::IEnumerator<RegexToken>* CreateEnumerator() const override;
|
||||
|
||||
/// <summary>Copy all tokens.</summary>
|
||||
/// <param name="tokens">Returns all tokens.</param>
|
||||
@@ -936,7 +936,7 @@ Tokenizer
|
||||
/// RegexLexer lexer(tokenDefs, proc);
|
||||
/// RegexLexerColorizer colorizer = lexer.Colorize();
|
||||
///
|
||||
/// /// for (auto [line, index] : indexed(From(lines)))
|
||||
/// for (auto [line, index] : indexed(From(lines)))
|
||||
/// {
|
||||
/// Console::WriteLine(L"Begin line " + itow(index));
|
||||
/// argument.processingText = line;
|
||||
|
||||
@@ -9512,10 +9512,12 @@ IsExpressionDependOnExpectedType(Expression)
|
||||
{
|
||||
public:
|
||||
WfLexicalScopeManager* manager;
|
||||
bool hasExpectedType;
|
||||
bool result = false;
|
||||
|
||||
IsExpressionDependOnExpectedTypeVisitor(WfLexicalScopeManager* _manager)
|
||||
IsExpressionDependOnExpectedTypeVisitor(WfLexicalScopeManager* _manager, bool _hasExpectedType)
|
||||
:manager(_manager)
|
||||
, hasExpectedType(_hasExpectedType)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -9576,7 +9578,7 @@ IsExpressionDependOnExpectedType(Expression)
|
||||
|
||||
void Visit(WfConstructorExpression* node)override
|
||||
{
|
||||
if (node->arguments.Count() == 0)
|
||||
if (hasExpectedType || node->arguments.Count() == 0)
|
||||
{
|
||||
result = true;
|
||||
}
|
||||
@@ -9613,9 +9615,9 @@ IsExpressionDependOnExpectedType(Expression)
|
||||
}
|
||||
};
|
||||
|
||||
bool IsExpressionDependOnExpectedType(WfLexicalScopeManager* manager, Ptr<WfExpression> expression)
|
||||
bool IsExpressionDependOnExpectedType(WfLexicalScopeManager* manager, Ptr<WfExpression> expression, bool hasExpectedType)
|
||||
{
|
||||
IsExpressionDependOnExpectedTypeVisitor visitor(manager);
|
||||
IsExpressionDependOnExpectedTypeVisitor visitor(manager, hasExpectedType);
|
||||
expression->Accept(&visitor);
|
||||
return visitor.result;
|
||||
}
|
||||
@@ -11081,7 +11083,7 @@ Helper Functions
|
||||
List<Ptr<ITypeInfo>> types;
|
||||
for (auto argument : arguments)
|
||||
{
|
||||
if (!argument || IsExpressionDependOnExpectedType(manager, argument))
|
||||
if (!argument || IsExpressionDependOnExpectedType(manager, argument, true))
|
||||
{
|
||||
resolvables.Add(false);
|
||||
types.Add(nullptr);
|
||||
@@ -12631,6 +12633,12 @@ ValidateSemantic(Expression)
|
||||
indexType = TypeInfoRetriver<vint>::CreateTypeInfo();
|
||||
resultType = CopyTypeInfo(genericType->GetGenericArgument(0));
|
||||
}
|
||||
else if (classType->GetTypeDescriptor() == description::GetTypeDescriptor<IValueArray>())
|
||||
{
|
||||
indexType = TypeInfoRetriver<vint>::CreateTypeInfo();
|
||||
resultType = CopyTypeInfo(genericType->GetGenericArgument(0));
|
||||
leftValue = true;
|
||||
}
|
||||
else if (classType->GetTypeDescriptor() == description::GetTypeDescriptor<IValueList>())
|
||||
{
|
||||
indexType = TypeInfoRetriver<vint>::CreateTypeInfo();
|
||||
@@ -12666,6 +12674,12 @@ ValidateSemantic(Expression)
|
||||
indexType = TypeInfoRetriver<vint>::CreateTypeInfo();
|
||||
resultType = TypeInfoRetriver<Value>::CreateTypeInfo();
|
||||
}
|
||||
else if (genericType->GetTypeDescriptor() == description::GetTypeDescriptor<IValueArray>())
|
||||
{
|
||||
indexType = TypeInfoRetriver<vint>::CreateTypeInfo();
|
||||
resultType = TypeInfoRetriver<Value>::CreateTypeInfo();
|
||||
leftValue = true;
|
||||
}
|
||||
else if (genericType->GetTypeDescriptor() == description::GetTypeDescriptor<IValueList>())
|
||||
{
|
||||
indexType = TypeInfoRetriver<vint>::CreateTypeInfo();
|
||||
@@ -12767,7 +12781,7 @@ ValidateSemantic(Expression)
|
||||
else if (node->op == WfBinaryOperator::FailedThen)
|
||||
{
|
||||
Ptr<ITypeInfo> firstType = GetExpressionType(manager, node->first, 0);
|
||||
bool depend = IsExpressionDependOnExpectedType(manager, node->second);
|
||||
bool depend = IsExpressionDependOnExpectedType(manager, node->second, firstType);
|
||||
Ptr<ITypeInfo> secondType = GetExpressionType(manager, node->second, (depend ? firstType : nullptr));
|
||||
|
||||
if (firstType && secondType)
|
||||
@@ -12978,8 +12992,8 @@ ValidateSemantic(Expression)
|
||||
}
|
||||
else
|
||||
{
|
||||
bool resolveFirst = !IsExpressionDependOnExpectedType(manager, node->trueBranch);
|
||||
bool resolveSecond = !IsExpressionDependOnExpectedType(manager, node->falseBranch);
|
||||
bool resolveFirst = !IsExpressionDependOnExpectedType(manager, node->trueBranch, false);
|
||||
bool resolveSecond = !IsExpressionDependOnExpectedType(manager, node->falseBranch, false);
|
||||
|
||||
if (resolveFirst == resolveSecond)
|
||||
{
|
||||
@@ -13182,6 +13196,7 @@ ValidateSemantic(Expression)
|
||||
}
|
||||
}
|
||||
else if (genericType->GetTypeDescriptor() == description::GetTypeDescriptor<IValueObservableList>()
|
||||
|| genericType->GetTypeDescriptor() == description::GetTypeDescriptor<IValueArray>()
|
||||
|| genericType->GetTypeDescriptor() == description::GetTypeDescriptor<IValueList>()
|
||||
|| genericType->GetTypeDescriptor() == description::GetTypeDescriptor<IValueReadonlyList>()
|
||||
|| genericType->GetTypeDescriptor() == description::GetTypeDescriptor<IValueEnumerable>())
|
||||
@@ -13250,9 +13265,29 @@ ValidateSemantic(Expression)
|
||||
if (keyType)
|
||||
{
|
||||
Ptr<ITypeInfo> classType;
|
||||
if (expectedType && expectedType->GetTypeDescriptor()==description::GetTypeDescriptor<IValueObservableList>())
|
||||
if (expectedType)
|
||||
{
|
||||
classType = MakePtr<TypeDescriptorTypeInfo>(description::GetTypeDescriptor<IValueObservableList>(), TypeInfoHint::Normal);
|
||||
switch (expectedType->GetHint())
|
||||
{
|
||||
case TypeInfoHint::ObservableList:
|
||||
classType = MakePtr<TypeDescriptorTypeInfo>(description::GetTypeDescriptor<IValueObservableList>(), expectedType->GetHint());
|
||||
break;
|
||||
case TypeInfoHint::Array:
|
||||
classType = MakePtr<TypeDescriptorTypeInfo>(description::GetTypeDescriptor<IValueArray>(), expectedType->GetHint());
|
||||
break;
|
||||
case TypeInfoHint::Normal:
|
||||
if (expectedType->GetTypeDescriptor() == description::GetTypeDescriptor<IValueObservableList>())
|
||||
{
|
||||
classType = MakePtr<TypeDescriptorTypeInfo>(description::GetTypeDescriptor<IValueObservableList>(), expectedType->GetHint());
|
||||
}
|
||||
else
|
||||
{
|
||||
classType = MakePtr<TypeDescriptorTypeInfo>(description::GetTypeDescriptor<IValueList>(), expectedType->GetHint());
|
||||
}
|
||||
break;
|
||||
default:
|
||||
classType = MakePtr<TypeDescriptorTypeInfo>(description::GetTypeDescriptor<IValueList>(), expectedType->GetHint());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -14450,7 +14485,7 @@ ValidateSemantic(Statement)
|
||||
for (auto switchCase : node->caseBranches)
|
||||
{
|
||||
Ptr<ITypeInfo> caseType;
|
||||
if (IsExpressionDependOnExpectedType(manager, switchCase->expression))
|
||||
if (IsExpressionDependOnExpectedType(manager, switchCase->expression, type))
|
||||
{
|
||||
caseType = GetExpressionType(manager, switchCase->expression, type);
|
||||
}
|
||||
@@ -20149,7 +20184,25 @@ WfGenerateExpressionVisitor
|
||||
}
|
||||
else
|
||||
{
|
||||
if (result.type->GetTypeDescriptor() == description::GetTypeDescriptor<IValueList>())
|
||||
if (result.type->GetTypeDescriptor() == description::GetTypeDescriptor<IValueArray>())
|
||||
{
|
||||
auto elementType = result.type->GetElementType()->GetGenericArgument(0);
|
||||
writer.WriteString(L"(::vl::__vwsn::CreateArray().Resize(");
|
||||
writer.WriteString(itow(node->arguments.Count()));
|
||||
writer.WriteString(L")");
|
||||
|
||||
for (auto&& [argument, index] : indexed(node->arguments))
|
||||
{
|
||||
writer.WriteString(L".Set(");
|
||||
writer.WriteString(itow(index));
|
||||
writer.WriteString(L", ");
|
||||
Call(argument->key);
|
||||
writer.WriteString(L")");
|
||||
}
|
||||
|
||||
writer.WriteString(L").list");
|
||||
}
|
||||
else if (result.type->GetTypeDescriptor() == description::GetTypeDescriptor<IValueList>())
|
||||
{
|
||||
auto elementType = result.type->GetElementType()->GetGenericArgument(0);
|
||||
writer.WriteString(L"(::vl::__vwsn::CreateList()");
|
||||
@@ -25802,14 +25855,23 @@ GenerateInstructions(Expression)
|
||||
}
|
||||
else if (result.type->GetTypeDescriptor() == description::GetTypeDescriptor<IValueEnumerable>()
|
||||
|| result.type->GetTypeDescriptor() == description::GetTypeDescriptor<IValueReadonlyList>()
|
||||
|| result.type->GetTypeDescriptor() == description::GetTypeDescriptor<IValueList>())
|
||||
|| result.type->GetTypeDescriptor() == description::GetTypeDescriptor<IValueArray>())
|
||||
{
|
||||
Ptr<ITypeInfo> keyType = CopyTypeInfo(result.type->GetElementType()->GetGenericArgument(0));
|
||||
for (auto argument : From(node->arguments).Reverse())
|
||||
{
|
||||
GenerateExpressionInstructions(context, argument->key, keyType);
|
||||
}
|
||||
INSTRUCTION(Ins::CreateArray(node->arguments.Count()));
|
||||
INSTRUCTION(Ins::NewArray(node->arguments.Count()));
|
||||
}
|
||||
else if (result.type->GetTypeDescriptor() == description::GetTypeDescriptor<IValueList>())
|
||||
{
|
||||
Ptr<ITypeInfo> keyType = CopyTypeInfo(result.type->GetElementType()->GetGenericArgument(0));
|
||||
for (auto argument : From(node->arguments).Reverse())
|
||||
{
|
||||
GenerateExpressionInstructions(context, argument->key, keyType);
|
||||
}
|
||||
INSTRUCTION(Ins::NewList(node->arguments.Count()));
|
||||
}
|
||||
else if (result.type->GetTypeDescriptor() == description::GetTypeDescriptor<IValueObservableList>())
|
||||
{
|
||||
@@ -25818,7 +25880,7 @@ GenerateInstructions(Expression)
|
||||
{
|
||||
GenerateExpressionInstructions(context, argument->key, keyType);
|
||||
}
|
||||
INSTRUCTION(Ins::CreateObservableList(node->arguments.Count()));
|
||||
INSTRUCTION(Ins::NewObservableList(node->arguments.Count()));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -25829,7 +25891,7 @@ GenerateInstructions(Expression)
|
||||
GenerateExpressionInstructions(context, argument->key, keyType);
|
||||
GenerateExpressionInstructions(context, argument->value, valueType);
|
||||
}
|
||||
INSTRUCTION(Ins::CreateMap(node->arguments.Count() * 2));
|
||||
INSTRUCTION(Ins::NewDictionary(node->arguments.Count() * 2));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ DEVELOPER: Zihan Chen(vczh)
|
||||
#include "VlppWorkflowLibrary.h"
|
||||
#include "VlppWorkflowRuntime.h"
|
||||
#include "VlppReflection.h"
|
||||
#include "VlppOS.h"
|
||||
#include "Vlpp.h"
|
||||
#include "VlppOS.h"
|
||||
#include "VlppRegex.h"
|
||||
#include "VlppParser.h"
|
||||
|
||||
@@ -4267,7 +4267,7 @@ Type Analyzing
|
||||
|
||||
extern Ptr<reflection::description::ITypeInfo> CreateTypeInfoFromMethodInfo(reflection::description::IMethodInfo* info);
|
||||
|
||||
extern bool IsExpressionDependOnExpectedType(WfLexicalScopeManager* manager, Ptr<WfExpression> expression);
|
||||
extern bool IsExpressionDependOnExpectedType(WfLexicalScopeManager* manager, Ptr<WfExpression> expression, bool hasExpectedType);
|
||||
extern WString GetExpressionName(Ptr<WfExpression> expression);
|
||||
extern void SearchOrderedName(WfLexicalScope* scope, Ptr<WfExpression> expression, collections::SortedList<vint>& names);
|
||||
|
||||
|
||||
@@ -13,6 +13,20 @@ namespace vl
|
||||
namespace __vwsn
|
||||
{
|
||||
|
||||
/***********************************************************************
|
||||
CreateArray
|
||||
***********************************************************************/
|
||||
|
||||
CreateArray::CreateArray()
|
||||
:list(IValueArray::Create())
|
||||
{
|
||||
}
|
||||
|
||||
CreateArray::CreateArray(Ptr<IValueArray> _list)
|
||||
:list(_list)
|
||||
{
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
CreateList
|
||||
***********************************************************************/
|
||||
|
||||
@@ -3,8 +3,8 @@ THIS FILE IS AUTOMATICALLY GENERATED. DO NOT MODIFY
|
||||
DEVELOPER: Zihan Chen(vczh)
|
||||
***********************************************************************/
|
||||
#include "VlppReflection.h"
|
||||
#include "VlppOS.h"
|
||||
#include "Vlpp.h"
|
||||
#include "VlppOS.h"
|
||||
#include "VlppRegex.h"
|
||||
|
||||
/***********************************************************************
|
||||
@@ -149,16 +149,16 @@ namespace vl
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
reflection::description::Value Box(const T& value)
|
||||
reflection::description::Value Box(T&& value)
|
||||
{
|
||||
return reflection::description::BoxParameter<std::remove_cvref_t<T>>(const_cast<T&>(value));
|
||||
return reflection::description::BoxParameter(value);
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
T Unbox(const reflection::description::Value& value)
|
||||
{
|
||||
T result;
|
||||
reflection::description::UnboxParameter<std::remove_cvref_t<T>>(value, result);
|
||||
reflection::description::UnboxParameter(value, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -224,23 +224,46 @@ namespace vl
|
||||
}
|
||||
|
||||
template<typename T, typename U>
|
||||
Ptr<T> UnboxCollection(const U& value)
|
||||
Ptr<T> UnboxCollection(U&& value)
|
||||
{
|
||||
auto boxedValue = reflection::description::BoxParameter<U>(const_cast<U&>(value));
|
||||
auto boxedValue = reflection::description::BoxParameter(value);
|
||||
Ptr<T> result;
|
||||
reflection::description::UnboxParameter<Ptr<T>>(boxedValue, result);
|
||||
reflection::description::UnboxParameter(boxedValue, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
template<typename T, typename U>
|
||||
Ptr<T> UnboxCollection(const collections::LazyList<U>& value)
|
||||
{
|
||||
auto boxedValue = reflection::description::BoxParameter<collections::LazyList<U>>(const_cast<collections::LazyList<U>&>(value));
|
||||
auto boxedValue = reflection::description::BoxParameter(const_cast<collections::LazyList<U>&>(value));
|
||||
Ptr<T> result;
|
||||
reflection::description::UnboxParameter<Ptr<T>>(boxedValue, result);
|
||||
reflection::description::UnboxParameter(boxedValue, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
struct CreateArray
|
||||
{
|
||||
using IValueArray = reflection::description::IValueArray;
|
||||
|
||||
Ptr<IValueArray> list;
|
||||
|
||||
CreateArray();
|
||||
CreateArray(Ptr<IValueArray> _list);
|
||||
|
||||
CreateArray Resize(vint size)
|
||||
{
|
||||
list->Resize(size);
|
||||
return{ list };
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
CreateArray Set(vint index, const T& value)
|
||||
{
|
||||
list->Set(index, Box(value));
|
||||
return{ list };
|
||||
}
|
||||
};
|
||||
|
||||
struct CreateList
|
||||
{
|
||||
using IValueList = reflection::description::IValueList;
|
||||
|
||||
@@ -3627,7 +3627,23 @@ WfRuntimeThreadContext
|
||||
}
|
||||
return WfRuntimeExecutionAction::ExitStackFrame;
|
||||
}
|
||||
case WfInsCode::CreateArray:
|
||||
case WfInsCode::NewArray:
|
||||
{
|
||||
auto list = IValueArray::Create();
|
||||
if (ins.countParameter > 0)
|
||||
{
|
||||
list->Resize(ins.countParameter);
|
||||
Value operand;
|
||||
for (vint i = 0; i < ins.countParameter; i++)
|
||||
{
|
||||
CONTEXT_ACTION(PopValue(operand), L"failed to pop a value from the stack.");
|
||||
list->Set(i, operand);
|
||||
}
|
||||
}
|
||||
CONTEXT_ACTION(PushValue(Value::From(list)), L"failed to push a value to the stack.");
|
||||
return WfRuntimeExecutionAction::ExecuteInstruction;
|
||||
}
|
||||
case WfInsCode::NewList:
|
||||
{
|
||||
auto list = IValueList::Create();
|
||||
Value operand;
|
||||
@@ -3639,19 +3655,19 @@ WfRuntimeThreadContext
|
||||
CONTEXT_ACTION(PushValue(Value::From(list)), L"failed to push a value to the stack.");
|
||||
return WfRuntimeExecutionAction::ExecuteInstruction;
|
||||
}
|
||||
case WfInsCode::CreateObservableList:
|
||||
{
|
||||
auto list = IValueObservableList::Create();
|
||||
Value operand;
|
||||
for (vint i = 0; i < ins.countParameter; i++)
|
||||
case WfInsCode::NewObservableList:
|
||||
{
|
||||
CONTEXT_ACTION(PopValue(operand), L"failed to pop a value from the stack.");
|
||||
list->Add(operand);
|
||||
auto list = IValueObservableList::Create();
|
||||
Value operand;
|
||||
for (vint i = 0; i < ins.countParameter; i++)
|
||||
{
|
||||
CONTEXT_ACTION(PopValue(operand), L"failed to pop a value from the stack.");
|
||||
list->Add(operand);
|
||||
}
|
||||
CONTEXT_ACTION(PushValue(Value::From(list)), L"failed to push a value to the stack.");
|
||||
return WfRuntimeExecutionAction::ExecuteInstruction;
|
||||
}
|
||||
CONTEXT_ACTION(PushValue(Value::From(list)), L"failed to push a value to the stack.");
|
||||
return WfRuntimeExecutionAction::ExecuteInstruction;
|
||||
}
|
||||
case WfInsCode::CreateMap:
|
||||
case WfInsCode::NewDictionary:
|
||||
{
|
||||
auto map = IValueDictionary::Create();
|
||||
Value key, value;
|
||||
|
||||
@@ -4,8 +4,8 @@ DEVELOPER: Zihan Chen(vczh)
|
||||
***********************************************************************/
|
||||
#include "VlppParser.h"
|
||||
#include "VlppReflection.h"
|
||||
#include "VlppOS.h"
|
||||
#include "Vlpp.h"
|
||||
#include "VlppOS.h"
|
||||
#include "VlppRegex.h"
|
||||
|
||||
/***********************************************************************
|
||||
@@ -53,9 +53,10 @@ Instruction
|
||||
Duplicate, // count : () -> Value ; copy stack[stack.Count()-1-count]
|
||||
Pop, // : Value -> () ;
|
||||
Return, // : Value -> Value ; (exit function)
|
||||
CreateArray, // count : Value-count, ..., Value-1 -> <array> ; {1 2 3} -> <3 2 1>
|
||||
CreateObservableList, // count : Value-count, ..., Value-1 -> <observable-list> ; {1 2 3} -> <3 2 1>
|
||||
CreateMap, // count : Value-count*2, ..., Value-1 -> <map> ; {1:2 3:4} -> <3 4 1 2>
|
||||
NewArray, // count : Value-count, ..., Value-1 -> <array> ; {1 2 3} -> <3 2 1>
|
||||
NewList, // count : Value-count, ..., Value-1 -> <array> ; {1 2 3} -> <3 2 1>
|
||||
NewObservableList, // count : Value-count, ..., Value-1 -> <observable-list> ; {1 2 3} -> <3 2 1>
|
||||
NewDictionary, // count : Value-count*2, ..., Value-1 -> <map> ; {1:2 3:4} -> <3 4 1 2>
|
||||
CreateClosureContext, // count : Value-1, ..., Value-count -> <closure-context> ;
|
||||
CreateClosure, // : <closure-context>, Value-function-index -> <closure> ;
|
||||
CreateInterface, // IMethodInfo*, count : <closure-context>, Value-count, ..., Value-1 -> <map> ; {"Get":a "Set":b} -> new TInterface(InterfaceProxy^)
|
||||
@@ -126,9 +127,10 @@ Instruction
|
||||
APPLY_COUNT(Duplicate)\
|
||||
APPLY(Pop)\
|
||||
APPLY(Return)\
|
||||
APPLY_COUNT(CreateArray)\
|
||||
APPLY_COUNT(CreateObservableList)\
|
||||
APPLY_COUNT(CreateMap)\
|
||||
APPLY_COUNT(NewArray)\
|
||||
APPLY_COUNT(NewList)\
|
||||
APPLY_COUNT(NewObservableList)\
|
||||
APPLY_COUNT(NewDictionary)\
|
||||
APPLY_COUNT(CreateClosureContext)\
|
||||
APPLY(CreateClosure)\
|
||||
APPLY_METHOD_COUNT(CreateInterface)\
|
||||
@@ -1815,7 +1817,7 @@ Helper Functions
|
||||
{
|
||||
auto proxy = LoadFunction(context, name);
|
||||
Func<TFunction> function;
|
||||
reflection::description::UnboxParameter<Func<TFunction>>(reflection::description::Value::From(proxy), function);
|
||||
reflection::description::UnboxParameter(reflection::description::Value::From(proxy), function);
|
||||
return function;
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user