Update release

This commit is contained in:
vczh
2026-01-28 18:48:25 -08:00
parent e40d6e3ca8
commit a888218a34
16 changed files with 2795 additions and 1414 deletions
+297 -112
View File
@@ -58,6 +58,198 @@ namespace gaclib_controls
} }
} }
using ImageCreationMap = remoteprotocol::ArrayMap<vint, remoteprotocol::ImageCreation, &remoteprotocol::ImageCreation::id>;
using ElementDescMap = Dictionary<vint, remoteprotocol::UnitTest_ElementDescVariant>;
Ptr<GuiImageFrameElement> CreateImageElement(const remoteprotocol::ElementDesc_ImageFrame& desc, Ptr<ImageCreationMap> imageCreations)
{
auto element = Ptr(GuiImageFrameElement::Create());
element->SetAlignments(GetAlignment(desc.horizontalAlignment), GetAlignment(desc.verticalAlignment));
element->SetStretch(desc.stretch);
element->SetEnabled(desc.enabled);
if (desc.imageId)
{
vint index = imageCreations->Keys().IndexOf(desc.imageId.Value());
if (index != -1)
{
auto binary = imageCreations->Values()[index].imageData;
binary->SeekFromBegin(0);
element->SetImage(GetCurrentController()->ImageService()->CreateImageFromStream(*binary.Obj()), desc.imageFrame);
}
}
return element;
}
/***********************************************************************
GuiGraphicsParagraphWrapperElement
***********************************************************************/
class GuiGraphicsParagraphWrapperElement
: public Object
, public IGuiGraphicsElement
, protected IGuiGraphicsRenderer
, protected IGuiGraphicsRendererFactory
, protected IGuiGraphicsParagraphCallback
{
protected:
remoteprotocol::ElementDesc_DocumentParagraphFull desc;
Ptr<ElementDescMap> elementDescs;
Ptr<ImageCreationMap> imageCreations;
Ptr<IGuiGraphicsParagraph> paragraph;
GuiGraphicsComposition* ownerComposition = nullptr;
IGuiGraphicsRenderTarget* renderTarget = nullptr;
void SetOwnerComposition(GuiGraphicsComposition* _ownerComposition) override
{
ownerComposition = _ownerComposition;
}
public:
GuiGraphicsParagraphWrapperElement(const remoteprotocol::ElementDesc_DocumentParagraphFull& _desc, Ptr<ElementDescMap> _elementDescs, Ptr<ImageCreationMap> _imageCreations)
:desc(_desc)
, elementDescs(_elementDescs)
, imageCreations(_imageCreations)
{
}
IGuiGraphicsRenderer* GetRenderer() override
{
return this;
}
GuiGraphicsComposition* GetOwnerComposition() override
{
return ownerComposition;
}
protected:
IGuiGraphicsRendererFactory* GetFactory() override
{
return this;
}
void Initialize(IGuiGraphicsElement* element) override
{
}
void Finalize() override
{
}
void SetRenderTarget(IGuiGraphicsRenderTarget* _renderTarget) override
{
if (renderTarget != _renderTarget)
{
renderTarget = _renderTarget;
paragraph = nullptr;
}
}
void Render(Rect bounds) override
{
if (!renderTarget) return;
if (!paragraph)
{
auto text = desc.paragraph.text ? desc.paragraph.text.Value() : WString::Empty;
paragraph = GetGuiGraphicsResourceManager()->GetLayoutProvider()->CreateParagraph(text, renderTarget, this);
paragraph->SetWrapLine(desc.paragraph.wrapLine);
paragraph->SetMaxWidth(desc.paragraph.maxWidth);
paragraph->SetParagraphAlignment(GetAlignment(desc.paragraph.alignment));
if (desc.paragraph.runsDiff)
{
for (auto run : *desc.paragraph.runsDiff.Obj())
{
auto length = run.caretEnd - run.caretBegin;
if (length <= 0) continue;
run.props.Apply(Overloading(
[&](const remoteprotocol::DocumentTextRunProperty& textProp)
{
paragraph->SetFont(run.caretBegin, length, textProp.fontProperties.fontFamily);
paragraph->SetSize(run.caretBegin, length, textProp.fontProperties.size);
IGuiGraphicsParagraph::TextStyle style = (IGuiGraphicsParagraph::TextStyle)0;
if (textProp.fontProperties.bold) style = (IGuiGraphicsParagraph::TextStyle)((vint)style | IGuiGraphicsParagraph::Bold);
if (textProp.fontProperties.italic) style = (IGuiGraphicsParagraph::TextStyle)((vint)style | IGuiGraphicsParagraph::Italic);
if (textProp.fontProperties.underline) style = (IGuiGraphicsParagraph::TextStyle)((vint)style | IGuiGraphicsParagraph::Underline);
if (textProp.fontProperties.strikeline) style = (IGuiGraphicsParagraph::TextStyle)((vint)style | IGuiGraphicsParagraph::Strikeline);
paragraph->SetStyle(run.caretBegin, length, style);
paragraph->SetColor(run.caretBegin, length, textProp.textColor);
paragraph->SetBackgroundColor(run.caretBegin, length, textProp.backgroundColor);
},
[&](const remoteprotocol::DocumentInlineObjectRunProperty& inlineProp)
{
IGuiGraphicsParagraph::InlineObjectProperties properties;
properties.size = inlineProp.size;
properties.baseline = inlineProp.baseline;
properties.breakCondition = inlineProp.breakCondition;
properties.callbackId = inlineProp.callbackId;
if (inlineProp.backgroundElementId != -1)
{
auto& desc = elementDescs->Get(inlineProp.backgroundElementId).Get<remoteprotocol::ElementDesc_ImageFrame>();
auto element = CreateImageElement(desc, imageCreations);
properties.backgroundImage = element;
}
paragraph->SetInlineObject(run.caretBegin, length, properties);
}
));
}
}
if (desc.caret)
{
auto& caret = desc.caret.Value();
paragraph->OpenCaret(caret.caret, caret.caretColor, caret.frontSide);
}
}
paragraph->Render(bounds);
}
void OnElementStateChanged() override
{
}
Size GetMinSize() override
{
return {};
}
protected:
IGuiGraphicsRenderer* Create() override
{
CHECK_FAIL(L"Not Implemented!");
}
protected:
Size OnRenderInlineObject(vint callbackId, Rect location) override
{
if (!desc.paragraph.runsDiff) return {};
Size result;
bool found = false;
for (auto&& run : *desc.paragraph.runsDiff.Obj())
{
if (auto props = run.props.TryGet<remoteprotocol::DocumentInlineObjectRunProperty>())
{
if (props->callbackId == callbackId)
{
return props->size;
}
}
}
return {};
}
};
void InstallDom( void InstallDom(
const remoteprotocol::UnitTest_RenderingTrace& trace, const remoteprotocol::UnitTest_RenderingTrace& trace,
const remoteprotocol::UnitTest_RenderingFrame& frame, const remoteprotocol::UnitTest_RenderingFrame& frame,
@@ -124,128 +316,120 @@ namespace gaclib_controls
switch (trace.createdElements->Get(dom->content.element.Value())) switch (trace.createdElements->Get(dom->content.element.Value()))
{ {
case remoteprotocol::RendererType::FocusRectangle: case remoteprotocol::RendererType::FocusRectangle:
{ {
auto element = Ptr(GuiFocusRectangleElement::Create()); auto element = Ptr(GuiFocusRectangleElement::Create());
bounds->SetOwnedElement(element); bounds->SetOwnedElement(element);
} }
break; break;
case remoteprotocol::RendererType::Raw: case remoteprotocol::RendererType::Raw:
// Do Nothing // Do Nothing
break; break;
case remoteprotocol::RendererType::SolidBorder: case remoteprotocol::RendererType::SolidBorder:
{
auto element = Ptr(GuiSolidBorderElement::Create());
bounds->SetOwnedElement(element);
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_SolidBorder>();
element->SetColor(desc.borderColor);
element->SetShape(desc.shape);
}
break;
case remoteprotocol::RendererType::SinkBorder:
{
auto element = Ptr(Gui3DBorderElement::Create());
bounds->SetOwnedElement(element);
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_SinkBorder>();
element->SetColors(desc.leftTopColor, desc.rightBottomColor);
}
break;
case remoteprotocol::RendererType::SinkSplitter:
{
auto element = Ptr(Gui3DSplitterElement::Create());
bounds->SetOwnedElement(element);
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_SinkSplitter>();
element->SetColors(desc.leftTopColor, desc.rightBottomColor);
element->SetDirection(desc.direction);
}
break;
case remoteprotocol::RendererType::SolidBackground:
{
auto element = Ptr(GuiSolidBackgroundElement::Create());
bounds->SetOwnedElement(element);
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_SolidBackground>();
element->SetColor(desc.backgroundColor);
element->SetShape(desc.shape);
}
break;
case remoteprotocol::RendererType::GradientBackground:
{
auto element = Ptr(GuiGradientBackgroundElement::Create());
bounds->SetOwnedElement(element);
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_GradientBackground>();
element->SetColors(desc.leftTopColor, desc.rightBottomColor);
element->SetDirection(desc.direction);
element->SetShape(desc.shape);
}
break;
case remoteprotocol::RendererType::InnerShadow:
{
auto element = Ptr(GuiInnerShadowElement::Create());
bounds->SetOwnedElement(element);
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_InnerShadow>();
element->SetColor(desc.shadowColor);
element->SetThickness(desc.thickness);
}
break;
case remoteprotocol::RendererType::SolidLabel:
{
auto element = Ptr(GuiSolidLabelElement::Create());
bounds->SetOwnedElement(element);
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_SolidLabel>();
element->SetColor(desc.textColor);
element->SetAlignments(GetAlignment(desc.horizontalAlignment), GetAlignment(desc.verticalAlignment));
element->SetWrapLine(desc.wrapLine);
element->SetWrapLineHeightCalculation(desc.wrapLineHeightCalculation);
element->SetEllipse(desc.ellipse);
element->SetMultiline(desc.multiline);
element->SetFont(desc.font.Value());
element->SetText(desc.text.Value());
}
break;
case remoteprotocol::RendererType::Polygon:
{
auto element = Ptr(GuiPolygonElement::Create());
bounds->SetOwnedElement(element);
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_Polygon>();
element->SetSize(desc.size);
element->SetBorderColor(desc.borderColor);
element->SetBackgroundColor(desc.backgroundColor);
if (desc.points && desc.points->Count() > 0)
{ {
element->SetPoints(&desc.points->Get(0), desc.points->Count()); auto element = Ptr(GuiSolidBorderElement::Create());
bounds->SetOwnedElement(element);
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_SolidBorder>();
element->SetColor(desc.borderColor);
element->SetShape(desc.shape);
} }
} break;
break; case remoteprotocol::RendererType::SinkBorder:
case remoteprotocol::RendererType::ImageFrame:
{
auto element = Ptr(GuiImageFrameElement::Create());
bounds->SetOwnedElement(element);
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_ImageFrame>();
element->SetAlignments(GetAlignment(desc.horizontalAlignment), GetAlignment(desc.verticalAlignment));
element->SetStretch(desc.stretch);
element->SetEnabled(desc.enabled);
if (desc.imageId)
{ {
vint index = trace.imageCreations->Keys().IndexOf(desc.imageId.Value()); auto element = Ptr(Gui3DBorderElement::Create());
if (index != -1) bounds->SetOwnedElement(element);
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_SinkBorder>();
element->SetColors(desc.leftTopColor, desc.rightBottomColor);
}
break;
case remoteprotocol::RendererType::SinkSplitter:
{
auto element = Ptr(Gui3DSplitterElement::Create());
bounds->SetOwnedElement(element);
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_SinkSplitter>();
element->SetColors(desc.leftTopColor, desc.rightBottomColor);
element->SetDirection(desc.direction);
}
break;
case remoteprotocol::RendererType::SolidBackground:
{
auto element = Ptr(GuiSolidBackgroundElement::Create());
bounds->SetOwnedElement(element);
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_SolidBackground>();
element->SetColor(desc.backgroundColor);
element->SetShape(desc.shape);
}
break;
case remoteprotocol::RendererType::GradientBackground:
{
auto element = Ptr(GuiGradientBackgroundElement::Create());
bounds->SetOwnedElement(element);
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_GradientBackground>();
element->SetColors(desc.leftTopColor, desc.rightBottomColor);
element->SetDirection(desc.direction);
element->SetShape(desc.shape);
}
break;
case remoteprotocol::RendererType::InnerShadow:
{
auto element = Ptr(GuiInnerShadowElement::Create());
bounds->SetOwnedElement(element);
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_InnerShadow>();
element->SetColor(desc.shadowColor);
element->SetThickness(desc.thickness);
}
break;
case remoteprotocol::RendererType::SolidLabel:
{
auto element = Ptr(GuiSolidLabelElement::Create());
bounds->SetOwnedElement(element);
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_SolidLabel>();
element->SetColor(desc.textColor);
element->SetAlignments(GetAlignment(desc.horizontalAlignment), GetAlignment(desc.verticalAlignment));
element->SetWrapLine(desc.wrapLine);
element->SetWrapLineHeightCalculation(desc.wrapLineHeightCalculation);
element->SetEllipse(desc.ellipse);
element->SetMultiline(desc.multiline);
element->SetFont(desc.font.Value());
element->SetText(desc.text.Value());
}
break;
case remoteprotocol::RendererType::Polygon:
{
auto element = Ptr(GuiPolygonElement::Create());
bounds->SetOwnedElement(element);
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_Polygon>();
element->SetSize(desc.size);
element->SetBorderColor(desc.borderColor);
element->SetBackgroundColor(desc.backgroundColor);
if (desc.points && desc.points->Count() > 0)
{ {
auto binary = trace.imageCreations->Values()[index].imageData; element->SetPoints(&desc.points->Get(0), desc.points->Count());
binary->SeekFromBegin(0);
element->SetImage(GetCurrentController()->ImageService()->CreateImageFromStream(*binary.Obj()), desc.imageFrame);
} }
} }
} break;
break; case remoteprotocol::RendererType::ImageFrame:
{
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_ImageFrame>();
auto element = CreateImageElement(desc, trace.imageCreations);
bounds->SetOwnedElement(element);
}
break;
case remoteprotocol::RendererType::DocumentParagraph:
{
auto& desc = frame.elements->Get(dom->content.element.Value()).Get<remoteprotocol::ElementDesc_DocumentParagraphFull>();
auto element = Ptr(new GuiGraphicsParagraphWrapperElement(desc, frame.elements, trace.imageCreations));
bounds->SetOwnedElement(element);
}
break;
default: default:
CHECK_FAIL(L"This element is not supported yet."); CHECK_FAIL(L"This element is not supported yet.");
break; break;
@@ -465,6 +649,7 @@ namespace gaclib_controls
} }
} }
/*********************************************************************** /***********************************************************************
.\SOURCE\GUIUNITTESTSNAPSHOTVIEWER.CPP .\SOURCE\GUIUNITTESTSNAPSHOTVIEWER.CPP
***********************************************************************/ ***********************************************************************/
File diff suppressed because it is too large Load Diff
+224 -813
View File
File diff suppressed because it is too large Load Diff
+416 -219
View File
File diff suppressed because it is too large Load Diff
+86 -19
View File
@@ -10069,6 +10069,13 @@ Helper Functions
#undef ERROR_MESSAGE_PREFIX #undef ERROR_MESSAGE_PREFIX
} }
template<typename T, typename ...TArgs>
T* FindObjectByName(GuiInstanceRootObject* rootObject, const WString& firstName, TArgs&& ...remains)
{
auto firstObject = FindObjectByName<GuiInstanceRootObject>(rootObject, firstName);
return FindObjectByName<T>(firstObject, std::forward<TArgs&&>(remains)...);
}
template<typename T> template<typename T>
requires(std::is_base_of_v<controls::GuiControl, T>) requires(std::is_base_of_v<controls::GuiControl, T>)
T* TryFindControlByText(GuiControl* rootObject, const WString& text) T* TryFindControlByText(GuiControl* rootObject, const WString& text)
@@ -11089,7 +11096,7 @@ Dialogs
class GuiFileDialogBase abstract : public GuiDialogBase, public Description<GuiFileDialogBase> class GuiFileDialogBase abstract : public GuiDialogBase, public Description<GuiFileDialogBase>
{ {
protected: protected:
WString filter = L"All Files (*.*)|*.*"; WString filter = L"All Files (*.*)|*";
vint filterIndex = 0; vint filterIndex = 0;
bool enabledPreview = false; bool enabledPreview = false;
WString title; WString title;
@@ -11630,12 +11637,17 @@ Rich Content Document (run)
class DocumentInlineObjectRun : public DocumentContentRun, public Description<DocumentInlineObjectRun> class DocumentInlineObjectRun : public DocumentContentRun, public Description<DocumentInlineObjectRun>
{ {
public: public:
/// <summary>Size of the inline object.</summary> /// <summary>Size of the inline object. When it is empty, it either becomes the size of the image, or (1,1) if there is no image.</summary>
Size size; Nullable<Size> sizeOverride;
/// <summary>Baseline of the inline object.</summary> /// <summary>Baseline of the inline object. When it is -1, it becomes sizeOverride.Value().y</summary>
vint baseline; vint baseline = -1;
DocumentInlineObjectRun():baseline(-1){} DocumentInlineObjectRun(){}
virtual Size GetSize()
{
return sizeOverride ? sizeOverride.Value() : Size(1, 1);
}
}; };
/// <summary>Pepresents a image run.</summary> /// <summary>Pepresents a image run.</summary>
@@ -11647,11 +11659,20 @@ Rich Content Document (run)
/// <summary>The image.</summary> /// <summary>The image.</summary>
Ptr<INativeImage> image; Ptr<INativeImage> image;
/// <summary>The frame index.</summary> /// <summary>The frame index.</summary>
vint frameIndex; vint frameIndex = 0;
/// <summary>The image source string.</summary> /// <summary>The image source string.</summary>
WString source; WString source;
DocumentImageRun():frameIndex(0){} DocumentImageRun(){}
Size GetSize() override
{
if (image && !sizeOverride && 0 <= frameIndex && frameIndex < image->GetFrameCount())
{
return image->GetFrame(frameIndex)->GetSize();
}
return DocumentInlineObjectRun::GetSize();
}
WString GetRepresentationText()override{return RepresentationText;} WString GetRepresentationText()override{return RepresentationText;}
void Accept(IVisitor* visitor)override{visitor->Visit(this);} void Accept(IVisitor* visitor)override{visitor->Visit(this);}
@@ -20835,9 +20856,12 @@ namespace vl::presentation::remoteprotocol
struct DocumentInlineObjectRunProperty; struct DocumentInlineObjectRunProperty;
struct DocumentRun; struct DocumentRun;
struct ElementDesc_DocumentParagraph; struct ElementDesc_DocumentParagraph;
struct UpdateElement_DocumentParagraphResponse;
struct GetCaretRequest; struct GetCaretRequest;
struct GetCaretResponse; struct GetCaretResponse;
struct GetCaretBoundsRequest; struct GetCaretBoundsRequest;
struct GetInlineObjectFromPointRequest;
struct IsValidCaretRequest;
struct OpenCaretRequest; struct OpenCaretRequest;
struct RenderInlineObjectRequest; struct RenderInlineObjectRequest;
struct RendererCreation; struct RendererCreation;
@@ -20851,6 +20875,7 @@ namespace vl::presentation::remoteprotocol
struct RenderingDom; struct RenderingDom;
struct RenderingDom_Diff; struct RenderingDom_Diff;
struct RenderingDom_DiffsInOrder; struct RenderingDom_DiffsInOrder;
struct ElementDesc_DocumentParagraphFull;
struct UnitTest_RenderingFrame; struct UnitTest_RenderingFrame;
struct UnitTest_RenderingTrace; struct UnitTest_RenderingTrace;
} }
@@ -20892,9 +20917,12 @@ namespace vl::presentation::remoteprotocol
template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::DocumentInlineObjectRunProperty> { static constexpr const wchar_t* Name = L"DocumentInlineObjectRunProperty"; }; template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::DocumentInlineObjectRunProperty> { static constexpr const wchar_t* Name = L"DocumentInlineObjectRunProperty"; };
template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::DocumentRun> { static constexpr const wchar_t* Name = L"DocumentRun"; }; template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::DocumentRun> { static constexpr const wchar_t* Name = L"DocumentRun"; };
template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraph> { static constexpr const wchar_t* Name = L"ElementDesc_DocumentParagraph"; }; template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraph> { static constexpr const wchar_t* Name = L"ElementDesc_DocumentParagraph"; };
template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::UpdateElement_DocumentParagraphResponse> { static constexpr const wchar_t* Name = L"UpdateElement_DocumentParagraphResponse"; };
template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::GetCaretRequest> { static constexpr const wchar_t* Name = L"GetCaretRequest"; }; template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::GetCaretRequest> { static constexpr const wchar_t* Name = L"GetCaretRequest"; };
template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::GetCaretResponse> { static constexpr const wchar_t* Name = L"GetCaretResponse"; }; template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::GetCaretResponse> { static constexpr const wchar_t* Name = L"GetCaretResponse"; };
template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::GetCaretBoundsRequest> { static constexpr const wchar_t* Name = L"GetCaretBoundsRequest"; }; template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::GetCaretBoundsRequest> { static constexpr const wchar_t* Name = L"GetCaretBoundsRequest"; };
template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::GetInlineObjectFromPointRequest> { static constexpr const wchar_t* Name = L"GetInlineObjectFromPointRequest"; };
template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::IsValidCaretRequest> { static constexpr const wchar_t* Name = L"IsValidCaretRequest"; };
template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::OpenCaretRequest> { static constexpr const wchar_t* Name = L"OpenCaretRequest"; }; template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::OpenCaretRequest> { static constexpr const wchar_t* Name = L"OpenCaretRequest"; };
template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::RenderInlineObjectRequest> { static constexpr const wchar_t* Name = L"RenderInlineObjectRequest"; }; template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::RenderInlineObjectRequest> { static constexpr const wchar_t* Name = L"RenderInlineObjectRequest"; };
template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::RendererCreation> { static constexpr const wchar_t* Name = L"RendererCreation"; }; template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::RendererCreation> { static constexpr const wchar_t* Name = L"RendererCreation"; };
@@ -20908,6 +20936,7 @@ namespace vl::presentation::remoteprotocol
template<> struct JsonNameHelper<::vl::Ptr<::vl::presentation::remoteprotocol::RenderingDom>> { static constexpr const wchar_t* Name = L"RenderingDom"; }; template<> struct JsonNameHelper<::vl::Ptr<::vl::presentation::remoteprotocol::RenderingDom>> { static constexpr const wchar_t* Name = L"RenderingDom"; };
template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::RenderingDom_Diff> { static constexpr const wchar_t* Name = L"RenderingDom_Diff"; }; template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::RenderingDom_Diff> { static constexpr const wchar_t* Name = L"RenderingDom_Diff"; };
template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::RenderingDom_DiffsInOrder> { static constexpr const wchar_t* Name = L"RenderingDom_DiffsInOrder"; }; template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::RenderingDom_DiffsInOrder> { static constexpr const wchar_t* Name = L"RenderingDom_DiffsInOrder"; };
template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraphFull> { static constexpr const wchar_t* Name = L"ElementDesc_DocumentParagraphFull"; };
template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::UnitTest_RenderingFrame> { static constexpr const wchar_t* Name = L"UnitTest_RenderingFrame"; }; template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::UnitTest_RenderingFrame> { static constexpr const wchar_t* Name = L"UnitTest_RenderingFrame"; };
template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::UnitTest_RenderingTrace> { static constexpr const wchar_t* Name = L"UnitTest_RenderingTrace"; }; template<> struct JsonNameHelper<::vl::presentation::remoteprotocol::UnitTest_RenderingTrace> { static constexpr const wchar_t* Name = L"UnitTest_RenderingTrace"; };
} }
@@ -20985,7 +21014,7 @@ namespace vl::presentation::remoteprotocol
::vl::presentation::remoteprotocol::ElementDesc_Polygon, ::vl::presentation::remoteprotocol::ElementDesc_Polygon,
::vl::presentation::remoteprotocol::ElementDesc_SolidLabel, ::vl::presentation::remoteprotocol::ElementDesc_SolidLabel,
::vl::presentation::remoteprotocol::ElementDesc_ImageFrame, ::vl::presentation::remoteprotocol::ElementDesc_ImageFrame,
::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraph ::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraphFull
>; >;
struct FontConfig struct FontConfig
@@ -21171,8 +21200,15 @@ namespace vl::presentation::remoteprotocol
::vl::Ptr<::vl::collections::List<::vl::vint>> removedInlineObjects; ::vl::Ptr<::vl::collections::List<::vl::vint>> removedInlineObjects;
}; };
struct UpdateElement_DocumentParagraphResponse
{
::vl::presentation::Size documentSize;
::vl::Ptr<::vl::collections::Dictionary<::vl::vint, ::vl::presentation::Rect>> inlineObjectBounds;
};
struct GetCaretRequest struct GetCaretRequest
{ {
::vl::vint id;
::vl::vint caret; ::vl::vint caret;
::vl::presentation::elements::IGuiGraphicsParagraph::CaretRelativePosition relativePosition; ::vl::presentation::elements::IGuiGraphicsParagraph::CaretRelativePosition relativePosition;
}; };
@@ -21185,12 +21221,26 @@ namespace vl::presentation::remoteprotocol
struct GetCaretBoundsRequest struct GetCaretBoundsRequest
{ {
::vl::vint id;
::vl::vint caret; ::vl::vint caret;
bool frontSide; bool frontSide;
}; };
struct GetInlineObjectFromPointRequest
{
::vl::vint id;
::vl::presentation::Point point;
};
struct IsValidCaretRequest
{
::vl::vint id;
::vl::vint caret;
};
struct OpenCaretRequest struct OpenCaretRequest
{ {
::vl::vint id;
::vl::vint caret; ::vl::vint caret;
::vl::presentation::Color caretColor; ::vl::presentation::Color caretColor;
bool frontSide; bool frontSide;
@@ -21278,6 +21328,12 @@ namespace vl::presentation::remoteprotocol
::vl::Ptr<::vl::collections::List<::vl::presentation::remoteprotocol::RenderingDom_Diff>> diffsInOrder; ::vl::Ptr<::vl::collections::List<::vl::presentation::remoteprotocol::RenderingDom_Diff>> diffsInOrder;
}; };
struct ElementDesc_DocumentParagraphFull
{
::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraph paragraph;
::vl::Nullable<::vl::presentation::remoteprotocol::OpenCaretRequest> caret;
};
struct UnitTest_RenderingFrame struct UnitTest_RenderingFrame
{ {
::vl::vint frameId; ::vl::vint frameId;
@@ -21347,9 +21403,12 @@ namespace vl::presentation::remoteprotocol
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::DocumentInlineObjectRunProperty>(const ::vl::presentation::remoteprotocol::DocumentInlineObjectRunProperty & value); template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::DocumentInlineObjectRunProperty>(const ::vl::presentation::remoteprotocol::DocumentInlineObjectRunProperty & value);
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::DocumentRun>(const ::vl::presentation::remoteprotocol::DocumentRun & value); template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::DocumentRun>(const ::vl::presentation::remoteprotocol::DocumentRun & value);
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraph>(const ::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraph & value); template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraph>(const ::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraph & value);
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::UpdateElement_DocumentParagraphResponse>(const ::vl::presentation::remoteprotocol::UpdateElement_DocumentParagraphResponse & value);
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::GetCaretRequest>(const ::vl::presentation::remoteprotocol::GetCaretRequest & value); template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::GetCaretRequest>(const ::vl::presentation::remoteprotocol::GetCaretRequest & value);
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::GetCaretResponse>(const ::vl::presentation::remoteprotocol::GetCaretResponse & value); template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::GetCaretResponse>(const ::vl::presentation::remoteprotocol::GetCaretResponse & value);
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::GetCaretBoundsRequest>(const ::vl::presentation::remoteprotocol::GetCaretBoundsRequest & value); template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::GetCaretBoundsRequest>(const ::vl::presentation::remoteprotocol::GetCaretBoundsRequest & value);
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::GetInlineObjectFromPointRequest>(const ::vl::presentation::remoteprotocol::GetInlineObjectFromPointRequest & value);
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::IsValidCaretRequest>(const ::vl::presentation::remoteprotocol::IsValidCaretRequest & value);
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::OpenCaretRequest>(const ::vl::presentation::remoteprotocol::OpenCaretRequest & value); template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::OpenCaretRequest>(const ::vl::presentation::remoteprotocol::OpenCaretRequest & value);
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::RenderInlineObjectRequest>(const ::vl::presentation::remoteprotocol::RenderInlineObjectRequest & value); template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::RenderInlineObjectRequest>(const ::vl::presentation::remoteprotocol::RenderInlineObjectRequest & value);
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::RendererCreation>(const ::vl::presentation::remoteprotocol::RendererCreation & value); template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::RendererCreation>(const ::vl::presentation::remoteprotocol::RendererCreation & value);
@@ -21363,6 +21422,7 @@ namespace vl::presentation::remoteprotocol
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::RenderingDom>(const ::vl::presentation::remoteprotocol::RenderingDom & value); template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::RenderingDom>(const ::vl::presentation::remoteprotocol::RenderingDom & value);
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::RenderingDom_Diff>(const ::vl::presentation::remoteprotocol::RenderingDom_Diff & value); template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::RenderingDom_Diff>(const ::vl::presentation::remoteprotocol::RenderingDom_Diff & value);
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::RenderingDom_DiffsInOrder>(const ::vl::presentation::remoteprotocol::RenderingDom_DiffsInOrder & value); template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::RenderingDom_DiffsInOrder>(const ::vl::presentation::remoteprotocol::RenderingDom_DiffsInOrder & value);
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraphFull>(const ::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraphFull & value);
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::UnitTest_RenderingFrame>(const ::vl::presentation::remoteprotocol::UnitTest_RenderingFrame & value); template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::UnitTest_RenderingFrame>(const ::vl::presentation::remoteprotocol::UnitTest_RenderingFrame & value);
template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::UnitTest_RenderingTrace>(const ::vl::presentation::remoteprotocol::UnitTest_RenderingTrace & value); template<> vl::Ptr<vl::glr::json::JsonNode> ConvertCustomTypeToJson<::vl::presentation::remoteprotocol::UnitTest_RenderingTrace>(const ::vl::presentation::remoteprotocol::UnitTest_RenderingTrace & value);
@@ -21418,9 +21478,12 @@ namespace vl::presentation::remoteprotocol
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::DocumentInlineObjectRunProperty>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::DocumentInlineObjectRunProperty& value); template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::DocumentInlineObjectRunProperty>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::DocumentInlineObjectRunProperty& value);
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::DocumentRun>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::DocumentRun& value); template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::DocumentRun>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::DocumentRun& value);
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraph>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraph& value); template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraph>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraph& value);
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::UpdateElement_DocumentParagraphResponse>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::UpdateElement_DocumentParagraphResponse& value);
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::GetCaretRequest>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::GetCaretRequest& value); template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::GetCaretRequest>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::GetCaretRequest& value);
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::GetCaretResponse>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::GetCaretResponse& value); template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::GetCaretResponse>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::GetCaretResponse& value);
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::GetCaretBoundsRequest>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::GetCaretBoundsRequest& value); template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::GetCaretBoundsRequest>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::GetCaretBoundsRequest& value);
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::GetInlineObjectFromPointRequest>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::GetInlineObjectFromPointRequest& value);
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::IsValidCaretRequest>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::IsValidCaretRequest& value);
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::OpenCaretRequest>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::OpenCaretRequest& value); template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::OpenCaretRequest>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::OpenCaretRequest& value);
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::RenderInlineObjectRequest>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::RenderInlineObjectRequest& value); template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::RenderInlineObjectRequest>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::RenderInlineObjectRequest& value);
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::RendererCreation>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::RendererCreation& value); template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::RendererCreation>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::RendererCreation& value);
@@ -21434,6 +21497,7 @@ namespace vl::presentation::remoteprotocol
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::RenderingDom>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::RenderingDom& value); template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::RenderingDom>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::RenderingDom& value);
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::RenderingDom_Diff>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::RenderingDom_Diff& value); template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::RenderingDom_Diff>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::RenderingDom_Diff& value);
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::RenderingDom_DiffsInOrder>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::RenderingDom_DiffsInOrder& value); template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::RenderingDom_DiffsInOrder>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::RenderingDom_DiffsInOrder& value);
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraphFull>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraphFull& value);
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::UnitTest_RenderingFrame>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::UnitTest_RenderingFrame& value); template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::UnitTest_RenderingFrame>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::UnitTest_RenderingFrame& value);
template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::UnitTest_RenderingTrace>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::UnitTest_RenderingTrace& value); template<> void ConvertJsonToCustomType<::vl::presentation::remoteprotocol::UnitTest_RenderingTrace>(vl::Ptr<vl::glr::json::JsonNode> node, ::vl::presentation::remoteprotocol::UnitTest_RenderingTrace& value);
@@ -21475,14 +21539,14 @@ namespace vl::presentation::remoteprotocol
HANDLER(ImageCreated, ::vl::presentation::remoteprotocol::ImageCreation, ::vl::presentation::remoteprotocol::ImageMetadata, REQ, RES, NODROP)\ HANDLER(ImageCreated, ::vl::presentation::remoteprotocol::ImageCreation, ::vl::presentation::remoteprotocol::ImageMetadata, REQ, RES, NODROP)\
HANDLER(ImageDestroyed, ::vl::vint, void, REQ, NORES, NODROP)\ HANDLER(ImageDestroyed, ::vl::vint, void, REQ, NORES, NODROP)\
HANDLER(RendererUpdateElement_ImageFrame, ::vl::presentation::remoteprotocol::ElementDesc_ImageFrame, void, REQ, NORES, NODROP)\ HANDLER(RendererUpdateElement_ImageFrame, ::vl::presentation::remoteprotocol::ElementDesc_ImageFrame, void, REQ, NORES, NODROP)\
HANDLER(RendererUpdateElement_DocumentParagraph, ::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraph, ::vl::presentation::Size, REQ, RES, NODROP)\ HANDLER(RendererUpdateElement_DocumentParagraph, ::vl::presentation::remoteprotocol::ElementDesc_DocumentParagraph, ::vl::presentation::remoteprotocol::UpdateElement_DocumentParagraphResponse, REQ, RES, NODROP)\
HANDLER(DocumentParagraph_GetCaret, ::vl::presentation::remoteprotocol::GetCaretRequest, ::vl::presentation::remoteprotocol::GetCaretResponse, REQ, RES, NODROP)\ HANDLER(DocumentParagraph_GetCaret, ::vl::presentation::remoteprotocol::GetCaretRequest, ::vl::presentation::remoteprotocol::GetCaretResponse, REQ, RES, NODROP)\
HANDLER(DocumentParagraph_GetCaretBounds, ::vl::presentation::remoteprotocol::GetCaretBoundsRequest, ::vl::presentation::Rect, REQ, RES, NODROP)\ HANDLER(DocumentParagraph_GetCaretBounds, ::vl::presentation::remoteprotocol::GetCaretBoundsRequest, ::vl::presentation::Rect, REQ, RES, NODROP)\
HANDLER(DocumentParagraph_GetInlineObjectFromPoint, ::vl::presentation::Point, ::vl::Nullable<::vl::presentation::remoteprotocol::DocumentRun>, REQ, RES, NODROP)\ HANDLER(DocumentParagraph_GetInlineObjectFromPoint, ::vl::presentation::remoteprotocol::GetInlineObjectFromPointRequest, ::vl::Nullable<::vl::presentation::remoteprotocol::DocumentRun>, REQ, RES, NODROP)\
HANDLER(DocumentParagraph_GetNearestCaretFromTextPos, ::vl::presentation::remoteprotocol::GetCaretBoundsRequest, ::vl::vint, REQ, RES, NODROP)\ HANDLER(DocumentParagraph_GetNearestCaretFromTextPos, ::vl::presentation::remoteprotocol::GetCaretBoundsRequest, ::vl::vint, REQ, RES, NODROP)\
HANDLER(DocumentParagraph_IsValidCaret, ::vl::vint, bool, REQ, RES, NODROP)\ HANDLER(DocumentParagraph_IsValidCaret, ::vl::presentation::remoteprotocol::IsValidCaretRequest, bool, REQ, RES, NODROP)\
HANDLER(DocumentParagraph_OpenCaret, ::vl::presentation::remoteprotocol::OpenCaretRequest, void, REQ, NORES, NODROP)\ HANDLER(DocumentParagraph_OpenCaret, ::vl::presentation::remoteprotocol::OpenCaretRequest, void, REQ, NORES, NODROP)\
HANDLER(DocumentParagraph_CloseCaret, void, void, NOREQ, NORES, NODROP)\ HANDLER(DocumentParagraph_CloseCaret, ::vl::vint, void, REQ, NORES, NODROP)\
HANDLER(RendererCreated, ::vl::Ptr<::vl::collections::List<::vl::presentation::remoteprotocol::RendererCreation>>, void, REQ, NORES, NODROP)\ HANDLER(RendererCreated, ::vl::Ptr<::vl::collections::List<::vl::presentation::remoteprotocol::RendererCreation>>, void, REQ, NORES, NODROP)\
HANDLER(RendererDestroyed, ::vl::Ptr<::vl::collections::List<::vl::vint>>, void, REQ, NORES, NODROP)\ HANDLER(RendererDestroyed, ::vl::Ptr<::vl::collections::List<::vl::vint>>, void, REQ, NORES, NODROP)\
HANDLER(RendererBeginRendering, ::vl::presentation::remoteprotocol::ElementBeginRendering, void, REQ, NORES, NODROP)\ HANDLER(RendererBeginRendering, ::vl::presentation::remoteprotocol::ElementBeginRendering, void, REQ, NORES, NODROP)\
@@ -21513,7 +21577,6 @@ namespace vl::presentation::remoteprotocol
HANDLER(IOKeyDown, ::vl::presentation::NativeWindowKeyInfo, REQ, NODROP)\ HANDLER(IOKeyDown, ::vl::presentation::NativeWindowKeyInfo, REQ, NODROP)\
HANDLER(IOKeyUp, ::vl::presentation::NativeWindowKeyInfo, REQ, NODROP)\ HANDLER(IOKeyUp, ::vl::presentation::NativeWindowKeyInfo, REQ, NODROP)\
HANDLER(IOChar, ::vl::presentation::NativeWindowCharInfo, REQ, NODROP)\ HANDLER(IOChar, ::vl::presentation::NativeWindowCharInfo, REQ, NODROP)\
HANDLER(DocumentParagraph_RenderInlineObjects, ::vl::Ptr<::vl::collections::List<::vl::presentation::remoteprotocol::RenderInlineObjectRequest>>, REQ, NODROP)\
#define GACUI_REMOTEPROTOCOL_MESSAGE_REQUEST_TYPES(HANDLER)\ #define GACUI_REMOTEPROTOCOL_MESSAGE_REQUEST_TYPES(HANDLER)\
HANDLER(::vl::Ptr<::vl::collections::List<::vl::presentation::remoteprotocol::GlobalShortcutKey>>)\ HANDLER(::vl::Ptr<::vl::collections::List<::vl::presentation::remoteprotocol::GlobalShortcutKey>>)\
@@ -21523,7 +21586,6 @@ namespace vl::presentation::remoteprotocol
HANDLER(::vl::WString)\ HANDLER(::vl::WString)\
HANDLER(::vl::presentation::NativeRect)\ HANDLER(::vl::presentation::NativeRect)\
HANDLER(::vl::presentation::NativeSize)\ HANDLER(::vl::presentation::NativeSize)\
HANDLER(::vl::presentation::Point)\
HANDLER(::vl::presentation::VKEY)\ HANDLER(::vl::presentation::VKEY)\
HANDLER(::vl::presentation::remoteprotocol::ElementBeginRendering)\ HANDLER(::vl::presentation::remoteprotocol::ElementBeginRendering)\
HANDLER(::vl::presentation::remoteprotocol::ElementBoundary)\ HANDLER(::vl::presentation::remoteprotocol::ElementBoundary)\
@@ -21540,7 +21602,9 @@ namespace vl::presentation::remoteprotocol
HANDLER(::vl::presentation::remoteprotocol::ElementRendering)\ HANDLER(::vl::presentation::remoteprotocol::ElementRendering)\
HANDLER(::vl::presentation::remoteprotocol::GetCaretBoundsRequest)\ HANDLER(::vl::presentation::remoteprotocol::GetCaretBoundsRequest)\
HANDLER(::vl::presentation::remoteprotocol::GetCaretRequest)\ HANDLER(::vl::presentation::remoteprotocol::GetCaretRequest)\
HANDLER(::vl::presentation::remoteprotocol::GetInlineObjectFromPointRequest)\
HANDLER(::vl::presentation::remoteprotocol::ImageCreation)\ HANDLER(::vl::presentation::remoteprotocol::ImageCreation)\
HANDLER(::vl::presentation::remoteprotocol::IsValidCaretRequest)\
HANDLER(::vl::presentation::remoteprotocol::OpenCaretRequest)\ HANDLER(::vl::presentation::remoteprotocol::OpenCaretRequest)\
HANDLER(::vl::presentation::remoteprotocol::RenderingDom_DiffsInOrder)\ HANDLER(::vl::presentation::remoteprotocol::RenderingDom_DiffsInOrder)\
HANDLER(::vl::presentation::remoteprotocol::WindowShowing)\ HANDLER(::vl::presentation::remoteprotocol::WindowShowing)\
@@ -21550,18 +21614,17 @@ namespace vl::presentation::remoteprotocol
#define GACUI_REMOTEPROTOCOL_MESSAGE_RESPONSE_TYPES(HANDLER)\ #define GACUI_REMOTEPROTOCOL_MESSAGE_RESPONSE_TYPES(HANDLER)\
HANDLER(::vl::Nullable<::vl::presentation::remoteprotocol::DocumentRun>)\ HANDLER(::vl::Nullable<::vl::presentation::remoteprotocol::DocumentRun>)\
HANDLER(::vl::presentation::Rect)\ HANDLER(::vl::presentation::Rect)\
HANDLER(::vl::presentation::Size)\
HANDLER(::vl::presentation::remoteprotocol::ElementMeasurings)\ HANDLER(::vl::presentation::remoteprotocol::ElementMeasurings)\
HANDLER(::vl::presentation::remoteprotocol::FontConfig)\ HANDLER(::vl::presentation::remoteprotocol::FontConfig)\
HANDLER(::vl::presentation::remoteprotocol::GetCaretResponse)\ HANDLER(::vl::presentation::remoteprotocol::GetCaretResponse)\
HANDLER(::vl::presentation::remoteprotocol::ImageMetadata)\ HANDLER(::vl::presentation::remoteprotocol::ImageMetadata)\
HANDLER(::vl::presentation::remoteprotocol::ScreenConfig)\ HANDLER(::vl::presentation::remoteprotocol::ScreenConfig)\
HANDLER(::vl::presentation::remoteprotocol::UpdateElement_DocumentParagraphResponse)\
HANDLER(::vl::presentation::remoteprotocol::WindowSizingConfig)\ HANDLER(::vl::presentation::remoteprotocol::WindowSizingConfig)\
HANDLER(::vl::vint)\ HANDLER(::vl::vint)\
HANDLER(bool)\ HANDLER(bool)\
#define GACUI_REMOTEPROTOCOL_EVENT_REQUEST_TYPES(HANDLER)\ #define GACUI_REMOTEPROTOCOL_EVENT_REQUEST_TYPES(HANDLER)\
HANDLER(::vl::Ptr<::vl::collections::List<::vl::presentation::remoteprotocol::RenderInlineObjectRequest>>)\
HANDLER(::vl::presentation::NativeWindowCharInfo)\ HANDLER(::vl::presentation::NativeWindowCharInfo)\
HANDLER(::vl::presentation::NativeWindowKeyInfo)\ HANDLER(::vl::presentation::NativeWindowKeyInfo)\
HANDLER(::vl::presentation::NativeWindowMouseInfo)\ HANDLER(::vl::presentation::NativeWindowMouseInfo)\
@@ -21675,6 +21738,7 @@ GuiRemoteGraphicsParagraph
vint maxWidth = -1; vint maxWidth = -1;
Alignment paragraphAlignment = Alignment::Left; Alignment paragraphAlignment = Alignment::Left;
Size cachedSize = Size(0, 0); Size cachedSize = Size(0, 0);
Ptr<collections::Dictionary<vint, Rect>> cachedInlineObjectBounds;
bool needUpdate = true; bool needUpdate = true;
vint id = -1; vint id = -1;
vuint64_t lastRenderedBatchId = 0; vuint64_t lastRenderedBatchId = 0;
@@ -21689,10 +21753,11 @@ GuiRemoteGraphicsParagraph
vint NativeTextPosToRemoteTextPos(vint textPos); vint NativeTextPosToRemoteTextPos(vint textPos);
vint RemoteTextPosToNativeTextPos(vint textPos); vint RemoteTextPosToNativeTextPos(vint textPos);
bool TryBuildCaretRange(vint start, vint length, CaretRange& range); bool TryBuildCaretRange(vint start, vint length, CaretRange& range);
public:
bool EnsureRemoteParagraphSynced(); bool EnsureRemoteParagraphSynced();
void MarkParagraphDirty(bool invalidateSize); void MarkParagraphDirty(bool invalidateSize);
public:
// ============================================================= // =============================================================
// IGuiGraphicsParagraph // IGuiGraphicsParagraph
// ============================================================= // =============================================================
@@ -21731,6 +21796,7 @@ GuiRemoteGraphicsParagraph
#endif #endif
/*********************************************************************** /***********************************************************************
.\PLATFORMPROVIDERS\REMOTE\GUIREMOTEGRAPHICS_IMAGESERVICE.H .\PLATFORMPROVIDERS\REMOTE\GUIREMOTEGRAPHICS_IMAGESERVICE.H
***********************************************************************/ ***********************************************************************/
@@ -21932,6 +21998,7 @@ GuiRemoteGraphicsRenderTarget
GuiRemoteGraphicsRenderTarget(GuiRemoteController* _remote, GuiHostedController* _hostedController); GuiRemoteGraphicsRenderTarget(GuiRemoteController* _remote, GuiHostedController* _hostedController);
~GuiRemoteGraphicsRenderTarget(); ~GuiRemoteGraphicsRenderTarget();
void EnsureRequestedRenderersCreated();
void OnControllerConnect(); void OnControllerConnect();
void OnControllerDisconnect(); void OnControllerDisconnect();
@@ -21975,7 +22042,6 @@ GuiRemoteGraphicsResourceManager
void OnControllerConnect(); void OnControllerConnect();
void OnControllerDisconnect(); void OnControllerDisconnect();
void OnDocumentParagraph_RenderInlineObjects(collections::List<remoteprotocol::RenderInlineObjectRequest>& arguments);
// ============================================================= // =============================================================
// IGuiGraphicsResourceManager // IGuiGraphicsResourceManager
@@ -21992,6 +22058,7 @@ GuiRemoteGraphicsResourceManager
#endif #endif
/*********************************************************************** /***********************************************************************
.\PLATFORMPROVIDERS\REMOTE\GUIREMOTEGRAPHICS_BASICELEMENTS.H .\PLATFORMPROVIDERS\REMOTE\GUIREMOTEGRAPHICS_BASICELEMENTS.H
***********************************************************************/ ***********************************************************************/
+198 -205
View File
File diff suppressed because it is too large Load Diff
+17 -17
View File
@@ -1636,23 +1636,23 @@ namespace vl::presentation::remoteprotocol
enum class ParserStates enum class ParserStates
{ {
RType = 0, RType = 0,
RAttributeParameter = 26, RAttributeParameter = -1,
RAttribute = 29, RAttribute = 25,
REnumMember = 37, REnumMember = 33,
REnum = 41, REnum = 37,
RUnionMember = 48, RUnionMember = 44,
RUnion = 52, RUnion = 48,
RStructMember = 59, RStructMember = 55,
RStructBody = 66, RStructBody = 62,
RStruct = 72, RStruct = 68,
RMessageRequest = 78, RMessageRequest = 74,
RMessageResponse = 84, RMessageResponse = 80,
RMessage = 90, RMessage = 86,
REventRequest = 98, REventRequest = 94,
REvent = 104, REvent = 100,
RDeclDetail = 111, RDeclDetail = 107,
RDecl = 118, RDecl = 114,
Schema = 122, Schema = 118,
}; };
const wchar_t* ParserRuleName(vl::vint index); const wchar_t* ParserRuleName(vl::vint index);
+1 -1
View File
@@ -776,7 +776,7 @@ Type Declaration
BEGIN_CLASS_MEMBER(DocumentInlineObjectRun) BEGIN_CLASS_MEMBER(DocumentInlineObjectRun)
CLASS_MEMBER_BASE(DocumentContentRun) CLASS_MEMBER_BASE(DocumentContentRun)
CLASS_MEMBER_FIELD(size) CLASS_MEMBER_FIELD(sizeOverride)
CLASS_MEMBER_FIELD(baseline) CLASS_MEMBER_FIELD(baseline)
END_CLASS_MEMBER(DocumentInlineObjectRun) END_CLASS_MEMBER(DocumentInlineObjectRun)
+123 -20
View File
@@ -2363,6 +2363,33 @@
} }
}], }],
"type": "Struct" "type": "Struct"
}, {
"$ast": "StructDecl",
"attributes": [],
"name": "UpdateElement_DocumentParagraphResponse",
"members": [{
"$ast": "StructMember",
"name": "documentSize",
"type": {
"$ast": "ReferenceType",
"name": "Size"
}
}, {
"$ast": "StructMember",
"name": "inlineObjectBounds",
"type": {
"$ast": "MapType",
"element": {
"$ast": "ReferenceType",
"name": "Rect"
},
"keyType": {
"$ast": "PrimitiveType",
"type": "Integer"
}
}
}],
"type": "Struct"
}, { }, {
"$ast": "MessageDecl", "$ast": "MessageDecl",
"attributes": [], "attributes": [],
@@ -2378,7 +2405,7 @@
"$ast": "MessageResponse", "$ast": "MessageResponse",
"type": { "type": {
"$ast": "ReferenceType", "$ast": "ReferenceType",
"name": "Size" "name": "UpdateElement_DocumentParagraphResponse"
} }
} }
}, { }, {
@@ -2386,6 +2413,13 @@
"attributes": [], "attributes": [],
"name": "GetCaretRequest", "name": "GetCaretRequest",
"members": [{ "members": [{
"$ast": "StructMember",
"name": "id",
"type": {
"$ast": "PrimitiveType",
"type": "Integer"
}
}, {
"$ast": "StructMember", "$ast": "StructMember",
"name": "caret", "name": "caret",
"type": { "type": {
@@ -2426,6 +2460,13 @@
"attributes": [], "attributes": [],
"name": "GetCaretBoundsRequest", "name": "GetCaretBoundsRequest",
"members": [{ "members": [{
"$ast": "StructMember",
"name": "id",
"type": {
"$ast": "PrimitiveType",
"type": "Integer"
}
}, {
"$ast": "StructMember", "$ast": "StructMember",
"name": "caret", "name": "caret",
"type": { "type": {
@@ -2441,11 +2482,58 @@
} }
}], }],
"type": "Struct" "type": "Struct"
}, {
"$ast": "StructDecl",
"attributes": [],
"name": "GetInlineObjectFromPointRequest",
"members": [{
"$ast": "StructMember",
"name": "id",
"type": {
"$ast": "PrimitiveType",
"type": "Integer"
}
}, {
"$ast": "StructMember",
"name": "point",
"type": {
"$ast": "ReferenceType",
"name": "Point"
}
}],
"type": "Struct"
}, {
"$ast": "StructDecl",
"attributes": [],
"name": "IsValidCaretRequest",
"members": [{
"$ast": "StructMember",
"name": "id",
"type": {
"$ast": "PrimitiveType",
"type": "Integer"
}
}, {
"$ast": "StructMember",
"name": "caret",
"type": {
"$ast": "PrimitiveType",
"type": "Integer"
}
}],
"type": "Struct"
}, { }, {
"$ast": "StructDecl", "$ast": "StructDecl",
"attributes": [], "attributes": [],
"name": "OpenCaretRequest", "name": "OpenCaretRequest",
"members": [{ "members": [{
"$ast": "StructMember",
"name": "id",
"type": {
"$ast": "PrimitiveType",
"type": "Integer"
}
}, {
"$ast": "StructMember", "$ast": "StructMember",
"name": "caret", "name": "caret",
"type": { "type": {
@@ -2512,7 +2600,7 @@
"$ast": "MessageRequest", "$ast": "MessageRequest",
"type": { "type": {
"$ast": "ReferenceType", "$ast": "ReferenceType",
"name": "Point" "name": "GetInlineObjectFromPointRequest"
} }
}, },
"response": { "response": {
@@ -2550,8 +2638,8 @@
"request": { "request": {
"$ast": "MessageRequest", "$ast": "MessageRequest",
"type": { "type": {
"$ast": "PrimitiveType", "$ast": "ReferenceType",
"type": "Integer" "name": "IsValidCaretRequest"
} }
}, },
"response": { "response": {
@@ -2577,7 +2665,13 @@
"$ast": "MessageDecl", "$ast": "MessageDecl",
"attributes": [], "attributes": [],
"name": "DocumentParagraph_CloseCaret", "name": "DocumentParagraph_CloseCaret",
"request": null, "request": {
"$ast": "MessageRequest",
"type": {
"$ast": "PrimitiveType",
"type": "Integer"
}
},
"response": null "response": null
}, { }, {
"$ast": "StructDecl", "$ast": "StructDecl",
@@ -2599,20 +2693,6 @@
} }
}], }],
"type": "Struct" "type": "Struct"
}, {
"$ast": "EventDecl",
"attributes": [],
"name": "DocumentParagraph_RenderInlineObjects",
"request": {
"$ast": "EventRequest",
"type": {
"$ast": "ArrayType",
"element": {
"$ast": "ReferenceType",
"name": "RenderInlineObjectRequest"
}
}
}
}, { }, {
"$ast": "EnumDecl", "$ast": "EnumDecl",
"attributes": [], "attributes": [],
@@ -3102,6 +3182,29 @@
} }
}, },
"response": null "response": null
}, {
"$ast": "StructDecl",
"attributes": [],
"name": "ElementDesc_DocumentParagraphFull",
"members": [{
"$ast": "StructMember",
"name": "paragraph",
"type": {
"$ast": "ReferenceType",
"name": "ElementDesc_DocumentParagraph"
}
}, {
"$ast": "StructMember",
"name": "caret",
"type": {
"$ast": "OptionalType",
"element": {
"$ast": "ReferenceType",
"name": "OpenCaretRequest"
}
}
}],
"type": "Struct"
}, { }, {
"$ast": "UnionDecl", "$ast": "UnionDecl",
"attributes": [], "attributes": [],
@@ -3135,7 +3238,7 @@
"name": "ElementDesc_ImageFrame" "name": "ElementDesc_ImageFrame"
}, { }, {
"$ast": "UnionMember", "$ast": "UnionMember",
"name": "ElementDesc_DocumentParagraph" "name": "ElementDesc_DocumentParagraphFull"
}] }]
}, { }, {
"$ast": "StructDecl", "$ast": "StructDecl",
@@ -62,10 +62,17 @@ struct ElementDesc_DocumentParagraph
var removedInlineObjects : int[]; var removedInlineObjects : int[];
} }
message RendererUpdateElement_DocumentParagraph { request: ElementDesc_DocumentParagraph; response: Size; } struct UpdateElement_DocumentParagraphResponse
{
var documentSize : Size;
var inlineObjectBounds : Rect[int];
}
message RendererUpdateElement_DocumentParagraph { request: ElementDesc_DocumentParagraph; response: UpdateElement_DocumentParagraphResponse; }
struct GetCaretRequest struct GetCaretRequest
{ {
var id : int;
var caret : int; var caret : int;
var relativePosition : CaretRelativePosition; var relativePosition : CaretRelativePosition;
} }
@@ -78,12 +85,26 @@ struct GetCaretResponse
struct GetCaretBoundsRequest struct GetCaretBoundsRequest
{ {
var id : int;
var caret : int; var caret : int;
var frontSide : bool; var frontSide : bool;
} }
struct GetInlineObjectFromPointRequest
{
var id : int;
var point : Point;
}
struct IsValidCaretRequest
{
var id : int;
var caret : int;
}
struct OpenCaretRequest struct OpenCaretRequest
{ {
var id : int;
var caret : int; var caret : int;
var caretColor : color; var caretColor : color;
var frontSide : bool; var frontSide : bool;
@@ -91,16 +112,14 @@ struct OpenCaretRequest
message DocumentParagraph_GetCaret { request: GetCaretRequest; response: GetCaretResponse; } message DocumentParagraph_GetCaret { request: GetCaretRequest; response: GetCaretResponse; }
message DocumentParagraph_GetCaretBounds { request: GetCaretBoundsRequest; response: Rect; } message DocumentParagraph_GetCaretBounds { request: GetCaretBoundsRequest; response: Rect; }
message DocumentParagraph_GetInlineObjectFromPoint { request: Point; response: DocumentRun?; } message DocumentParagraph_GetInlineObjectFromPoint { request: GetInlineObjectFromPointRequest; response: DocumentRun?; }
message DocumentParagraph_GetNearestCaretFromTextPos { request: GetCaretBoundsRequest; response: int; } message DocumentParagraph_GetNearestCaretFromTextPos { request: GetCaretBoundsRequest; response: int; }
message DocumentParagraph_IsValidCaret { request: int; response: bool; } message DocumentParagraph_IsValidCaret { request: IsValidCaretRequest; response: bool; }
message DocumentParagraph_OpenCaret { request: OpenCaretRequest; } message DocumentParagraph_OpenCaret { request: OpenCaretRequest; }
message DocumentParagraph_CloseCaret {} message DocumentParagraph_CloseCaret { request: int; }
struct RenderInlineObjectRequest struct RenderInlineObjectRequest
{ {
var callbackId : int; var callbackId : int;
var location : Rect; var location : Rect;
} }
event DocumentParagraph_RenderInlineObjects { request: RenderInlineObjectRequest[]; }
@@ -1,3 +1,9 @@
struct ElementDesc_DocumentParagraphFull
{
var paragraph : ElementDesc_DocumentParagraph;
var caret : OpenCaretRequest?;
}
union UnitTest_ElementDescVariant union UnitTest_ElementDescVariant
{ {
ElementDesc_SolidBorder, ElementDesc_SolidBorder,
@@ -9,7 +15,7 @@ union UnitTest_ElementDescVariant
ElementDesc_Polygon, ElementDesc_Polygon,
ElementDesc_SolidLabel, ElementDesc_SolidLabel,
ElementDesc_ImageFrame, ElementDesc_ImageFrame,
ElementDesc_DocumentParagraph, ElementDesc_DocumentParagraphFull,
} }
struct UnitTest_RenderingFrame struct UnitTest_RenderingFrame
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.