mirror of
https://github.com/vczh-libraries/Release.git
synced 2026-05-20 11:31:28 +08:00
[NOT READY] Update release
This commit is contained in:
+350
-161
File diff suppressed because it is too large
Load Diff
+85
-35
@@ -4345,7 +4345,7 @@ Resource Structure
|
||||
void LoadResourceFolderFromBinary(DelayLoadingList& delayLoadings, stream::internal::ContextFreeReader& reader, collections::List<WString>& typeNames, GuiResourceError::List& errors);
|
||||
void SaveResourceFolderToBinary(stream::internal::ContextFreeWriter& writer, collections::List<WString>& typeNames);
|
||||
void PrecompileResourceFolder(GuiResourcePrecompileContext& context, IGuiResourcePrecompileCallback* callback, GuiResourceError::List& errors);
|
||||
void InitializeResourceFolder(GuiResourceInitializeContext& context);
|
||||
void InitializeResourceFolder(GuiResourceInitializeContext& context, GuiResourceError::List& errors);
|
||||
void ImportFromUri(const WString& uri, GuiResourceTextPos position, GuiResourceError::List& errors);
|
||||
public:
|
||||
/// <summary>Create a resource folder.</summary>
|
||||
@@ -4499,7 +4499,8 @@ Resource
|
||||
|
||||
/// <summary>Initialize a precompiled resource.</summary>
|
||||
/// <param name="usage">In which role an application is initializing this resource.</param>
|
||||
void Initialize(GuiResourceUsage usage);
|
||||
/// <param name="errors">All collected errors during initializing a resource.</param>
|
||||
void Initialize(GuiResourceUsage usage, GuiResourceError::List& errors);
|
||||
|
||||
/// <summary>Get a contained document model using a path like "Packages\Application\Name". If the path does not exists or the type does not match, an exception will be thrown.</summary>
|
||||
/// <returns>The containd resource object.</returns>
|
||||
@@ -4718,7 +4719,7 @@ Resource Type Resolver
|
||||
/// <summary>Initialize the resource item.</summary>
|
||||
/// <param name="resource">The resource to initializer.</param>
|
||||
/// <param name="context">The context for initializing.</param>
|
||||
virtual void Initialize(Ptr<GuiResourceItem> resource, GuiResourceInitializeContext& context) = 0;
|
||||
virtual void Initialize(Ptr<GuiResourceItem> resource, GuiResourceInitializeContext& context, GuiResourceError::List& errors) = 0;
|
||||
};
|
||||
|
||||
/// <summary>Represents a symbol type for loading a resource without a preload type.</summary>
|
||||
@@ -8150,6 +8151,24 @@ namespace vl
|
||||
Basic Construction
|
||||
***********************************************************************/
|
||||
|
||||
/// <summary>
|
||||
/// A helper object to test if a control has been deleted or not.
|
||||
/// </summary>
|
||||
class GuiDisposedFlag : public Object, public Description<GuiDisposedFlag>
|
||||
{
|
||||
friend class GuiControl;
|
||||
protected:
|
||||
GuiControl* owner = nullptr;
|
||||
bool disposed = false;
|
||||
|
||||
void SetDisposed();
|
||||
public:
|
||||
GuiDisposedFlag(GuiControl* _owner);
|
||||
~GuiDisposedFlag();
|
||||
|
||||
bool IsDisposed();
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// The base class of all controls.
|
||||
/// When the control is destroyed, it automatically destroys sub controls, and the bounds composition from the style controller.
|
||||
@@ -8174,6 +8193,10 @@ Basic Construction
|
||||
theme::ThemeName controlThemeName;
|
||||
ControlTemplatePropertyType controlTemplate;
|
||||
templates::GuiControlTemplate* controlTemplateObject = nullptr;
|
||||
Ptr<GuiDisposedFlag> disposedFlag;
|
||||
|
||||
public:
|
||||
Ptr<GuiDisposedFlag> GetDisposedFlag();
|
||||
|
||||
protected:
|
||||
compositions::GuiBoundsComposition* boundsComposition = nullptr;
|
||||
@@ -8192,7 +8215,8 @@ Basic Construction
|
||||
bool isVisible = true;
|
||||
WString alt;
|
||||
WString text;
|
||||
FontProperties font;
|
||||
Nullable<FontProperties> font;
|
||||
FontProperties displayFont;
|
||||
description::Value context;
|
||||
compositions::IGuiAltActionHost* activatingAltHost = nullptr;
|
||||
ControlServiceMap controlServices;
|
||||
@@ -8203,8 +8227,6 @@ Basic Construction
|
||||
GuiControl* tooltipControl = nullptr;
|
||||
vint tooltipWidth = 0;
|
||||
|
||||
Ptr<bool> flagDisposed;
|
||||
|
||||
virtual void BeforeControlTemplateUninstalled();
|
||||
virtual void AfterControlTemplateInstalled(bool initialize);
|
||||
virtual void CheckAndStoreControlTemplate(templates::GuiControlTemplate* value);
|
||||
@@ -8218,6 +8240,7 @@ Basic Construction
|
||||
virtual void OnRenderTargetChanged(elements::IGuiGraphicsRenderTarget* renderTarget);
|
||||
virtual void OnBeforeReleaseGraphicsHost();
|
||||
virtual void UpdateVisuallyEnabled();
|
||||
virtual void UpdateDisplayFont();
|
||||
void OnGotFocus(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
void OnLostFocus(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
void SetFocusableComposition(compositions::GuiGraphicsComposition* value);
|
||||
@@ -8264,6 +8287,8 @@ Basic Construction
|
||||
compositions::GuiNotifyEvent TextChanged;
|
||||
/// <summary>Font changed event. This event will be raised when the font of the control is changed.</summary>
|
||||
compositions::GuiNotifyEvent FontChanged;
|
||||
/// <summary>Display font changed event. This event will be raised when the display font of the control is changed.</summary>
|
||||
compositions::GuiNotifyEvent DisplayFontChanged;
|
||||
/// <summary>Context changed event. This event will be raised when the font of the control is changed.</summary>
|
||||
compositions::GuiNotifyEvent ContextChanged;
|
||||
|
||||
@@ -8368,12 +8393,15 @@ Basic Construction
|
||||
/// <summary>Set the text to display on the control.</summary>
|
||||
/// <param name="value">The text to display on the control.</param>
|
||||
virtual void SetText(const WString& value);
|
||||
/// <summary>Get the font to render the text.</summary>
|
||||
/// <summary>Get the font of this control.</summary>
|
||||
/// <returns>The font of this control.</returns>
|
||||
virtual const Nullable<FontProperties>& GetFont();
|
||||
/// <summary>Set the font of this control.</summary>
|
||||
/// <param name="value">The font of this control.</param>
|
||||
virtual void SetFont(const Nullable<FontProperties>& value);
|
||||
/// <summary>Get the font to render the text. If the font of this control is null, then the display font is either the parent control's display font, or the system's default font when there is no parent control.</summary>
|
||||
/// <returns>The font to render the text.</returns>
|
||||
virtual const FontProperties& GetFont();
|
||||
/// <summary>Set the font to render the text.</summary>
|
||||
/// <param name="value">The font to render the text.</param>
|
||||
virtual void SetFont(const FontProperties& value);
|
||||
virtual const FontProperties& GetDisplayFont();
|
||||
/// <summary>Get the context of this control. The control template and all item templates (if it has) will see this context property.</summary>
|
||||
/// <returns>The context of this context.</returns>
|
||||
virtual description::Value GetContext();
|
||||
@@ -9512,10 +9540,11 @@ IGuiResourceManager
|
||||
class IGuiResourceManager : public IDescriptable, public Description<IGuiResourceManager>
|
||||
{
|
||||
public:
|
||||
virtual bool SetResource(Ptr<GuiResource> resource, GuiResourceUsage usage = GuiResourceUsage::DataOnly) = 0;
|
||||
virtual void SetResource(Ptr<GuiResource> resource, GuiResourceError::List& errors, GuiResourceUsage usage = GuiResourceUsage::DataOnly) = 0;
|
||||
virtual Ptr<GuiResource> GetResource(const WString& name) = 0;
|
||||
virtual Ptr<GuiResource> GetResourceFromClassName(const WString& classFullName) = 0;
|
||||
virtual void UnloadResource(const WString& name) = 0;
|
||||
virtual void LoadResourceOrPending(stream::IStream& stream, GuiResourceError::List& errors, GuiResourceUsage usage = GuiResourceUsage::DataOnly) = 0;
|
||||
virtual void LoadResourceOrPending(stream::IStream& stream, GuiResourceUsage usage = GuiResourceUsage::DataOnly) = 0;
|
||||
virtual void GetPendingResourceNames(collections::List<WString>& names) = 0;
|
||||
};
|
||||
@@ -11010,12 +11039,18 @@ Host
|
||||
{
|
||||
typedef collections::List<GuiGraphicsComposition*> CompositionList;
|
||||
typedef GuiGraphicsComposition::GraphicsHostRecord HostRecord;
|
||||
typedef collections::Pair<DescriptableObject*, vint> ProcKey;
|
||||
typedef collections::List<Func<void()>> ProcList;
|
||||
typedef collections::Dictionary<ProcKey, Func<void()>> ProcMap;
|
||||
public:
|
||||
static const vuint64_t CaretInterval = 500;
|
||||
|
||||
protected:
|
||||
HostRecord hostRecord;
|
||||
bool supressPaint = false;
|
||||
bool needRender = true;
|
||||
ProcList afterRenderProcs;
|
||||
ProcMap afterRenderKeyedProcs;
|
||||
|
||||
GuiAltActionManager* altActionManager = nullptr;
|
||||
GuiTabActionManager* tabActionManager = nullptr;
|
||||
@@ -11088,6 +11123,10 @@ Host
|
||||
void Render(bool forceUpdate);
|
||||
/// <summary>Request a rendering</summary>
|
||||
void RequestRender();
|
||||
/// <summary>Invoke a specified function after rendering.</summary>
|
||||
/// <param name="proc">The specified function.</param>
|
||||
/// <param name="key">A key to cancel a previous binded key if not null.</param>
|
||||
void InvokeAfterRendering(const Func<void()>& proc, ProcKey key = { nullptr,-1 });
|
||||
|
||||
/// <summary>Invalidte the internal tab order control list. Next time when TAB is pressed it will be rebuilt.</summary>
|
||||
void InvalidateTabOrderCache();
|
||||
@@ -11592,6 +11631,8 @@ Scroll View
|
||||
bool horizontalAlwaysVisible = true;
|
||||
bool verticalAlwaysVisible = true;
|
||||
|
||||
void UpdateDisplayFont()override;
|
||||
|
||||
void OnContainerBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
void OnHorizontalScroll(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
void OnVerticalScroll(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
@@ -11619,8 +11660,6 @@ Scroll View
|
||||
GuiScrollView(theme::ThemeName themeName);
|
||||
~GuiScrollView();
|
||||
|
||||
virtual void SetFont(const FontProperties& value)override;
|
||||
|
||||
/// <summary>Force to update contents and scroll bars.</summary>
|
||||
void CalculateView();
|
||||
/// <summary>Get the view size.</summary>
|
||||
@@ -12167,6 +12206,17 @@ List Control
|
||||
//-----------------------------------------------------------
|
||||
// Item Layout Interfaces
|
||||
//-----------------------------------------------------------
|
||||
|
||||
/// <summary>EnsureItemVisible result for item arranger.</summary>
|
||||
enum class EnsureItemVisibleResult
|
||||
{
|
||||
/// <summary>The requested item does not exist.</summary>
|
||||
ItemNotExists,
|
||||
/// <summary>The view location is moved.</summary>
|
||||
Moved,
|
||||
/// <summary>The view location is not moved.</summary>
|
||||
NotMoved,
|
||||
};
|
||||
|
||||
/// <summary>Item arranger for a <see cref="GuiListControl"/>. Item arranger decides how to arrange and item controls. When implementing an item arranger, <see cref="IItemArrangerCallback"/> is suggested to use when calculating locations and sizes for item controls.</summary>
|
||||
class IItemArranger : public virtual IItemProviderCallback, public Description<IItemArranger>
|
||||
@@ -12205,9 +12255,9 @@ List Control
|
||||
/// <param name="key">The key direction.</param>
|
||||
virtual vint FindItem(vint itemIndex, compositions::KeyDirection key) = 0;
|
||||
/// <summary>Adjust the view location to make an item visible.</summary>
|
||||
/// <returns>Returns true if this operation succeeded.</returns>
|
||||
/// <returns>Returns the result of this operation.</returns>
|
||||
/// <param name="itemIndex">The item index of the item to be made visible.</param>
|
||||
virtual bool EnsureItemVisible(vint itemIndex) = 0;
|
||||
virtual EnsureItemVisibleResult EnsureItemVisible(vint itemIndex) = 0;
|
||||
/// <summary>Get the adopted size for the view bounds.</summary>
|
||||
/// <returns>The adopted size, making the vids bounds just enough to display several items.</returns>
|
||||
/// <param name="expectedSize">The expected size, to provide a guidance.</param>
|
||||
@@ -12300,9 +12350,9 @@ List Control
|
||||
friend class collections::ArrayBase<Ptr<VisibleStyleHelper>>;
|
||||
collections::Dictionary<ItemStyle*, Ptr<VisibleStyleHelper>> visibleStyles;
|
||||
|
||||
void UpdateDisplayFont()override;
|
||||
void OnClientBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
void OnVisuallyEnabledChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
void OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
void OnContextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
void OnItemMouseEvent(compositions::GuiItemMouseEvent& itemEvent, ItemStyle* style, compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments);
|
||||
void OnItemNotifyEvent(compositions::GuiItemNotifyEvent& itemEvent, ItemStyle* style, compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
@@ -13606,6 +13656,7 @@ ComboBox with GuiListControl
|
||||
templates::GuiTemplate* itemStyleController = nullptr;
|
||||
Ptr<compositions::IGuiGraphicsEventHandler> boundsChangedHandler;
|
||||
|
||||
void UpdateDisplayFont()override;
|
||||
void BeforeControlTemplateUninstalled()override;
|
||||
void AfterControlTemplateInstalled(bool initialize)override;
|
||||
void RemoveStyleController();
|
||||
@@ -13613,7 +13664,6 @@ ComboBox with GuiListControl
|
||||
virtual void DisplaySelectedContent(vint itemIndex);
|
||||
void AdoptSubMenuSize();
|
||||
void OnTextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
void OnFontChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
void OnContextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
void OnVisuallyEnabledChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
void OnAfterSubMenuOpening(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
@@ -13792,7 +13842,7 @@ DateComboBox
|
||||
/// <summary>Selected data changed event.</summary>
|
||||
compositions::GuiNotifyEvent SelectedDateChanged;
|
||||
|
||||
void SetFont(const FontProperties& value)override;
|
||||
void SetFont(const Nullable<FontProperties>& value)override;
|
||||
/// <summary>Get the displayed date.</summary>
|
||||
/// <returns>The date.</returns>
|
||||
const DateTime& GetSelectedDate();
|
||||
@@ -13866,7 +13916,7 @@ Predefined ItemArranger
|
||||
virtual void RearrangeItemBounds();
|
||||
|
||||
virtual void BeginPlaceItem(bool forMoving, Rect newBounds, vint& newStartIndex) = 0;
|
||||
virtual void PlaceItem(bool forMoving, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent) = 0;
|
||||
virtual void PlaceItem(bool forMoving, bool newCreatedStyle, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent) = 0;
|
||||
virtual bool IsItemOutOfViewBounds(vint index, ItemStyleRecord style, Rect bounds, Rect viewBounds) = 0;
|
||||
virtual bool EndPlaceItem(bool forMoving, Rect newBounds, vint newStartIndex) = 0;
|
||||
virtual void InvalidateItemSizeCache() = 0;
|
||||
@@ -13902,7 +13952,7 @@ Predefined ItemArranger
|
||||
void EnsureOffsetForItem(vint itemIndex);
|
||||
|
||||
void BeginPlaceItem(bool forMoving, Rect newBounds, vint& newStartIndex)override;
|
||||
void PlaceItem(bool forMoving, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent)override;
|
||||
void PlaceItem(bool forMoving, bool newCreatedStyle, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent)override;
|
||||
bool IsItemOutOfViewBounds(vint index, ItemStyleRecord style, Rect bounds, Rect viewBounds)override;
|
||||
bool EndPlaceItem(bool forMoving, Rect newBounds, vint newStartIndex)override;
|
||||
void InvalidateItemSizeCache()override;
|
||||
@@ -13915,7 +13965,7 @@ Predefined ItemArranger
|
||||
void OnAttached(GuiListControl::IItemProvider* provider)override;
|
||||
void OnItemModified(vint start, vint count, vint newCount)override;
|
||||
vint FindItem(vint itemIndex, compositions::KeyDirection key)override;
|
||||
bool EnsureItemVisible(vint itemIndex)override;
|
||||
GuiListControl::EnsureItemVisibleResult EnsureItemVisible(vint itemIndex)override;
|
||||
Size GetAdoptedSize(Size expectedSize)override;
|
||||
};
|
||||
|
||||
@@ -13933,7 +13983,7 @@ Predefined ItemArranger
|
||||
virtual vint GetYOffset();
|
||||
|
||||
void BeginPlaceItem(bool forMoving, Rect newBounds, vint& newStartIndex)override;
|
||||
void PlaceItem(bool forMoving, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent)override;
|
||||
void PlaceItem(bool forMoving, bool newCreatedStyle, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent)override;
|
||||
bool IsItemOutOfViewBounds(vint index, ItemStyleRecord style, Rect bounds, Rect viewBounds)override;
|
||||
bool EndPlaceItem(bool forMoving, Rect newBounds, vint newStartIndex)override;
|
||||
void InvalidateItemSizeCache()override;
|
||||
@@ -13944,7 +13994,7 @@ Predefined ItemArranger
|
||||
~FixedHeightItemArranger();
|
||||
|
||||
vint FindItem(vint itemIndex, compositions::KeyDirection key)override;
|
||||
bool EnsureItemVisible(vint itemIndex)override;
|
||||
GuiListControl::EnsureItemVisibleResult EnsureItemVisible(vint itemIndex)override;
|
||||
Size GetAdoptedSize(Size expectedSize)override;
|
||||
};
|
||||
|
||||
@@ -13960,7 +14010,7 @@ Predefined ItemArranger
|
||||
void CalculateRange(Size itemSize, Rect bounds, vint count, vint& start, vint& end);
|
||||
|
||||
void BeginPlaceItem(bool forMoving, Rect newBounds, vint& newStartIndex)override;
|
||||
void PlaceItem(bool forMoving, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent)override;
|
||||
void PlaceItem(bool forMoving, bool newCreatedStyle, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent)override;
|
||||
bool IsItemOutOfViewBounds(vint index, ItemStyleRecord style, Rect bounds, Rect viewBounds)override;
|
||||
bool EndPlaceItem(bool forMoving, Rect newBounds, vint newStartIndex)override;
|
||||
void InvalidateItemSizeCache()override;
|
||||
@@ -13971,7 +14021,7 @@ Predefined ItemArranger
|
||||
~FixedSizeMultiColumnItemArranger();
|
||||
|
||||
vint FindItem(vint itemIndex, compositions::KeyDirection key)override;
|
||||
bool EnsureItemVisible(vint itemIndex)override;
|
||||
GuiListControl::EnsureItemVisibleResult EnsureItemVisible(vint itemIndex)override;
|
||||
Size GetAdoptedSize(Size expectedSize)override;
|
||||
};
|
||||
|
||||
@@ -13989,7 +14039,7 @@ Predefined ItemArranger
|
||||
void CalculateRange(vint itemHeight, Rect bounds, vint& rows, vint& startColumn);
|
||||
|
||||
void BeginPlaceItem(bool forMoving, Rect newBounds, vint& newStartIndex)override;
|
||||
void PlaceItem(bool forMoving, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent)override;
|
||||
void PlaceItem(bool forMoving, bool newCreatedStyle, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent)override;
|
||||
bool IsItemOutOfViewBounds(vint index, ItemStyleRecord style, Rect bounds, Rect viewBounds)override;
|
||||
bool EndPlaceItem(bool forMoving, Rect newBounds, vint newStartIndex)override;
|
||||
void InvalidateItemSizeCache()override;
|
||||
@@ -14000,7 +14050,7 @@ Predefined ItemArranger
|
||||
~FixedHeightMultiColumnItemArranger();
|
||||
|
||||
vint FindItem(vint itemIndex, compositions::KeyDirection key)override;
|
||||
bool EnsureItemVisible(vint itemIndex)override;
|
||||
GuiListControl::EnsureItemVisibleResult EnsureItemVisible(vint itemIndex)override;
|
||||
Size GetAdoptedSize(Size expectedSize)override;
|
||||
};
|
||||
}
|
||||
@@ -17442,11 +17492,12 @@ MultilineTextBox
|
||||
elements::GuiColorizedTextElement* textElement = nullptr;
|
||||
compositions::GuiBoundsComposition* textComposition = nullptr;
|
||||
|
||||
void CalculateViewAndSetScroll();
|
||||
void UpdateVisuallyEnabled()override;
|
||||
void UpdateDisplayFont()override;
|
||||
void OnRenderTargetChanged(elements::IGuiGraphicsRenderTarget* renderTarget)override;
|
||||
Size QueryFullSize()override;
|
||||
void UpdateView(Rect viewBounds)override;
|
||||
void OnVisuallyEnabledChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
void CalculateViewAndSetScroll();
|
||||
void OnBoundsMouseButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments);
|
||||
public:
|
||||
/// <summary>Create a control with a specified style provider.</summary>
|
||||
@@ -17456,7 +17507,6 @@ MultilineTextBox
|
||||
|
||||
const WString& GetText()override;
|
||||
void SetText(const WString& value)override;
|
||||
void SetFont(const FontProperties& value)override;
|
||||
};
|
||||
|
||||
/***********************************************************************
|
||||
@@ -17488,9 +17538,10 @@ SinglelineTextBox
|
||||
compositions::GuiTableComposition* textCompositionTable = nullptr;
|
||||
compositions::GuiCellComposition* textComposition = nullptr;
|
||||
|
||||
void UpdateVisuallyEnabled()override;
|
||||
void UpdateDisplayFont()override;
|
||||
void RearrangeTextElement();
|
||||
void OnRenderTargetChanged(elements::IGuiGraphicsRenderTarget* renderTarget)override;
|
||||
void OnVisuallyEnabledChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
void OnBoundsMouseButtonDown(compositions::GuiGraphicsComposition* sender, compositions::GuiMouseEventArgs& arguments);
|
||||
public:
|
||||
/// <summary>Create a control with a specified style provider.</summary>
|
||||
@@ -17500,7 +17551,6 @@ SinglelineTextBox
|
||||
|
||||
const WString& GetText()override;
|
||||
void SetText(const WString& value)override;
|
||||
void SetFont(const FontProperties& value)override;
|
||||
|
||||
/// <summary>
|
||||
/// Get the password mode displaying character.
|
||||
@@ -19507,7 +19557,7 @@ GalleryItemArranger
|
||||
vint firstIndex = 0;
|
||||
|
||||
void BeginPlaceItem(bool forMoving, Rect newBounds, vint& newStartIndex)override;
|
||||
void PlaceItem(bool forMoving, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent)override;
|
||||
void PlaceItem(bool forMoving, bool newCreatedStyle, vint index, ItemStyleRecord style, Rect viewBounds, Rect& bounds, Margin& alignmentToParent)override;
|
||||
bool IsItemOutOfViewBounds(vint index, ItemStyleRecord style, Rect bounds, Rect viewBounds)override;
|
||||
bool EndPlaceItem(bool forMoving, Rect newBounds, vint newStartIndex)override;
|
||||
void InvalidateItemSizeCache()override;
|
||||
@@ -19517,7 +19567,7 @@ GalleryItemArranger
|
||||
~GalleryItemArranger();
|
||||
|
||||
vint FindItem(vint itemIndex, compositions::KeyDirection key)override;
|
||||
bool EnsureItemVisible(vint itemIndex)override;
|
||||
GuiListControl::EnsureItemVisibleResult EnsureItemVisible(vint itemIndex)override;
|
||||
Size GetAdoptedSize(Size expectedSize)override;
|
||||
|
||||
void ScrollUp();
|
||||
|
||||
+23
-16
@@ -3030,18 +3030,8 @@ GuiLocalizedStringInstanceBinder (str)
|
||||
|
||||
if (errorCount == errors.Count())
|
||||
{
|
||||
auto stringExpr = MakePtr<WfStringExpression>();
|
||||
stringExpr->value.value = L"";
|
||||
stringExpr->codeRange = expression->codeRange;
|
||||
|
||||
auto recoveryExpr = MakePtr<WfBinaryExpression>();
|
||||
recoveryExpr->op = WfBinaryOperator::FailedThen;
|
||||
recoveryExpr->first = expression;
|
||||
recoveryExpr->second = stringExpr;
|
||||
recoveryExpr->codeRange = expression->codeRange;
|
||||
|
||||
auto bindExpr = MakePtr<WfBindExpression>();
|
||||
bindExpr->expression = recoveryExpr;
|
||||
bindExpr->expression = expression;
|
||||
bindExpr->codeRange = expression->codeRange;
|
||||
|
||||
return Workflow_InstallBindProperty(precompileContext, resolvingResult, variableName, propertyInfo, bindExpr);
|
||||
@@ -4139,14 +4129,18 @@ namespace vl
|
||||
if (manager->errors.Count() == 0)
|
||||
{
|
||||
compiled->assembly = GenerateAssembly(manager, compilerCallback);
|
||||
compiled->Initialize(true);
|
||||
WfAssemblyLoadErrors loadErrors;
|
||||
if (!compiled->Initialize(true, loadErrors))
|
||||
{
|
||||
manager->errors.Add(new ParsingError(L"Internal error happened during loading an assembly that just passed type verification."));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
WorkflowVirtualScriptPositionVisitor visitor(context);
|
||||
for (vint i = 0; i < compiled->modules.Count(); i++)
|
||||
{
|
||||
auto module = compiled->modules[i];
|
||||
WorkflowVirtualScriptPositionVisitor visitor(context);
|
||||
visitor.VisitField(module.module.Obj());
|
||||
Workflow_RecordScriptPosition(context, module.position, module.module);
|
||||
}
|
||||
@@ -10480,9 +10474,22 @@ Workflow_GenerateInstanceClass
|
||||
prop->configConst = WfAPConst::Writable;
|
||||
prop->configObserve = WfAPObserve::Observable;
|
||||
|
||||
auto nullExpr = MakePtr<WfLiteralExpression>();
|
||||
nullExpr->value = WfLiteralValue::Null;
|
||||
prop->expression = nullExpr;
|
||||
auto localeNameExpr = MakePtr<WfStringExpression>();
|
||||
localeNameExpr->value.value = L"en-US";
|
||||
|
||||
auto defaultLocalExpr = MakePtr<WfTypeCastingExpression>();
|
||||
defaultLocalExpr->strategy = WfTypeCastingStrategy::Strong;
|
||||
defaultLocalExpr->type = GetTypeFromTypeInfo(TypeInfoRetriver<Locale>::CreateTypeInfo().Obj());
|
||||
defaultLocalExpr->expression = localeNameExpr;
|
||||
|
||||
auto getExpr = MakePtr<WfChildExpression>();
|
||||
getExpr->parent = GetExpressionFromTypeDescriptor(lsTd);
|
||||
getExpr->name.value = L"Get";
|
||||
|
||||
auto callExpr = MakePtr<WfCallExpression>();
|
||||
callExpr->function = getExpr;
|
||||
callExpr->arguments.Add(defaultLocalExpr);
|
||||
prop->expression = callExpr;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -20,11 +20,15 @@ namespace vl
|
||||
GuiInstanceSharedScript
|
||||
***********************************************************************/
|
||||
|
||||
void GuiInstanceCompiledWorkflow::Initialize(bool initializeContext)
|
||||
bool GuiInstanceCompiledWorkflow::Initialize(bool initializeContext, workflow::runtime::WfAssemblyLoadErrors& loadErrors)
|
||||
{
|
||||
if (binaryToLoad)
|
||||
{
|
||||
assembly = new WfAssembly(*binaryToLoad.Obj());
|
||||
assembly = WfAssembly::Deserialize(*binaryToLoad.Obj(), loadErrors);
|
||||
if (!assembly)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
context = nullptr;
|
||||
binaryToLoad = nullptr;
|
||||
}
|
||||
@@ -34,6 +38,7 @@ GuiInstanceSharedScript
|
||||
context = new WfRuntimeGlobalContext(assembly);
|
||||
LoadFunction<void()>(context, L"<initialize>")();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
@@ -67,7 +72,7 @@ Compiled Workflow Type Resolver (Workflow)
|
||||
return 1;
|
||||
}
|
||||
|
||||
void Initialize(Ptr<GuiResourceItem> resource, GuiResourceInitializeContext& context)override
|
||||
void Initialize(Ptr<GuiResourceItem> resource, GuiResourceInitializeContext& context, GuiResourceError::List& errors)override
|
||||
{
|
||||
if (auto compiled = resource->GetContent().Cast<GuiInstanceCompiledWorkflow>())
|
||||
{
|
||||
@@ -78,7 +83,22 @@ Compiled Workflow Type Resolver (Workflow)
|
||||
{
|
||||
if (context.usage == GuiResourceUsage::InstanceClass)
|
||||
{
|
||||
compiled->Initialize(true);
|
||||
WfAssemblyLoadErrors loadErrors;
|
||||
if (!compiled->Initialize(true, loadErrors))
|
||||
{
|
||||
FOREACH(WString, loadError, loadErrors.duplicatedTypes)
|
||||
{
|
||||
errors.Add({ {resource},L"Failed to add an existing type: " + loadError });
|
||||
}
|
||||
FOREACH(WString, loadError, loadErrors.unresolvedTypes)
|
||||
{
|
||||
errors.Add({ {resource},L"Unable to resolve type: " + loadError });
|
||||
}
|
||||
FOREACH(WString, loadError, loadErrors.unresolvedMembers)
|
||||
{
|
||||
errors.Add({ {resource},L"Unable to resolve member: " + loadError });
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -1542,6 +1562,12 @@ Type Declaration (Extra)
|
||||
CLASS_MEMBER_METHOD(OnTotalSizeChanged, NO_PARAMETER)
|
||||
END_INTERFACE_MEMBER(GuiListControl::IItemArrangerCallback)
|
||||
|
||||
BEGIN_ENUM_ITEM(GuiListControl::EnsureItemVisibleResult)
|
||||
ENUM_CLASS_ITEM(ItemNotExists)
|
||||
ENUM_CLASS_ITEM(Moved)
|
||||
ENUM_CLASS_ITEM(NotMoved)
|
||||
END_ENUM_ITEM(GuiListControl::EnsureItemVisibleResult)
|
||||
|
||||
BEGIN_INTERFACE_MEMBER(GuiListControl::IItemProvider)
|
||||
CLASS_MEMBER_BASE(IDescriptable)
|
||||
|
||||
@@ -2048,11 +2074,16 @@ Type Declaration (Extra)
|
||||
Type Declaration (Class)
|
||||
***********************************************************************/
|
||||
|
||||
BEGIN_CLASS_MEMBER(GuiDisposedFlag)
|
||||
CLASS_MEMBER_METHOD(IsDisposed, NO_PARAMETER)
|
||||
END_CLASS_MEMBER(GuiDisposedFlag)
|
||||
|
||||
BEGIN_CLASS_MEMBER(GuiControl)
|
||||
CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiControl)
|
||||
|
||||
CLASS_MEMBER_EXTERNALMETHOD(SafeDelete, NO_PARAMETER, void(GuiControl::*)(), vl::presentation::compositions::SafeDeleteControl)
|
||||
|
||||
CLASS_MEMBER_PROPERTY_READONLY_FAST(DisposedFlag)
|
||||
CLASS_MEMBER_GUIEVENT(ControlSignalTrigerred)
|
||||
CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ControlThemeName)
|
||||
CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ControlTemplate)
|
||||
@@ -2071,6 +2102,7 @@ Type Declaration (Class)
|
||||
CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Alt)
|
||||
CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Text)
|
||||
CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Font)
|
||||
CLASS_MEMBER_PROPERTY_GUIEVENT_READONLY_FAST(DisplayFont)
|
||||
CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Context)
|
||||
CLASS_MEMBER_PROPERTY_FAST(Tag)
|
||||
CLASS_MEMBER_PROPERTY_FAST(TooltipControl)
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace vl
|
||||
Ptr<workflow::runtime::WfAssembly> assembly;
|
||||
Ptr<workflow::runtime::WfRuntimeGlobalContext> context;
|
||||
|
||||
void Initialize(bool initializeContext);
|
||||
bool Initialize(bool initializeContext, workflow::runtime::WfAssemblyLoadErrors& loadErrors);
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -336,6 +336,7 @@ Type List (Controls)
|
||||
F(presentation::controls::GuiListControl::IItemProviderCallback)\
|
||||
F(presentation::controls::GuiListControl::IItemArrangerCallback)\
|
||||
F(presentation::controls::GuiListControl::IItemProvider)\
|
||||
F(presentation::controls::GuiListControl::EnsureItemVisibleResult)\
|
||||
F(presentation::controls::GuiListControl::IItemArranger)\
|
||||
F(presentation::controls::list::ItemProviderBase)\
|
||||
F(presentation::controls::list::RangedItemArrangerBase)\
|
||||
@@ -403,6 +404,7 @@ Type List (Controls)
|
||||
F(presentation::controls::list::DataProvider)\
|
||||
|
||||
#define GUIREFLECTIONCONTROLS_CLASS_TYPELIST(F)\
|
||||
F(presentation::controls::GuiDisposedFlag)\
|
||||
F(presentation::controls::GuiControl)\
|
||||
F(presentation::controls::GuiCustomControl)\
|
||||
F(presentation::controls::GuiLabel)\
|
||||
@@ -851,7 +853,7 @@ Interface Proxy (Controls)
|
||||
INVOKEGET_INTERFACE_PROXY(FindItem, itemIndex, key);
|
||||
}
|
||||
|
||||
bool EnsureItemVisible(vint itemIndex)override
|
||||
presentation::controls::GuiListControl::EnsureItemVisibleResult EnsureItemVisible(vint itemIndex)override
|
||||
{
|
||||
INVOKEGET_INTERFACE_PROXY(EnsureItemVisible, itemIndex);
|
||||
}
|
||||
|
||||
@@ -25209,7 +25209,7 @@ Class (::darkskin::HTrackerTemplateConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_7)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_6)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.size = static_cast<::vl::vint>(1); return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_6)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.size = static_cast<::vl::vint>(1); return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_6)->SetAutoFocus(false);
|
||||
@@ -31620,7 +31620,7 @@ Class (::darkskin::VTrackerTemplateConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_7)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_6)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.size = static_cast<::vl::vint>(1); return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_6)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.size = static_cast<::vl::vint>(1); return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_6)->SetAutoFocus(false);
|
||||
@@ -31846,7 +31846,7 @@ Class (::darkskin::WindowTemplateConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_13)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_12)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Webdings", false); __vwsn_temp__.size = static_cast<::vl::vint>(16); return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_12)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Webdings", false); __vwsn_temp__.size = static_cast<::vl::vint>(16); return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_12)->SetAutoFocus(false);
|
||||
@@ -31875,7 +31875,7 @@ Class (::darkskin::WindowTemplateConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_16)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_15)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Webdings", false); __vwsn_temp__.size = static_cast<::vl::vint>(16); return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_15)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Webdings", false); __vwsn_temp__.size = static_cast<::vl::vint>(16); return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_15)->SetAutoFocus(false);
|
||||
@@ -31904,7 +31904,7 @@ Class (::darkskin::WindowTemplateConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_19)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(1); __vwsn_temp__.top = static_cast<::vl::vint>(1); __vwsn_temp__.right = static_cast<::vl::vint>(1); __vwsn_temp__.bottom = static_cast<::vl::vint>(1); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_18)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Webdings", false); __vwsn_temp__.size = static_cast<::vl::vint>(16); return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_18)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Webdings", false); __vwsn_temp__.size = static_cast<::vl::vint>(16); return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_18)->SetAutoFocus(false);
|
||||
|
||||
+4
-4
@@ -46,6 +46,10 @@ Macros:
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined VCZH_CLANG_AST_DUMP
|
||||
#define abstract
|
||||
#endif
|
||||
|
||||
#if defined VCZH_MSVC
|
||||
#include <intrin.h>
|
||||
#elif defined VCZH_GCC
|
||||
@@ -14428,11 +14432,7 @@ ParameterAccessor<Func<R(TArgs...)>>
|
||||
{
|
||||
Ptr<IValueList> arguments = IValueList::Create();
|
||||
internal_helper::AddValueToList(arguments, ForwardValue<TArgs>(args)...);
|
||||
#if defined VCZH_MSVC
|
||||
typedef TypeInfoRetriver<R>::TempValueType ResultType;
|
||||
#elif defined VCZH_GCC
|
||||
typedef typename TypeInfoRetriver<R>::TempValueType ResultType;
|
||||
#endif
|
||||
ResultType proxyResult;
|
||||
description::UnboxParameter<ResultType>(functionProxy->Invoke(arguments), proxyResult);
|
||||
return proxyResult;
|
||||
|
||||
+135
-22
@@ -573,12 +573,22 @@ namespace vl
|
||||
{
|
||||
namespace internal
|
||||
{
|
||||
struct WfDeserializationException
|
||||
{
|
||||
};
|
||||
|
||||
struct WfReaderContext
|
||||
{
|
||||
Dictionary<vint, ITypeDescriptor*> tdIndex;
|
||||
Dictionary<vint, IMethodInfo*> miIndex;
|
||||
Dictionary<vint, IPropertyInfo*> piIndex;
|
||||
Dictionary<vint, IEventInfo*> eiIndex;
|
||||
WfAssemblyLoadErrors& errors;
|
||||
|
||||
WfReaderContext(WfAssemblyLoadErrors& _errors)
|
||||
:errors(_errors)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
struct WfWriterContextPrepare
|
||||
@@ -874,7 +884,10 @@ Serizliation (ITypeDescriptor)
|
||||
WString id;
|
||||
reader << id;
|
||||
value = GetTypeDescriptor(id);
|
||||
CHECK_ERROR(value, L"Failed to load type.");
|
||||
if (!value)
|
||||
{
|
||||
reader.context->errors.unresolvedTypes.Add(id);
|
||||
}
|
||||
}
|
||||
|
||||
static void IO(WfWriter& writer, ITypeDescriptor*& value)
|
||||
@@ -1004,19 +1017,28 @@ Serizliation (Metadata)
|
||||
|
||||
if (!group)
|
||||
{
|
||||
CHECK_ERROR(value, L"Failed to load method.");
|
||||
reader.context->errors.unresolvedMembers.Add(L"method: " + type->GetTypeName() + L"::" + name + L"(...): *");
|
||||
return;
|
||||
}
|
||||
|
||||
vint methodFlag = -1;
|
||||
reader << methodFlag;
|
||||
CHECK_ERROR(0 <= methodFlag && methodFlag <= 3, L"Failed to load method.");
|
||||
if (0 > methodFlag || methodFlag > 3)
|
||||
{
|
||||
reader.context->errors.unresolvedMembers.Add(L"method: " + type->GetTypeName() + L"::" + name + L"(...): *");
|
||||
return;
|
||||
}
|
||||
|
||||
vint methodCount = group->GetMethodCount();
|
||||
switch (methodFlag)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
CHECK_ERROR(methodCount == 1, L"Failed to load method.");
|
||||
if (methodCount > 1)
|
||||
{
|
||||
reader.context->errors.unresolvedMembers.Add(L"method: " + type->GetTypeName() + L"::" + name + L"(...): *; This is caused by a change to this class. When the current assembly was compiled, this imported method didn't have overloadings.");
|
||||
return;
|
||||
}
|
||||
value = group->GetMethod(0);
|
||||
}
|
||||
break;
|
||||
@@ -1024,15 +1046,39 @@ Serizliation (Metadata)
|
||||
{
|
||||
vint count = -1;
|
||||
reader << count;
|
||||
|
||||
WString parameters;
|
||||
for (vint i = 0; i < count; i++)
|
||||
{
|
||||
if (i == 0)
|
||||
{
|
||||
parameters = L"*";
|
||||
}
|
||||
else
|
||||
{
|
||||
parameters += L", *";
|
||||
}
|
||||
}
|
||||
|
||||
for (vint i = 0; i < methodCount; i++)
|
||||
{
|
||||
auto method = group->GetMethod(i);
|
||||
if (method->GetParameterCount() == count)
|
||||
{
|
||||
CHECK_ERROR(!value, L"Failed to load method.");
|
||||
if (value)
|
||||
{
|
||||
reader.context->errors.unresolvedMembers.Add(L"method: " + type->GetTypeName() + L"::" + name + L"(" + parameters + L"): *; This is caused by a change to this class. When the current assembly was compiled, this imported method didn't have overloadings with the same amount of parameters.");
|
||||
return;
|
||||
}
|
||||
value = method;
|
||||
}
|
||||
}
|
||||
|
||||
if (!value)
|
||||
{
|
||||
reader.context->errors.unresolvedMembers.Add(L"method: " + type->GetTypeName() + L"::" + name + L"(" + parameters + L"): *; A qualified method doesn't exist.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
@@ -1045,10 +1091,20 @@ Serizliation (Metadata)
|
||||
auto method = group->GetMethod(i);
|
||||
if (method->GetReturn()->GetTypeFriendlyName() == signature)
|
||||
{
|
||||
CHECK_ERROR(!value, L"Failed to load method.");
|
||||
if (value)
|
||||
{
|
||||
reader.context->errors.unresolvedMembers.Add(L"method: " + type->GetTypeName() + L"::" + name + L"(...): " + signature + L"; This is caused by a change to this class. When the current assembly was compiled, this imported method didn't have overloadings with the same return type.");
|
||||
return;
|
||||
}
|
||||
value = method;
|
||||
}
|
||||
}
|
||||
|
||||
if (!value)
|
||||
{
|
||||
reader.context->errors.unresolvedMembers.Add(L"method: " + type->GetTypeName() + L"::" + name + L"(...): " + signature + L"; A qualified method doesn't exist.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
@@ -1063,6 +1119,19 @@ Serizliation (Metadata)
|
||||
signatures.Add(type->GetTypeFriendlyName());
|
||||
}
|
||||
|
||||
WString parameters;
|
||||
for (vint i = 0; i < count; i++)
|
||||
{
|
||||
if (i == 0)
|
||||
{
|
||||
parameters = signatures[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
parameters += L", " + signatures[i];
|
||||
}
|
||||
}
|
||||
|
||||
for (vint i = 0; i < methodCount; i++)
|
||||
{
|
||||
auto method = group->GetMethod(i);
|
||||
@@ -1080,11 +1149,21 @@ Serizliation (Metadata)
|
||||
|
||||
if (found)
|
||||
{
|
||||
CHECK_ERROR(!value, L"Failed to load method.");
|
||||
if (value)
|
||||
{
|
||||
reader.context->errors.unresolvedMembers.Add(L"method: " + type->GetTypeName() + L"::" + name + L"(" + parameters + L"): *; This is caused by a change to this class. When the current assembly was compiled, this imported method didn't have overloadings with the same parameter types.");
|
||||
return;
|
||||
}
|
||||
value = method;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!value)
|
||||
{
|
||||
reader.context->errors.unresolvedMembers.Add(L"method: " + type->GetTypeName() + L"::" + name + L"(" + parameters + L"): *; A qualified method doesn't exist.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1166,7 +1245,10 @@ Serizliation (Metadata)
|
||||
reader << typeIndex << name;
|
||||
auto type = reader.context->tdIndex[typeIndex];
|
||||
value = type->GetPropertyByName(name, false);
|
||||
CHECK_ERROR(value, L"Failed to load property.");
|
||||
if (!value)
|
||||
{
|
||||
reader.context->errors.unresolvedMembers.Add(L"property: " + type->GetTypeName() + L"::" + name);
|
||||
}
|
||||
}
|
||||
|
||||
static void IO(WfWriter& writer, IPropertyInfo*& value)
|
||||
@@ -1188,7 +1270,10 @@ Serizliation (Metadata)
|
||||
reader << typeIndex << name;
|
||||
auto type = reader.context->tdIndex[typeIndex];
|
||||
value = type->GetEventByName(name, false);
|
||||
CHECK_ERROR(value, L"Failed to load event.");
|
||||
if (!value)
|
||||
{
|
||||
reader.context->errors.unresolvedMembers.Add(L"event: " + type->GetTypeName() + L"::" + name);
|
||||
}
|
||||
}
|
||||
|
||||
static void IO(WfWriter& writer, IEventInfo*& value)
|
||||
@@ -1978,6 +2063,10 @@ Serialization (Assembly)
|
||||
{
|
||||
bool isFlags;
|
||||
WString typeName;
|
||||
if (GetTypeDescriptor(typeName))
|
||||
{
|
||||
reader.context->errors.duplicatedTypes.Add(typeName);
|
||||
}
|
||||
reader << isFlags << typeName;
|
||||
type = MakePtr<WfEnum>(isFlags, typeName);
|
||||
}
|
||||
@@ -1994,6 +2083,10 @@ Serialization (Assembly)
|
||||
{
|
||||
WString typeName;
|
||||
reader << typeName;
|
||||
if (GetTypeDescriptor(typeName))
|
||||
{
|
||||
reader.context->errors.duplicatedTypes.Add(typeName);
|
||||
}
|
||||
type = MakePtr<TType>(typeName);
|
||||
}
|
||||
|
||||
@@ -2045,9 +2138,9 @@ Serialization (Assembly)
|
||||
|
||||
//----------------------------------------------------
|
||||
|
||||
static void IOPrepare(WfReader& reader, WfAssembly& value)
|
||||
static void IOPrepare(WfReader& reader, WfAssembly& value, WfAssemblyLoadErrors& errors)
|
||||
{
|
||||
reader.context = new WfReaderContext;
|
||||
reader.context = new WfReaderContext(errors);
|
||||
bool hasTypeImpl = false;
|
||||
reader << hasTypeImpl;
|
||||
if (hasTypeImpl)
|
||||
@@ -2071,6 +2164,11 @@ Serialization (Assembly)
|
||||
reader.context->tdIndex.Add(i, td);
|
||||
}
|
||||
|
||||
if (errors.unresolvedTypes.Count() + errors.duplicatedTypes.Count() > 0)
|
||||
{
|
||||
throw WfDeserializationException();
|
||||
}
|
||||
|
||||
if (hasTypeImpl)
|
||||
{
|
||||
Serialization<WfTypeImpl>::IO(reader, *value.typeImpl.Obj());
|
||||
@@ -2095,9 +2193,14 @@ Serialization (Assembly)
|
||||
reader << ei;
|
||||
reader.context->eiIndex.Add(i, ei);
|
||||
}
|
||||
|
||||
if (errors.unresolvedMembers.Count() > 0)
|
||||
{
|
||||
throw WfDeserializationException();
|
||||
}
|
||||
}
|
||||
|
||||
static void IOPrepare(WfWriter& writer, WfAssembly& value)
|
||||
static void IOPrepare(WfWriter& writer, WfAssembly& value, WfAssemblyLoadErrors&)
|
||||
{
|
||||
writer.context = new WfWriterContext;
|
||||
bool hasTypeImpl = value.typeImpl != nullptr;
|
||||
@@ -2158,9 +2261,9 @@ Serialization (Assembly)
|
||||
//----------------------------------------------------
|
||||
|
||||
template<typename TIO>
|
||||
static void IO(TIO& io, WfAssembly& value)
|
||||
static void IO(TIO& io, WfAssembly& value, WfAssemblyLoadErrors& errors)
|
||||
{
|
||||
IOPrepare(io, value);
|
||||
IOPrepare(io, value, errors);
|
||||
io << value.insBeforeCodegen
|
||||
<< value.insAfterCodegen
|
||||
<< value.variableNames
|
||||
@@ -2206,23 +2309,33 @@ WfAssembly
|
||||
{
|
||||
}
|
||||
|
||||
WfAssembly::WfAssembly(stream::IStream& input)
|
||||
{
|
||||
stream::internal::WfReader reader(input);
|
||||
stream::internal::Serialization<WfAssembly>::IO(reader, *this);
|
||||
Initialize();
|
||||
}
|
||||
|
||||
void WfAssembly::Initialize()
|
||||
{
|
||||
insBeforeCodegen->Initialize();
|
||||
insAfterCodegen->Initialize();
|
||||
}
|
||||
|
||||
Ptr<WfAssembly> WfAssembly::Deserialize(stream::IStream& input, WfAssemblyLoadErrors& errors)
|
||||
{
|
||||
try
|
||||
{
|
||||
auto assembly = MakePtr<WfAssembly>();
|
||||
stream::internal::WfReader reader(input);
|
||||
stream::internal::Serialization<WfAssembly>::IO(reader, *assembly.Obj(), errors);
|
||||
assembly->Initialize();
|
||||
return assembly;
|
||||
}
|
||||
catch (stream::internal::WfDeserializationException)
|
||||
{
|
||||
return {};
|
||||
}
|
||||
}
|
||||
|
||||
void WfAssembly::Serialize(stream::IStream& output)
|
||||
{
|
||||
WfAssemblyLoadErrors dummy;
|
||||
stream::internal::WfWriter writer(output);
|
||||
stream::internal::Serialization<WfAssembly>::IO(writer, *this);
|
||||
stream::internal::Serialization<WfAssembly>::IO(writer, *this, dummy);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -861,6 +861,15 @@ Assembly
|
||||
void Initialize();
|
||||
};
|
||||
|
||||
/// <summary>Representing failures during loading an assembly</summary>
|
||||
class WfAssemblyLoadErrors
|
||||
{
|
||||
public:
|
||||
collections::List<WString> unresolvedTypes;
|
||||
collections::List<WString> duplicatedTypes;
|
||||
collections::List<WString> unresolvedMembers;
|
||||
};
|
||||
|
||||
/// <summary>Representing a Workflow assembly.</summary>
|
||||
class WfAssembly : public Object, public reflection::Description<WfAssembly>
|
||||
{
|
||||
@@ -882,11 +891,15 @@ Assembly
|
||||
|
||||
/// <summary>Create an empty assembly.</summary>
|
||||
WfAssembly();
|
||||
/// <summary>Deserialize an assembly.</summary>
|
||||
/// <param name="input">Serialized binary data.</param>
|
||||
WfAssembly(stream::IStream& input);
|
||||
|
||||
void Initialize();
|
||||
|
||||
/// <summary>Deserialize an assembly.</summary>
|
||||
/// <returns>The deserialized assembly. Returns null if there are errors.</returns>
|
||||
/// <param name="input">Serialized binary data.</param>
|
||||
/// <param name="errors">Errors during loading an assembly.</param>
|
||||
static Ptr<WfAssembly> Deserialize(stream::IStream& input, WfAssemblyLoadErrors& errors);
|
||||
|
||||
/// <summary>Serialize an assembly.</summary>
|
||||
/// <param name="output">Serialized binary data.</param>
|
||||
void Serialize(stream::IStream& output);
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -91,7 +91,7 @@
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:0 column:3 rowSpan:3">
|
||||
<SolidLabel Color="#FF8000" Text-bind="ToString(self.Category)" Font-bind="self.Font" HorizontalAlignment="Left" VerticalAlignment="Center" Ellipse="true"/>
|
||||
<SolidLabel Color="#FF8000" Text-bind="ToString(self.Category)" Font-bind="self.DisplayFont" HorizontalAlignment="Left" VerticalAlignment="Center" Ellipse="true"/>
|
||||
</Cell>
|
||||
</Table>
|
||||
</CustomControl>
|
||||
|
||||
@@ -42,16 +42,16 @@
|
||||
<Cell Site="row:0 column:2 rowSpan:2">
|
||||
<Stack AlignmentToParent="left:0 top:0 right:0 bottom:0" MinSizeLimitation="LimitToElementAndChildren" Direction="Vertical" Padding="5">
|
||||
<StackItem>
|
||||
<SolidLabel Font-bind="self.Font" Color="#FFFFFF" Text-format="DP1: $(dp1.Date)"/>
|
||||
<SolidLabel Font-bind="self.DisplayFont" Color="#FFFFFF" Text-format="DP1: $(dp1.Date)"/>
|
||||
</StackItem>
|
||||
<StackItem>
|
||||
<SolidLabel Font-bind="self.Font" Color="#FFFFFF" Text-format="DP2: $(dp2.Date)"/>
|
||||
<SolidLabel Font-bind="self.DisplayFont" Color="#FFFFFF" Text-format="DP2: $(dp2.Date)"/>
|
||||
</StackItem>
|
||||
<StackItem>
|
||||
<SolidLabel Font-bind="self.Font" Color="#FFFFFF" Text-format="DC1: $(dc1.SelectedDate)"/>
|
||||
<SolidLabel Font-bind="self.DisplayFont" Color="#FFFFFF" Text-format="DC1: $(dc1.SelectedDate)"/>
|
||||
</StackItem>
|
||||
<StackItem>
|
||||
<SolidLabel Font-bind="self.Font" Color="#FFFFFF" Text-format="DC2: $(dc2.SelectedDate)"/>
|
||||
<SolidLabel Font-bind="self.DisplayFont" Color="#FFFFFF" Text-format="DC2: $(dc2.SelectedDate)"/>
|
||||
</StackItem>
|
||||
</Stack>
|
||||
</Cell>
|
||||
|
||||
@@ -378,7 +378,7 @@
|
||||
var end = document.CaretEnd;
|
||||
var style = document.SummarizeStyle(begin, end);
|
||||
|
||||
var baselineFont = document.Font;
|
||||
var baselineFont = document.DisplayFont;
|
||||
dialogFont.SelectedFont =
|
||||
{
|
||||
fontFamily: ( style.face is null ? baselineFont.fontFamily : cast string style.face )
|
||||
|
||||
+4
-4
@@ -46,7 +46,7 @@
|
||||
var styles = ViewModel.Style.styles;
|
||||
if (styles.color is not null) { styleLabel.Color = cast Color styles.color; }
|
||||
|
||||
var font = containerControl.Font;
|
||||
var font = containerControl.DisplayFont;
|
||||
var fontFamily = font.fontFamily;
|
||||
var bold = font.bold;
|
||||
var italic = font.italic;
|
||||
@@ -103,7 +103,7 @@
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:1 column:0">
|
||||
<SolidLabel Text-bind="ViewModel.Name" Font-eval="containerControl.Font" Ellipse="true" HorizontalAlignment="Center">
|
||||
<SolidLabel Text-bind="ViewModel.Name" Font-eval="containerControl.DisplayFont" Ellipse="true" HorizontalAlignment="Center">
|
||||
<att.Color-bind>
|
||||
<![CDATA[cast Color (self.Selected ? "#FFFFFF" : "#808080")]]>
|
||||
</att.Color-bind>
|
||||
@@ -114,7 +114,7 @@
|
||||
<att.TooltipControl>
|
||||
<CustomControl>
|
||||
<Bounds AlignmentToParent="left:5 top:5 right:5 bottom:5" MinSizeLimitation="LimitToElementAndChildren">
|
||||
<SolidLabel Text-bind="ViewModel.Name" Color="#FFFFFF" Font-eval="containerControl.Font"/>
|
||||
<SolidLabel Text-bind="ViewModel.Name" Color="#FFFFFF" Font-eval="containerControl.DisplayFont"/>
|
||||
</Bounds>
|
||||
</CustomControl>
|
||||
</att.TooltipControl>
|
||||
@@ -238,7 +238,7 @@
|
||||
<att.AfterHeaders-set>
|
||||
<Stack Direction="Horizontal" AlignmentToParent="left:0 top:-1 right:0 bottom:0" MinSizeLimitation="LimitToElementAndChildren">
|
||||
<StackItem InternalMargin="left:0 top:0 right:10 bottom:0">
|
||||
<SolidLabel Font-bind="self.Font" Color="#FFFFFF" Text="Search:" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
<SolidLabel Font-bind="self.DisplayFont" Color="#FFFFFF" Text="Search:" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</StackItem>
|
||||
<StackItem>
|
||||
<SinglelineTextBox>
|
||||
|
||||
+1
-1
@@ -68,7 +68,7 @@
|
||||
</att.Columns>
|
||||
|
||||
<Cell Site="row:0 column:0">
|
||||
<SolidLabel Font-bind="self.Font" Color="#FFFFFF" Text-str="Label()" VerticalAlignment="Center"/>
|
||||
<SolidLabel Font-bind="self.DisplayFont" Color="#FFFFFF" Text-str="Label()" VerticalAlignment="Center"/>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:0 column:1">
|
||||
|
||||
+300
-720
File diff suppressed because it is too large
Load Diff
+111
-276
File diff suppressed because it is too large
Load Diff
@@ -93,13 +93,13 @@ So as I pray, unlimited blade works.]]>
|
||||
</att.Columns>
|
||||
|
||||
<Cell Site="row:0 column:0">
|
||||
<SinglelineTextBox Font-bind="self.Font" AcceptTabInput-bind="self.TextBoxAcceptTabInput" Text="Archer" Alt="S">
|
||||
<SinglelineTextBox AcceptTabInput-bind="self.TextBoxAcceptTabInput" Text="Archer" Alt="S">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</SinglelineTextBox>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:1 column:0">
|
||||
<MultilineTextBox Font-bind="self.Font" AcceptTabInput-bind="self.TextBoxAcceptTabInput" Text-uri="res://TextBoxComponents/Text" Alt="M" HorizontalAlwaysVisible="false" VerticalAlwaysVisible="false">
|
||||
<MultilineTextBox AcceptTabInput-bind="self.TextBoxAcceptTabInput" Text-uri="res://TextBoxComponents/Text" Alt="M" HorizontalAlwaysVisible="false" VerticalAlwaysVisible="false">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</MultilineTextBox>
|
||||
</Cell>
|
||||
@@ -127,18 +127,18 @@ So as I pray, unlimited blade works.]]>
|
||||
</att.Columns>
|
||||
|
||||
<Cell Site="row:0 column:0 columnSpan:2">
|
||||
<DocumentTextBox Font-bind="self.Font" AcceptTabInput-bind="self.TextBoxAcceptTabInput" EditMode="Editable" Text="Archer" Alt="T">
|
||||
<DocumentTextBox AcceptTabInput-bind="self.TextBoxAcceptTabInput" EditMode="Editable" Text="Archer" Alt="T">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</DocumentTextBox>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:1 column:0">
|
||||
<DocumentViewer Font-bind="self.Font" AcceptTabInput-bind="self.TextBoxAcceptTabInput" EditMode="Editable" Document-uri="res://TextBoxComponents/DocFixed" Alt="V">
|
||||
<DocumentViewer AcceptTabInput-bind="self.TextBoxAcceptTabInput" EditMode="Editable" Document-uri="res://TextBoxComponents/DocFixed" Alt="V">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</DocumentViewer>
|
||||
</Cell>
|
||||
<Cell Site="row:1 column:1">
|
||||
<DocumentLabel Font-bind="self.Font" AcceptTabInput-bind="self.TextBoxAcceptTabInput" EditMode="Editable" Document-uri="res://TextBoxComponents/DocRelative" Alt="L">
|
||||
<DocumentLabel AcceptTabInput-bind="self.TextBoxAcceptTabInput" EditMode="Editable" Document-uri="res://TextBoxComponents/DocRelative" Alt="L">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</DocumentLabel>
|
||||
</Cell>
|
||||
@@ -170,12 +170,12 @@ So as I pray, unlimited blade works.]]>
|
||||
<TabPage ref.Name="self" Text="TextBox">
|
||||
<ev.OnMakeFontLarger-eval>
|
||||
<![CDATA[
|
||||
self.UpdateFont(ChangeFontSize(t1.Font, 5));
|
||||
self.UpdateFont(ChangeFontSize(t1.DisplayFont, 5));
|
||||
]]>
|
||||
</ev.OnMakeFontLarger-eval>
|
||||
<ev.OnMakeFontSmaller-eval>
|
||||
<![CDATA[
|
||||
self.UpdateFont(ChangeFontSize(t1.Font, -5));
|
||||
self.UpdateFont(ChangeFontSize(t1.DisplayFont, -5));
|
||||
]]>
|
||||
</ev.OnMakeFontSmaller-eval>
|
||||
|
||||
@@ -208,7 +208,7 @@ So as I pray, unlimited blade works.]]>
|
||||
<Button Text="Make Font Larger" Alt="L" ev.Clicked-eval="self.OnMakeFontLarger();"/>
|
||||
</Cell>
|
||||
<Cell Site="row:1 column:1">
|
||||
<Button Text="Make Font Smaller" Alt="S" Enabled-bind="t1.Font.size > 5" ev.Clicked-eval="self.OnMakeFontSmaller();"/>
|
||||
<Button Text="Make Font Smaller" Alt="S" Enabled-bind="t1.DisplayFont.size > 5" ev.Clicked-eval="self.OnMakeFontSmaller();"/>
|
||||
</Cell>
|
||||
</Table>
|
||||
</TabPage>
|
||||
|
||||
+15
-15
@@ -935,7 +935,7 @@ Class (::demo::MainWindowConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_6)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_5)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_5)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_5)->SetText(::vl::WString(L"1", false));
|
||||
@@ -958,7 +958,7 @@ Class (::demo::MainWindowConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_9)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_8)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_8)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_8)->SetText(::vl::WString(L"2", false));
|
||||
@@ -981,7 +981,7 @@ Class (::demo::MainWindowConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_12)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_11)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_11)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_11)->SetText(::vl::WString(L"3", false));
|
||||
@@ -1004,7 +1004,7 @@ Class (::demo::MainWindowConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_15)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_14)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_14)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_14)->SetText(::vl::WString(L"4", false));
|
||||
@@ -1027,7 +1027,7 @@ Class (::demo::MainWindowConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_18)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_17)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_17)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_17)->SetText(::vl::WString(L"5", false));
|
||||
@@ -1050,7 +1050,7 @@ Class (::demo::MainWindowConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_21)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_20)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_20)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_20)->SetText(::vl::WString(L"6", false));
|
||||
@@ -1073,7 +1073,7 @@ Class (::demo::MainWindowConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_24)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_23)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_23)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_23)->SetText(::vl::WString(L"7", false));
|
||||
@@ -1096,7 +1096,7 @@ Class (::demo::MainWindowConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_27)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_26)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_26)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_26)->SetText(::vl::WString(L"8", false));
|
||||
@@ -1119,7 +1119,7 @@ Class (::demo::MainWindowConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_30)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_29)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_29)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_29)->SetText(::vl::WString(L"9", false));
|
||||
@@ -1142,7 +1142,7 @@ Class (::demo::MainWindowConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_33)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_32)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_32)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_32)->SetText(::vl::WString(L"0", false));
|
||||
@@ -1165,7 +1165,7 @@ Class (::demo::MainWindowConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_36)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_35)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_35)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_35)->SetText(::vl::WString(L".", false));
|
||||
@@ -1188,7 +1188,7 @@ Class (::demo::MainWindowConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_39)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_38)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_38)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_38)->SetText(::vl::WString(L"=", false));
|
||||
@@ -1211,7 +1211,7 @@ Class (::demo::MainWindowConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_42)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_41)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_41)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_41)->SetText(::vl::WString(L"CE", false));
|
||||
@@ -1234,7 +1234,7 @@ Class (::demo::MainWindowConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_45)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_44)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_44)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_44)->SetText(::vl::WString(L"*", false));
|
||||
@@ -1257,7 +1257,7 @@ Class (::demo::MainWindowConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_48)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(0); __vwsn_temp__.top = static_cast<::vl::vint>(0); __vwsn_temp__.right = static_cast<::vl::vint>(0); __vwsn_temp__.bottom = static_cast<::vl::vint>(0); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_47)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_47)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(24); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_47)->SetText(::vl::WString(L"+", false));
|
||||
|
||||
@@ -614,7 +614,7 @@ Closures
|
||||
auto begin = ::vl::__vwsn::This(__vwsnthis_0->document)->GetCaretBegin();
|
||||
auto end = ::vl::__vwsn::This(__vwsnthis_0->document)->GetCaretEnd();
|
||||
auto style = ::vl::__vwsn::This(__vwsnthis_0->document)->SummarizeStyle(begin, end);
|
||||
auto baselineFont = ::vl::__vwsn::This(__vwsnthis_0->document)->GetFont();
|
||||
auto baselineFont = ::vl::__vwsn::This(__vwsnthis_0->document)->GetDisplayFont();
|
||||
::vl::__vwsn::This(__vwsnthis_0->dialogFont)->SetSelectedFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ((! static_cast<bool>(::vl::__vwsn::This(style.Obj())->face)) ? baselineFont.fontFamily : ::vl::__vwsn::This(style.Obj())->face.Value()); __vwsn_temp__.size = ((! static_cast<bool>(::vl::__vwsn::This(style.Obj())->size)) ? baselineFont.size : static_cast<::vl::vint>(::vl::__vwsn::This(style.Obj())->size.Value().size)); return __vwsn_temp__; }());
|
||||
if (::vl::__vwsn::This(__vwsnthis_0->dialogFont)->ShowDialog())
|
||||
{
|
||||
|
||||
+6
-6
@@ -855,7 +855,7 @@ Closures
|
||||
|
||||
void __vwsnc5_EditorRibbon_demo_DocumentEditorRibbonConstructor___vwsn_demo_DocumentEditorRibbon_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_activator_()
|
||||
{
|
||||
auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetFont();
|
||||
auto __vwsn_bind_activator_result_ = ::vl::__vwsn::This(__vwsn_bind_cache_0)->GetDisplayFont();
|
||||
::vl::__vwsn::EventInvoke(this->ValueChanged)(::vl::__vwsn::Box(__vwsn_bind_activator_result_));
|
||||
}
|
||||
|
||||
@@ -870,7 +870,7 @@ Closures
|
||||
{
|
||||
(__vwsn_bind_opened_ = true);
|
||||
(__vwsn_bind_cache_0 = [&](){ try{ return __vwsnthis_0->self; } catch(...){ return static_cast<::demo::DocumentEditorRibbon*>(nullptr); } }());
|
||||
(__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, ::vl::Func<void(::vl::presentation::compositions::GuiGraphicsComposition*, ::vl::presentation::compositions::GuiEventArgs*)>(this, &__vwsnc5_EditorRibbon_demo_DocumentEditorRibbonConstructor___vwsn_demo_DocumentEditorRibbon_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }());
|
||||
(__vwsn_bind_handler_0_0 = [&](){ try{ return ::vl::__vwsn::EventAttach(::vl::__vwsn::This(__vwsn_bind_cache_0)->DisplayFontChanged, ::vl::Func<void(::vl::presentation::compositions::GuiGraphicsComposition*, ::vl::presentation::compositions::GuiEventArgs*)>(this, &__vwsnc5_EditorRibbon_demo_DocumentEditorRibbonConstructor___vwsn_demo_DocumentEditorRibbon_Initialize__vl_reflection_description_IValueSubscription::__vwsn_bind_callback_0_0)); } catch(...){ return ::vl::Ptr<::vl::reflection::description::IEventHandler>(); } }());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -893,7 +893,7 @@ Closures
|
||||
(__vwsn_bind_closed_ = true);
|
||||
if (static_cast<bool>(__vwsn_bind_handler_0_0))
|
||||
{
|
||||
::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->FontChanged, __vwsn_bind_handler_0_0);
|
||||
::vl::__vwsn::EventDetach(::vl::__vwsn::This(__vwsn_bind_cache_0)->DisplayFontChanged, __vwsn_bind_handler_0_0);
|
||||
(__vwsn_bind_handler_0_0 = ::vl::Ptr<::vl::reflection::description::IEventHandler>());
|
||||
}
|
||||
(__vwsn_bind_cache_0 = static_cast<::demo::DocumentEditorRibbon*>(nullptr));
|
||||
@@ -2571,7 +2571,7 @@ Class (::demo::StyleItemTemplateConstructor)
|
||||
::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_);
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetFont(::vl::__vwsn::This(this->containerControl)->GetFont());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_3.Obj())->SetFont(::vl::__vwsn::This(this->containerControl)->GetDisplayFont());
|
||||
}
|
||||
{
|
||||
auto __vwsn_created_subscription_ = ::vl::Ptr<::vl::reflection::description::IValueSubscription>(new ::vl_workflow_global::__vwsnc13_EditorRibbon_demo_StyleItemTemplateConstructor___vwsn_demo_StyleItemTemplate_Initialize__vl_reflection_description_IValueSubscription(this));
|
||||
@@ -2579,7 +2579,7 @@ Class (::demo::StyleItemTemplateConstructor)
|
||||
::vl::__vwsn::This(__vwsn_this_)->AddSubscription(__vwsn_created_subscription_);
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_7.Obj())->SetFont(::vl::__vwsn::This(this->containerControl)->GetFont());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_7.Obj())->SetFont(::vl::__vwsn::This(this->containerControl)->GetDisplayFont());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2626,7 +2626,7 @@ Class (::demo::StyleItemTemplate)
|
||||
{
|
||||
::vl::__vwsn::This(this->styleLabel.Obj())->SetColor(::vl::__vwsn::This(styles.Obj())->color.Value());
|
||||
}
|
||||
auto font = ::vl::__vwsn::This(this->containerControl)->GetFont();
|
||||
auto font = ::vl::__vwsn::This(this->containerControl)->GetDisplayFont();
|
||||
auto fontFamily = font.fontFamily;
|
||||
auto bold = font.bold;
|
||||
auto italic = font.italic;
|
||||
|
||||
@@ -235,7 +235,7 @@ Closures
|
||||
void __vwsnf6_Demo_demo_TriplePhaseButtonConstructor___vwsn_demo_TriplePhaseButton_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const
|
||||
{
|
||||
auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0)->GetFont();
|
||||
auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_);
|
||||
auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Nullable<::vl::presentation::FontProperties>>(__vwsn_value_);
|
||||
if ((__vwsn_old_ == __vwsn_new_))
|
||||
{
|
||||
return;
|
||||
|
||||
@@ -75,7 +75,7 @@ namespace helloworld
|
||||
(this->__vwsn_precompile_1 = new ::vl::presentation::controls::GuiLabel(::vl::presentation::theme::ThemeName::Label));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_1)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(32); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_1)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(32); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_1)->SetText(::vl::WString(L"Welcome to GacUI Library!", false));
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -75,7 +75,7 @@ namespace demo
|
||||
(this->__vwsn_precompile_1 = new ::vl::presentation::controls::GuiLabel(::vl::presentation::theme::ThemeName::Label));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_1)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(32); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_1)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(32); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::controls::GuiControl*>(this->__vwsn_precompile_1));
|
||||
|
||||
@@ -83,7 +83,7 @@ Closures
|
||||
void __vwsnf2_Demo_demo_MyControlConstructor___vwsn_demo_MyControl_Initialize_::operator()(const ::vl::reflection::description::Value& __vwsn_value_) const
|
||||
{
|
||||
auto __vwsn_old_ = ::vl::__vwsn::This(__vwsnthis_0->__vwsn_precompile_0)->GetFont();
|
||||
auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::presentation::FontProperties>(__vwsn_value_);
|
||||
auto __vwsn_new_ = ::vl::__vwsn::Unbox<::vl::Nullable<::vl::presentation::FontProperties>>(__vwsn_value_);
|
||||
if ((__vwsn_old_ == __vwsn_new_))
|
||||
{
|
||||
return;
|
||||
@@ -236,7 +236,7 @@ namespace demo
|
||||
}
|
||||
(this->__vwsn_precompile_1 = new ::demo::MyControl());
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_1)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(32); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_1)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(32); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_1)->SetText(::vl::WString(L"This is a control!", false));
|
||||
|
||||
@@ -92,7 +92,7 @@ namespace demo
|
||||
(this->__vwsn_precompile_1 = new ::vl::presentation::controls::GuiLabel(::vl::presentation::theme::ThemeName::Label));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_1)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(32); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_1)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(32); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_1)->SetText(::vl::WString(L"This is another window!", false));
|
||||
|
||||
@@ -75,7 +75,7 @@ namespace demo
|
||||
(this->__vwsn_precompile_1 = new ::vl::presentation::controls::GuiLabel(::vl::presentation::theme::ThemeName::Label));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_1)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(32); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_1)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(32); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_1)->SetText(::vl::WString(L"This is a window!", false));
|
||||
|
||||
@@ -80,7 +80,7 @@ Class (::demo::MainWindowConstructor)
|
||||
(this->__vwsn_precompile_1 = new ::vl::presentation::controls::GuiLabel(::vl::presentation::theme::ThemeName::Label));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_1)->SetFont([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(32); __vwsn_temp__.antialias = true; return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_1)->SetFont(::vl::Nullable<::vl::presentation::FontProperties>([&](){ ::vl::presentation::FontProperties __vwsn_temp__; __vwsn_temp__.fontFamily = ::vl::WString(L"Segoe UI", false); __vwsn_temp__.size = static_cast<::vl::vint>(32); __vwsn_temp__.antialias = true; return __vwsn_temp__; }()));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_0)->AddChild(static_cast<::vl::presentation::controls::GuiControl*>(this->__vwsn_precompile_1));
|
||||
|
||||
Reference in New Issue
Block a user