Update release

This commit is contained in:
vczh
2025-09-05 23:56:20 -07:00
parent 7bb1707ae3
commit 4bec8e9fc6
25 changed files with 1264 additions and 530 deletions
+158 -129
View File
@@ -3467,11 +3467,11 @@ WindowsDirect2DParagraph (Formatting)
void SetWrapLine(bool value)override
{
if(wrapLine!=value)
if (wrapLine != value)
{
wrapLine=value;
textLayout->SetWordWrapping(value?DWRITE_WORD_WRAPPING_WRAP:DWRITE_WORD_WRAPPING_NO_WRAP);
formatDataAvailable=false;
wrapLine = value;
textLayout->SetWordWrapping(value ? DWRITE_WORD_WRAPPING_WRAP : DWRITE_WORD_WRAPPING_NO_WRAP);
formatDataAvailable = false;
}
}
@@ -3656,11 +3656,13 @@ WindowsDirect2DParagraph (Formatting)
return false;
}
vint GetHeight()override
Size GetSize()override
{
DWRITE_TEXT_METRICS metrics;
textLayout->GetMetrics(&metrics);
return (vint)ceil(metrics.height);
return Size(
(wrapLine ? 0 : (vint)ceil(metrics.widthIncludingTrailingWhitespace)),
(vint)ceil(metrics.height));
}
/***********************************************************************
@@ -4070,7 +4072,7 @@ WindowsDirect2DParagraph (Caret)
{
PrepareFormatData();
if(!IsValidCaret(caret)) return Rect();
if(paragraphText.Length()==0) return Rect(Point(0, 0), Size(0, GetHeight()));
if(paragraphText.Length()==0) return Rect(Point(0, 0), Size(0, GetSize().y));
vint frontLineIndex=-1;
vint backLineIndex=-1;
@@ -5442,6 +5444,78 @@ GuiPolygonElementRenderer
}
}
/***********************************************************************
GuiDirect2DElementRenderer
***********************************************************************/
void GuiDirect2DElementRenderer::InitializeInternal()
{
}
void GuiDirect2DElementRenderer::FinalizeInternal()
{
}
void GuiDirect2DElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget)
{
IDWriteFactory* fdw=GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory();
ID2D1Factory* fd2d=GetWindowsDirect2DObjectProvider()->GetDirect2DFactory();
if(oldRenderTarget)
{
GuiDirect2DElementEventArgs arguments(element, oldRenderTarget->GetDirect2DRenderTarget(), fdw, fd2d, Rect());
element->BeforeRenderTargetChanged.Execute(arguments);
}
if(newRenderTarget)
{
GuiDirect2DElementEventArgs arguments(element, newRenderTarget->GetDirect2DRenderTarget(), fdw, fd2d, Rect());
element->AfterRenderTargetChanged.Execute(arguments);
}
}
GuiDirect2DElementRenderer::GuiDirect2DElementRenderer()
{
}
GuiDirect2DElementRenderer::~GuiDirect2DElementRenderer()
{
}
void GuiDirect2DElementRenderer::Render(Rect bounds)
{
if(renderTarget)
{
IDWriteFactory* fdw=GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory();
ID2D1Factory* fd2d=GetWindowsDirect2DObjectProvider()->GetDirect2DFactory();
renderTarget->PushClipper(bounds, element);
if(!renderTarget->IsClipperCoverWholeTarget())
{
ID2D1RenderTarget* rt=renderTarget->GetDirect2DRenderTarget();
GuiDirect2DElementEventArgs arguments(element, rt, fdw, fd2d, bounds);
element->Rendering.Execute(arguments);
}
renderTarget->PopClipper(element);
}
}
void GuiDirect2DElementRenderer::OnElementStateChanged()
{
}
}
}
}
/***********************************************************************
.\DIRECT2D\RENDERERS\GUIGRAPHICSTEXTRENDERERSWINDOWSDIRECT2D.CPP
***********************************************************************/
namespace vl
{
namespace presentation
{
namespace elements_windows_d2d
{
using namespace collections;
/***********************************************************************
GuiColorizedTextElementRenderer
***********************************************************************/
@@ -5689,63 +5763,6 @@ GuiColorizedTextElementRenderer
}
}
}
/***********************************************************************
GuiDirect2DElementRenderer
***********************************************************************/
void GuiDirect2DElementRenderer::InitializeInternal()
{
}
void GuiDirect2DElementRenderer::FinalizeInternal()
{
}
void GuiDirect2DElementRenderer::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget)
{
IDWriteFactory* fdw=GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory();
ID2D1Factory* fd2d=GetWindowsDirect2DObjectProvider()->GetDirect2DFactory();
if(oldRenderTarget)
{
GuiDirect2DElementEventArgs arguments(element, oldRenderTarget->GetDirect2DRenderTarget(), fdw, fd2d, Rect());
element->BeforeRenderTargetChanged.Execute(arguments);
}
if(newRenderTarget)
{
GuiDirect2DElementEventArgs arguments(element, newRenderTarget->GetDirect2DRenderTarget(), fdw, fd2d, Rect());
element->AfterRenderTargetChanged.Execute(arguments);
}
}
GuiDirect2DElementRenderer::GuiDirect2DElementRenderer()
{
}
GuiDirect2DElementRenderer::~GuiDirect2DElementRenderer()
{
}
void GuiDirect2DElementRenderer::Render(Rect bounds)
{
if(renderTarget)
{
IDWriteFactory* fdw=GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory();
ID2D1Factory* fd2d=GetWindowsDirect2DObjectProvider()->GetDirect2DFactory();
renderTarget->PushClipper(bounds, element);
if(!renderTarget->IsClipperCoverWholeTarget())
{
ID2D1RenderTarget* rt=renderTarget->GetDirect2DRenderTarget();
GuiDirect2DElementEventArgs arguments(element, rt, fdw, fd2d, bounds);
element->Rendering.Execute(arguments);
}
renderTarget->PopClipper(element);
}
}
void GuiDirect2DElementRenderer::OnElementStateChanged()
{
}
}
}
}
@@ -8812,11 +8829,18 @@ WindowsGDIParagraph
bool GetWrapLine()override
{
return true;
return paragraph->wrapLine;
}
void SetWrapLine(bool value)override
{
CHECK_ERROR(value, L"vl::presentation::elements_windows_gdi::WindowsGDIParagraph::SetWrapLine(bool)#Non-wrapline not implemented.");
if (paragraph->wrapLine != value)
{
paragraph->wrapLine = value;
paragraph->BuildUniscribeData(renderTarget->GetDC());
paragraph->Layout(paragraph->lastAvailableWidth, paragraph->paragraphAlignment);
}
}
vint GetMaxWidth()override
@@ -8948,10 +8972,12 @@ WindowsGDIParagraph
return false;
}
vint GetHeight()override
Size GetSize()override
{
PrepareUniscribeData();
return paragraph->bounds.Height();
return Size(
(paragraph->wrapLine ? 0 : paragraph->bounds.Width()),
paragraph->bounds.Height());
}
bool OpenCaret(vint _caret, Color _color, bool _frontSide)override
@@ -9899,6 +9925,65 @@ GuiPolygonElementRenderer
}
}
/***********************************************************************
GuiGDIElementRenderer
***********************************************************************/
void GuiGDIElementRenderer::InitializeInternal()
{
}
void GuiGDIElementRenderer::FinalizeInternal()
{
}
void GuiGDIElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget)
{
}
GuiGDIElementRenderer::GuiGDIElementRenderer()
{
}
GuiGDIElementRenderer::~GuiGDIElementRenderer()
{
}
void GuiGDIElementRenderer::Render(Rect bounds)
{
if(renderTarget)
{
renderTarget->PushClipper(bounds, element);
if(!renderTarget->IsClipperCoverWholeTarget())
{
WinDC* dc=renderTarget->GetDC();
GuiGDIElementEventArgs arguments(element, dc, bounds);
element->Rendering.Execute(arguments);
}
renderTarget->PopClipper(element);
}
}
void GuiGDIElementRenderer::OnElementStateChanged()
{
}
}
}
}
/***********************************************************************
.\GDI\RENDERERS\GUIGRAPHICSTEXTRENDERERSWINDOWSGDI.CPP
***********************************************************************/
namespace vl
{
namespace presentation
{
namespace elements_windows_gdi
{
using namespace windows;
using namespace collections;
/***********************************************************************
GuiColorizedTextElementRenderer
***********************************************************************/
@@ -10095,49 +10180,6 @@ GuiColorizedTextElementRenderer
caretPen=resourceManager->CreateGdiPen(oldCaretColor);
}
}
/***********************************************************************
GuiGDIElementRenderer
***********************************************************************/
void GuiGDIElementRenderer::InitializeInternal()
{
}
void GuiGDIElementRenderer::FinalizeInternal()
{
}
void GuiGDIElementRenderer::RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget)
{
}
GuiGDIElementRenderer::GuiGDIElementRenderer()
{
}
GuiGDIElementRenderer::~GuiGDIElementRenderer()
{
}
void GuiGDIElementRenderer::Render(Rect bounds)
{
if(renderTarget)
{
renderTarget->PushClipper(bounds, element);
if(!renderTarget->IsClipperCoverWholeTarget())
{
WinDC* dc=renderTarget->GetDC();
GuiGDIElementEventArgs arguments(element, dc, bounds);
element->Rendering.Execute(arguments);
}
renderTarget->PopClipper(element);
}
}
void GuiGDIElementRenderer::OnElementStateChanged()
{
}
}
}
}
@@ -11483,7 +11525,8 @@ UniscribeParagraph
***********************************************************************/
UniscribeParagraph::UniscribeParagraph()
:lastAvailableWidth(-1)
:wrapLine(true)
,lastAvailableWidth(-1)
,paragraphAlignment(Alignment::Left)
,built(false)
{
@@ -13262,31 +13305,17 @@ WindowsClipboardWriter
void WindowsClipboardWriter::SetDocument(Ptr<DocumentModel> value)
{
documentData = value;
if (!textData)
{
textData = documentData->GetText(true);
textData = value->GetTextForReading(WString::Unmanaged(L"\r\n\r\n"));
}
if (!imageData && documentData->paragraphs.Count() == 1)
if (!imageData)
{
Ptr<DocumentContainerRun> container = documentData->paragraphs[0];
while (container)
{
if (container->runs.Count() != 1) goto FAILED;
if (auto imageRun = container->runs[0].Cast<DocumentImageRun>())
{
imageData = imageRun->image;
break;
}
else
{
container = container->runs[0].Cast<DocumentContainerRun>();
}
}
FAILED:;
imageData = GetImageFromSingleImageDocument(value);
}
documentData = value;
ModifyDocumentForClipboard(documentData);
}
+97 -34
View File
@@ -481,6 +481,54 @@ Renderers
void OnElementStateChanged()override;
};
class GuiDirect2DElementRenderer : public GuiElementRendererBase<GuiDirect2DElement, GuiDirect2DElementRenderer, IWindowsDirect2DRenderTarget>
{
friend class GuiElementRendererBase<GuiDirect2DElement, GuiDirect2DElementRenderer, IWindowsDirect2DRenderTarget>;
protected:
void InitializeInternal();
void FinalizeInternal();
void RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget);
public:
GuiDirect2DElementRenderer();
~GuiDirect2DElementRenderer();
void Render(Rect bounds)override;
void OnElementStateChanged()override;
};
}
}
}
#endif
/***********************************************************************
.\DIRECT2D\RENDERERS\GUIGRAPHICSTEXTRENDERERSWINDOWSDIRECT2D.H
***********************************************************************/
/***********************************************************************
Vczh Library++ 3.0
Developer: Zihan Chen(vczh)
GacUI::Native Window::Direct2D Provider for Windows Implementation::Renderer
Interfaces:
***********************************************************************/
#ifndef VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSTEXTRENDERERSWINDOWSDIRECT2D
#define VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSTEXTRENDERERSWINDOWSDIRECT2D
namespace vl
{
namespace presentation
{
namespace elements_windows_d2d
{
/***********************************************************************
Renderers
***********************************************************************/
class GuiColorizedTextElementRenderer : public GuiElementRendererBase<GuiColorizedTextElement, GuiColorizedTextElementRenderer, IWindowsDirect2DRenderTarget>, protected GuiColorizedTextElement::ICallback
{
friend class GuiElementRendererBase<GuiColorizedTextElement, GuiColorizedTextElementRenderer, IWindowsDirect2DRenderTarget>;
@@ -528,23 +576,6 @@ Renderers
void Render(Rect bounds)override;
void OnElementStateChanged()override;
};
class GuiDirect2DElementRenderer : public GuiElementRendererBase<GuiDirect2DElement, GuiDirect2DElementRenderer, IWindowsDirect2DRenderTarget>
{
friend class GuiElementRendererBase<GuiDirect2DElement, GuiDirect2DElementRenderer, IWindowsDirect2DRenderTarget>;
protected:
void InitializeInternal();
void FinalizeInternal();
void RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget);
public:
GuiDirect2DElementRenderer();
~GuiDirect2DElementRenderer();
void Render(Rect bounds)override;
void OnElementStateChanged()override;
};
}
}
}
@@ -1345,6 +1376,7 @@ UniscribeParagraph
//***************************** Uniscribe Data
List<Ptr<UniscribeLine>> lines;
//***************************** Layout Data
bool wrapLine;
vint lastAvailableWidth;
Rect bounds;
@@ -1710,6 +1742,54 @@ Renderers
void OnElementStateChanged()override;
};
class GuiGDIElementRenderer : public GuiElementRendererBase<GuiGDIElement, GuiGDIElementRenderer, IWindowsGDIRenderTarget>
{
friend class GuiElementRendererBase<GuiGDIElement, GuiGDIElementRenderer, IWindowsGDIRenderTarget>;
protected:
void InitializeInternal();
void FinalizeInternal();
void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget);
public:
GuiGDIElementRenderer();
~GuiGDIElementRenderer();
void Render(Rect bounds)override;
void OnElementStateChanged()override;
};
}
}
}
#endif
/***********************************************************************
.\GDI\RENDERERS\GUIGRAPHICSTEXTRENDERERSWINDOWSGDI.H
***********************************************************************/
/***********************************************************************
Vczh Library++ 3.0
Developer: Zihan Chen(vczh)
GacUI::Native Window::GDI Provider for Windows Implementation::Renderer
Interfaces:
***********************************************************************/
#ifndef VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSTEXTRENDERERSWINDOWSGDI
#define VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSTEXTRENDERERSWINDOWSGDI
namespace vl
{
namespace presentation
{
namespace elements_windows_gdi
{
/***********************************************************************
Renderers
***********************************************************************/
class GuiColorizedTextElementRenderer : public GuiElementRendererBase<GuiColorizedTextElement, GuiColorizedTextElementRenderer, IWindowsGDIRenderTarget>, protected GuiColorizedTextElement::ICallback
{
friend class GuiElementRendererBase<GuiColorizedTextElement, GuiColorizedTextElementRenderer, IWindowsGDIRenderTarget>;
@@ -1751,23 +1831,6 @@ Renderers
void Render(Rect bounds)override;
void OnElementStateChanged()override;
};
class GuiGDIElementRenderer : public GuiElementRendererBase<GuiGDIElement, GuiGDIElementRenderer, IWindowsGDIRenderTarget>
{
friend class GuiElementRendererBase<GuiGDIElement, GuiGDIElementRenderer, IWindowsGDIRenderTarget>;
protected:
void InitializeInternal();
void FinalizeInternal();
void RenderTargetChangedInternal(IWindowsGDIRenderTarget* oldRenderTarget, IWindowsGDIRenderTarget* newRenderTarget);
public:
GuiGDIElementRenderer();
~GuiGDIElementRenderer();
void Render(Rect bounds)override;
void OnElementStateChanged()override;
};
}
}
}
+780 -296
View File
File diff suppressed because it is too large Load Diff
+136 -27
View File
@@ -2058,9 +2058,9 @@ Layout Engine
/// <returns>Returns true if this operation succeeded.</returns>
virtual bool ResetInlineObject(vint start, vint length)=0;
/// <summary>Get the layouted height of the text. The result depends on rich styled text and the two important properties that can be set using <see cref="SetWrapLine"/> and <see cref="SetMaxWidth"/>.</summary>
/// <returns>The layouted height.</returns>
virtual vint GetHeight()=0;
/// <summary>Get the layouted size of the text. The result depends on rich styled text and the two important properties that can be set using <see cref="SetWrapLine"/> and <see cref="SetMaxWidth"/>.</summary>
/// <returns>The layouted size.</returns>
virtual Size GetSize()=0;
/// <summary>Make the caret visible so that it will be rendered in the paragraph.</summary>
/// <returns>Returns true if this operation succeeded.</returns>
/// <param name="caret">The caret.</param>
@@ -12037,8 +12037,10 @@ Rich Content Document (run)
void Accept(IVisitor* visitor)override{visitor->Visit(this);}
WString GetText(bool skipNonTextContent);
void GetText(stream::TextWriter& writer, bool skipNonTextContent);
WString GetTextForCaret();
WString GetTextForReading();
WString ConvertToText(bool forCaret);
void ConvertToText(stream::TextWriter& writer, bool forCaret);
};
/***********************************************************************
@@ -12117,8 +12119,10 @@ Rich Content Document (model)
ResolvedStyle GetStyle(Ptr<DocumentStyleProperties> sp, const ResolvedStyle& context);
ResolvedStyle GetStyle(const WString& styleName, const ResolvedStyle& context);
WString GetText(bool skipNonTextContent);
void GetText(stream::TextWriter& writer, bool skipNonTextContent);
WString GetTextForCaret();
WString GetTextForReading(const WString& paragraphDelimiter);
WString ConvertToText(bool forCaret, const WString& paragraphDelimiter);
void ConvertToText(stream::TextWriter& writer, bool forCaret, const WString& paragraphDelimiter);
bool CheckEditRange(TextPos begin, TextPos end, RunRangeMap& relatedRanges);
Ptr<DocumentModel> CopyDocument(TextPos begin, TextPos end, bool deepCopy);
@@ -12139,6 +12143,7 @@ Rich Content Document (model)
bool RemoveStyleName(TextPos begin, TextPos end);
bool RenameStyle(const WString& oldStyleName, const WString& newStyleName);
bool ClearStyle(TextPos begin, TextPos end);
bool ConvertToPlainText(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);
@@ -12905,7 +12910,7 @@ Rich Content Document (element)
};
typedef collections::Array<Ptr<ParagraphCache>> ParagraphCacheArray;
typedef collections::Array<vint> ParagraphHeightArray;
typedef collections::Array<Size> ParagraphSizeArray;
private:
@@ -12913,10 +12918,10 @@ Rich Content Document (element)
protected:
vint paragraphDistance;
vint lastMaxWidth;
vint cachedTotalHeight;
Size cachedTotalSize;
IGuiGraphicsLayoutProvider* layoutProvider;
ParagraphCacheArray paragraphCaches;
ParagraphHeightArray paragraphHeights;
ParagraphSizeArray paragraphSizes;
TextPos lastCaret;
Color lastCaretColor;
@@ -12953,6 +12958,8 @@ Rich Content Document (element)
protected:
Ptr<DocumentModel> document;
ICallback* callback = nullptr;
bool paragraphPadding = true;
bool wrapLine = true;
TextPos caretBegin;
TextPos caretEnd;
bool caretVisible;
@@ -12976,6 +12983,19 @@ Rich Content Document (element)
/// <summary>Set the document. When a document is set to this element, modifying the document without invoking <see cref="NotifyParagraphUpdated"/> will lead to undefined behavior.</summary>
/// <param name="value">The document.</param>
void SetDocument(Ptr<DocumentModel> value);
/// <summary>Get whether paddings are inserted between paragraphs.</summary>
/// <returns>Returns true if paddings are inserted between paragraphs.</returns>
bool GetParagraphPadding();
/// <summary>Set whether paddings are inserted between paragraphs</summary>
/// <param name="value">Set to true so that paddings are inserted between paragraphs.</param>
void SetParagraphPadding(bool value);
/// <summary>Get line wrapping.</summary>
/// <returns>Return true if there is automatic line wrapping.</returns>
bool GetWrapLine();
/// <summary>Set line wrapping.</summary>
/// <param name="value">Set to true so that there is automatic line wrapping.</param>
void SetWrapLine(bool value);
/// <summary>
/// Get the begin position of the selection area.
/// </summary>
@@ -16661,6 +16681,84 @@ namespace vl
namespace controls
{
/***********************************************************************
GuiDocumentConfig
***********************************************************************/
/// <summary>Represents the edit mode.</summary>
enum class GuiDocumentEditMode
{
/// <summary>View the rich text only.</summary>
ViewOnly,
/// <summary>The rich text is selectable.</summary>
Selectable,
/// <summary>The rich text is editable.</summary>
Editable,
};
/// <summary>Represents the paragraph mode.</summary>
enum class GuiDocumentParagraphMode
{
/// <summary>Only one paragraph is allowed, only one line in a paragraph is allowed.</summary>
Singleline,
/// <summary>Only one line in a paragraph is allowed.</summary>
Multiline,
/// <summary>No constraint.</summary>
Paragraph,
};
/// <summary>Control of editing and rendering behavior.</summary>
struct GuiDocumentConfig
{
/// <summary>For GuiDocumentLabel only. When it is true, or when wrapLine is true, or when paragraphMode is not Singleline, the control automatically expands to display all content.</summary>
Nullable<bool> autoExpand;
/// <summary>When it is true, the defaut copy paste behavior ignores RTF format.</summary>
Nullable<bool> pasteAsPlainText;
/// <summary>When it is true, document automatically wraps if the width of the control is not enough.</summary>
Nullable<bool> wrapLine;
/// <summary>Control the paragraph and line behavior</summary>
Nullable<GuiDocumentParagraphMode> paragraphMode;
/// <summary>Insert the space of a default font between paragraphs.</summary>
Nullable<bool> paragraphPadding;
/// <summary>When it is true:
/// double CrLf will be used between paragraphs, when the document converts to plain text.
/// only double CrLf will be recognized as paragraph breaks, when the document converts from plain text.
/// </summary>
Nullable<bool> doubleLineBreaksBetweenParagraph;
/// <summary>When it is true, when removing a line break from a document due to paragraphMode, insert a extra space.</summary>
Nullable<bool> spaceForFlattenedLineBreak;
auto operator<=>(const GuiDocumentConfig&) const = default;
static GuiDocumentConfig GetDocumentLabelDefaultConfig();
static GuiDocumentConfig GetDocumentViewerDefaultConfig();
static GuiDocumentConfig GetSinglelineTextBoxDefaultConfig();
static GuiDocumentConfig GetMultilineTextBoxDefaultConfig();
static GuiDocumentConfig OverrideConfig(const GuiDocumentConfig& toOverride, const GuiDocumentConfig& newConfig);
};
struct GuiDocumentConfigEvaluated
{
bool autoExpand;
bool pasteAsPlainText;
bool wrapLine;
GuiDocumentParagraphMode paragraphMode;
bool paragraphPadding;
bool doubleLineBreaksBetweenParagraph;
bool spaceForFlattenedLineBreak;
GuiDocumentConfigEvaluated(const GuiDocumentConfig& config)
: autoExpand(config.autoExpand.Value())
, pasteAsPlainText(config.pasteAsPlainText.Value())
, wrapLine(config.wrapLine.Value())
, paragraphMode(config.paragraphMode.Value())
, paragraphPadding(config.paragraphPadding.Value())
, doubleLineBreaksBetweenParagraph(config.doubleLineBreaksBetweenParagraph.Value())
, spaceForFlattenedLineBreak(config.spaceForFlattenedLineBreak.Value())
{
}
};
/***********************************************************************
GuiDocumentCommonInterface
***********************************************************************/
@@ -16695,18 +16793,8 @@ GuiDocumentCommonInterface
, public Description<GuiDocumentCommonInterface>
{
typedef collections::Dictionary<WString, Ptr<GuiDocumentItem>> DocumentItemMap;
public:
/// <summary>Represents the edit mode.</summary>
enum EditMode
{
/// <summary>View the rich text only.</summary>
ViewOnly,
/// <summary>The rich text is selectable.</summary>
Selectable,
/// <summary>The rich text is editable.</summary>
Editable,
};
protected:
GuiDocumentConfigEvaluated config;
Ptr<DocumentModel> baselineDocument;
DocumentItemMap documentItems;
GuiControl* documentControl = nullptr;
@@ -16721,7 +16809,7 @@ GuiDocumentCommonInterface
Ptr<DocumentHyperlinkRun::Package> activeHyperlinks;
bool dragging = false;
EditMode editMode = EditMode::ViewOnly;
GuiDocumentEditMode editMode = GuiDocumentEditMode::ViewOnly;
Ptr<GuiDocumentUndoRedoProcessor> undoRedoProcessor;
Ptr<compositions::GuiShortcutKeyManager> internalShortcutKeyManager;
@@ -16771,8 +16859,15 @@ GuiDocumentCommonInterface
void OnStartRender()override;
void OnFinishRender()override;
Size OnRenderEmbeddedObject(const WString& name, const Rect& location)override;
protected:
WString UserInput_ConvertDocumentToText(Ptr<DocumentModel> model);
void UserInput_FormatText(const WString& text, collections::List<WString>& paragraphTexts);
void UserInput_FormatDocument(Ptr<DocumentModel> model);
public:
GuiDocumentCommonInterface();
GuiDocumentCommonInterface(const GuiDocumentConfig& _config);
~GuiDocumentCommonInterface();
/// <summary>Active hyperlink changed event.</summary>
@@ -16931,10 +17026,10 @@ GuiDocumentCommonInterface
WString GetActiveHyperlinkReference();
/// <summary>Get the edit mode of this control.</summary>
/// <returns>The edit mode.</returns>
EditMode GetEditMode();
GuiDocumentEditMode GetEditMode();
/// <summary>Set the edit mode of this control.</summary>
/// <param name="value">The edit mode.</param>
void SetEditMode(EditMode value);
void SetEditMode(GuiDocumentEditMode value);
//================ selection operations
@@ -17010,10 +17105,13 @@ GuiDocumentViewer
void UpdateDisplayFont()override;
Point GetDocumentViewPosition()override;
void EnsureRectVisible(Rect bounds)override;
static GuiDocumentConfig FixConfig(const GuiDocumentConfig& config);
public:
/// <summary>Create a control with a specified style provider.</summary>
/// <param name="themeName">The theme name for retriving a default control template.</param>
GuiDocumentViewer(theme::ThemeName themeName);
/// <param name="_config">(Optional): configuration of document editing and rendering behavior.</param>
GuiDocumentViewer(theme::ThemeName themeName, const GuiDocumentConfig& _config = {});
~GuiDocumentViewer();
const WString& GetText()override;
@@ -17029,12 +17127,21 @@ GuiDocumentViewer
{
GUI_SPECIFY_CONTROL_TEMPLATE_TYPE(DocumentLabelTemplate, GuiControl)
protected:
compositions::GuiBoundsComposition* scrollingContainer = nullptr;
compositions::GuiBoundsComposition* documentContainer = nullptr;
void UpdateDisplayFont()override;
Point GetDocumentViewPosition()override;
void EnsureRectVisible(Rect bounds)override;
void scrollingContainer_CachedBoundsChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
void documentContainer_CachedMinSizeChanged(compositions::GuiGraphicsComposition* sender, compositions::GuiEventArgs& arguments);
static GuiDocumentConfig FixConfig(const GuiDocumentConfig& config);
public:
/// <summary>Create a control with a specified default theme.</summary>
/// <param name="themeName">The theme name for retriving a default control template.</param>
GuiDocumentLabel(theme::ThemeName themeName);
/// <param name="_config">(Optional): configuration of document editing and rendering behavior.</param>
GuiDocumentLabel(theme::ThemeName themeName, const GuiDocumentConfig& _config = {});
~GuiDocumentLabel();
const WString& GetText()override;
@@ -25016,6 +25123,7 @@ namespace vl
namespace presentation
{
extern void ModifyDocumentForClipboard(Ptr<DocumentModel> model);
extern Ptr<INativeImage> GetImageFromSingleImageDocument(Ptr<DocumentModel> model);
extern Ptr<DocumentModel> LoadDocumentFromClipboardStream(stream::IStream& clipboardStream);
extern void SaveDocumentToClipboardStream(Ptr<DocumentModel> model, stream::IStream& clipboardStream);
@@ -25071,6 +25179,7 @@ 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 void ConvertToPlainText(DocumentParagraphRun* run, RunRangeMap& runRanges, 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);
+26 -2
View File
@@ -8142,6 +8142,18 @@ GuiDocumentInstanceLoaderBase
private:
using TypeInfo = typename TBaseType::TypeInfo;
protected:
GlobalStringKey _Behavior;
void AddAdditionalArguments(types::ResolvingResult& resolvingResult, const TypeInfo& typeInfo, GlobalStringKey variableName, IGuiInstanceLoader::ArgumentMap& arguments, GuiResourceError::List& errors, Ptr<WfNewClassExpression> createControl)override
{
vint indexBehavior = arguments.Keys().IndexOf(_Behavior);
if (indexBehavior != -1)
{
createControl->arguments.Add(arguments.GetByIndex(indexBehavior)[0].expression);
}
}
public:
using PropertyInfo = IGuiInstanceLoader::PropertyInfo;
using ArgumentMap = IGuiInstanceLoader::ArgumentMap;
@@ -8149,6 +8161,7 @@ GuiDocumentInstanceLoaderBase
GuiDocumentInstanceLoaderBase(const WString& _typeName, theme::ThemeName themeName)
:TBaseType(_typeName, themeName)
{
_Behavior = GlobalStringKey::Get(L"Behavior");
}
void GetPropertyNames(GuiResourcePrecompileContext& precompileContext, const TypeInfo& typeInfo, collections::List<GlobalStringKey>& propertyNames)override
@@ -8163,6 +8176,12 @@ GuiDocumentInstanceLoaderBase
{
return GuiInstancePropertyInfo::CollectionWithParent(TypeInfoRetriver<Ptr<GuiDocumentItem>>::CreateTypeInfo());
}
else if(propertyInfo.propertyName == _Behavior && this->CanCreate(propertyInfo.typeInfo))
{
auto info = GuiInstancePropertyInfo::Assign(TypeInfoRetriver<GuiDocumentConfig>::CreateTypeInfo());
info->usage = GuiInstancePropertyInfo::ConstructorArgument;
return info;
}
return TBaseType::GetPropertyType(precompileContext, propertyInfo);
}
@@ -8240,6 +8259,11 @@ Initialization
manager->SetLoader(Ptr(new GuiDocumentItemInstanceLoader));
manager->SetLoader(Ptr(new GuiDocumentViewerInstanceLoader));
manager->SetLoader(Ptr(new GuiDocumentLabelInstanceLoader));
manager->CreateVirtualType(GlobalStringKey::Get(description::TypeInfo<GuiDocumentLabel>::content.typeName),
Ptr(new GuiDocumentInstanceLoaderBase<GuiTemplateControlInstanceLoader<GuiDocumentLabel>>(
L"presentation::controls::GuiDocumentTextBox",
theme::ThemeName::DocumentTextBox
)));
}
}
}
@@ -8763,6 +8787,7 @@ GuiInstanceLoader_Document.cpp
default: GuiControl*, GuiGraphicsComposition*
GuiDocumentViewer, GuiDocumentLable
default: Ptr<GuiDocumentItem>
ctor: Behavior(GuiDocumentConfig)
GuiInstanceLoader_List.cpp
GuiComboBox
ctor: ListControl(GuiListControl*)
@@ -9118,7 +9143,6 @@ GuiPredefinedInstanceLoadersPlugin
ADD_VIRTUAL_CONTROL (RadioButton, GuiSelectableButton, RadioButton );
ADD_VIRTUAL_CONTROL (HScroll, GuiScroll, HScroll );
ADD_VIRTUAL_CONTROL (VScroll, GuiScroll, VScroll );
ADD_VIRTUAL_CONTROL (DocumentTextBox, GuiDocumentLabel, DocumentTextBox );
ADD_VIRTUAL_CONTROL_F (HTracker, GuiScroll, HTracker, InitializeTrackerProgressBar);
ADD_VIRTUAL_CONTROL_F (VTracker, GuiScroll, VTracker, InitializeTrackerProgressBar);
ADD_VIRTUAL_CONTROL_F (ProgressBar, GuiScroll, ProgressBar, InitializeTrackerProgressBar);
@@ -11266,7 +11290,7 @@ GenerateRemoteProtocolHeaderFile
auto type = stream::GenerateToStream([&](stream::TextWriter& writer)
{
GuiRpPrintTypeVisitor visitor(symbols, config, writer);
eventDecl->request->type->Accept(&visitor);
eventDecl->request->type->Accept(&visitor);
});
if (!eventTypes.Contains(type))
{
+32 -9
View File
@@ -832,7 +832,9 @@ Type Declaration
CLASS_MEMBER_FIELD(alignment)
CLASS_MEMBER_METHOD_OVERLOAD(GetText, {L"skipNonTextContent"}, WString(DocumentParagraphRun::*)(bool))
CLASS_MEMBER_METHOD(GetTextForCaret, NO_PARAMETER)
CLASS_MEMBER_METHOD(GetTextForReading, NO_PARAMETER)
CLASS_MEMBER_METHOD_OVERLOAD(ConvertToText, {L"forCaret"}, WString(DocumentParagraphRun::*)(bool))
END_CLASS_MEMBER(DocumentParagraphRun)
BEGIN_CLASS_MEMBER(DocumentStyle)
@@ -849,7 +851,9 @@ Type Declaration
CLASS_MEMBER_FIELD(paragraphs)
CLASS_MEMBER_FIELD(styles)
CLASS_MEMBER_METHOD_OVERLOAD(GetText, {L"skipNonTextContent"}, WString(DocumentModel::*)(bool))
CLASS_MEMBER_METHOD(GetTextForCaret, NO_PARAMETER)
CLASS_MEMBER_METHOD(GetTextForReading, { L"paragraphDelimiter" })
CLASS_MEMBER_METHOD_OVERLOAD(ConvertToText, { L"forCaret" _ L"paragraphDelimiter"}, WString(DocumentModel::*)(bool, const WString&))
CLASS_MEMBER_STATIC_METHOD(LoadFromXml, {L"resource" _ L"xml" _ L"workingDirectory" _ L"errors"})
CLASS_MEMBER_METHOD_OVERLOAD(SaveToXml, NO_PARAMETER, Ptr<XmlDocument>(DocumentModel::*)())
END_CLASS_MEMBER(DocumentModel)
@@ -2182,6 +2186,28 @@ Type Declaration (Extra)
CLASS_MEMBER_PROPERTY_READONLY_FAST(Groups)
END_CLASS_MEMBER(GroupedDataSource)
BEGIN_ENUM_ITEM(GuiDocumentEditMode)
ENUM_CLASS_ITEM(ViewOnly)
ENUM_CLASS_ITEM(Selectable)
ENUM_CLASS_ITEM(Editable)
END_ENUM_ITEM(GuiDocumentEditMode)
BEGIN_ENUM_ITEM(GuiDocumentParagraphMode)
ENUM_CLASS_ITEM(Singleline)
ENUM_CLASS_ITEM(Multiline)
ENUM_CLASS_ITEM(Paragraph)
END_ENUM_ITEM(GuiDocumentParagraphMode)
BEGIN_STRUCT_MEMBER(GuiDocumentConfig)
STRUCT_MEMBER(autoExpand)
STRUCT_MEMBER(pasteAsPlainText)
STRUCT_MEMBER(wrapLine)
STRUCT_MEMBER(paragraphMode)
STRUCT_MEMBER(paragraphPadding)
STRUCT_MEMBER(doubleLineBreaksBetweenParagraph)
STRUCT_MEMBER(spaceForFlattenedLineBreak)
END_STRUCT_MEMBER(GuiDocumentConfig)
BEGIN_CLASS_MEMBER(GuiDocumentItem)
CLASS_MEMBER_CONSTRUCTOR(Ptr<GuiDocumentItem>(const WString&), { L"name" })
@@ -2189,13 +2215,6 @@ Type Declaration (Extra)
CLASS_MEMBER_PROPERTY_READONLY_FAST(Name)
END_CLASS_MEMBER(GuiDocumentItem)
BEGIN_ENUM_ITEM(GuiDocumentCommonInterface::EditMode)
ENUM_ITEM_NAMESPACE(GuiDocumentCommonInterface)
ENUM_NAMESPACE_ITEM(ViewOnly)
ENUM_NAMESPACE_ITEM(Selectable)
ENUM_NAMESPACE_ITEM(Editable)
END_ENUM_ITEM(GuiDocumentCommonInterface::EditMode)
BEGIN_INTERFACE_MEMBER(IDataGridContext)
CLASS_MEMBER_BASE(IDescriptable)
@@ -2993,12 +3012,14 @@ Type Declaration (Class)
CLASS_MEMBER_BASE(GuiScrollContainer)
CLASS_MEMBER_BASE(GuiDocumentCommonInterface)
CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiDocumentViewer)
CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2(GuiDocumentViewer, const GuiDocumentConfig&, config)
END_CLASS_MEMBER(GuiDocumentViewer)
BEGIN_CLASS_MEMBER(GuiDocumentLabel)
CLASS_MEMBER_BASE(GuiControl)
CLASS_MEMBER_BASE(GuiDocumentCommonInterface)
CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE(GuiDocumentLabel)
CONTROL_CONSTRUCTOR_CONTROLT_TEMPLATE_2(GuiDocumentLabel, const GuiDocumentConfig&, config)
END_CLASS_MEMBER(GuiDocumentLabel)
BEGIN_CLASS_MEMBER(GuiTextBoxCommonInterface)
@@ -3427,6 +3448,8 @@ Type Declaration (Class)
ELEMENT_CONSTRUCTOR(GuiDocumentElement)
CLASS_MEMBER_PROPERTY_FAST(Document)
CLASS_MEMBER_PROPERTY_FAST(ParagraphPadding)
CLASS_MEMBER_PROPERTY_FAST(WrapLine)
CLASS_MEMBER_PROPERTY_READONLY_FAST(CaretBegin)
CLASS_MEMBER_PROPERTY_READONLY_FAST(CaretEnd)
CLASS_MEMBER_PROPERTY_FAST(CaretVisible)
+3 -1
View File
@@ -416,9 +416,11 @@ Type List (Controls)
F(presentation::controls::GalleryPos)\
F(presentation::controls::list::GalleryGroup)\
F(presentation::controls::list::GroupedDataSource)\
F(presentation::controls::GuiDocumentEditMode)\
F(presentation::controls::GuiDocumentParagraphMode)\
F(presentation::controls::GuiDocumentConfig)\
F(presentation::controls::GuiDocumentItem)\
F(presentation::controls::GuiDocumentCommonInterface)\
F(presentation::controls::GuiDocumentCommonInterface::EditMode)\
F(presentation::controls::GuiTextBoxCommonInterface)\
F(presentation::controls::list::IDataGridContext)\
F(presentation::controls::list::IDataVisualizerFactory)\
Binary file not shown.
Binary file not shown.
@@ -7,11 +7,11 @@
prop EditModeCommand : ToolstripCommand* = null {const}
@cpp:Private
func SetEditMode(editMode: DocumentCommonInterface::EditMode) : void
func SetEditMode(editMode: GuiDocumentEditMode) : void
{
var command =
editMode == DocumentCommonInterface::EditMode::ViewOnly ? commandViewOnly :
editMode == DocumentCommonInterface::EditMode::Selectable ? commandSelectable :
editMode == GuiDocumentEditMode::ViewOnly ? commandViewOnly :
editMode == GuiDocumentEditMode::Selectable ? commandSelectable :
commandEditable;
document.EditMode = editMode;
@@ -49,7 +49,7 @@
@cpp:Private
func HasEditableCursor() : bool
{
return document.EditMode == DocumentCommonInterface::EditMode::Editable;
return document.EditMode == GuiDocumentEditMode::Editable;
}
@cpp:Private
@@ -2096,7 +2096,7 @@ Closures
void __vwsnf192_Demo_demo_DocumentEditorBaseConstructor___vwsn_demo_DocumentEditorBase_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const
{
::vl::__vwsn::This(__vwsnthis_0->self)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::ViewOnly);
::vl::__vwsn::This(__vwsnthis_0->self)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::ViewOnly);
}
//-------------------------------------------------------------------
@@ -2108,7 +2108,7 @@ Closures
void __vwsnf193_Demo_demo_DocumentEditorBaseConstructor___vwsn_demo_DocumentEditorBase_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const
{
::vl::__vwsn::This(__vwsnthis_0->self)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Selectable);
::vl::__vwsn::This(__vwsnthis_0->self)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::Selectable);
}
//-------------------------------------------------------------------
@@ -2120,7 +2120,7 @@ Closures
void __vwsnf194_Demo_demo_DocumentEditorBaseConstructor___vwsn_demo_DocumentEditorBase_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const
{
::vl::__vwsn::This(__vwsnthis_0->self)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Editable);
::vl::__vwsn::This(__vwsnthis_0->self)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::Editable);
}
//-------------------------------------------------------------------
@@ -17949,7 +17949,7 @@ Class (::demo::DocumentBoxSubTabPageConstructor)
(this->__vwsn_precompile_2 = new ::vl::presentation::controls::GuiDocumentLabel(::vl::presentation::theme::ThemeName::DocumentTextBox));
}
{
::vl::__vwsn::This(this->__vwsn_precompile_2)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Editable);
::vl::__vwsn::This(this->__vwsn_precompile_2)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::Editable);
}
{
::vl::__vwsn::This(this->__vwsn_precompile_2)->SetAlt(::vl::WString::Unmanaged(L"T"));
@@ -17975,7 +17975,7 @@ Class (::demo::DocumentBoxSubTabPageConstructor)
(this->__vwsn_precompile_5 = new ::vl::presentation::controls::GuiDocumentViewer(::vl::presentation::theme::ThemeName::DocumentViewer));
}
{
::vl::__vwsn::This(this->__vwsn_precompile_5)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Editable);
::vl::__vwsn::This(this->__vwsn_precompile_5)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::Editable);
}
{
::vl::__vwsn::This(this->__vwsn_precompile_5)->SetAlt(::vl::WString::Unmanaged(L"V"));
@@ -17998,7 +17998,7 @@ Class (::demo::DocumentBoxSubTabPageConstructor)
(this->__vwsn_precompile_8 = new ::vl::presentation::controls::GuiDocumentLabel(::vl::presentation::theme::ThemeName::DocumentLabel));
}
{
::vl::__vwsn::This(this->__vwsn_precompile_8)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Editable);
::vl::__vwsn::This(this->__vwsn_precompile_8)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::Editable);
}
{
::vl::__vwsn::This(this->__vwsn_precompile_8)->SetAlt(::vl::WString::Unmanaged(L"L"));
@@ -18221,7 +18221,7 @@ Class (::demo::DocumentEditorBaseConstructor)
::vl::__vwsn::This(__vwsn_this_)->SetNamedObject(::vl::WString::Unmanaged(L"document"), ::vl::__vwsn::Box(this->document));
}
{
::vl::__vwsn::This(this->document)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Editable);
::vl::__vwsn::This(this->document)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::Editable);
}
{
::vl::__vwsn::This(this->document)->SetAlt(::vl::WString::Unmanaged(L"D"));
@@ -29585,7 +29585,7 @@ Class (::demo::ResponsiveViewControlConstructor)
::vl::__vwsn::This(__vwsn_this_)->SetNamedObject(::vl::WString::Unmanaged(L"documentBox"), ::vl::__vwsn::Box(this->documentBox));
}
{
::vl::__vwsn::This(this->documentBox)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Editable);
::vl::__vwsn::This(this->documentBox)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::Editable);
}
{
::vl::__vwsn::This(this->documentBox)->SetText(::vl::WString::Unmanaged(L"Edit me!"));
@@ -51,9 +51,9 @@ namespace demo
}
}
void DocumentEditorBase::SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode editMode)
void DocumentEditorBase::SetEditMode(::vl::presentation::controls::GuiDocumentEditMode editMode)
{
auto command = ((editMode == ::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::ViewOnly) ? this->commandViewOnly : ((editMode == ::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Selectable) ? this->commandSelectable : this->commandEditable));
auto command = ((editMode == ::vl::presentation::controls::GuiDocumentEditMode::ViewOnly) ? this->commandViewOnly : ((editMode == ::vl::presentation::controls::GuiDocumentEditMode::Selectable) ? this->commandSelectable : this->commandEditable));
::vl::__vwsn::This(this->document)->SetEditMode(editMode);
::vl::__vwsn::This(this->commandViewOnly)->SetSelected((command == this->commandViewOnly));
::vl::__vwsn::This(this->commandSelectable)->SetSelected((command == this->commandSelectable));
@@ -102,7 +102,7 @@ namespace demo
bool DocumentEditorBase::HasEditableCursor()
{
return (::vl::__vwsn::This(this->document)->GetEditMode() == ::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Editable);
return (::vl::__vwsn::This(this->document)->GetEditMode() == ::vl::presentation::controls::GuiDocumentEditMode::Editable);
}
bool DocumentEditorBase::HasEditableHyperlink(bool forEdit)
@@ -214,7 +214,7 @@ namespace demo
void DocumentEditorBase::__vwsn_instance_ctor_()
{
this->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Editable);
this->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::Editable);
}
DocumentEditorBase::~DocumentEditorBase()
@@ -125,7 +125,7 @@ namespace demo
void SetEditModeCommand(::vl::presentation::controls::GuiToolstripCommand* __vwsn_value_);
::vl::Event<void()> EditModeCommandChanged;
private:
void SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode editMode);
void SetEditMode(::vl::presentation::controls::GuiDocumentEditMode editMode);
protected:
::vl::presentation::controls::GuiToolstripCommand* SelectAlignmentCommand();
private:
Binary file not shown.
@@ -2251,7 +2251,7 @@ Class (::demo::NewContactWindowConstructor)
::vl::__vwsn::This(__vwsn_this_)->SetNamedObject(::vl::WString::Unmanaged(L"textBoxName"), ::vl::__vwsn::Box(this->textBoxName));
}
{
::vl::__vwsn::This(this->textBoxName)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Editable);
::vl::__vwsn::This(this->textBoxName)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::Editable);
}
(this->__vwsn_precompile_4 = ::vl::__vwsn::This(this->textBoxName)->GetBoundsComposition());
{
@@ -2291,7 +2291,7 @@ Class (::demo::NewContactWindowConstructor)
::vl::__vwsn::This(__vwsn_this_)->SetNamedObject(::vl::WString::Unmanaged(L"textBoxPhone"), ::vl::__vwsn::Box(this->textBoxPhone));
}
{
::vl::__vwsn::This(this->textBoxPhone)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Editable);
::vl::__vwsn::This(this->textBoxPhone)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::Editable);
}
(this->__vwsn_precompile_8 = ::vl::__vwsn::This(this->textBoxPhone)->GetBoundsComposition());
{
@@ -2331,7 +2331,7 @@ Class (::demo::NewContactWindowConstructor)
::vl::__vwsn::This(__vwsn_this_)->SetNamedObject(::vl::WString::Unmanaged(L"textBoxAddress"), ::vl::__vwsn::Box(this->textBoxAddress));
}
{
::vl::__vwsn::This(this->textBoxAddress)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Editable);
::vl::__vwsn::This(this->textBoxAddress)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::Editable);
}
(this->__vwsn_precompile_12 = ::vl::__vwsn::This(this->textBoxAddress)->GetBoundsComposition());
{
@@ -2591,7 +2591,7 @@ Class (::demo::NewFolderWindowConstructor)
::vl::__vwsn::This(__vwsn_this_)->SetNamedObject(::vl::WString::Unmanaged(L"textBoxName"), ::vl::__vwsn::Box(this->textBoxName));
}
{
::vl::__vwsn::This(this->textBoxName)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Editable);
::vl::__vwsn::This(this->textBoxName)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::Editable);
}
(this->__vwsn_precompile_4 = ::vl::__vwsn::This(this->textBoxName)->GetBoundsComposition());
{
@@ -51,9 +51,9 @@ namespace demo
}
}
void DocumentEditorBase::SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode editMode)
void DocumentEditorBase::SetEditMode(::vl::presentation::controls::GuiDocumentEditMode editMode)
{
auto command = ((editMode == ::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::ViewOnly) ? this->commandViewOnly : ((editMode == ::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Selectable) ? this->commandSelectable : this->commandEditable));
auto command = ((editMode == ::vl::presentation::controls::GuiDocumentEditMode::ViewOnly) ? this->commandViewOnly : ((editMode == ::vl::presentation::controls::GuiDocumentEditMode::Selectable) ? this->commandSelectable : this->commandEditable));
::vl::__vwsn::This(this->document)->SetEditMode(editMode);
::vl::__vwsn::This(this->commandViewOnly)->SetSelected((command == this->commandViewOnly));
::vl::__vwsn::This(this->commandSelectable)->SetSelected((command == this->commandSelectable));
@@ -102,7 +102,7 @@ namespace demo
bool DocumentEditorBase::HasEditableCursor()
{
return (::vl::__vwsn::This(this->document)->GetEditMode() == ::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Editable);
return (::vl::__vwsn::This(this->document)->GetEditMode() == ::vl::presentation::controls::GuiDocumentEditMode::Editable);
}
bool DocumentEditorBase::HasEditableHyperlink(bool forEdit)
@@ -235,7 +235,7 @@ namespace demo
void DocumentEditorBase::__vwsn_instance_ctor_()
{
this->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Editable);
this->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::Editable);
}
DocumentEditorBase::~DocumentEditorBase()
@@ -125,7 +125,7 @@ namespace demo
void SetEditModeCommand(::vl::presentation::controls::GuiToolstripCommand* __vwsn_value_);
::vl::Event<void()> EditModeCommandChanged;
private:
void SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode editMode);
void SetEditMode(::vl::presentation::controls::GuiDocumentEditMode editMode);
protected:
::vl::presentation::controls::GuiToolstripCommand* SelectAlignmentCommand();
private:
@@ -726,7 +726,7 @@ Closures
void __vwsnf47_EditorBase_demo_DocumentEditorBaseConstructor___vwsn_demo_DocumentEditorBase_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const
{
::vl::__vwsn::This(__vwsnthis_0->self)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::ViewOnly);
::vl::__vwsn::This(__vwsnthis_0->self)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::ViewOnly);
}
//-------------------------------------------------------------------
@@ -738,7 +738,7 @@ Closures
void __vwsnf48_EditorBase_demo_DocumentEditorBaseConstructor___vwsn_demo_DocumentEditorBase_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const
{
::vl::__vwsn::This(__vwsnthis_0->self)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Selectable);
::vl::__vwsn::This(__vwsnthis_0->self)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::Selectable);
}
//-------------------------------------------------------------------
@@ -750,7 +750,7 @@ Closures
void __vwsnf49_EditorBase_demo_DocumentEditorBaseConstructor___vwsn_demo_DocumentEditorBase_Initialize_::operator()(::vl::presentation::compositions::GuiGraphicsComposition* sender, ::vl::presentation::compositions::GuiEventArgs* arguments) const
{
::vl::__vwsn::This(__vwsnthis_0->self)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Editable);
::vl::__vwsn::This(__vwsnthis_0->self)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::Editable);
}
//-------------------------------------------------------------------
@@ -3030,7 +3030,7 @@ namespace demo
::vl::__vwsn::This(this->document)->SetAlt(::vl::WString::Unmanaged(L"D"));
}
{
::vl::__vwsn::This(this->document)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Editable);
::vl::__vwsn::This(this->document)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::Editable);
}
(this->__vwsn_precompile_2 = ::vl::__vwsn::This(this->document)->GetBoundsComposition());
{
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -2090,7 +2090,7 @@ Class (::demo::ResponsiveViewControlConstructor)
::vl::__vwsn::This(__vwsn_this_)->SetNamedObject(::vl::WString::Unmanaged(L"documentBox"), ::vl::__vwsn::Box(this->documentBox));
}
{
::vl::__vwsn::This(this->documentBox)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::Editable);
::vl::__vwsn::This(this->documentBox)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::Editable);
}
{
::vl::__vwsn::This(this->documentBox)->SetText(::vl::WString::Unmanaged(L"Edit me!"));
@@ -103,7 +103,7 @@ Class (::demo::MainWindowConstructor)
::vl::__vwsn::This(this->__vwsn_precompile_50)->SetAlignmentToParent([&](){ ::vl::presentation::Margin __vwsn_temp__; __vwsn_temp__.left = static_cast<::vl::vint>(5); __vwsn_temp__.top = static_cast<::vl::vint>(5); __vwsn_temp__.right = static_cast<::vl::vint>(5); __vwsn_temp__.bottom = static_cast<::vl::vint>(5); return __vwsn_temp__; }());
}
{
::vl::__vwsn::This(this->documentViewer)->SetEditMode(::vl::presentation::controls::GuiDocumentCommonInterface::EditMode::ViewOnly);
::vl::__vwsn::This(this->documentViewer)->SetEditMode(::vl::presentation::controls::GuiDocumentEditMode::ViewOnly);
}
(this->__vwsn_precompile_1 = ::vl::Ptr<::vl::presentation::controls::GuiDocumentItem>(new ::vl::presentation::controls::GuiDocumentItem(::vl::WString::Unmanaged(L"Button"))));
{
Binary file not shown.
Binary file not shown.