mirror of
https://github.com/vczh-libraries/Release.git
synced 2026-05-31 05:35:18 +08:00
Update release
This commit is contained in:
+569
-170
File diff suppressed because it is too large
Load Diff
+111
-14
@@ -4925,6 +4925,7 @@ Rich Content Document (model)
|
||||
bool RenameStyle(const WString& oldStyleName, const WString& newStyleName);
|
||||
bool ClearStyle(TextPos begin, TextPos end);
|
||||
Ptr<DocumentStyleProperties> SummarizeStyle(TextPos begin, TextPos end);
|
||||
Nullable<WString> SummarizeStyleName(TextPos begin, TextPos end);
|
||||
Nullable<Alignment> SummarizeParagraphAlignment(TextPos begin, TextPos end);
|
||||
|
||||
/// <summary>Load a document model from an xml.</summary>
|
||||
@@ -5860,6 +5861,11 @@ Rich Content Document (element)
|
||||
/// <param name="begin">The begin position of the range.</param>
|
||||
/// <param name="end">The end position of the range.</param>
|
||||
Ptr<DocumentStyleProperties> SummarizeStyle(TextPos begin, TextPos end);
|
||||
/// <summary>Summarize the style name in a specified range.</summary>
|
||||
/// <returns>The style name summary.</returns>
|
||||
/// <param name="begin">The begin position of the range.</param>
|
||||
/// <param name="end">The end position of the range.</param>
|
||||
Nullable<WString> SummarizeStyleName(TextPos begin, TextPos end);
|
||||
/// <summary>Set the alignment of paragraphs in a specified range.</summary>
|
||||
/// <param name="begin">The begin position of the range.</param>
|
||||
/// <param name="end">The end position of the range.</param>
|
||||
@@ -8377,6 +8383,14 @@ namespace vl
|
||||
virtual void NotifyDateSelected() = 0;
|
||||
};
|
||||
|
||||
/// <summary>A command executor for the style controller to change the control state.</summary>
|
||||
class IRibbonGroupCommandExecutor : public virtual IDescriptable, public Description<IRibbonGroupCommandExecutor>
|
||||
{
|
||||
public:
|
||||
/// <summary>Called when the expand button is clicked.</summary>
|
||||
virtual void NotifyExpandButtonClicked() = 0;
|
||||
};
|
||||
|
||||
/// <summary>A command executor for the style controller to change the control state.</summary>
|
||||
class IRibbonGalleryCommandExecutor : public virtual IDescriptable, public Description<IRibbonGalleryCommandExecutor>
|
||||
{
|
||||
@@ -8855,7 +8869,11 @@ Control Template
|
||||
F(GuiRibbonTabTemplate, compositions::GuiGraphicsComposition*, AfterHeadersContainer, nullptr)\
|
||||
|
||||
#define GuiRibbonGroupTemplate_PROPERTIES(F)\
|
||||
F(GuiRibbonGroupTemplate, controls::IRibbonGroupCommandExecutor*, Commands, nullptr)\
|
||||
F(GuiRibbonGroupTemplate, bool, Expandable, false)\
|
||||
F(GuiRibbonGroupTemplate, bool, Collapsed, false)\
|
||||
F(GuiRibbonGroupTemplate, TemplateProperty<GuiToolstripButtonTemplate>, LargeDropdownButtonTemplate, {})\
|
||||
F(GuiRibbonGroupTemplate, TemplateProperty<GuiMenuTemplate>, SubMenuTemplate, {})\
|
||||
|
||||
#define GuiRibbonButtonsTemplate_PROPERTIES(F)\
|
||||
F(GuiRibbonButtonsTemplate, TemplateProperty<GuiToolstripButtonTemplate>, LargeButtonTemplate, {})\
|
||||
@@ -9897,14 +9915,13 @@ Basic Construction
|
||||
NAME = ct; \
|
||||
BASE_TYPE::CheckAndStoreControlTemplate(value); \
|
||||
} \
|
||||
bool HasControlTemplateObject() \
|
||||
{ \
|
||||
return NAME != nullptr; \
|
||||
} \
|
||||
public: \
|
||||
templates::Gui##TEMPLATE* GetControlTemplateObject() \
|
||||
templates::Gui##TEMPLATE* GetControlTemplateObject(bool ensureExists) \
|
||||
{ \
|
||||
EnsureControlTemplateExists(); \
|
||||
if (ensureExists) \
|
||||
{ \
|
||||
EnsureControlTemplateExists(); \
|
||||
} \
|
||||
return NAME; \
|
||||
} \
|
||||
private: \
|
||||
@@ -13711,6 +13728,11 @@ GuiDocumentCommonInterface
|
||||
/// <param name="begin">The begin position of the range.</param>
|
||||
/// <param name="end">The end position of the range.</param>
|
||||
Ptr<DocumentStyleProperties> SummarizeStyle(TextPos begin, TextPos end);
|
||||
/// <summary>Summarize the style name in a specified range.</summary>
|
||||
/// <returns>The style name summary.</returns>
|
||||
/// <param name="begin">The begin position of the range.</param>
|
||||
/// <param name="end">The end position of the range.</param>
|
||||
Nullable<WString> SummarizeStyleName(TextPos begin, TextPos end);
|
||||
/// <summary>Set the alignment of paragraphs in a specified range.</summary>
|
||||
/// <param name="begin">The begin position of the range.</param>
|
||||
/// <param name="end">The end position of the range.</param>
|
||||
@@ -14893,12 +14915,24 @@ Menu Service
|
||||
virtual void MenuClosed(GuiMenu* menu);
|
||||
};
|
||||
|
||||
/// <summary>IGuiMenuService is a required service to tell a ribbon group that this control has a dropdown to display.</summary>
|
||||
class IGuiMenuDropdownProvider : public virtual IDescriptable, public Description<IGuiMenuDropdownProvider>
|
||||
{
|
||||
public:
|
||||
/// <summary>The identifier for this service.</summary>
|
||||
static const wchar_t* const Identifier;
|
||||
|
||||
/// <summary>Get the dropdown to display.</summary>
|
||||
/// <returns>The dropdown to display. Returns null to indicate the dropdown cannot be displaied temporary.</returns>
|
||||
virtual GuiMenu* ProvideDropdownMenu() = 0;
|
||||
};
|
||||
|
||||
/***********************************************************************
|
||||
Menu
|
||||
***********************************************************************/
|
||||
|
||||
/// <summary>Popup menu.</summary>
|
||||
class GuiMenu : public GuiPopup, private IGuiMenuService, public Description<GuiMenu>
|
||||
class GuiMenu : public GuiPopup, protected IGuiMenuService, public Description<GuiMenu>
|
||||
{
|
||||
GUI_SPECIFY_CONTROL_TEMPLATE_TYPE(MenuTemplate, GuiPopup)
|
||||
private:
|
||||
@@ -14909,6 +14943,7 @@ Menu
|
||||
bool IsActiveState()override;
|
||||
bool IsSubMenuActivatedByMouseDown()override;
|
||||
void MenuItemExecuted()override;
|
||||
|
||||
protected:
|
||||
GuiControl* owner;
|
||||
|
||||
@@ -14929,13 +14964,14 @@ Menu
|
||||
};
|
||||
|
||||
/// <summary>Menu bar.</summary>
|
||||
class GuiMenuBar : public GuiControl, private IGuiMenuService, public Description<GuiMenuBar>
|
||||
class GuiMenuBar : public GuiControl, protected IGuiMenuService, public Description<GuiMenuBar>
|
||||
{
|
||||
private:
|
||||
IGuiMenuService* GetParentMenuService()override;
|
||||
Direction GetPreferredDirection()override;
|
||||
bool IsActiveState()override;
|
||||
bool IsSubMenuActivatedByMouseDown()override;
|
||||
|
||||
public:
|
||||
/// <summary>Create a control with a specified default theme.</summary>
|
||||
/// <param name="themeName">The theme name for retriving a default control template.</param>
|
||||
@@ -14950,7 +14986,7 @@ MenuButton
|
||||
***********************************************************************/
|
||||
|
||||
/// <summary>Menu item.</summary>
|
||||
class GuiMenuButton : public GuiSelectableButton, public Description<GuiMenuButton>
|
||||
class GuiMenuButton : public GuiSelectableButton, private IGuiMenuDropdownProvider, public Description<GuiMenuButton>
|
||||
{
|
||||
GUI_SPECIFY_CONTROL_TEMPLATE_TYPE(ToolstripButtonTemplate, GuiSelectableButton)
|
||||
|
||||
@@ -14979,12 +15015,18 @@ MenuButton
|
||||
void OnClicked(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
|
||||
virtual IGuiMenuService::Direction GetSubMenuDirection();
|
||||
|
||||
private:
|
||||
GuiMenu* ProvideDropdownMenu()override;
|
||||
|
||||
public:
|
||||
/// <summary>Create a control with a specified default theme.</summary>
|
||||
/// <param name="themeName">The theme name for retriving a default control template.</param>
|
||||
GuiMenuButton(theme::ThemeName themeName);
|
||||
~GuiMenuButton();
|
||||
|
||||
/// <summary>Before sub menu opening event.</summary>
|
||||
compositions::GuiNotifyEvent BeforeSubMenuOpening;
|
||||
/// <summary>Sub menu opening changed event.</summary>
|
||||
compositions::GuiNotifyEvent SubMenuOpeningChanged;
|
||||
/// <summary>Large image changed event.</summary>
|
||||
@@ -15053,6 +15095,8 @@ MenuButton
|
||||
/// <summary>Enable or disable cascade action.</summary>
|
||||
/// <param name="value">Set to true to enable cascade action.</param>
|
||||
void SetCascadeAction(bool value);
|
||||
|
||||
IDescriptable* QueryService(const WString& identifier)override;
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -17419,6 +17463,7 @@ GalleryItemArranger
|
||||
vint GetMaxCount();
|
||||
vint GetItemWidth();
|
||||
Size GetSizeOffset();
|
||||
vint GetVisibleItemCount();
|
||||
|
||||
void SetMinCount(vint value);
|
||||
void SetMaxCount(vint value);
|
||||
@@ -17581,14 +17626,14 @@ namespace vl
|
||||
Toolstrip Item Collection
|
||||
***********************************************************************/
|
||||
|
||||
/// <summary>IToolstripUpdateLayout is required for all menu item container.</summary>
|
||||
/// <summary>IToolstripUpdateLayout is a required service for all menu item container.</summary>
|
||||
class IToolstripUpdateLayout : public IDescriptable
|
||||
{
|
||||
public:
|
||||
virtual void UpdateLayout() = 0;
|
||||
};
|
||||
|
||||
/// <summary>IToolstripUpdateLayout is required for a menu item which want to force the container to redo layout.</summary>
|
||||
/// <summary>IToolstripUpdateLayout is a required service for a menu item which want to force the container to redo layout.</summary>
|
||||
class IToolstripUpdateLayoutInvoker : public IDescriptable
|
||||
{
|
||||
public:
|
||||
@@ -17949,10 +17994,35 @@ Ribbon Containers
|
||||
friend class GuiRibbonGroupItemCollection;
|
||||
GUI_SPECIFY_CONTROL_TEMPLATE_TYPE(RibbonGroupTemplate, GuiControl)
|
||||
protected:
|
||||
|
||||
class CommandExecutor : public Object, public IRibbonGroupCommandExecutor
|
||||
{
|
||||
protected:
|
||||
GuiRibbonGroup* group;
|
||||
|
||||
public:
|
||||
CommandExecutor(GuiRibbonGroup* _group);
|
||||
~CommandExecutor();
|
||||
|
||||
void NotifyExpandButtonClicked()override;
|
||||
};
|
||||
|
||||
bool expandable = false;
|
||||
Ptr<GuiImageData> largeImage;
|
||||
GuiRibbonGroupItemCollection items;
|
||||
compositions::GuiResponsiveStackComposition* responsiveStack = nullptr;
|
||||
compositions::GuiStackComposition* stack = nullptr;
|
||||
Ptr<CommandExecutor> commandExecutor;
|
||||
|
||||
compositions::GuiResponsiveViewComposition* responsiveView = nullptr;
|
||||
compositions::GuiResponsiveFixedComposition* responsiveFixedButton = nullptr;
|
||||
GuiToolstripButton* dropdownButton = nullptr;
|
||||
GuiMenu* dropdownMenu = nullptr;
|
||||
|
||||
void OnBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
void OnTextChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
void OnBeforeSwitchingView(compositions::GuiGraphicsComposition* sender, compositions::GuiItemEventArgs& arguments);
|
||||
void OnBeforeSubMenuOpening(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
|
||||
|
||||
public:
|
||||
/// <summary>Create a control with a specified default theme.</summary>
|
||||
@@ -17964,6 +18034,8 @@ Ribbon Containers
|
||||
compositions::GuiNotifyEvent ExpandableChanged;
|
||||
/// <summary>Expand button clicked event.</summary>
|
||||
compositions::GuiNotifyEvent ExpandButtonClicked;
|
||||
/// <summary>Large image changed event.</summary>
|
||||
compositions::GuiNotifyEvent LargeImageChanged;
|
||||
|
||||
/// <summary>Test if this group is expandable. An expandable group will display an extra small button, which raises <see cref="ExpandButtonClicked"/>.</summary>
|
||||
/// <returns>Returns true if this group is expandable.</returns>
|
||||
@@ -17972,6 +18044,13 @@ Ribbon Containers
|
||||
/// <param name="value">Set to true to make this group is expandable.</param>
|
||||
void SetExpandable(bool value);
|
||||
|
||||
/// <summary>Get the large image for the collapsed ribbon group.</summary>
|
||||
/// <returns>The large image for the collapsed ribbon group.</returns>
|
||||
Ptr<GuiImageData> GetLargeImage();
|
||||
/// <summary>Set the large image for the collapsed ribbon group.</summary>
|
||||
/// <param name="value">The large image for the collapsed ribbon group.</param>
|
||||
void SetLargeImage(Ptr<GuiImageData> value);
|
||||
|
||||
/// <summary>Get the collection of controls in this group.</summary>
|
||||
/// <returns>The collection of controls.</returns>
|
||||
collections::ObservableListBase<GuiControl*>& GetItems();
|
||||
@@ -18330,7 +18409,7 @@ Ribbon Gallery List
|
||||
}
|
||||
|
||||
/// <summary>Auto resizable ribbon gallyer list.</summary>
|
||||
class GuiBindableRibbonGalleryList : public GuiRibbonGallery, public list::GroupedDataSource, public Description<GuiBindableRibbonGalleryList>
|
||||
class GuiBindableRibbonGalleryList : public GuiRibbonGallery, public list::GroupedDataSource, private IGuiMenuDropdownProvider, public Description<GuiBindableRibbonGalleryList>
|
||||
{
|
||||
friend class ribbon_impl::GalleryItemArranger;
|
||||
|
||||
@@ -18343,6 +18422,7 @@ Ribbon Gallery List
|
||||
ItemStyleProperty itemStyle;
|
||||
GuiBindableTextList* itemList;
|
||||
GuiRibbonToolstripMenu* subMenu;
|
||||
vint visibleItemCount = 1;
|
||||
bool skipItemAppliedEvent = false;
|
||||
|
||||
ribbon_impl::GalleryItemArranger* itemListArranger;
|
||||
@@ -18366,6 +18446,10 @@ Ribbon Gallery List
|
||||
|
||||
void StartPreview(vint index);
|
||||
void StopPreview(vint index);
|
||||
|
||||
private:
|
||||
GuiMenu* ProvideDropdownMenu()override;
|
||||
|
||||
public:
|
||||
/// <summary>Create a control with a specified default theme.</summary>
|
||||
/// <param name="themeName">The theme name for retriving a default control template.</param>
|
||||
@@ -18414,8 +18498,11 @@ Ribbon Gallery List
|
||||
void SetMaxCount(vint value);
|
||||
|
||||
/// <summary>Get the selected item index.</summary>
|
||||
/// <returns>The index of the selected item.</returns>
|
||||
/// <returns>The index of the selected item. If there are multiple selected items, or there is no selected item, -1 will be returned.</returns>
|
||||
vint GetSelectedIndex();
|
||||
/// <summary>Get the selected item.</summary>
|
||||
/// <returns>Returns the selected item. If there are multiple selected items, or there is no selected item, null will be returned.</returns>
|
||||
description::Value GetSelectedItem();
|
||||
/// <summary>Select an item with <see cref="ItemApplied"/> event raised.</summary>
|
||||
/// <param name="index">The index of the item to select. Set to -1 to clear the selection.</param>
|
||||
void ApplyItem(vint index);
|
||||
@@ -18423,9 +18510,18 @@ Ribbon Gallery List
|
||||
/// <param name="index">The index of the item to select. Set to -1 to clear the selection.</param>
|
||||
void SelectItem(vint index);
|
||||
|
||||
/// <summary>Get the minimum items visible in the drop down menu.</summary>
|
||||
/// <returns>The minimum items visible in the drop down menu.</summary>
|
||||
vint GetVisibleItemCount();
|
||||
/// <summary>Set minimum items visible in the drop down menu.</summary>
|
||||
/// <param name="value">The minimum items visible in the drop down menu.</param>
|
||||
void SetVisibleItemCount(vint value);
|
||||
|
||||
/// <summary>Get the dropdown menu.</summary>
|
||||
/// <returns>The dropdown menu.</returns>
|
||||
GuiToolstripMenu* GetSubMenu();
|
||||
|
||||
IDescriptable* QueryService(const WString& identifier)override;
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -18476,7 +18572,8 @@ namespace vl
|
||||
extern void RemoveHyperlink(DocumentParagraphRun* run, RunRangeMap& runRanges, vint start, vint end);
|
||||
extern void RemoveStyleName(DocumentParagraphRun* run, RunRangeMap& runRanges, vint start, vint end);
|
||||
extern void ClearStyle(DocumentParagraphRun* run, RunRangeMap& runRanges, vint start, vint end);
|
||||
extern Ptr<DocumentStyleProperties> SummerizeStyle(DocumentParagraphRun* run, RunRangeMap& runRanges, DocumentModel* model, vint start, vint end);
|
||||
extern Ptr<DocumentStyleProperties> SummarizeStyle(DocumentParagraphRun* run, RunRangeMap& runRanges, DocumentModel* model, vint start, vint end);
|
||||
extern Nullable<WString> SummarizeStyleName(DocumentParagraphRun* run, RunRangeMap& runRanges, DocumentModel* model, vint start, vint end);
|
||||
extern void AggregateStyle(Ptr<DocumentStyleProperties>& dst, Ptr<DocumentStyleProperties> src);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2880,7 +2880,7 @@ GuiTemplatePropertyDeserializer
|
||||
for (vint i = 0; i < count; i++)
|
||||
{
|
||||
auto methodInfo = methodGroup->GetMethod(i);
|
||||
if (methodInfo->GetParameterCount() == 0)
|
||||
if (methodInfo->GetParameterCount() == 1)
|
||||
{
|
||||
auto returnType = methodInfo->GetReturn();
|
||||
if (returnType->GetDecorator() == ITypeInfo::RawPtr)
|
||||
|
||||
@@ -865,6 +865,9 @@ Type Declaration
|
||||
END_CLASS_MEMBER(GuiAxis)
|
||||
|
||||
BEGIN_CLASS_MEMBER(GuiGraphicsComposition)
|
||||
|
||||
CLASS_MEMBER_EXTERNALMETHOD(SafeDelete, NO_PARAMETER, void(GuiGraphicsComposition::*)(), vl::presentation::compositions::SafeDeleteComposition)
|
||||
|
||||
CLASS_MEMBER_GUIEVENT_COMPOSITION(leftButtonDown)
|
||||
CLASS_MEMBER_GUIEVENT_COMPOSITION(leftButtonUp)
|
||||
CLASS_MEMBER_GUIEVENT_COMPOSITION(leftButtonDoubleClick)
|
||||
@@ -1471,6 +1474,8 @@ Type Declaration
|
||||
BEGIN_CLASS_MEMBER(GuiControl)
|
||||
CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiControl)
|
||||
|
||||
CLASS_MEMBER_EXTERNALMETHOD(SafeDelete, NO_PARAMETER, void(GuiControl::*)(), vl::presentation::compositions::SafeDeleteControl)
|
||||
|
||||
CLASS_MEMBER_GUIEVENT(RenderTargetChanged)
|
||||
CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ControlThemeName)
|
||||
CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ControlTemplate)
|
||||
@@ -1943,6 +1948,12 @@ Type Declaration
|
||||
CLASS_MEMBER_METHOD(MenuClosed, {L"menu"})
|
||||
END_INTERFACE_MEMBER(IGuiMenuService)
|
||||
|
||||
BEGIN_INTERFACE_MEMBER_NOPROXY(IGuiMenuDropdownProvider)
|
||||
INTERFACE_IDENTIFIER(vl::presentation::controls::IGuiMenuDropdownProvider)
|
||||
|
||||
CLASS_MEMBER_METHOD(ProvideDropdownMenu, NO_PARAMETER)
|
||||
END_INTERFACE_MEMBER(IGuiMenuDropdownProvider)
|
||||
|
||||
BEGIN_ENUM_ITEM(IGuiMenuService::Direction)
|
||||
ENUM_ITEM_NAMESPACE(IGuiMenuService)
|
||||
ENUM_NAMESPACE_ITEM(Horizontal)
|
||||
@@ -1966,6 +1977,8 @@ Type Declaration
|
||||
CLASS_MEMBER_BASE(GuiSelectableButton)
|
||||
CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiMenuButton)
|
||||
|
||||
CLASS_MEMBER_GUIEVENT(BeforeSubMenuOpening)
|
||||
|
||||
CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(LargeImage)
|
||||
CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Image)
|
||||
CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(ShortcutText)
|
||||
@@ -2216,6 +2229,7 @@ Type Declaration
|
||||
|
||||
CLASS_MEMBER_GUIEVENT(ExpandButtonClicked)
|
||||
CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(Expandable)
|
||||
CLASS_MEMBER_PROPERTY_GUIEVENT_FAST(LargeImage)
|
||||
CLASS_MEMBER_PROPERTY_READONLY_FAST(Items)
|
||||
END_CLASS_MEMBER(GuiRibbonGroup)
|
||||
|
||||
@@ -2291,6 +2305,8 @@ Type Declaration
|
||||
CLASS_MEMBER_PROPERTY_FAST(MinCount)
|
||||
CLASS_MEMBER_PROPERTY_FAST(MaxCount)
|
||||
CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedIndex, SelectionChanged)
|
||||
CLASS_MEMBER_PROPERTY_EVENT_READONLY_FAST(SelectedItem, SelectionChanged)
|
||||
CLASS_MEMBER_PROPERTY_FAST(VisibleItemCount)
|
||||
|
||||
CLASS_MEMBER_METHOD(IndexToGalleryPos, { L"index" })
|
||||
CLASS_MEMBER_METHOD(GalleryPosToIndex, { L"pos" })
|
||||
@@ -2340,6 +2356,7 @@ Type Declaration
|
||||
CLASS_MEMBER_METHOD(RenameStyle, {L"oldStyleName" _ L"newStyleName"})
|
||||
CLASS_MEMBER_METHOD(ClearStyle, {L"begin" _ L"end"})
|
||||
CLASS_MEMBER_METHOD(SummarizeStyle, {L"begin" _ L"end"})
|
||||
CLASS_MEMBER_METHOD(SummarizeStyleName, { L"begin" _ L"end" })
|
||||
CLASS_MEMBER_METHOD(SetParagraphAlignments, { L"begin" _ L"end" _ L"alignments" })
|
||||
CLASS_MEMBER_METHOD(SetParagraphAlignment, { L"begin" _ L"end" _ L"alignment" })
|
||||
CLASS_MEMBER_METHOD(SummarizeParagraphAlignment, { L"begin" _ L"end" })
|
||||
@@ -2989,6 +3006,7 @@ Type Declaration
|
||||
CLASS_MEMBER_METHOD(RenameStyle, {L"oldStyleName" _ L"newStyleName"})
|
||||
CLASS_MEMBER_METHOD(ClearStyle, {L"begin" _ L"end"})
|
||||
CLASS_MEMBER_METHOD(SummarizeStyle, {L"begin" _ L"end"})
|
||||
CLASS_MEMBER_METHOD(SummarizeStyleName, { L"begin" _ L"end" })
|
||||
CLASS_MEMBER_METHOD(SetParagraphAlignment, {L"begin" _ L"end" _ L"alignments"})
|
||||
CLASS_MEMBER_METHOD(SummarizeParagraphAlignment, { L"begin" _ L"end" })
|
||||
CLASS_MEMBER_METHOD(GetHyperlinkFromPoint, {L"point"})
|
||||
@@ -3317,6 +3335,11 @@ Type Declaration
|
||||
CLASS_MEMBER_METHOD(NotifyDateSelected, NO_PARAMETER)
|
||||
END_INTERFACE_MEMBER(IDatePickerCommandExecutor)
|
||||
|
||||
BEGIN_INTERFACE_MEMBER_NOPROXY(IRibbonGroupCommandExecutor)
|
||||
CLASS_MEMBER_BASE(IDescriptable)
|
||||
CLASS_MEMBER_METHOD(NotifyExpandButtonClicked, NO_PARAMETER)
|
||||
END_INTERFACE_MEMBER(IRibbonGroupCommandExecutor)
|
||||
|
||||
BEGIN_INTERFACE_MEMBER_NOPROXY(IRibbonGalleryCommandExecutor)
|
||||
CLASS_MEMBER_BASE(IDescriptable)
|
||||
CLASS_MEMBER_METHOD(NotifyScrollUp, NO_PARAMETER)
|
||||
|
||||
@@ -270,6 +270,7 @@ Type List (Templates)
|
||||
F(presentation::controls::IScrollCommandExecutor)\
|
||||
F(presentation::controls::ITabCommandExecutor)\
|
||||
F(presentation::controls::IDatePickerCommandExecutor)\
|
||||
F(presentation::controls::IRibbonGroupCommandExecutor)\
|
||||
F(presentation::controls::IRibbonGalleryCommandExecutor)\
|
||||
F(presentation::controls::GuiComponent)\
|
||||
F(presentation::controls::IGuiAnimation)\
|
||||
@@ -343,6 +344,7 @@ Type List (Controls)
|
||||
F(presentation::controls::GuiListView)\
|
||||
F(presentation::controls::IGuiMenuService)\
|
||||
F(presentation::controls::IGuiMenuService::Direction)\
|
||||
F(presentation::controls::IGuiMenuDropdownProvider)\
|
||||
F(presentation::controls::GuiMenu)\
|
||||
F(presentation::controls::GuiMenuBar)\
|
||||
F(presentation::controls::GuiMenuButton)\
|
||||
|
||||
+6066
-5574
File diff suppressed because one or more lines are too long
+2303
-2093
File diff suppressed because it is too large
Load Diff
@@ -99,6 +99,10 @@ namespace vl
|
||||
IMPL_CPP_TYPE_INFO(darkskin::RibbonGalleryItemListTemplateConstructor)
|
||||
IMPL_CPP_TYPE_INFO(darkskin::RibbonGalleryTemplate)
|
||||
IMPL_CPP_TYPE_INFO(darkskin::RibbonGalleryTemplateConstructor)
|
||||
IMPL_CPP_TYPE_INFO(darkskin::RibbonGroupExpandButtonTemplate)
|
||||
IMPL_CPP_TYPE_INFO(darkskin::RibbonGroupExpandButtonTemplateConstructor)
|
||||
IMPL_CPP_TYPE_INFO(darkskin::RibbonGroupMenuTemplate)
|
||||
IMPL_CPP_TYPE_INFO(darkskin::RibbonGroupMenuTemplateConstructor)
|
||||
IMPL_CPP_TYPE_INFO(darkskin::RibbonGroupTemplate)
|
||||
IMPL_CPP_TYPE_INFO(darkskin::RibbonGroupTemplateConstructor)
|
||||
IMPL_CPP_TYPE_INFO(darkskin::RibbonLargeButtonTemplate)
|
||||
@@ -723,6 +727,37 @@ namespace vl
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
END_CLASS_MEMBER(::darkskin::RibbonGalleryTemplateConstructor)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::darkskin::RibbonGroupExpandButtonTemplate)
|
||||
CLASS_MEMBER_BASE(::vl::presentation::templates::GuiButtonTemplate)
|
||||
CLASS_MEMBER_BASE(::darkskin::RibbonGroupExpandButtonTemplateConstructor)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::darkskin::RibbonGroupExpandButtonTemplate*(), NO_PARAMETER)
|
||||
END_CLASS_MEMBER(::darkskin::RibbonGroupExpandButtonTemplate)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::darkskin::RibbonGroupExpandButtonTemplateConstructor)
|
||||
CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::darkskin::RibbonGroupExpandButtonTemplateConstructor>(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_darkskin_RibbonGroupExpandButtonTemplate_Initialize, { L"__vwsn_this_" })
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_0)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_1)
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
END_CLASS_MEMBER(::darkskin::RibbonGroupExpandButtonTemplateConstructor)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::darkskin::RibbonGroupMenuTemplate)
|
||||
CLASS_MEMBER_BASE(::vl::presentation::templates::GuiMenuTemplate)
|
||||
CLASS_MEMBER_BASE(::darkskin::RibbonGroupMenuTemplateConstructor)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::darkskin::RibbonGroupMenuTemplate*(), NO_PARAMETER)
|
||||
END_CLASS_MEMBER(::darkskin::RibbonGroupMenuTemplate)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::darkskin::RibbonGroupMenuTemplateConstructor)
|
||||
CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::darkskin::RibbonGroupMenuTemplateConstructor>(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_darkskin_RibbonGroupMenuTemplate_Initialize, { L"__vwsn_this_" })
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_0)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_1)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_2)
|
||||
CLASS_MEMBER_FIELD(container)
|
||||
END_CLASS_MEMBER(::darkskin::RibbonGroupMenuTemplateConstructor)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::darkskin::RibbonGroupTemplate)
|
||||
CLASS_MEMBER_BASE(::vl::presentation::templates::GuiRibbonGroupTemplate)
|
||||
CLASS_MEMBER_BASE(::darkskin::RibbonGroupTemplateConstructor)
|
||||
@@ -741,8 +776,10 @@ namespace vl
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_5)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_6)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_7)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_8)
|
||||
CLASS_MEMBER_FIELD(container)
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
CLASS_MEMBER_FIELD(table)
|
||||
END_CLASS_MEMBER(::darkskin::RibbonGroupTemplateConstructor)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::darkskin::RibbonLargeButtonTemplate)
|
||||
@@ -1490,6 +1527,10 @@ namespace vl
|
||||
ADD_TYPE_INFO(::darkskin::RibbonGalleryItemListTemplateConstructor)
|
||||
ADD_TYPE_INFO(::darkskin::RibbonGalleryTemplate)
|
||||
ADD_TYPE_INFO(::darkskin::RibbonGalleryTemplateConstructor)
|
||||
ADD_TYPE_INFO(::darkskin::RibbonGroupExpandButtonTemplate)
|
||||
ADD_TYPE_INFO(::darkskin::RibbonGroupExpandButtonTemplateConstructor)
|
||||
ADD_TYPE_INFO(::darkskin::RibbonGroupMenuTemplate)
|
||||
ADD_TYPE_INFO(::darkskin::RibbonGroupMenuTemplateConstructor)
|
||||
ADD_TYPE_INFO(::darkskin::RibbonGroupTemplate)
|
||||
ADD_TYPE_INFO(::darkskin::RibbonGroupTemplateConstructor)
|
||||
ADD_TYPE_INFO(::darkskin::RibbonLargeButtonTemplate)
|
||||
|
||||
@@ -108,6 +108,10 @@ namespace vl
|
||||
DECL_TYPE_INFO(::darkskin::RibbonGalleryItemListTemplateConstructor)
|
||||
DECL_TYPE_INFO(::darkskin::RibbonGalleryTemplate)
|
||||
DECL_TYPE_INFO(::darkskin::RibbonGalleryTemplateConstructor)
|
||||
DECL_TYPE_INFO(::darkskin::RibbonGroupExpandButtonTemplate)
|
||||
DECL_TYPE_INFO(::darkskin::RibbonGroupExpandButtonTemplateConstructor)
|
||||
DECL_TYPE_INFO(::darkskin::RibbonGroupMenuTemplate)
|
||||
DECL_TYPE_INFO(::darkskin::RibbonGroupMenuTemplateConstructor)
|
||||
DECL_TYPE_INFO(::darkskin::RibbonGroupTemplate)
|
||||
DECL_TYPE_INFO(::darkskin::RibbonGroupTemplateConstructor)
|
||||
DECL_TYPE_INFO(::darkskin::RibbonLargeButtonTemplate)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,416 @@
|
||||
<Folder>
|
||||
<Instance name="DocumentEditorBaseResource">
|
||||
<Instance ref.CodeBehind="false" ref.Class="demo::DocumentEditorBase">
|
||||
<ref.Members>
|
||||
<![CDATA[
|
||||
@cpp:Protected
|
||||
prop EditModeCommand : ToolstripCommand* = null {const}
|
||||
|
||||
@cpp:Private
|
||||
func SetEditMode(editMode: DocumentCommonInterface::EditMode) : void
|
||||
{
|
||||
var command =
|
||||
editMode == DocumentCommonInterface::EditMode::ViewOnly ? commandViewOnly :
|
||||
editMode == DocumentCommonInterface::EditMode::Selectable ? commandSelectable :
|
||||
commandEditable;
|
||||
|
||||
document.EditMode = editMode;
|
||||
commandViewOnly.Selected = (command == commandViewOnly);
|
||||
commandSelectable.Selected = (command == commandSelectable);
|
||||
commandEditable.Selected = (command == commandEditable);
|
||||
SetEditModeCommand(command);
|
||||
self.UpdateSubscriptions();
|
||||
}
|
||||
|
||||
@cpp:Protected
|
||||
func SelectAlignmentCommand() : ToolstripCommand*
|
||||
{
|
||||
var alignment = document.SummarizeParagraphAlignment(document.CaretBegin, document.CaretEnd);
|
||||
return
|
||||
alignment == Alignment::Left ? commandAlignLeft :
|
||||
alignment == Alignment::Center ? commandAlignCenter :
|
||||
alignment == Alignment::Right ? commandAlignRight :
|
||||
commandAlignDefault;
|
||||
}
|
||||
|
||||
@cpp:Private
|
||||
func SetAlignment(alignment : Alignment?) : void
|
||||
{
|
||||
document.SetParagraphAlignment(document.CaretBegin, document.CaretEnd, alignment);
|
||||
self.UpdateSubscriptions();
|
||||
}
|
||||
|
||||
@cpp:Private
|
||||
prop HasEditableSelection : bool = false {}
|
||||
|
||||
@cpp:Private
|
||||
prop HasEditableSelectionInSingleParagraph : bool = false {}
|
||||
|
||||
@cpp:Private
|
||||
func HasEditableCursor() : bool
|
||||
{
|
||||
return document.EditMode == DocumentCommonInterface::EditMode::Editable;
|
||||
}
|
||||
|
||||
@cpp:Private
|
||||
func HasEditableHyperlink(forEdit : bool) : bool
|
||||
{
|
||||
var a = document.CaretBegin;
|
||||
var b = document.CaretEnd;
|
||||
return a.row == b.row and a.column != b.column;
|
||||
}
|
||||
|
||||
@cpp:Protected
|
||||
func GetMenuContainer() : GraphicsComposition*
|
||||
{
|
||||
return menuContainer;
|
||||
}
|
||||
|
||||
@cpp:Protected
|
||||
func GetToolstripContainer() : GraphicsComposition*
|
||||
{
|
||||
return toolstripContainer;
|
||||
}
|
||||
|
||||
prop MenuContainer : GraphicsComposition* {GetMenuContainer}
|
||||
prop ToolstripContainer : GraphicsComposition* {GetToolstripContainer}
|
||||
]]>
|
||||
</ref.Members>
|
||||
<ref.Ctor>
|
||||
<![CDATA[
|
||||
{
|
||||
SetEditMode(Editable);
|
||||
}
|
||||
]]>
|
||||
</ref.Ctor>
|
||||
<CustomControl ref.Name="self" Text="Document Editor">
|
||||
<att.HasEditableSelection-bind>document.observe as _(_.CanCut() on _.SelectionChanged)</att.HasEditableSelection-bind>
|
||||
<MessageDialog ref.Name="dialogMessage" Title="You Clicked a Hyperlink!"/>
|
||||
<OpenFileDialog ref.Name="dialogOpen" Title="Select an Image" Filter="Image Files (*.jpg;*.png;*.bmp)|*.jpg;*.png;*.bmp" EnabledPreview="true" Options="FileDialogFileMustExist|FileDialogDereferenceLinks"/>
|
||||
|
||||
<Table AlignmentToParent="left:0 top:0 right:0 bottom:0">
|
||||
<att.Rows>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:MinSize</_>
|
||||
<_>composeType:Percentage percentage:1.0</_>
|
||||
</att.Rows>
|
||||
<att.Columns>
|
||||
<_>composeType:Percentage percentage:1.0</_>
|
||||
</att.Columns>
|
||||
|
||||
<Cell ref.Name="menuContainer" Site="row:0 column:0"/>
|
||||
<Cell ref.Name="toolstripContainer" Site="row:1 column:0"/>
|
||||
|
||||
<Cell Site="row:2 column:0">
|
||||
<DocumentViewer ref.Name="document" EditMode="Editable" Alt="D">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
<ev.ActiveHyperlinkExecuted-eval>
|
||||
<![CDATA[
|
||||
{
|
||||
dialogMessage.Text = document.ActiveHyperlinkReference;
|
||||
dialogMessage.ShowDialog();
|
||||
}
|
||||
]]>
|
||||
</ev.ActiveHyperlinkExecuted-eval>
|
||||
</DocumentViewer>
|
||||
</Cell>
|
||||
</Table>
|
||||
|
||||
<ToolstripCommand ref.Name="commandUndo" Text="Undo" Image-uri="res://ToolbarImages/Undo" LargeImage-uri="res://ToolbarImages/UndoLarge" ShortcutBuilder="Ctrl+Z">
|
||||
<att.Enabled-bind>document.observe as _(_.CanUndo() on _.UndoRedoChanged)</att.Enabled-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[document.Undo();]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandRedo" Text="Redo" Image-uri="res://ToolbarImages/Redo" LargeImage-uri="res://ToolbarImages/RedoLarge" ShortcutBuilder="Ctrl+Y">
|
||||
<att.Enabled-bind>document.observe as _(_.CanRedo() on _.UndoRedoChanged)</att.Enabled-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[document.Redo();]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandCopy" Text="Copy" Image-uri="res://ToolbarImages/Copy" LargeImage-uri="res://ToolbarImages/CopyLarge" ShortcutBuilder="Ctrl+C">
|
||||
<att.Enabled-bind>document.observe as _(_.CanCopy() on _.SelectionChanged)</att.Enabled-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[document.Copy();]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandCut" Text="Cut" Image-uri="res://ToolbarImages/Cut" LargeImage-uri="res://ToolbarImages/CutLarge" ShortcutBuilder="Ctrl+X">
|
||||
<att.Enabled-bind>self.HasEditableSelection</att.Enabled-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[document.Cut();]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandPaste" Text="Paste" Image-uri="res://ToolbarImages/Paste" LargeImage-uri="res://ToolbarImages/PasteLarge" ShortcutBuilder="Ctrl+V">
|
||||
<att.Enabled-bind>self.observe as _(document.CanPaste() on _.BoundsComposition.clipboardNotify)</att.Enabled-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[document.Paste();]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandDelete" Text="Delete" Image-uri="res://ToolbarImages/Delete" LargeImage-uri="res://ToolbarImages/RemoveLinkLarge">
|
||||
<att.Enabled-bind>self.HasEditableSelection</att.Enabled-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[document.SetSelectionText("");]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandSelect" Text="Select All" ShortcutBuilder="Ctrl+A">
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[document.SelectAll();]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandInsertImage" Text="Insert Image ..." Image-uri="res://ToolbarImages/Image" LargeImage-uri="res://ToolbarImages/ImageLarge">
|
||||
<att.Enabled-bind>self.HasEditableCursor()</att.Enabled-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[
|
||||
{
|
||||
if (dialogOpen.ShowDialog())
|
||||
{
|
||||
var imageService = INativeController::GetCurrentController().ImageService();
|
||||
var image = imageService.CreateImageFromFile(dialogOpen.FileName);
|
||||
var imageData = new ImageData^(image, 0);
|
||||
document.EditImage(document.CaretBegin, document.CaretEnd, imageData);
|
||||
}
|
||||
}
|
||||
]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandEditHyperlink" Text="Edit Hyperlink ..." Image-uri="res://ToolbarImages/Link" LargeImage-uri="res://ToolbarImages/LinkLarge">
|
||||
<att.Enabled-bind>document.observe as _(self.HasEditableHyperlink(true) on _.SelectionChanged)</att.Enabled-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[
|
||||
$Async{
|
||||
var mainWindow = self.RelatedControlHost as controls::GuiWindow*;
|
||||
|
||||
var window = new HyperlinkWindow*();
|
||||
window.MoveToScreenCenter(mainWindow.RelatedScreen);
|
||||
$Await window.ShowModalAsync(mainWindow);
|
||||
|
||||
if (window.Url is not null)
|
||||
{
|
||||
var row = document.CaretBegin.row;
|
||||
var begin = document.CaretBegin.column;
|
||||
var end = document.CaretEnd.column;
|
||||
document.EditHyperlink(row, begin, end, cast string window.Url, "#NormalLink", "#ActiveLink");
|
||||
}
|
||||
delete window;
|
||||
}
|
||||
]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandRemoveHyperlink" Text="Remove Hyperlink" Image-uri="res://ToolbarImages/RemoveLink" LargeImage-uri="res://ToolbarImages/RemoveLinkLarge">
|
||||
<att.Enabled-bind>document.observe as _(self.HasEditableHyperlink(false) on _.SelectionChanged)</att.Enabled-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[
|
||||
{
|
||||
var row = document.CaretBegin.row;
|
||||
var begin = document.CaretBegin.column;
|
||||
var end = document.CaretEnd.column;
|
||||
document.RemoveHyperlink(row, begin, end);
|
||||
}
|
||||
]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandBold" Text="Bold" Image-uri="res://ToolbarImages/Bold">
|
||||
<att.Enabled-bind>self.HasEditableSelection</att.Enabled-bind>
|
||||
<att.Selected-bind>document.observe as _(_.SummarizeStyle(_.CaretBegin, _.CaretEnd).bold == true on _.SelectionChanged, _.ModifiedChanged)</att.Selected-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[
|
||||
{
|
||||
var style = new DocumentStyleProperties^();
|
||||
style.bold = not commandBold.Selected;
|
||||
document.EditStyle(document.CaretBegin, document.CaretEnd, style);
|
||||
}
|
||||
]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandItalic" Text="Italic" Image-uri="res://ToolbarImages/Italic">
|
||||
<att.Enabled-bind>self.HasEditableSelection</att.Enabled-bind>
|
||||
<att.Selected-bind>document.observe as _(_.SummarizeStyle(_.CaretBegin, _.CaretEnd).italic == true on _.SelectionChanged, _.ModifiedChanged)</att.Selected-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[
|
||||
{
|
||||
var style = new DocumentStyleProperties^();
|
||||
style.italic = not commandItalic.Selected;
|
||||
document.EditStyle(document.CaretBegin, document.CaretEnd, style);
|
||||
}
|
||||
]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandUnderline" Text="Underline" Image-uri="res://ToolbarImages/Underline">
|
||||
<att.Enabled-bind>self.HasEditableSelection</att.Enabled-bind>
|
||||
<att.Selected-bind>document.observe as _(_.SummarizeStyle(_.CaretBegin, _.CaretEnd).underline == true on _.SelectionChanged, _.ModifiedChanged)</att.Selected-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[
|
||||
{
|
||||
var style = new DocumentStyleProperties^();
|
||||
style.underline = not commandUnderline.Selected;
|
||||
document.EditStyle(document.CaretBegin, document.CaretEnd, style);
|
||||
}
|
||||
]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandStrike" Text="Strike" Image-uri="res://ToolbarImages/Strike">
|
||||
<att.Enabled-bind>self.HasEditableSelection</att.Enabled-bind>
|
||||
<att.Selected-bind>document.observe as _(_.SummarizeStyle(_.CaretBegin, _.CaretEnd).strikeline == true on _.SelectionChanged, _.ModifiedChanged)</att.Selected-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[
|
||||
{
|
||||
var style = new DocumentStyleProperties^();
|
||||
style.strikeline = not commandStrike.Selected;
|
||||
document.EditStyle(document.CaretBegin, document.CaretEnd, style);
|
||||
}
|
||||
]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ColorDialog ref.Name="dialogColor" EnabledCustomColor="false"/>
|
||||
<FontDialog ref.Name="dialogFont" ShowEffect="false" ShowSelection="true" ForceFontExist="true"/>
|
||||
|
||||
<ToolstripCommand ref.Name="commandFont" Text="Set Font ..." Image-uri="res://ToolbarImages/Font">
|
||||
<att.Enabled-bind>self.HasEditableSelection</att.Enabled-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[
|
||||
{
|
||||
var begin = document.CaretBegin;
|
||||
var end = document.CaretEnd;
|
||||
var style = document.SummarizeStyle(begin, end);
|
||||
|
||||
var baselineFont = document.Font;
|
||||
dialogFont.SelectedFont =
|
||||
{
|
||||
fontFamily: ( style.face is null ? baselineFont.fontFamily : cast string style.face )
|
||||
size: ( style.size is null ? baselineFont.size : cast int style.size.size )
|
||||
};
|
||||
|
||||
if (dialogFont.ShowDialog())
|
||||
{
|
||||
style = new DocumentStyleProperties^();
|
||||
var selectedFont = dialogFont.SelectedFont;
|
||||
|
||||
style.face = selectedFont.fontFamily;
|
||||
style.size = {size:selectedFont.size relative:false};
|
||||
document.EditStyle(begin, end, style);
|
||||
}
|
||||
}
|
||||
]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandColor" Text="Text Color ..." Image-uri="res://ToolbarImages/Color">
|
||||
<att.Enabled-bind>self.HasEditableSelection</att.Enabled-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[
|
||||
{
|
||||
var begin = document.CaretBegin;
|
||||
var end = document.CaretEnd;
|
||||
var selectedColor = document.SummarizeStyle(begin, end).color;
|
||||
if (selectedColor is null)
|
||||
{
|
||||
dialogColor.SelectedColor = cast Color "#000000";
|
||||
}
|
||||
else
|
||||
{
|
||||
dialogColor.SelectedColor = cast Color selectedColor;
|
||||
}
|
||||
if (dialogColor.ShowDialog())
|
||||
{
|
||||
var style = new DocumentStyleProperties^();
|
||||
style.color = dialogColor.SelectedColor;
|
||||
document.EditStyle(begin, end, style);
|
||||
}
|
||||
}
|
||||
]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandBackColor" Text="Background Color ..." Image-uri="res://ToolbarImages/BackColor">
|
||||
<att.Enabled-bind>self.HasEditableSelection</att.Enabled-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[
|
||||
{
|
||||
var begin = document.CaretBegin;
|
||||
var end = document.CaretEnd;
|
||||
var selectedColor = document.SummarizeStyle(begin, end).backgroundColor;
|
||||
if (selectedColor is null)
|
||||
{
|
||||
dialogColor.SelectedColor = cast Color "#000000";
|
||||
}
|
||||
else
|
||||
{
|
||||
dialogColor.SelectedColor = cast Color selectedColor;
|
||||
}
|
||||
if (dialogColor.ShowDialog())
|
||||
{
|
||||
var style = new DocumentStyleProperties^();
|
||||
style.backgroundColor = dialogColor.SelectedColor;
|
||||
document.EditStyle(begin, end, style);
|
||||
}
|
||||
}
|
||||
]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandViewOnly" Text="Preview" Image-uri="res://ToolbarImages/ViewOnly" LargeImage-uri="res://ToolbarImages/ViewOnlyLarge" ShortcutBuilder="Ctrl+Shift+P">
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[self.SetEditMode(ViewOnly);]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandSelectable" Text="Selectable" Image-uri="res://ToolbarImages/Selectable" LargeImage-uri="res://ToolbarImages/SelectableLarge" ShortcutBuilder="Ctrl+Shift+S">
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[self.SetEditMode(Selectable);]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandEditable" Text="Editable" Image-uri="res://ToolbarImages/Editable" LargeImage-uri="res://ToolbarImages/EditableLarge" ShortcutBuilder="Ctrl+Shift+E">
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[self.SetEditMode(Editable);]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandAlignDefault" Text="Set Alignment to Default (Left)" Image-uri="res://ToolbarImages/TextAlign">
|
||||
<att.Enabled-bind>self.HasEditableCursor()</att.Enabled-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[self.SetAlignment(null);]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandAlignLeft" Text="Left" Image-uri="res://ToolbarImages/TextAlignLeft" LargeImage-uri="res://ToolbarImages/TextAlignLeftLarge">
|
||||
<att.Enabled-bind>self.HasEditableCursor()</att.Enabled-bind>
|
||||
<att.Selected-bind>document.observe as _(self.SelectAlignmentCommand() == commandAlignLeft on _.SelectionChanged)</att.Selected-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[self.SetAlignment(Left);]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandAlignCenter" Text="Center" Image-uri="res://ToolbarImages/TextAlignCenter" LargeImage-uri="res://ToolbarImages/TextAlignCenterLarge">
|
||||
<att.Enabled-bind>self.HasEditableCursor()</att.Enabled-bind>
|
||||
<att.Selected-bind>document.observe as _(self.SelectAlignmentCommand() == commandAlignCenter on _.SelectionChanged)</att.Selected-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[self.SetAlignment(Center);]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
|
||||
<ToolstripCommand ref.Name="commandAlignRight" Text="Right" Image-uri="res://ToolbarImages/TextAlignRight" LargeImage-uri="res://ToolbarImages/TextAlignRightLarge">
|
||||
<att.Enabled-bind>self.HasEditableCursor()</att.Enabled-bind>
|
||||
<att.Selected-bind>document.observe as _(self.SelectAlignmentCommand() == commandAlignRight on _.SelectionChanged)</att.Selected-bind>
|
||||
<ev.Executed-eval>
|
||||
<![CDATA[self.SetAlignment(Right);]]>
|
||||
</ev.Executed-eval>
|
||||
</ToolstripCommand>
|
||||
</CustomControl>
|
||||
</Instance>
|
||||
</Instance>
|
||||
</Folder>
|
||||
@@ -0,0 +1,361 @@
|
||||
<Folder>
|
||||
<Script name="RibbonScript">
|
||||
<Workflow>
|
||||
<![CDATA[
|
||||
module ribbonscript;
|
||||
using presentation::*;
|
||||
|
||||
namespace demo
|
||||
{
|
||||
class StyleItem
|
||||
{
|
||||
var Name : string = "";
|
||||
var Style : DocumentStyle^ = null;
|
||||
|
||||
new (name : string, size : DocumentFontSize?, color : Color?, bold : bool?, italic : bool?, underline : bool?, strikeline : bool?)
|
||||
{
|
||||
Name = name;
|
||||
Style = new DocumentStyle^();
|
||||
Style.parentStyleName = "#Context";
|
||||
Style.styles = new DocumentStyleProperties^();
|
||||
Style.styles.size = size;
|
||||
Style.styles.color = color;
|
||||
Style.styles.bold = bold;
|
||||
Style.styles.italic = italic;
|
||||
Style.styles.underline = underline;
|
||||
Style.styles.strikeline = strikeline;
|
||||
}
|
||||
}
|
||||
|
||||
class StyleGroup
|
||||
{
|
||||
var Name : string = "";
|
||||
var Items : observe StyleItem^[] = {};
|
||||
}
|
||||
}
|
||||
]]>
|
||||
</Workflow>
|
||||
</Script>
|
||||
|
||||
<Instance name="StyleItemTemplateResource">
|
||||
<Instance ref.CodeBehind="false" ref.Class="demo::StyleItemTemplate">
|
||||
<ref.Parameter Name="ViewModel" Class="demo::StyleItem"/>
|
||||
<ref.Ctor>
|
||||
<![CDATA[
|
||||
{
|
||||
var styles = ViewModel.Style.styles;
|
||||
if (styles.color is not null) { styleLabel.Color = cast Color styles.color; }
|
||||
|
||||
var font = containerControl.Font;
|
||||
var fontFamily = font.fontFamily;
|
||||
var bold = font.bold;
|
||||
var italic = font.italic;
|
||||
var underline = font.underline;
|
||||
var strikeline = font.strikeline;
|
||||
var size = font.size;
|
||||
|
||||
if (styles.face is not null) { fontFamily = cast string styles.face; }
|
||||
if (styles.bold is not null) { bold = cast bool styles.bold; }
|
||||
if (styles.italic is not null) { italic = cast bool styles.italic; }
|
||||
if (styles.underline is not null) { underline = cast bool styles.underline; }
|
||||
if (styles.strikeline is not null) { strikeline = cast bool styles.strikeline; }
|
||||
|
||||
if(styles.size is not null)
|
||||
{
|
||||
var dsize = styles.size;
|
||||
if (dsize.relative)
|
||||
{
|
||||
size = cast int Math::Round(dsize.size * font.size);
|
||||
}
|
||||
else
|
||||
{
|
||||
size = cast int Math::Round(dsize.size);
|
||||
}
|
||||
}
|
||||
|
||||
styleLabel.Font = {
|
||||
fontFamily : fontFamily
|
||||
size : size
|
||||
bold : bold
|
||||
italic : italic
|
||||
underline : underline
|
||||
strikeline : strikeline
|
||||
antialias : font.antialias
|
||||
verticalAntialias : font.verticalAntialias
|
||||
};
|
||||
}
|
||||
]]>
|
||||
</ref.Ctor>
|
||||
<TextListItemTemplate ref.Name="self" MinSizeLimitation="LimitToElementAndChildren" PreferredMinSize="x:72">
|
||||
<CustomControl ref.Name="containerControl">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
<Table AlignmentToParent="left:0 top:0 right:0 bottom:0" MinSizeLimitation="LimitToElementAndChildren" CellPadding="5">
|
||||
<att.Rows>
|
||||
<_>composeType:Percentage percentage:1.0</_>
|
||||
<_>composeType:MinSize</_>
|
||||
</att.Rows>
|
||||
<att.Columns>
|
||||
<_>composeType:Percentage percentage:1.0</_>
|
||||
</att.Columns>
|
||||
|
||||
<Cell Site="row:0 column:0">
|
||||
<SolidLabel ref.Name="styleLabel" Text="AaBbCc" Ellipse="true" Color="#FFFFFF" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Cell>
|
||||
|
||||
<Cell Site="row:1 column:0">
|
||||
<SolidLabel Text-bind="ViewModel.Name" Font-eval="containerControl.Font" Ellipse="true" HorizontalAlignment="Center">
|
||||
<att.Color-bind>
|
||||
<![CDATA[cast Color (self.Selected ? "#FFFFFF" : "#808080")]]>
|
||||
</att.Color-bind>
|
||||
</SolidLabel>
|
||||
</Cell>
|
||||
</Table>
|
||||
|
||||
<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"/>
|
||||
</Bounds>
|
||||
</CustomControl>
|
||||
</att.TooltipControl>
|
||||
</CustomControl>
|
||||
</TextListItemTemplate>
|
||||
</Instance>
|
||||
</Instance>
|
||||
|
||||
<Instance name="DocumentEditorRibbonResource">
|
||||
<Instance ref.CodeBehind="false" ref.Class="demo::DocumentEditorRibbon" xmlns:demo="demo::*">
|
||||
<ref.Members>
|
||||
<![CDATA[
|
||||
@cpp:Private
|
||||
prop AlignLeftSelected : bool = true {}
|
||||
@cpp:Private
|
||||
prop AlignCenterSelected : bool = true {}
|
||||
@cpp:Private
|
||||
prop AlignRightSelected : bool = true {}
|
||||
@cpp:Private
|
||||
prop StyleGroups : demo::StyleGroup^[] = null {}
|
||||
|
||||
@cpp:Private
|
||||
func GenerateStyleGroups(): demo::StyleGroup^[]
|
||||
{
|
||||
var group1 = new StyleGroup^();
|
||||
group1.Name = "Headers";
|
||||
group1.Items.Add(new StyleItem^("Header 1", {size:2 relative:true}, (cast Color "#FF8000"), null, null, null, null));
|
||||
group1.Items.Add(new StyleItem^("Header 2", {size:1.6 relative:true}, (cast Color "#FF8000"), null, null, null, null));
|
||||
group1.Items.Add(new StyleItem^("Header 3", {size:1.3 relative:true}, null, null, null, null, null));
|
||||
|
||||
var group2 = new StyleGroup^();
|
||||
group2.Name = "Content";
|
||||
group2.Items.Add(new StyleItem^("Strong", null, null, true, null, null, null));
|
||||
group2.Items.Add(new StyleItem^("Quote", null, null, null, true, null, null));
|
||||
group2.Items.Add(new StyleItem^("Emphasis", null, null, null, true, true, null));
|
||||
group2.Items.Add(new StyleItem^("Intense Emphasis", null, (cast Color "#8080FF"), null, true, true, null));
|
||||
group2.Items.Add(new StyleItem^("Deleted", null, null, null, null, null, true));
|
||||
|
||||
var styles = document.Document.styles;
|
||||
for (styleItem in group1.Items)
|
||||
{
|
||||
styles.Set(styleItem.Name, styleItem.Style);
|
||||
}
|
||||
for (styleItem in group2.Items)
|
||||
{
|
||||
styles.Set(styleItem.Name, styleItem.Style);
|
||||
}
|
||||
|
||||
return {group1 group2};
|
||||
}
|
||||
|
||||
@cpp:Private
|
||||
func SelectStyleName(styleName : string?): void
|
||||
{
|
||||
if (styleName is not null)
|
||||
{
|
||||
for (groupIndex in range[0, StyleGroups.Count))
|
||||
{
|
||||
var group = StyleGroups[groupIndex];
|
||||
for (itemIndex in range[0, group.Items.Count))
|
||||
{
|
||||
if (group.Items[itemIndex].Name == cast string styleName)
|
||||
{
|
||||
styleGallery.SelectItem(styleGallery.GalleryPosToIndex({group:groupIndex item:itemIndex}));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
styleGallery.SelectItem(-1);
|
||||
}
|
||||
]]>
|
||||
</ref.Members>
|
||||
<ref.Ctor>
|
||||
<![CDATA[
|
||||
{
|
||||
StyleGroups = GenerateStyleGroups();
|
||||
attach(document.SelectionChanged, func(sender: GuiGraphicsComposition*, arguments: GuiEventArgs*): void
|
||||
{
|
||||
SelectStyleName(document.SummarizeStyleName(document.CaretBegin, document.CaretEnd));
|
||||
});
|
||||
}
|
||||
]]>
|
||||
</ref.Ctor>
|
||||
<demo:DocumentEditorBase ref.Name="self" Text="Document Editor (Ribbon)">
|
||||
<att.AlignLeftSelected-bind>self.document.observe as _(self.SelectAlignmentCommand() == self.commandAlignLeft on _.SelectionChanged)</att.AlignLeftSelected-bind>
|
||||
<att.AlignCenterSelected-bind>self.document.observe as _(self.SelectAlignmentCommand() == self.commandAlignCenter on _.SelectionChanged)</att.AlignCenterSelected-bind>
|
||||
<att.AlignRightSelected-bind>self.document.observe as _(self.SelectAlignmentCommand() == self.commandAlignRight on _.SelectionChanged)</att.AlignRightSelected-bind>
|
||||
|
||||
<MessageDialog ref.Name="dialogMessage" Title="You Expanded a Group!" Text="GuiRibbonGroup::ExpandButtonClicked is executed!"/>
|
||||
|
||||
<att.MenuContainer-set>
|
||||
<RibbonTab>
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
|
||||
<att.BeforeHeaders-set>
|
||||
<Button Text=" HOME ">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</Button>
|
||||
</att.BeforeHeaders-set>
|
||||
|
||||
<att.AfterHeaders-set>
|
||||
<Button Text=" WHATEVER ">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</Button>
|
||||
</att.AfterHeaders-set>
|
||||
|
||||
<att.Pages>
|
||||
<RibbonTabPage Text="Edit">
|
||||
<att.ContainerComposition-set PreferredMinSize="y:110"/>
|
||||
<att.Groups>
|
||||
<RibbonGroup Text="Alignment" Expandable="true" LargeImage-uri="res://ToolbarImages/EditableLarge">
|
||||
<ev.ExpandButtonClicked-eval>
|
||||
<![CDATA[
|
||||
{
|
||||
dialogMessage.ShowDialog();
|
||||
}
|
||||
]]>
|
||||
</ev.ExpandButtonClicked-eval>
|
||||
<att.Items>
|
||||
<RibbonLargeDropdownButton Text="Edit Mode">
|
||||
<att.LargeImage-bind>self.EditModeCommand.LargeImage ?? null</att.LargeImage-bind>
|
||||
<att.SubMenu-set>
|
||||
<MenuItemButton Command-eval="self.commandViewOnly" Alt="V"/>
|
||||
<MenuItemButton Command-eval="self.commandSelectable" Alt="S"/>
|
||||
<MenuItemButton Command-eval="self.commandEditable" Alt="E"/>
|
||||
</att.SubMenu-set>
|
||||
</RibbonLargeDropdownButton>
|
||||
<RibbonSplitter/>
|
||||
<RibbonButtons MaxSize="Large" MinSize="Icon">
|
||||
<att.Buttons>
|
||||
<ToolstripButton Command-eval="self.commandAlignLeft" Selected-bind="self.AlignLeftSelected"/>
|
||||
<ToolstripButton Command-eval="self.commandAlignCenter" Selected-bind="self.AlignCenterSelected"/>
|
||||
<ToolstripButton Command-eval="self.commandAlignRight" Selected-bind="self.AlignRightSelected"/>
|
||||
</att.Buttons>
|
||||
</RibbonButtons>
|
||||
</att.Items>
|
||||
</RibbonGroup>
|
||||
|
||||
<RibbonGroup Text="Edit" LargeImage-uri="res://ToolbarImages/PasteLarge">
|
||||
<att.Items>
|
||||
<RibbonButtons MaxSize="Large" MinSize="Icon">
|
||||
<att.Buttons>
|
||||
<ToolstripButton Command-eval="self.commandUndo"/>
|
||||
<ToolstripButton Command-eval="self.commandRedo"/>
|
||||
</att.Buttons>
|
||||
</RibbonButtons>
|
||||
<RibbonSplitter/>
|
||||
<RibbonButtons MaxSize="Large" MinSize="Icon">
|
||||
<att.Buttons>
|
||||
<ToolstripButton Command-eval="self.commandCopy"/>
|
||||
<ToolstripButton Command-eval="self.commandCut"/>
|
||||
<ToolstripButton Command-eval="self.commandPaste"/>
|
||||
</att.Buttons>
|
||||
</RibbonButtons>
|
||||
<RibbonSplitter/>
|
||||
<RibbonLargeButton Command-eval="self.commandDelete"/>
|
||||
</att.Items>
|
||||
</RibbonGroup>
|
||||
|
||||
<RibbonGroup Text="Text">
|
||||
<att.Items>
|
||||
<RibbonToolstrips>
|
||||
<att.Groups>
|
||||
<ToolstripGroup>
|
||||
<ToolstripButton Command-eval="self.commandBold"/>
|
||||
<ToolstripButton Command-eval="self.commandItalic"/>
|
||||
</ToolstripGroup>
|
||||
<ToolstripGroup>
|
||||
<ToolstripButton Command-eval="self.commandUnderline"/>
|
||||
<ToolstripButton Command-eval="self.commandStrike"/>
|
||||
</ToolstripGroup>
|
||||
<ToolstripGroup>
|
||||
<ToolstripButton Command-eval="self.commandFont"/>
|
||||
<ToolstripButton Command-eval="self.commandColor"/>
|
||||
<ToolstripButton Command-eval="self.commandBackColor"/>
|
||||
</ToolstripGroup>
|
||||
<ToolstripGroup>
|
||||
<ToolstripButton Command-eval="self.commandEditHyperlink"/>
|
||||
<ToolstripButton Command-eval="self.commandRemoveHyperlink"/>
|
||||
</ToolstripGroup>
|
||||
</att.Groups>
|
||||
</RibbonToolstrips>
|
||||
</att.Items>
|
||||
</RibbonGroup>
|
||||
|
||||
<RibbonGroup Text="Style" LargeImage-uri="res://ToolbarImages/EditableLarge">
|
||||
<att.Items>
|
||||
<BindableRibbonGalleryList ref.Name="styleGallery" ItemTemplate="demo:StyleItemTemplate" MinCount="2" MaxCount="5" VisibleItemCount="5" env.ItemType="demo::StyleGroup^">
|
||||
<att.ItemSource-bind>self.StyleGroups</att.ItemSource-bind>
|
||||
<att.GroupTitleProperty>Name</att.GroupTitleProperty>
|
||||
<att.GroupChildrenProperty>Items</att.GroupChildrenProperty>
|
||||
|
||||
<att.SubMenu-set>
|
||||
<RibbonToolstripHeader Text="Header A"/>
|
||||
<MenuItemButton Text="Item A1"/>
|
||||
<MenuItemButton Text="Item A2"/>
|
||||
<MenuItemButton Text="Item A3"/>
|
||||
<RibbonToolstripHeader Text="Header B"/>
|
||||
<MenuItemButton Text="Item B1"/>
|
||||
<MenuItemButton Text="Item B2"/>
|
||||
<MenuItemButton Text="Item B3"/>
|
||||
</att.SubMenu-set>
|
||||
|
||||
<ev.ItemApplied-eval>
|
||||
<![CDATA[
|
||||
{
|
||||
if (arguments.itemIndex != -1)
|
||||
{
|
||||
var pos = styleGallery.IndexToGalleryPos(arguments.itemIndex);
|
||||
self.document.ClearStyle(self.document.CaretBegin, self.document.CaretEnd);
|
||||
self.document.EditStyleName(self.document.CaretBegin, self.document.CaretEnd, self.StyleGroups[pos.group].Items[pos.item].Name);
|
||||
}
|
||||
}
|
||||
]]>
|
||||
</ev.ItemApplied-eval>
|
||||
</BindableRibbonGalleryList>
|
||||
</att.Items>
|
||||
</RibbonGroup>
|
||||
</att.Groups>
|
||||
</RibbonTabPage>
|
||||
|
||||
<RibbonTabPage Text="Insert" Highlighted="true">
|
||||
<att.Groups>
|
||||
<RibbonGroup Text="Object">
|
||||
<att.Items>
|
||||
<RibbonButtons MaxSize="Large" MinSize="Small">
|
||||
<att.Buttons>
|
||||
<ToolstripButton Command-eval="self.commandInsertImage"/>
|
||||
<ToolstripButton Command-eval="self.commandEditHyperlink"/>
|
||||
<ToolstripButton Command-eval="self.commandRemoveHyperlink"/>
|
||||
</att.Buttons>
|
||||
</RibbonButtons>
|
||||
</att.Items>
|
||||
</RibbonGroup>
|
||||
</att.Groups>
|
||||
</RibbonTabPage>
|
||||
</att.Pages>
|
||||
</RibbonTab>
|
||||
</att.MenuContainer-set>
|
||||
</demo:DocumentEditorBase>
|
||||
</Instance>
|
||||
</Instance>
|
||||
</Folder>
|
||||
+107
@@ -0,0 +1,107 @@
|
||||
<Folder>
|
||||
<Instance name="DocumentEditorToolstripResource">
|
||||
<Instance ref.CodeBehind="false" ref.Class="demo::DocumentEditorToolstrip" xmlns:demo="demo::*">
|
||||
<demo:DocumentEditorBase ref.Name="self" Text="Document Editor (Toolstrip)">
|
||||
<att.MenuContainer-set>
|
||||
<ToolstripMenuBar>
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
<MenuBarButton Text="Edit" Alt="E">
|
||||
<att.SubMenu-set>
|
||||
<ToolstripGroupContainer>
|
||||
<ToolstripGroup>
|
||||
<MenuItemButton Command-eval="self.commandUndo" Alt="U"/>
|
||||
<MenuItemButton Command-eval="self.commandRedo" Alt="R"/>
|
||||
</ToolstripGroup>
|
||||
<ToolstripGroup>
|
||||
<MenuItemButton Command-eval="self.commandCopy" Alt="C"/>
|
||||
<MenuItemButton Command-eval="self.commandCut" Alt="X"/>
|
||||
<MenuItemButton Command-eval="self.commandPaste" Alt="P"/>
|
||||
</ToolstripGroup>
|
||||
<MenuItemButton Command-eval="self.commandDelete" Alt="D"/>
|
||||
<ToolstripGroup>
|
||||
<MenuItemButton Command-eval="self.commandSelect" Alt="A"/>
|
||||
<MenuItemButton Text="Object" Alt="O">
|
||||
<att.SubMenu-set>
|
||||
<MenuItemButton Command-eval="self.commandInsertImage" Alt="I"/>
|
||||
<MenuItemButton Command-eval="self.commandEditHyperlink" Alt="L"/>
|
||||
<MenuItemButton Command-eval="self.commandRemoveHyperlink" Alt="R"/>
|
||||
</att.SubMenu-set>
|
||||
</MenuItemButton>
|
||||
<MenuItemButton Text="Paragram Alignment" Alt="P">
|
||||
<att.SubMenu-set>
|
||||
<MenuItemButton Command-eval="self.commandAlignDefault" Alt="D"/>
|
||||
<MenuItemButton Command-eval="self.commandAlignLeft" Alt="L"/>
|
||||
<MenuItemButton Command-eval="self.commandAlignCenter" Alt="C"/>
|
||||
<MenuItemButton Command-eval="self.commandAlignRight" Alt="R"/>
|
||||
</att.SubMenu-set>
|
||||
</MenuItemButton>
|
||||
</ToolstripGroup>
|
||||
</ToolstripGroupContainer>
|
||||
</att.SubMenu-set>
|
||||
</MenuBarButton>
|
||||
<MenuBarButton Text="View" Alt="V">
|
||||
<att.SubMenu-set>
|
||||
<MenuItemButton Command-eval="self.commandViewOnly" Alt="V"/>
|
||||
<MenuItemButton Command-eval="self.commandSelectable" Alt="S"/>
|
||||
<MenuItemButton Command-eval="self.commandEditable" Alt="E"/>
|
||||
</att.SubMenu-set>
|
||||
</MenuBarButton>
|
||||
</ToolstripMenuBar>
|
||||
</att.MenuContainer-set>
|
||||
|
||||
<att.ToolstripContainer-set>
|
||||
<ToolstripToolBar>
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
<ToolstripGroupContainer>
|
||||
<ToolstripGroup>
|
||||
<ToolstripDropdownButton Alt="V">
|
||||
<att.Image-bind>self.EditModeCommand.Image ?? null</att.Image-bind>
|
||||
<att.SubMenu-set>
|
||||
<MenuItemButton Command-eval="self.commandViewOnly" Alt="V"/>
|
||||
<MenuItemButton Command-eval="self.commandSelectable" Alt="S"/>
|
||||
<MenuItemButton Command-eval="self.commandEditable" Alt="E"/>
|
||||
</att.SubMenu-set>
|
||||
</ToolstripDropdownButton>
|
||||
<ToolstripDropdownButton ref.Name="buttonAlignment" Alt="P">
|
||||
<att.Image-bind>self.document.observe as _(self.SelectAlignmentCommand().Image on _.SelectionChanged)</att.Image-bind>
|
||||
<att.SubMenu-set>
|
||||
<MenuItemButton Command-eval="self.commandAlignDefault" Alt="D"/>
|
||||
<MenuItemButton Command-eval="self.commandAlignLeft" Alt="L"/>
|
||||
<MenuItemButton Command-eval="self.commandAlignCenter" Alt="C"/>
|
||||
<MenuItemButton Command-eval="self.commandAlignRight" Alt="R"/>
|
||||
</att.SubMenu-set>
|
||||
</ToolstripDropdownButton>
|
||||
</ToolstripGroup>
|
||||
<ToolstripGroup>
|
||||
<ToolstripButton Command-eval="self.commandUndo" Alt="U"/>
|
||||
<ToolstripButton Command-eval="self.commandRedo" Alt="R"/>
|
||||
</ToolstripGroup>
|
||||
<ToolstripGroup>
|
||||
<ToolstripButton Command-eval="self.commandCopy" Alt="C"/>
|
||||
<ToolstripButton Command-eval="self.commandCut" Alt="X"/>
|
||||
<ToolstripButton Command-eval="self.commandPaste" Alt="P"/>
|
||||
</ToolstripGroup>
|
||||
<ToolstripButton Command-eval="self.commandDelete" Alt="D"/>
|
||||
<ToolstripGroup>
|
||||
<ToolstripSplitButton Command-eval="self.commandInsertImage" Alt="I">
|
||||
<att.SubMenu-set>
|
||||
<MenuItemButton Command-eval="self.commandInsertImage" Alt="I"/>
|
||||
<MenuItemButton Command-eval="self.commandEditHyperlink" Alt="L"/>
|
||||
<MenuItemButton Command-eval="self.commandRemoveHyperlink" Alt="R"/>
|
||||
</att.SubMenu-set>
|
||||
</ToolstripSplitButton>
|
||||
<ToolstripButton Command-eval="self.commandBold" Alt="B"/>
|
||||
<ToolstripButton Command-eval="self.commandItalic" Alt="I"/>
|
||||
<ToolstripButton Command-eval="self.commandUnderline" Alt="U"/>
|
||||
<ToolstripButton Command-eval="self.commandStrike" Alt="S"/>
|
||||
<ToolstripButton Command-eval="self.commandFont" Alt="F"/>
|
||||
<ToolstripButton Command-eval="self.commandColor" Alt="C"/>
|
||||
<ToolstripButton Command-eval="self.commandBackColor" Alt="K"/>
|
||||
</ToolstripGroup>
|
||||
</ToolstripGroupContainer>
|
||||
</ToolstripToolBar>
|
||||
</att.ToolstripContainer-set>
|
||||
</demo:DocumentEditorBase>
|
||||
</Instance>
|
||||
</Instance>
|
||||
</Folder>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -38,8 +38,16 @@
|
||||
<Tab>
|
||||
<att.BoundsComposition-set AlignmentToParent="left:5 top:5 right:5 bottom:5"/>
|
||||
<att.Pages>
|
||||
<demo:DocumentToolstripTabPage Alt="D"/>
|
||||
<demo:DocumentRibbonTabPage Alt="D"/>
|
||||
<TabPage Alt="D" Text-bind="editorRibbon.Text">
|
||||
<demo:DocumentEditorRibbon ref.Name="editorRibbon">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</demo:DocumentEditorRibbon>
|
||||
</TabPage>
|
||||
<TabPage Alt="D" Text-bind="editorToolstrip.Text">
|
||||
<demo:DocumentEditorToolstrip ref.Name="editorToolstrip">
|
||||
<att.BoundsComposition-set AlignmentToParent="left:0 top:0 right:0 bottom:0"/>
|
||||
</demo:DocumentEditorToolstrip>
|
||||
</TabPage>
|
||||
<demo:TextBoxTabPage Alt="T"/>
|
||||
</att.Pages>
|
||||
</Tab>
|
||||
@@ -70,9 +78,11 @@
|
||||
<Folder name="ResponsiveTabPage" content="Link">ResponsiveTabPage.xml</Folder>
|
||||
<Folder name="RepeatComponents" content="Link">RepeatComponents.xml</Folder>
|
||||
|
||||
<Folder name="DocumentTabPage" content="Link">DocumentTabPage.xml</Folder>
|
||||
<Folder name="TextBoxComponents" content="Link">TextBoxTabPage.xml</Folder>
|
||||
<Folder name="DocumentComponents" content="Link">DocumentComponents.xml</Folder>
|
||||
<Folder name="DocumentEditorBase" content="Link">DocumentEditorBase.xml</Folder>
|
||||
<Folder name="DocumentEditorRibbon" content="Link">DocumentEditorRibbon.xml</Folder>
|
||||
<Folder name="DocumentEditorToolstrip" content="Link">DocumentEditorToolstrip.xml</Folder>
|
||||
|
||||
<Instance name="ElementTabPageResource" content="File">ElementTabPage.xml</Instance>
|
||||
<Folder name="AnimationTabPage" content="Link">AnimationTabPage.xml</Folder>
|
||||
|
||||
+5907
-5351
File diff suppressed because it is too large
Load Diff
+2276
-2112
File diff suppressed because it is too large
Load Diff
+129
-120
@@ -49,12 +49,12 @@ namespace vl
|
||||
IMPL_CPP_TYPE_INFO(demo::DateEditorConstructor)
|
||||
IMPL_CPP_TYPE_INFO(demo::DateFilter)
|
||||
IMPL_CPP_TYPE_INFO(demo::DateFilterConstructor)
|
||||
IMPL_CPP_TYPE_INFO(demo::DocumentRibbonTabPage)
|
||||
IMPL_CPP_TYPE_INFO(demo::DocumentRibbonTabPageConstructor)
|
||||
IMPL_CPP_TYPE_INFO(demo::DocumentTabPageBase)
|
||||
IMPL_CPP_TYPE_INFO(demo::DocumentTabPageBaseConstructor)
|
||||
IMPL_CPP_TYPE_INFO(demo::DocumentToolstripTabPage)
|
||||
IMPL_CPP_TYPE_INFO(demo::DocumentToolstripTabPageConstructor)
|
||||
IMPL_CPP_TYPE_INFO(demo::DocumentEditorBase)
|
||||
IMPL_CPP_TYPE_INFO(demo::DocumentEditorBaseConstructor)
|
||||
IMPL_CPP_TYPE_INFO(demo::DocumentEditorRibbon)
|
||||
IMPL_CPP_TYPE_INFO(demo::DocumentEditorRibbonConstructor)
|
||||
IMPL_CPP_TYPE_INFO(demo::DocumentEditorToolstrip)
|
||||
IMPL_CPP_TYPE_INFO(demo::DocumentEditorToolstripConstructor)
|
||||
IMPL_CPP_TYPE_INFO(demo::ElementTabPage)
|
||||
IMPL_CPP_TYPE_INFO(demo::ElementTabPageConstructor)
|
||||
IMPL_CPP_TYPE_INFO(demo::GenderDisplayer)
|
||||
@@ -360,32 +360,111 @@ namespace vl
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
END_CLASS_MEMBER(::demo::DateFilterConstructor)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::DocumentRibbonTabPage)
|
||||
CLASS_MEMBER_BASE(::demo::DocumentTabPageBase)
|
||||
CLASS_MEMBER_BASE(::demo::DocumentRibbonTabPageConstructor)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::demo::DocumentRibbonTabPage*(), NO_PARAMETER)
|
||||
BEGIN_CLASS_MEMBER(::demo::DocumentEditorBase)
|
||||
CLASS_MEMBER_BASE(::vl::presentation::controls::GuiCustomControl)
|
||||
CLASS_MEMBER_BASE(::demo::DocumentEditorBaseConstructor)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::demo::DocumentEditorBase*(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_instance_ctor_, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetEditModeCommand, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetHasEditableSelection, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetHasEditableSelectionInSingleParagraph, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetMenuContainer, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetToolstripContainer, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(HasEditableCursor, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(HasEditableHyperlink, { L"forEdit" })
|
||||
CLASS_MEMBER_METHOD(SelectAlignmentCommand, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(SetAlignment, { L"alignment" })
|
||||
CLASS_MEMBER_METHOD(SetEditMode, { L"editMode" })
|
||||
CLASS_MEMBER_METHOD(SetEditModeCommand, { L"__vwsn_value_" })
|
||||
CLASS_MEMBER_METHOD(SetHasEditableSelection, { L"__vwsn_value_" })
|
||||
CLASS_MEMBER_METHOD(SetHasEditableSelectionInSingleParagraph, { L"__vwsn_value_" })
|
||||
CLASS_MEMBER_EVENT(EditModeCommandChanged)
|
||||
CLASS_MEMBER_EVENT(HasEditableSelectionChanged)
|
||||
CLASS_MEMBER_EVENT(HasEditableSelectionInSingleParagraphChanged)
|
||||
CLASS_MEMBER_FIELD(__vwsn_prop_EditModeCommand)
|
||||
CLASS_MEMBER_FIELD(__vwsn_prop_HasEditableSelection)
|
||||
CLASS_MEMBER_FIELD(__vwsn_prop_HasEditableSelectionInSingleParagraph)
|
||||
CLASS_MEMBER_PROPERTY_EVENT_READONLY(EditModeCommand, GetEditModeCommand, EditModeCommandChanged)
|
||||
CLASS_MEMBER_PROPERTY_EVENT(HasEditableSelection, GetHasEditableSelection, SetHasEditableSelection, HasEditableSelectionChanged)
|
||||
CLASS_MEMBER_PROPERTY_EVENT(HasEditableSelectionInSingleParagraph, GetHasEditableSelectionInSingleParagraph, SetHasEditableSelectionInSingleParagraph, HasEditableSelectionInSingleParagraphChanged)
|
||||
CLASS_MEMBER_PROPERTY_READONLY(MenuContainer, GetMenuContainer)
|
||||
CLASS_MEMBER_PROPERTY_READONLY(ToolstripContainer, GetToolstripContainer)
|
||||
END_CLASS_MEMBER(::demo::DocumentEditorBase)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::DocumentEditorBaseConstructor)
|
||||
CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::DocumentEditorBaseConstructor>(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_demo_DocumentEditorBase_Initialize, { L"__vwsn_this_" })
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_0)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_1)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_2)
|
||||
CLASS_MEMBER_FIELD(commandAlignCenter)
|
||||
CLASS_MEMBER_FIELD(commandAlignDefault)
|
||||
CLASS_MEMBER_FIELD(commandAlignLeft)
|
||||
CLASS_MEMBER_FIELD(commandAlignRight)
|
||||
CLASS_MEMBER_FIELD(commandBackColor)
|
||||
CLASS_MEMBER_FIELD(commandBold)
|
||||
CLASS_MEMBER_FIELD(commandColor)
|
||||
CLASS_MEMBER_FIELD(commandCopy)
|
||||
CLASS_MEMBER_FIELD(commandCut)
|
||||
CLASS_MEMBER_FIELD(commandDelete)
|
||||
CLASS_MEMBER_FIELD(commandEditHyperlink)
|
||||
CLASS_MEMBER_FIELD(commandEditable)
|
||||
CLASS_MEMBER_FIELD(commandFont)
|
||||
CLASS_MEMBER_FIELD(commandInsertImage)
|
||||
CLASS_MEMBER_FIELD(commandItalic)
|
||||
CLASS_MEMBER_FIELD(commandPaste)
|
||||
CLASS_MEMBER_FIELD(commandRedo)
|
||||
CLASS_MEMBER_FIELD(commandRemoveHyperlink)
|
||||
CLASS_MEMBER_FIELD(commandSelect)
|
||||
CLASS_MEMBER_FIELD(commandSelectable)
|
||||
CLASS_MEMBER_FIELD(commandStrike)
|
||||
CLASS_MEMBER_FIELD(commandUnderline)
|
||||
CLASS_MEMBER_FIELD(commandUndo)
|
||||
CLASS_MEMBER_FIELD(commandViewOnly)
|
||||
CLASS_MEMBER_FIELD(dialogColor)
|
||||
CLASS_MEMBER_FIELD(dialogFont)
|
||||
CLASS_MEMBER_FIELD(dialogMessage)
|
||||
CLASS_MEMBER_FIELD(dialogOpen)
|
||||
CLASS_MEMBER_FIELD(document)
|
||||
CLASS_MEMBER_FIELD(menuContainer)
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
CLASS_MEMBER_FIELD(toolstripContainer)
|
||||
END_CLASS_MEMBER(::demo::DocumentEditorBaseConstructor)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::DocumentEditorRibbon)
|
||||
CLASS_MEMBER_BASE(::demo::DocumentEditorBase)
|
||||
CLASS_MEMBER_BASE(::demo::DocumentEditorRibbonConstructor)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::demo::DocumentEditorRibbon*(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_instance_ctor_, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GenerateStyleGroups, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetAlignCenterSelected, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetAlignLeftSelected, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetAlignRightSelected, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetStyleGroups, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(SelectStyleName, { L"styleName" })
|
||||
CLASS_MEMBER_METHOD(SetAlignCenterSelected, { L"__vwsn_value_" })
|
||||
CLASS_MEMBER_METHOD(SetAlignLeftSelected, { L"__vwsn_value_" })
|
||||
CLASS_MEMBER_METHOD(SetAlignRightSelected, { L"__vwsn_value_" })
|
||||
CLASS_MEMBER_METHOD(SetStyleGroups, { L"__vwsn_value_" })
|
||||
CLASS_MEMBER_EVENT(AlignCenterSelectedChanged)
|
||||
CLASS_MEMBER_EVENT(AlignLeftSelectedChanged)
|
||||
CLASS_MEMBER_EVENT(AlignRightSelectedChanged)
|
||||
CLASS_MEMBER_EVENT(StyleGroupsChanged)
|
||||
CLASS_MEMBER_FIELD(__vwsn_prop_AlignCenterSelected)
|
||||
CLASS_MEMBER_FIELD(__vwsn_prop_AlignLeftSelected)
|
||||
CLASS_MEMBER_FIELD(__vwsn_prop_AlignRightSelected)
|
||||
CLASS_MEMBER_FIELD(__vwsn_prop_StyleGroups)
|
||||
CLASS_MEMBER_PROPERTY_EVENT(AlignCenterSelected, GetAlignCenterSelected, SetAlignCenterSelected, AlignCenterSelectedChanged)
|
||||
CLASS_MEMBER_PROPERTY_EVENT(AlignLeftSelected, GetAlignLeftSelected, SetAlignLeftSelected, AlignLeftSelectedChanged)
|
||||
CLASS_MEMBER_PROPERTY_EVENT(AlignRightSelected, GetAlignRightSelected, SetAlignRightSelected, AlignRightSelectedChanged)
|
||||
END_CLASS_MEMBER(::demo::DocumentRibbonTabPage)
|
||||
CLASS_MEMBER_PROPERTY_EVENT(StyleGroups, GetStyleGroups, SetStyleGroups, StyleGroupsChanged)
|
||||
END_CLASS_MEMBER(::demo::DocumentEditorRibbon)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::DocumentRibbonTabPageConstructor)
|
||||
BEGIN_CLASS_MEMBER(::demo::DocumentEditorRibbonConstructor)
|
||||
CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::DocumentRibbonTabPageConstructor>(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_demo_DocumentRibbonTabPage_Initialize, { L"__vwsn_this_" })
|
||||
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::DocumentEditorRibbonConstructor>(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_demo_DocumentEditorRibbon_Initialize, { L"__vwsn_this_" })
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_0)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_1)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_10)
|
||||
@@ -447,99 +526,24 @@ namespace vl
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_61)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_62)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_63)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_64)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_65)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_66)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_67)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_68)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_7)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_8)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_9)
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
END_CLASS_MEMBER(::demo::DocumentRibbonTabPageConstructor)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::DocumentTabPageBase)
|
||||
CLASS_MEMBER_BASE(::vl::presentation::controls::GuiTabPage)
|
||||
CLASS_MEMBER_BASE(::demo::DocumentTabPageBaseConstructor)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::demo::DocumentTabPageBase*(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_instance_ctor_, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetEditModeCommand, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetHasEditableSelection, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetHasEditableSelectionInSingleParagraph, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetMenuContainer, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetToolstripContainer, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(HasEditableCursor, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(HasEditableHyperlink, { L"forEdit" })
|
||||
CLASS_MEMBER_METHOD(SelectAlignmentCommand, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(SetAlignment, { L"alignment" })
|
||||
CLASS_MEMBER_METHOD(SetEditMode, { L"editMode" })
|
||||
CLASS_MEMBER_METHOD(SetEditModeCommand, { L"__vwsn_value_" })
|
||||
CLASS_MEMBER_METHOD(SetHasEditableSelection, { L"__vwsn_value_" })
|
||||
CLASS_MEMBER_METHOD(SetHasEditableSelectionInSingleParagraph, { L"__vwsn_value_" })
|
||||
CLASS_MEMBER_EVENT(EditModeCommandChanged)
|
||||
CLASS_MEMBER_EVENT(HasEditableSelectionChanged)
|
||||
CLASS_MEMBER_EVENT(HasEditableSelectionInSingleParagraphChanged)
|
||||
CLASS_MEMBER_FIELD(__vwsn_prop_EditModeCommand)
|
||||
CLASS_MEMBER_FIELD(__vwsn_prop_HasEditableSelection)
|
||||
CLASS_MEMBER_FIELD(__vwsn_prop_HasEditableSelectionInSingleParagraph)
|
||||
CLASS_MEMBER_PROPERTY_EVENT_READONLY(EditModeCommand, GetEditModeCommand, EditModeCommandChanged)
|
||||
CLASS_MEMBER_PROPERTY_EVENT(HasEditableSelection, GetHasEditableSelection, SetHasEditableSelection, HasEditableSelectionChanged)
|
||||
CLASS_MEMBER_PROPERTY_EVENT(HasEditableSelectionInSingleParagraph, GetHasEditableSelectionInSingleParagraph, SetHasEditableSelectionInSingleParagraph, HasEditableSelectionInSingleParagraphChanged)
|
||||
CLASS_MEMBER_PROPERTY_READONLY(MenuContainer, GetMenuContainer)
|
||||
CLASS_MEMBER_PROPERTY_READONLY(ToolstripContainer, GetToolstripContainer)
|
||||
END_CLASS_MEMBER(::demo::DocumentTabPageBase)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::DocumentTabPageBaseConstructor)
|
||||
CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::DocumentTabPageBaseConstructor>(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_demo_DocumentTabPageBase_Initialize, { L"__vwsn_this_" })
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_0)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_1)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_2)
|
||||
CLASS_MEMBER_FIELD(commandAlignCenter)
|
||||
CLASS_MEMBER_FIELD(commandAlignDefault)
|
||||
CLASS_MEMBER_FIELD(commandAlignLeft)
|
||||
CLASS_MEMBER_FIELD(commandAlignRight)
|
||||
CLASS_MEMBER_FIELD(commandBackColor)
|
||||
CLASS_MEMBER_FIELD(commandBold)
|
||||
CLASS_MEMBER_FIELD(commandColor)
|
||||
CLASS_MEMBER_FIELD(commandCopy)
|
||||
CLASS_MEMBER_FIELD(commandCut)
|
||||
CLASS_MEMBER_FIELD(commandDelete)
|
||||
CLASS_MEMBER_FIELD(commandEditHyperlink)
|
||||
CLASS_MEMBER_FIELD(commandEditable)
|
||||
CLASS_MEMBER_FIELD(commandFont)
|
||||
CLASS_MEMBER_FIELD(commandInsertImage)
|
||||
CLASS_MEMBER_FIELD(commandItalic)
|
||||
CLASS_MEMBER_FIELD(commandPaste)
|
||||
CLASS_MEMBER_FIELD(commandRedo)
|
||||
CLASS_MEMBER_FIELD(commandRemoveHyperlink)
|
||||
CLASS_MEMBER_FIELD(commandSelect)
|
||||
CLASS_MEMBER_FIELD(commandSelectable)
|
||||
CLASS_MEMBER_FIELD(commandStrike)
|
||||
CLASS_MEMBER_FIELD(commandUnderline)
|
||||
CLASS_MEMBER_FIELD(commandUndo)
|
||||
CLASS_MEMBER_FIELD(commandViewOnly)
|
||||
CLASS_MEMBER_FIELD(dialogColor)
|
||||
CLASS_MEMBER_FIELD(dialogFont)
|
||||
CLASS_MEMBER_FIELD(dialogMessage)
|
||||
CLASS_MEMBER_FIELD(dialogOpen)
|
||||
CLASS_MEMBER_FIELD(document)
|
||||
CLASS_MEMBER_FIELD(menuContainer)
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
CLASS_MEMBER_FIELD(toolstripContainer)
|
||||
END_CLASS_MEMBER(::demo::DocumentTabPageBaseConstructor)
|
||||
CLASS_MEMBER_FIELD(styleGallery)
|
||||
END_CLASS_MEMBER(::demo::DocumentEditorRibbonConstructor)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::DocumentToolstripTabPage)
|
||||
CLASS_MEMBER_BASE(::demo::DocumentTabPageBase)
|
||||
CLASS_MEMBER_BASE(::demo::DocumentToolstripTabPageConstructor)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::demo::DocumentToolstripTabPage*(), NO_PARAMETER)
|
||||
END_CLASS_MEMBER(::demo::DocumentToolstripTabPage)
|
||||
BEGIN_CLASS_MEMBER(::demo::DocumentEditorToolstrip)
|
||||
CLASS_MEMBER_BASE(::demo::DocumentEditorBase)
|
||||
CLASS_MEMBER_BASE(::demo::DocumentEditorToolstripConstructor)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::demo::DocumentEditorToolstrip*(), NO_PARAMETER)
|
||||
END_CLASS_MEMBER(::demo::DocumentEditorToolstrip)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::DocumentToolstripTabPageConstructor)
|
||||
BEGIN_CLASS_MEMBER(::demo::DocumentEditorToolstripConstructor)
|
||||
CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::DocumentToolstripTabPageConstructor>(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_demo_DocumentToolstripTabPage_Initialize, { L"__vwsn_this_" })
|
||||
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::DocumentEditorToolstripConstructor>(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(__vwsn_demo_DocumentEditorToolstrip_Initialize, { L"__vwsn_this_" })
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_0)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_1)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_10)
|
||||
@@ -610,7 +614,7 @@ namespace vl
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_9)
|
||||
CLASS_MEMBER_FIELD(buttonAlignment)
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
END_CLASS_MEMBER(::demo::DocumentToolstripTabPageConstructor)
|
||||
END_CLASS_MEMBER(::demo::DocumentEditorToolstripConstructor)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::ElementTabPage)
|
||||
CLASS_MEMBER_BASE(::vl::presentation::controls::GuiTabPage)
|
||||
@@ -904,6 +908,8 @@ namespace vl
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_24)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_25)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_26)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_27)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_28)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_3)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_4)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_5)
|
||||
@@ -911,6 +917,8 @@ namespace vl
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_7)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_8)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_9)
|
||||
CLASS_MEMBER_FIELD(editorRibbon)
|
||||
CLASS_MEMBER_FIELD(editorToolstrip)
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
END_CLASS_MEMBER(::demo::MainWindowConstructor)
|
||||
|
||||
@@ -1251,30 +1259,22 @@ namespace vl
|
||||
BEGIN_CLASS_MEMBER(::demo::StyleGroup)
|
||||
CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::StyleGroup>(), NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetItems, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetName, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(SetItems, { L"__vwsn_value_" })
|
||||
CLASS_MEMBER_METHOD(SetName, { L"__vwsn_value_" })
|
||||
CLASS_MEMBER_EVENT(NameChanged)
|
||||
CLASS_MEMBER_FIELD(__vwsn_prop_Items)
|
||||
CLASS_MEMBER_FIELD(__vwsn_prop_Name)
|
||||
CLASS_MEMBER_PROPERTY_READONLY(Items, GetItems)
|
||||
CLASS_MEMBER_PROPERTY_EVENT(Name, GetName, SetName, NameChanged)
|
||||
CLASS_MEMBER_FIELD(Items)
|
||||
CLASS_MEMBER_FIELD(Name)
|
||||
END_CLASS_MEMBER(::demo::StyleGroup)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::StyleItem)
|
||||
CLASS_MEMBER_BASE(::vl::reflection::DescriptableObject)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::StyleItem>(const ::vl::WString&), { L"value" })
|
||||
CLASS_MEMBER_METHOD(GetValue, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(SetValue, { L"__vwsn_value_" })
|
||||
CLASS_MEMBER_FIELD(__vwsn_prop_Value)
|
||||
CLASS_MEMBER_PROPERTY(Value, GetValue, SetValue)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::vl::Ptr<::demo::StyleItem>(const ::vl::WString&, ::vl::Nullable<::vl::presentation::DocumentFontSize>, ::vl::Nullable<::vl::presentation::Color>, ::vl::Nullable<bool>, ::vl::Nullable<bool>, ::vl::Nullable<bool>, ::vl::Nullable<bool>), { L"name" _ L"size" _ L"color" _ L"bold" _ L"italic" _ L"underline" _ L"strikeline" })
|
||||
CLASS_MEMBER_FIELD(Name)
|
||||
CLASS_MEMBER_FIELD(Style)
|
||||
END_CLASS_MEMBER(::demo::StyleItem)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::StyleItemTemplate)
|
||||
CLASS_MEMBER_BASE(::vl::presentation::templates::GuiTextListItemTemplate)
|
||||
CLASS_MEMBER_BASE(::demo::StyleItemTemplateConstructor)
|
||||
CLASS_MEMBER_CONSTRUCTOR(::demo::StyleItemTemplate*(::vl::Ptr<::demo::StyleItem>), { L"__vwsn_ctor_parameter_ViewModel" })
|
||||
CLASS_MEMBER_METHOD(__vwsn_instance_ctor_, NO_PARAMETER)
|
||||
CLASS_MEMBER_METHOD(GetViewModel, NO_PARAMETER)
|
||||
CLASS_MEMBER_FIELD(__vwsn_parameter_ViewModel)
|
||||
CLASS_MEMBER_PROPERTY_READONLY(ViewModel, GetViewModel)
|
||||
@@ -1286,7 +1286,16 @@ namespace vl
|
||||
CLASS_MEMBER_METHOD(__vwsn_demo_StyleItemTemplate_Initialize, { L"__vwsn_this_" })
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_0)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_1)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_2)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_3)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_4)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_5)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_6)
|
||||
CLASS_MEMBER_FIELD(__vwsn_precompile_7)
|
||||
CLASS_MEMBER_FIELD(ViewModel)
|
||||
CLASS_MEMBER_FIELD(containerControl)
|
||||
CLASS_MEMBER_FIELD(self)
|
||||
CLASS_MEMBER_FIELD(styleLabel)
|
||||
END_CLASS_MEMBER(::demo::StyleItemTemplateConstructor)
|
||||
|
||||
BEGIN_CLASS_MEMBER(::demo::TextBoxTabPage)
|
||||
@@ -1485,12 +1494,12 @@ namespace vl
|
||||
ADD_TYPE_INFO(::demo::DateEditorConstructor)
|
||||
ADD_TYPE_INFO(::demo::DateFilter)
|
||||
ADD_TYPE_INFO(::demo::DateFilterConstructor)
|
||||
ADD_TYPE_INFO(::demo::DocumentRibbonTabPage)
|
||||
ADD_TYPE_INFO(::demo::DocumentRibbonTabPageConstructor)
|
||||
ADD_TYPE_INFO(::demo::DocumentTabPageBase)
|
||||
ADD_TYPE_INFO(::demo::DocumentTabPageBaseConstructor)
|
||||
ADD_TYPE_INFO(::demo::DocumentToolstripTabPage)
|
||||
ADD_TYPE_INFO(::demo::DocumentToolstripTabPageConstructor)
|
||||
ADD_TYPE_INFO(::demo::DocumentEditorBase)
|
||||
ADD_TYPE_INFO(::demo::DocumentEditorBaseConstructor)
|
||||
ADD_TYPE_INFO(::demo::DocumentEditorRibbon)
|
||||
ADD_TYPE_INFO(::demo::DocumentEditorRibbonConstructor)
|
||||
ADD_TYPE_INFO(::demo::DocumentEditorToolstrip)
|
||||
ADD_TYPE_INFO(::demo::DocumentEditorToolstripConstructor)
|
||||
ADD_TYPE_INFO(::demo::ElementTabPage)
|
||||
ADD_TYPE_INFO(::demo::ElementTabPageConstructor)
|
||||
ADD_TYPE_INFO(::demo::GenderDisplayer)
|
||||
|
||||
@@ -52,12 +52,12 @@ namespace vl
|
||||
DECL_TYPE_INFO(::demo::DateEditorConstructor)
|
||||
DECL_TYPE_INFO(::demo::DateFilter)
|
||||
DECL_TYPE_INFO(::demo::DateFilterConstructor)
|
||||
DECL_TYPE_INFO(::demo::DocumentRibbonTabPage)
|
||||
DECL_TYPE_INFO(::demo::DocumentRibbonTabPageConstructor)
|
||||
DECL_TYPE_INFO(::demo::DocumentTabPageBase)
|
||||
DECL_TYPE_INFO(::demo::DocumentTabPageBaseConstructor)
|
||||
DECL_TYPE_INFO(::demo::DocumentToolstripTabPage)
|
||||
DECL_TYPE_INFO(::demo::DocumentToolstripTabPageConstructor)
|
||||
DECL_TYPE_INFO(::demo::DocumentEditorBase)
|
||||
DECL_TYPE_INFO(::demo::DocumentEditorBaseConstructor)
|
||||
DECL_TYPE_INFO(::demo::DocumentEditorRibbon)
|
||||
DECL_TYPE_INFO(::demo::DocumentEditorRibbonConstructor)
|
||||
DECL_TYPE_INFO(::demo::DocumentEditorToolstrip)
|
||||
DECL_TYPE_INFO(::demo::DocumentEditorToolstripConstructor)
|
||||
DECL_TYPE_INFO(::demo::ElementTabPage)
|
||||
DECL_TYPE_INFO(::demo::ElementTabPageConstructor)
|
||||
DECL_TYPE_INFO(::demo::GenderDisplayer)
|
||||
|
||||
@@ -28,6 +28,10 @@ namespace demo
|
||||
class MainWindow : public ::vl::presentation::controls::GuiWindow, public ::demo::MainWindowConstructor, public ::vl::reflection::Description<MainWindow>
|
||||
{
|
||||
friend class ::demo::MainWindowConstructor;
|
||||
friend class ::vl_workflow_global::__vwsnc6_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription;
|
||||
friend class ::vl_workflow_global::__vwsnc7_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize__vl_reflection_description_IValueSubscription;
|
||||
friend struct ::vl_workflow_global::__vwsnf39_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_;
|
||||
friend struct ::vl_workflow_global::__vwsnf40_Demo_demo_MainWindowConstructor___vwsn_demo_MainWindow_Initialize_;
|
||||
#ifndef VCZH_DEBUG_NO_REFLECTION
|
||||
friend struct ::vl::reflection::description::CustomTypeDescriptorSelector<MainWindow>;
|
||||
#endif
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user