mirror of
https://github.com/vczh-libraries/Release.git
synced 2026-05-19 10:47:19 +08:00
Update release
This commit is contained in:
+134
-122
@@ -4198,86 +4198,102 @@ namespace vl
|
||||
using namespace collections;
|
||||
|
||||
/***********************************************************************
|
||||
IMPLEMENT_BRUSH_ELEMENT_RENDERER
|
||||
GuiDirect2DElementRendererBase
|
||||
***********************************************************************/
|
||||
|
||||
#define IMPLEMENT_BRUSH_ELEMENT_RENDERER(TRENDERER)\
|
||||
void TRENDERER::InitializeInternal()\
|
||||
{\
|
||||
}\
|
||||
void TRENDERER::FinalizeInternal()\
|
||||
{\
|
||||
DestroyBrush(renderTarget);\
|
||||
}\
|
||||
void TRENDERER::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget)\
|
||||
{\
|
||||
DestroyBrush(oldRenderTarget);\
|
||||
CreateBrush(newRenderTarget);\
|
||||
}\
|
||||
TRENDERER::TRENDERER()\
|
||||
{\
|
||||
}\
|
||||
void TRENDERER::Render(Rect bounds)\
|
||||
template<typename TElement, typename TRenderer>
|
||||
void GuiDirect2DElementRendererBase<TElement, TRenderer>::InitializeInternal()
|
||||
{
|
||||
}
|
||||
|
||||
#define IMPLEMENT_BRUSH_ELEMENT_RENDERER_SOLID_COLOR_BRUSH(TRENDERER)\
|
||||
void TRENDERER::CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget)\
|
||||
{\
|
||||
if(_renderTarget)\
|
||||
{\
|
||||
oldColor=element->GetColor();\
|
||||
brush=_renderTarget->CreateDirect2DBrush(oldColor);\
|
||||
}\
|
||||
}\
|
||||
void TRENDERER::DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget)\
|
||||
{\
|
||||
if(_renderTarget && brush)\
|
||||
{\
|
||||
_renderTarget->DestroyDirect2DBrush(oldColor);\
|
||||
brush=0;\
|
||||
}\
|
||||
}\
|
||||
void TRENDERER::OnElementStateChanged()\
|
||||
{\
|
||||
if(renderTarget)\
|
||||
{\
|
||||
Color color=element->GetColor();\
|
||||
if(oldColor!=color)\
|
||||
{\
|
||||
DestroyBrush(renderTarget);\
|
||||
CreateBrush(renderTarget);\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
template<typename TElement, typename TRenderer>
|
||||
void GuiDirect2DElementRendererBase<TElement, TRenderer>::FinalizeInternal()
|
||||
{
|
||||
static_cast<TRenderer*>(this)->DestroyBrush(this->renderTarget);
|
||||
}
|
||||
|
||||
#define IMPLEMENT_BRUSH_ELEMENT_RENDERER_LINEAR_GRADIENT_BRUSH(TRENDERER)\
|
||||
void TRENDERER::CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget)\
|
||||
{\
|
||||
if(_renderTarget)\
|
||||
{\
|
||||
oldColor=Pair<Color, Color>(element->GetColor1(), element->GetColor2());\
|
||||
brush=_renderTarget->CreateDirect2DLinearBrush(oldColor.key, oldColor.value);\
|
||||
}\
|
||||
}\
|
||||
void TRENDERER::DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget)\
|
||||
{\
|
||||
if(_renderTarget && brush)\
|
||||
{\
|
||||
_renderTarget->DestroyDirect2DLinearBrush(oldColor.key, oldColor.value);\
|
||||
brush=0;\
|
||||
}\
|
||||
}\
|
||||
void TRENDERER::OnElementStateChanged()\
|
||||
{\
|
||||
if(renderTarget)\
|
||||
{\
|
||||
Pair<Color, Color> color=Pair<Color, Color>(element->GetColor1(), element->GetColor2());\
|
||||
if(oldColor!=color)\
|
||||
{\
|
||||
DestroyBrush(renderTarget);\
|
||||
CreateBrush(renderTarget);\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
template<typename TElement, typename TRenderer>
|
||||
void GuiDirect2DElementRendererBase<TElement, TRenderer>::RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget)
|
||||
{
|
||||
static_cast<TRenderer*>(this)->DestroyBrush(oldRenderTarget);
|
||||
static_cast<TRenderer*>(this)->CreateBrush(newRenderTarget);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
GuiSolidBrushElementRendererBase
|
||||
***********************************************************************/
|
||||
|
||||
template<typename TElement, typename TRenderer, typename TBrush>
|
||||
void GuiSolidBrushElementRendererBase<TElement, TRenderer, TBrush>::CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget)
|
||||
{
|
||||
if (_renderTarget)
|
||||
{
|
||||
oldColor = this->element->GetColor();
|
||||
brush = _renderTarget->CreateDirect2DBrush(oldColor);
|
||||
}
|
||||
}
|
||||
|
||||
template<typename TElement, typename TRenderer, typename TBrush>
|
||||
void GuiSolidBrushElementRendererBase<TElement, TRenderer, TBrush>::DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget)
|
||||
{
|
||||
if (_renderTarget && brush)
|
||||
{
|
||||
_renderTarget->DestroyDirect2DBrush(oldColor);
|
||||
brush = 0;
|
||||
}
|
||||
}
|
||||
|
||||
template<typename TElement, typename TRenderer, typename TBrush>
|
||||
void GuiSolidBrushElementRendererBase<TElement, TRenderer, TBrush>::OnElementStateChanged()
|
||||
{
|
||||
if (this->renderTarget)
|
||||
{
|
||||
Color color = this->element->GetColor();
|
||||
if (oldColor != color)
|
||||
{
|
||||
DestroyBrush(this->renderTarget);
|
||||
CreateBrush(this->renderTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
GuiGradientBrushElementRendererBase
|
||||
***********************************************************************/
|
||||
|
||||
template<typename TElement, typename TRenderer, typename TBrush>
|
||||
void GuiGradientBrushElementRendererBase<TElement, TRenderer, TBrush>::CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget)
|
||||
{
|
||||
if (_renderTarget)
|
||||
{
|
||||
oldColor = Pair<Color, Color>(this->element->GetColor1(), this->element->GetColor2());
|
||||
brush = _renderTarget->CreateDirect2DLinearBrush(oldColor.key, oldColor.value);
|
||||
}
|
||||
}
|
||||
|
||||
template<typename TElement, typename TRenderer, typename TBrush>
|
||||
void GuiGradientBrushElementRendererBase<TElement, TRenderer, TBrush>::DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget)
|
||||
{
|
||||
if (_renderTarget && brush)
|
||||
{
|
||||
_renderTarget->DestroyDirect2DLinearBrush(oldColor.key, oldColor.value);
|
||||
brush = 0;
|
||||
}
|
||||
}
|
||||
|
||||
template<typename TElement, typename TRenderer, typename TBrush>
|
||||
void GuiGradientBrushElementRendererBase<TElement, TRenderer, TBrush>::OnElementStateChanged()
|
||||
{
|
||||
if (this->renderTarget)
|
||||
{
|
||||
auto color = Pair(this->element->GetColor1(), this->element->GetColor2());
|
||||
if (oldColor != color)
|
||||
{
|
||||
DestroyBrush(this->renderTarget);
|
||||
CreateBrush(this->renderTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
GuiSolidBorderElementRenderer
|
||||
@@ -4339,8 +4355,11 @@ GuiSolidBorderElementRenderer
|
||||
GuiSolidBorderElementRenderer
|
||||
***********************************************************************/
|
||||
|
||||
IMPLEMENT_BRUSH_ELEMENT_RENDERER_SOLID_COLOR_BRUSH(GuiSolidBorderElementRenderer)
|
||||
IMPLEMENT_BRUSH_ELEMENT_RENDERER(GuiSolidBorderElementRenderer)
|
||||
GuiSolidBorderElementRenderer::GuiSolidBorderElementRenderer()
|
||||
{
|
||||
}
|
||||
|
||||
void GuiSolidBorderElementRenderer::Render(Rect bounds)
|
||||
{
|
||||
ID2D1RenderTarget* d2dRenderTarget = renderTarget->GetDirect2DRenderTarget();
|
||||
auto shape = element->GetShape();
|
||||
@@ -4546,9 +4565,12 @@ Gui3DSplitterElementRenderer
|
||||
/***********************************************************************
|
||||
GuiSolidBackgroundElementRenderer
|
||||
***********************************************************************/
|
||||
|
||||
IMPLEMENT_BRUSH_ELEMENT_RENDERER_SOLID_COLOR_BRUSH(GuiSolidBackgroundElementRenderer)
|
||||
IMPLEMENT_BRUSH_ELEMENT_RENDERER(GuiSolidBackgroundElementRenderer)
|
||||
|
||||
GuiSolidBackgroundElementRenderer::GuiSolidBackgroundElementRenderer()
|
||||
{
|
||||
}
|
||||
|
||||
void GuiSolidBackgroundElementRenderer::Render(Rect bounds)
|
||||
{
|
||||
ID2D1RenderTarget* d2dRenderTarget=renderTarget->GetDirect2DRenderTarget();
|
||||
auto shape = element->GetShape();
|
||||
@@ -4584,8 +4606,11 @@ GuiSolidBackgroundElementRenderer
|
||||
GuiGradientBackgroundElementRenderer
|
||||
***********************************************************************/
|
||||
|
||||
IMPLEMENT_BRUSH_ELEMENT_RENDERER_LINEAR_GRADIENT_BRUSH(GuiGradientBackgroundElementRenderer)
|
||||
IMPLEMENT_BRUSH_ELEMENT_RENDERER(GuiGradientBackgroundElementRenderer)
|
||||
GuiGradientBackgroundElementRenderer::GuiGradientBackgroundElementRenderer()
|
||||
{
|
||||
}
|
||||
|
||||
void GuiGradientBackgroundElementRenderer::Render(Rect bounds)
|
||||
{
|
||||
D2D1_POINT_2F points[2];
|
||||
switch(element->GetDirection())
|
||||
@@ -5497,6 +5522,7 @@ GuiColorizedTextElementRenderer
|
||||
|
||||
void GuiColorizedTextElementRenderer::FinalizeInternal()
|
||||
{
|
||||
element->SetCallback(nullptr);
|
||||
DestroyTextBrush(renderTarget);
|
||||
DestroyCaretBrush(renderTarget);
|
||||
|
||||
@@ -5678,14 +5704,14 @@ GuiDirect2DElementRenderer
|
||||
{
|
||||
IDWriteFactory* fdw=GetWindowsDirect2DObjectProvider()->GetDirectWriteFactory();
|
||||
ID2D1Factory* fd2d=GetWindowsDirect2DObjectProvider()->GetDirect2DFactory();
|
||||
renderTarget->PushClipper(bounds);
|
||||
renderTarget->PushClipper(bounds, element);
|
||||
if(!renderTarget->IsClipperCoverWholeTarget())
|
||||
{
|
||||
ID2D1RenderTarget* rt=renderTarget->GetDirect2DRenderTarget();
|
||||
GuiDirect2DElementEventArgs arguments(element, rt, fdw, fd2d, bounds);
|
||||
element->Rendering.Execute(arguments);
|
||||
}
|
||||
renderTarget->PopClipper();
|
||||
renderTarget->PopClipper(element);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5731,10 +5757,10 @@ GuiDirect2DElement
|
||||
CachedResourceAllocator
|
||||
***********************************************************************/
|
||||
|
||||
class CachedSolidBrushAllocator
|
||||
{
|
||||
DEFINE_CACHED_RESOURCE_ALLOCATOR(Color, ComPtr<ID2D1SolidColorBrush>)
|
||||
typedef Pair<Color, Color> ColorPair;
|
||||
|
||||
class CachedSolidBrushAllocator : public GuiCachedResourceAllocatorBase<CachedSolidBrushAllocator, Color, ComPtr<ID2D1SolidColorBrush>>
|
||||
{
|
||||
IWindowsDirect2DRenderTarget* guiRenderTarget = nullptr;
|
||||
public:
|
||||
CachedSolidBrushAllocator()
|
||||
@@ -5756,11 +5782,8 @@ CachedResourceAllocator
|
||||
}
|
||||
};
|
||||
|
||||
class CachedLinearBrushAllocator
|
||||
class CachedLinearBrushAllocator : public GuiCachedResourceAllocatorBase<CachedLinearBrushAllocator, ColorPair, ComPtr<ID2D1LinearGradientBrush>>
|
||||
{
|
||||
typedef Pair<Color, Color> ColorPair;
|
||||
DEFINE_CACHED_RESOURCE_ALLOCATOR(ColorPair, ComPtr<ID2D1LinearGradientBrush>)
|
||||
|
||||
IWindowsDirect2DRenderTarget* guiRenderTarget = nullptr;
|
||||
public:
|
||||
CachedLinearBrushAllocator()
|
||||
@@ -5806,11 +5829,8 @@ CachedResourceAllocator
|
||||
}
|
||||
};
|
||||
|
||||
class CachedRadialBrushAllocator
|
||||
class CachedRadialBrushAllocator : public GuiCachedResourceAllocatorBase<CachedRadialBrushAllocator, ColorPair, ComPtr<ID2D1RadialGradientBrush>>
|
||||
{
|
||||
typedef Pair<Color, Color> ColorPair;
|
||||
DEFINE_CACHED_RESOURCE_ALLOCATOR(ColorPair, ComPtr<ID2D1RadialGradientBrush>)
|
||||
|
||||
IWindowsDirect2DRenderTarget* guiRenderTarget = nullptr;
|
||||
public:
|
||||
CachedRadialBrushAllocator()
|
||||
@@ -5856,10 +5876,8 @@ CachedResourceAllocator
|
||||
}
|
||||
};
|
||||
|
||||
class CachedTextFormatAllocator
|
||||
class CachedTextFormatAllocator : public GuiCachedResourceAllocatorBase<CachedTextFormatAllocator, FontProperties, Ptr<Direct2DTextFormatPackage>>
|
||||
{
|
||||
private:
|
||||
DEFINE_CACHED_RESOURCE_ALLOCATOR(FontProperties, Ptr<Direct2DTextFormatPackage>)
|
||||
public:
|
||||
|
||||
static ComPtr<IDWriteTextFormat> CreateDirect2DFont(const FontProperties& fontProperties)
|
||||
@@ -5895,10 +5913,8 @@ CachedResourceAllocator
|
||||
}
|
||||
};
|
||||
|
||||
class CachedCharMeasurerAllocator
|
||||
class CachedCharMeasurerAllocator : public GuiCachedResourceAllocatorBase<CachedCharMeasurerAllocator, FontProperties, Ptr<text::CharMeasurer>>
|
||||
{
|
||||
DEFINE_CACHED_RESOURCE_ALLOCATOR(FontProperties, Ptr<text::CharMeasurer>)
|
||||
|
||||
protected:
|
||||
class Direct2DCharMeasurer : public text::CharMeasurer
|
||||
{
|
||||
@@ -6116,7 +6132,7 @@ WindowsDirect2DRenderTarget
|
||||
return window->Convert(window->GetClientSize());
|
||||
}
|
||||
|
||||
void AfterPushedClipper(Rect clipper, Rect validArea) override
|
||||
void AfterPushedClipper(Rect clipper, Rect validArea, reflection::DescriptableObject* generator) override
|
||||
{
|
||||
d2dRenderTarget->PushAxisAlignedClip(
|
||||
D2D1::RectF((FLOAT)validArea.x1, (FLOAT)validArea.y1, (FLOAT)validArea.x2, (FLOAT)validArea.y2),
|
||||
@@ -6124,15 +6140,15 @@ WindowsDirect2DRenderTarget
|
||||
);
|
||||
}
|
||||
|
||||
void AfterPushedClipperAndBecameInvalid(Rect clipper) override
|
||||
void AfterPushedClipperAndBecameInvalid(Rect clipper, reflection::DescriptableObject* generator) override
|
||||
{
|
||||
}
|
||||
|
||||
void AfterPoppedClipperAndBecameValid(Rect validArea, bool clipperExists) override
|
||||
void AfterPoppedClipperAndBecameValid(Rect validArea, bool clipperExists, reflection::DescriptableObject* generator) override
|
||||
{
|
||||
}
|
||||
|
||||
void AfterPoppedClipper(Rect validArea, bool clipperExists) override
|
||||
void AfterPoppedClipper(Rect validArea, bool clipperExists, reflection::DescriptableObject* generator) override
|
||||
{
|
||||
d2dRenderTarget->PopAxisAlignedClip();
|
||||
}
|
||||
@@ -9885,13 +9901,14 @@ GuiColorizedTextElementRenderer
|
||||
void GuiColorizedTextElementRenderer::InitializeInternal()
|
||||
{
|
||||
auto resourceManager=GetWindowsGDIResourceManager();
|
||||
element->SetCallback(this);
|
||||
oldCaretColor=element->GetCaretColor();
|
||||
caretPen=resourceManager->CreateGdiPen(oldCaretColor);
|
||||
element->SetCallback(this);
|
||||
}
|
||||
|
||||
void GuiColorizedTextElementRenderer::FinalizeInternal()
|
||||
{
|
||||
element->SetCallback(nullptr);
|
||||
auto resourceManager=GetWindowsGDIResourceManager();
|
||||
if(font)
|
||||
{
|
||||
@@ -10048,14 +10065,14 @@ GuiGDIElementRenderer
|
||||
{
|
||||
if(renderTarget)
|
||||
{
|
||||
renderTarget->PushClipper(bounds);
|
||||
renderTarget->PushClipper(bounds, element);
|
||||
if(!renderTarget->IsClipperCoverWholeTarget())
|
||||
{
|
||||
WinDC* dc=renderTarget->GetDC();
|
||||
GuiGDIElementEventArgs arguments(element, dc, bounds);
|
||||
element->Rendering.Execute(arguments);
|
||||
}
|
||||
renderTarget->PopClipper();
|
||||
renderTarget->PopClipper(element);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12623,21 +12640,21 @@ WindowsGDIRenderTarget
|
||||
return window->Convert(window->GetClientSize());
|
||||
}
|
||||
|
||||
void AfterPushedClipper(Rect clipper, Rect validArea) override
|
||||
void AfterPushedClipper(Rect clipper, Rect validArea, reflection::DescriptableObject* generator) override
|
||||
{
|
||||
ApplyClipper(validArea, true);
|
||||
}
|
||||
|
||||
void AfterPushedClipperAndBecameInvalid(Rect clipper) override
|
||||
void AfterPushedClipperAndBecameInvalid(Rect clipper, reflection::DescriptableObject* generator) override
|
||||
{
|
||||
}
|
||||
|
||||
void AfterPoppedClipperAndBecameValid(Rect validArea, bool clipperExists) override
|
||||
void AfterPoppedClipperAndBecameValid(Rect validArea, bool clipperExists, reflection::DescriptableObject* generator) override
|
||||
{
|
||||
ApplyClipper(validArea, clipperExists);
|
||||
}
|
||||
|
||||
void AfterPoppedClipper(Rect validArea, bool clipperExists) override
|
||||
void AfterPoppedClipper(Rect validArea, bool clipperExists, reflection::DescriptableObject* generator) override
|
||||
{
|
||||
ApplyClipper(validArea, clipperExists);
|
||||
}
|
||||
@@ -12657,9 +12674,8 @@ WindowsGDIRenderTarget
|
||||
CachedResourceAllocator
|
||||
***********************************************************************/
|
||||
|
||||
class CachedPenAllocator
|
||||
class CachedPenAllocator : public GuiCachedResourceAllocatorBase<CachedPenAllocator, Color, Ptr<WinPen>>
|
||||
{
|
||||
DEFINE_CACHED_RESOURCE_ALLOCATOR(Color, Ptr<WinPen>)
|
||||
public:
|
||||
Ptr<WinPen> CreateInternal(Color color)
|
||||
{
|
||||
@@ -12667,9 +12683,8 @@ CachedResourceAllocator
|
||||
}
|
||||
};
|
||||
|
||||
class CachedBrushAllocator
|
||||
class CachedBrushAllocator : public GuiCachedResourceAllocatorBase<CachedBrushAllocator, Color, Ptr<WinBrush>>
|
||||
{
|
||||
DEFINE_CACHED_RESOURCE_ALLOCATOR(Color, Ptr<WinBrush>)
|
||||
public:
|
||||
Ptr<WinBrush> CreateInternal(Color color)
|
||||
{
|
||||
@@ -12677,9 +12692,8 @@ CachedResourceAllocator
|
||||
}
|
||||
};
|
||||
|
||||
class CachedFontAllocator
|
||||
class CachedFontAllocator : public GuiCachedResourceAllocatorBase<CachedFontAllocator, FontProperties, Ptr<WinFont>>
|
||||
{
|
||||
DEFINE_CACHED_RESOURCE_ALLOCATOR(FontProperties, Ptr<WinFont>)
|
||||
public:
|
||||
static Ptr<WinFont> CreateGdiFont(const FontProperties& value)
|
||||
{
|
||||
@@ -12693,10 +12707,8 @@ CachedResourceAllocator
|
||||
}
|
||||
};
|
||||
|
||||
class CachedCharMeasurerAllocator
|
||||
class CachedCharMeasurerAllocator : public GuiCachedResourceAllocatorBase<CachedCharMeasurerAllocator, FontProperties, Ptr<text::CharMeasurer>>
|
||||
{
|
||||
DEFINE_CACHED_RESOURCE_ALLOCATOR(FontProperties, Ptr<text::CharMeasurer>)
|
||||
|
||||
protected:
|
||||
class GdiCharMeasurer : public text::CharMeasurer
|
||||
{
|
||||
|
||||
+106
-66
@@ -144,7 +144,8 @@ Raw API Rendering Element
|
||||
/// </summary>
|
||||
class GuiDirect2DElement : public GuiElementBase<GuiDirect2DElement>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_ELEMENT(GuiDirect2DElement, L"Direct2DElement")
|
||||
friend class GuiElementBase<GuiDirect2DElement>;
|
||||
static constexpr const wchar_t* ElementTypeName = L"Direct2DElement";
|
||||
protected:
|
||||
GuiDirect2DElement();
|
||||
public:
|
||||
@@ -255,28 +256,53 @@ namespace vl
|
||||
{
|
||||
using namespace elements;
|
||||
|
||||
#define DEFINE_BRUSH_ELEMENT_RENDERER(TELEMENT, TRENDERER, TBRUSH, TBRUSHPROPERTY)\
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(TELEMENT, TRENDERER, IWindowsDirect2DRenderTarget)\
|
||||
protected:\
|
||||
TBRUSHPROPERTY oldColor;\
|
||||
TBRUSH* brush = nullptr;\
|
||||
void CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget);\
|
||||
void DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget);\
|
||||
void InitializeInternal();\
|
||||
void FinalizeInternal();\
|
||||
void RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget);\
|
||||
public:\
|
||||
TRENDERER();\
|
||||
void Render(Rect bounds)override;\
|
||||
void OnElementStateChanged()override;\
|
||||
typedef collections::Pair<Color, Color> ColorPair;
|
||||
|
||||
template<typename TElement, typename TRenderer>
|
||||
class GuiDirect2DElementRendererBase : public GuiElementRendererBase<TElement, TRenderer, IWindowsDirect2DRenderTarget>
|
||||
{
|
||||
protected:
|
||||
void InitializeInternal();
|
||||
void FinalizeInternal();
|
||||
void RenderTargetChangedInternal(IWindowsDirect2DRenderTarget* oldRenderTarget, IWindowsDirect2DRenderTarget* newRenderTarget);
|
||||
public:
|
||||
};
|
||||
|
||||
template<typename TElement, typename TRenderer, typename TBrush>
|
||||
class GuiSolidBrushElementRendererBase : public GuiDirect2DElementRendererBase<TElement, TRenderer>
|
||||
{
|
||||
protected:
|
||||
Color oldColor;
|
||||
TBrush* brush = nullptr;
|
||||
|
||||
void CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget);
|
||||
void DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget);
|
||||
public:
|
||||
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
template<typename TElement, typename TRenderer, typename TBrush>
|
||||
class GuiGradientBrushElementRendererBase : public GuiDirect2DElementRendererBase<TElement, TRenderer>
|
||||
{
|
||||
protected:
|
||||
ColorPair oldColor;
|
||||
TBrush* brush = nullptr;
|
||||
|
||||
void CreateBrush(IWindowsDirect2DRenderTarget* _renderTarget);
|
||||
void DestroyBrush(IWindowsDirect2DRenderTarget* _renderTarget);
|
||||
public:
|
||||
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
/***********************************************************************
|
||||
Renderers
|
||||
***********************************************************************/
|
||||
|
||||
class GuiFocusRectangleElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiFocusRectangleElementRenderer : public GuiElementRendererBase<GuiFocusRectangleElement, GuiFocusRectangleElementRenderer, IWindowsDirect2DRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(GuiFocusRectangleElement, GuiFocusRectangleElementRenderer, IWindowsDirect2DRenderTarget)
|
||||
friend class GuiElementRendererBase<GuiFocusRectangleElement, GuiFocusRectangleElementRenderer, IWindowsDirect2DRenderTarget>;
|
||||
protected:
|
||||
ID2D1Effect* focusRectangleEffect = nullptr;
|
||||
|
||||
@@ -289,14 +315,19 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class GuiSolidBorderElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiSolidBorderElementRenderer : public GuiSolidBrushElementRendererBase<GuiSolidBorderElement, GuiSolidBorderElementRenderer, ID2D1SolidColorBrush>
|
||||
{
|
||||
DEFINE_BRUSH_ELEMENT_RENDERER(GuiSolidBorderElement, GuiSolidBorderElementRenderer, ID2D1SolidColorBrush, Color)
|
||||
friend class GuiElementRendererBase<GuiSolidBorderElement, GuiSolidBorderElementRenderer, IWindowsDirect2DRenderTarget>;
|
||||
friend class GuiDirect2DElementRendererBase<GuiSolidBorderElement, GuiSolidBorderElementRenderer>;
|
||||
public:
|
||||
GuiSolidBorderElementRenderer();
|
||||
|
||||
void Render(Rect bounds)override;
|
||||
};
|
||||
|
||||
class Gui3DBorderElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class Gui3DBorderElementRenderer : public GuiElementRendererBase<Gui3DBorderElement, Gui3DBorderElementRenderer, IWindowsDirect2DRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(Gui3DBorderElement, Gui3DBorderElementRenderer, IWindowsDirect2DRenderTarget)
|
||||
friend class GuiElementRendererBase<Gui3DBorderElement, Gui3DBorderElementRenderer, IWindowsDirect2DRenderTarget>;
|
||||
protected:
|
||||
Color oldColor1;
|
||||
Color oldColor2;
|
||||
@@ -315,9 +346,9 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class Gui3DSplitterElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class Gui3DSplitterElementRenderer : public GuiElementRendererBase<Gui3DSplitterElement, Gui3DSplitterElementRenderer, IWindowsDirect2DRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(Gui3DSplitterElement, Gui3DSplitterElementRenderer, IWindowsDirect2DRenderTarget)
|
||||
friend class GuiElementRendererBase<Gui3DSplitterElement, Gui3DSplitterElementRenderer, IWindowsDirect2DRenderTarget>;
|
||||
protected:
|
||||
Color oldColor1;
|
||||
Color oldColor2;
|
||||
@@ -336,21 +367,29 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class GuiSolidBackgroundElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiSolidBackgroundElementRenderer : public GuiSolidBrushElementRendererBase<GuiSolidBackgroundElement, GuiSolidBackgroundElementRenderer, ID2D1SolidColorBrush>
|
||||
{
|
||||
DEFINE_BRUSH_ELEMENT_RENDERER(GuiSolidBackgroundElement, GuiSolidBackgroundElementRenderer, ID2D1SolidColorBrush, Color)
|
||||
friend class GuiElementRendererBase<GuiSolidBackgroundElement, GuiSolidBackgroundElementRenderer, IWindowsDirect2DRenderTarget>;
|
||||
friend class GuiDirect2DElementRendererBase<GuiSolidBackgroundElement, GuiSolidBackgroundElementRenderer>;
|
||||
public:
|
||||
GuiSolidBackgroundElementRenderer();
|
||||
|
||||
void Render(Rect bounds)override;
|
||||
};
|
||||
|
||||
class GuiGradientBackgroundElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiGradientBackgroundElementRenderer : public GuiGradientBrushElementRendererBase<GuiGradientBackgroundElement, GuiGradientBackgroundElementRenderer, ID2D1LinearGradientBrush>
|
||||
{
|
||||
typedef collections::Pair<Color, Color> ColorPair;
|
||||
DEFINE_BRUSH_ELEMENT_RENDERER(GuiGradientBackgroundElement, GuiGradientBackgroundElementRenderer, ID2D1LinearGradientBrush, ColorPair)
|
||||
friend class GuiElementRendererBase<GuiGradientBackgroundElement, GuiGradientBackgroundElementRenderer, IWindowsDirect2DRenderTarget>;
|
||||
friend class GuiDirect2DElementRendererBase<GuiGradientBackgroundElement, GuiGradientBackgroundElementRenderer>;
|
||||
public:
|
||||
GuiGradientBackgroundElementRenderer();
|
||||
|
||||
void Render(Rect bounds)override;
|
||||
};
|
||||
|
||||
class GuiInnerShadowElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiInnerShadowElementRenderer : public GuiElementRendererBase<GuiInnerShadowElement, GuiInnerShadowElementRenderer, IWindowsDirect2DRenderTarget>
|
||||
{
|
||||
typedef collections::Pair<Color, Color> ColorPair;
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(GuiInnerShadowElement, GuiInnerShadowElementRenderer, IWindowsDirect2DRenderTarget)
|
||||
friend class GuiElementRendererBase<GuiInnerShadowElement, GuiInnerShadowElementRenderer, IWindowsDirect2DRenderTarget>;
|
||||
protected:
|
||||
Color oldColor;
|
||||
Color transparentColor;
|
||||
@@ -369,9 +408,9 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class GuiSolidLabelElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiSolidLabelElementRenderer : public GuiElementRendererBase<GuiSolidLabelElement, GuiSolidLabelElementRenderer, IWindowsDirect2DRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(GuiSolidLabelElement, GuiSolidLabelElementRenderer, IWindowsDirect2DRenderTarget)
|
||||
friend class GuiElementRendererBase<GuiSolidLabelElement, GuiSolidLabelElementRenderer, IWindowsDirect2DRenderTarget>;
|
||||
protected:
|
||||
Color oldColor;
|
||||
FontProperties oldFont;
|
||||
@@ -399,9 +438,9 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class GuiImageFrameElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiImageFrameElementRenderer : public GuiElementRendererBase<GuiImageFrameElement, GuiImageFrameElementRenderer, IWindowsDirect2DRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(GuiImageFrameElement, GuiImageFrameElementRenderer, IWindowsDirect2DRenderTarget)
|
||||
friend class GuiElementRendererBase<GuiImageFrameElement, GuiImageFrameElementRenderer, IWindowsDirect2DRenderTarget>;
|
||||
protected:
|
||||
ComPtr<ID2D1Bitmap> bitmap;
|
||||
|
||||
@@ -417,9 +456,9 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class GuiPolygonElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiPolygonElementRenderer : public GuiElementRendererBase<GuiPolygonElement, GuiPolygonElementRenderer, IWindowsDirect2DRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(GuiPolygonElement, GuiPolygonElementRenderer, IWindowsDirect2DRenderTarget)
|
||||
friend class GuiElementRendererBase<GuiPolygonElement, GuiPolygonElementRenderer, IWindowsDirect2DRenderTarget>;
|
||||
protected:
|
||||
Color oldBorderColor;
|
||||
Color oldBackgroundColor;
|
||||
@@ -442,9 +481,9 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class GuiColorizedTextElementRenderer : public Object, public IGuiGraphicsRenderer, protected GuiColorizedTextElement::ICallback
|
||||
class GuiColorizedTextElementRenderer : public GuiElementRendererBase<GuiColorizedTextElement, GuiColorizedTextElementRenderer, IWindowsDirect2DRenderTarget>, protected GuiColorizedTextElement::ICallback
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(GuiColorizedTextElement, GuiColorizedTextElementRenderer, IWindowsDirect2DRenderTarget)
|
||||
friend class GuiElementRendererBase<GuiColorizedTextElement, GuiColorizedTextElementRenderer, IWindowsDirect2DRenderTarget>;
|
||||
|
||||
public:
|
||||
struct ColorItemResource
|
||||
@@ -490,9 +529,9 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class GuiDirect2DElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiDirect2DElementRenderer : public GuiElementRendererBase<GuiDirect2DElement, GuiDirect2DElementRenderer, IWindowsDirect2DRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(GuiDirect2DElement, GuiDirect2DElementRenderer, IWindowsDirect2DRenderTarget)
|
||||
friend class GuiElementRendererBase<GuiDirect2DElement, GuiDirect2DElementRenderer, IWindowsDirect2DRenderTarget>;
|
||||
|
||||
protected:
|
||||
|
||||
@@ -1410,7 +1449,8 @@ Raw API Rendering Element
|
||||
/// </summary>
|
||||
class GuiGDIElement : public GuiElementBase<GuiGDIElement>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_ELEMENT(GuiGDIElement, L"GDIElement")
|
||||
friend class GuiElementBase<GuiGDIElement>;
|
||||
static constexpr const wchar_t* ElementTypeName = L"GDIElement";
|
||||
protected:
|
||||
GuiGDIElement();
|
||||
public:
|
||||
@@ -1503,9 +1543,9 @@ namespace vl
|
||||
Renderers
|
||||
***********************************************************************/
|
||||
|
||||
class GuiFocusRectangleElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiFocusRectangleElementRenderer : public GuiElementRendererBase<GuiFocusRectangleElement, GuiFocusRectangleElementRenderer, IWindowsGDIRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(GuiFocusRectangleElement, GuiFocusRectangleElementRenderer, IWindowsGDIRenderTarget)
|
||||
friend class GuiElementRendererBase<GuiFocusRectangleElement, GuiFocusRectangleElementRenderer, IWindowsGDIRenderTarget>;
|
||||
protected:
|
||||
Ptr<windows::WinPen> pen;
|
||||
Ptr<windows::WinBrush> brush;
|
||||
@@ -1518,9 +1558,9 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class GuiSolidBorderElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiSolidBorderElementRenderer : public GuiElementRendererBase<GuiSolidBorderElement, GuiSolidBorderElementRenderer, IWindowsGDIRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(GuiSolidBorderElement, GuiSolidBorderElementRenderer, IWindowsGDIRenderTarget)
|
||||
friend class GuiElementRendererBase<GuiSolidBorderElement, GuiSolidBorderElementRenderer, IWindowsGDIRenderTarget>;
|
||||
protected:
|
||||
Color oldColor;
|
||||
Ptr<windows::WinPen> pen;
|
||||
@@ -1534,9 +1574,9 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class Gui3DBorderElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class Gui3DBorderElementRenderer : public GuiElementRendererBase<Gui3DBorderElement, Gui3DBorderElementRenderer, IWindowsGDIRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(Gui3DBorderElement, Gui3DBorderElementRenderer, IWindowsGDIRenderTarget)
|
||||
friend class GuiElementRendererBase<Gui3DBorderElement, Gui3DBorderElementRenderer, IWindowsGDIRenderTarget>;
|
||||
protected:
|
||||
Color oldColor1;
|
||||
Color oldColor2;
|
||||
@@ -1551,9 +1591,9 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class Gui3DSplitterElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class Gui3DSplitterElementRenderer : public GuiElementRendererBase<Gui3DSplitterElement, Gui3DSplitterElementRenderer, IWindowsGDIRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(Gui3DSplitterElement, Gui3DSplitterElementRenderer, IWindowsGDIRenderTarget)
|
||||
friend class GuiElementRendererBase<Gui3DSplitterElement, Gui3DSplitterElementRenderer, IWindowsGDIRenderTarget>;
|
||||
protected:
|
||||
Color oldColor1;
|
||||
Color oldColor2;
|
||||
@@ -1568,9 +1608,9 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class GuiSolidBackgroundElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiSolidBackgroundElementRenderer : public GuiElementRendererBase<GuiSolidBackgroundElement, GuiSolidBackgroundElementRenderer, IWindowsGDIRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(GuiSolidBackgroundElement, GuiSolidBackgroundElementRenderer, IWindowsGDIRenderTarget)
|
||||
friend class GuiElementRendererBase<GuiSolidBackgroundElement, GuiSolidBackgroundElementRenderer, IWindowsGDIRenderTarget>;
|
||||
protected:
|
||||
Color oldColor;
|
||||
Ptr<windows::WinPen> pen;
|
||||
@@ -1584,9 +1624,9 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class GuiGradientBackgroundElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiGradientBackgroundElementRenderer : public GuiElementRendererBase<GuiGradientBackgroundElement, GuiGradientBackgroundElementRenderer, IWindowsGDIRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(GuiGradientBackgroundElement, GuiGradientBackgroundElementRenderer, IWindowsGDIRenderTarget)
|
||||
friend class GuiElementRendererBase<GuiGradientBackgroundElement, GuiGradientBackgroundElementRenderer, IWindowsGDIRenderTarget>;
|
||||
protected:
|
||||
void InitializeInternal();
|
||||
void FinalizeInternal();
|
||||
@@ -1596,9 +1636,9 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class GuiInnerShadowElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiInnerShadowElementRenderer : public GuiElementRendererBase<GuiInnerShadowElement, GuiInnerShadowElementRenderer, IWindowsGDIRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(GuiInnerShadowElement, GuiInnerShadowElementRenderer, IWindowsGDIRenderTarget)
|
||||
friend class GuiElementRendererBase<GuiInnerShadowElement, GuiInnerShadowElementRenderer, IWindowsGDIRenderTarget>;
|
||||
protected:
|
||||
void InitializeInternal();
|
||||
void FinalizeInternal();
|
||||
@@ -1610,9 +1650,9 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class GuiSolidLabelElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiSolidLabelElementRenderer : public GuiElementRendererBase<GuiSolidLabelElement, GuiSolidLabelElementRenderer, IWindowsGDIRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(GuiSolidLabelElement, GuiSolidLabelElementRenderer, IWindowsGDIRenderTarget)
|
||||
friend class GuiElementRendererBase<GuiSolidLabelElement, GuiSolidLabelElementRenderer, IWindowsGDIRenderTarget>;
|
||||
protected:
|
||||
FontProperties oldFont;
|
||||
Ptr<windows::WinFont> font;
|
||||
@@ -1630,9 +1670,9 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class GuiImageFrameElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiImageFrameElementRenderer : public GuiElementRendererBase<GuiImageFrameElement, GuiImageFrameElementRenderer, IWindowsGDIRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(GuiImageFrameElement, GuiImageFrameElementRenderer, IWindowsGDIRenderTarget)
|
||||
friend class GuiElementRendererBase<GuiImageFrameElement, GuiImageFrameElementRenderer, IWindowsGDIRenderTarget>;
|
||||
protected:
|
||||
Ptr<windows::WinBitmap> bitmap;
|
||||
|
||||
@@ -1648,9 +1688,9 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class GuiPolygonElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiPolygonElementRenderer : public GuiElementRendererBase<GuiPolygonElement, GuiPolygonElementRenderer, IWindowsGDIRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(GuiPolygonElement, GuiPolygonElementRenderer, IWindowsGDIRenderTarget)
|
||||
friend class GuiElementRendererBase<GuiPolygonElement, GuiPolygonElementRenderer, IWindowsGDIRenderTarget>;
|
||||
protected:
|
||||
POINT* points;
|
||||
vint pointCount;
|
||||
@@ -1670,9 +1710,9 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class GuiColorizedTextElementRenderer : public Object, public IGuiGraphicsRenderer, protected GuiColorizedTextElement::ICallback
|
||||
class GuiColorizedTextElementRenderer : public GuiElementRendererBase<GuiColorizedTextElement, GuiColorizedTextElementRenderer, IWindowsGDIRenderTarget>, protected GuiColorizedTextElement::ICallback
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(GuiColorizedTextElement, GuiColorizedTextElementRenderer, IWindowsGDIRenderTarget)
|
||||
friend class GuiElementRendererBase<GuiColorizedTextElement, GuiColorizedTextElementRenderer, IWindowsGDIRenderTarget>;
|
||||
|
||||
public:
|
||||
struct ColorItemResource
|
||||
@@ -1712,9 +1752,9 @@ Renderers
|
||||
void OnElementStateChanged()override;
|
||||
};
|
||||
|
||||
class GuiGDIElementRenderer : public Object, public IGuiGraphicsRenderer
|
||||
class GuiGDIElementRenderer : public GuiElementRendererBase<GuiGDIElement, GuiGDIElementRenderer, IWindowsGDIRenderTarget>
|
||||
{
|
||||
DEFINE_GUI_GRAPHICS_RENDERER(GuiGDIElement, GuiGDIElementRenderer, IWindowsGDIRenderTarget)
|
||||
friend class GuiElementRendererBase<GuiGDIElement, GuiGDIElementRenderer, IWindowsGDIRenderTarget>;
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
+1726
-123
File diff suppressed because it is too large
Load Diff
+1883
-631
File diff suppressed because it is too large
Load Diff
+304
-136
File diff suppressed because it is too large
Load Diff
+64
-40
@@ -1082,6 +1082,7 @@ namespace vl::presentation::remoteprotocol
|
||||
class GuiRpMessageDecl;
|
||||
class GuiRpMessageRequest;
|
||||
class GuiRpMessageResponse;
|
||||
class GuiRpOptionalType;
|
||||
class GuiRpPrimitiveType;
|
||||
class GuiRpReferenceType;
|
||||
class GuiRpSchema;
|
||||
@@ -1099,6 +1100,7 @@ namespace vl::presentation::remoteprotocol
|
||||
String = 4,
|
||||
Char = 5,
|
||||
Key = 6,
|
||||
Color = 7,
|
||||
};
|
||||
|
||||
class GuiRpType abstract : public vl::glr::ParsingAstBase, vl::reflection::Description<GuiRpType>
|
||||
@@ -1109,6 +1111,7 @@ namespace vl::presentation::remoteprotocol
|
||||
public:
|
||||
virtual void Visit(GuiRpPrimitiveType* node) = 0;
|
||||
virtual void Visit(GuiRpReferenceType* node) = 0;
|
||||
virtual void Visit(GuiRpOptionalType* node) = 0;
|
||||
virtual void Visit(GuiRpArrayType* node) = 0;
|
||||
};
|
||||
|
||||
@@ -1132,6 +1135,14 @@ namespace vl::presentation::remoteprotocol
|
||||
void Accept(GuiRpType::IVisitor* visitor) override;
|
||||
};
|
||||
|
||||
class GuiRpOptionalType : public GuiRpType, vl::reflection::Description<GuiRpOptionalType>
|
||||
{
|
||||
public:
|
||||
vl::Ptr<GuiRpType> element;
|
||||
|
||||
void Accept(GuiRpType::IVisitor* visitor) override;
|
||||
};
|
||||
|
||||
class GuiRpArrayType : public GuiRpType, vl::reflection::Description<GuiRpArrayType>
|
||||
{
|
||||
public:
|
||||
@@ -1243,6 +1254,7 @@ namespace vl::reflection::description
|
||||
DECL_TYPE_INFO(vl::presentation::remoteprotocol::GuiRpPrimitiveTypes)
|
||||
DECL_TYPE_INFO(vl::presentation::remoteprotocol::GuiRpPrimitiveType)
|
||||
DECL_TYPE_INFO(vl::presentation::remoteprotocol::GuiRpReferenceType)
|
||||
DECL_TYPE_INFO(vl::presentation::remoteprotocol::GuiRpOptionalType)
|
||||
DECL_TYPE_INFO(vl::presentation::remoteprotocol::GuiRpArrayType)
|
||||
DECL_TYPE_INFO(vl::presentation::remoteprotocol::GuiRpAttribute)
|
||||
DECL_TYPE_INFO(vl::presentation::remoteprotocol::GuiRpDeclaration)
|
||||
@@ -1271,6 +1283,11 @@ namespace vl::reflection::description
|
||||
INVOKE_INTERFACE_PROXY(Visit, node);
|
||||
}
|
||||
|
||||
void Visit(vl::presentation::remoteprotocol::GuiRpOptionalType* node) override
|
||||
{
|
||||
INVOKE_INTERFACE_PROXY(Visit, node);
|
||||
}
|
||||
|
||||
void Visit(vl::presentation::remoteprotocol::GuiRpArrayType* node) override
|
||||
{
|
||||
INVOKE_INTERFACE_PROXY(Visit, node);
|
||||
@@ -1341,6 +1358,7 @@ namespace vl::presentation::remoteprotocol::json_visitor
|
||||
virtual void PrintFields(GuiRpMessageDecl* node);
|
||||
virtual void PrintFields(GuiRpMessageRequest* node);
|
||||
virtual void PrintFields(GuiRpMessageResponse* node);
|
||||
virtual void PrintFields(GuiRpOptionalType* node);
|
||||
virtual void PrintFields(GuiRpPrimitiveType* node);
|
||||
virtual void PrintFields(GuiRpReferenceType* node);
|
||||
virtual void PrintFields(GuiRpSchema* node);
|
||||
@@ -1351,6 +1369,7 @@ namespace vl::presentation::remoteprotocol::json_visitor
|
||||
protected:
|
||||
void Visit(GuiRpPrimitiveType* node) override;
|
||||
void Visit(GuiRpReferenceType* node) override;
|
||||
void Visit(GuiRpOptionalType* node) override;
|
||||
void Visit(GuiRpArrayType* node) override;
|
||||
|
||||
void Visit(GuiRpEnumDecl* node) override;
|
||||
@@ -1401,12 +1420,13 @@ namespace vl::presentation::remoteprotocol
|
||||
MessageDecl = 7,
|
||||
MessageRequest = 8,
|
||||
MessageResponse = 9,
|
||||
PrimitiveType = 10,
|
||||
ReferenceType = 11,
|
||||
Schema = 12,
|
||||
StructDecl = 13,
|
||||
StructMember = 14,
|
||||
Type = 15,
|
||||
OptionalType = 10,
|
||||
PrimitiveType = 11,
|
||||
ReferenceType = 12,
|
||||
Schema = 13,
|
||||
StructDecl = 14,
|
||||
StructMember = 15,
|
||||
Type = 16,
|
||||
};
|
||||
|
||||
enum class GuiRemoteProtocolFields : vl::vint32_t
|
||||
@@ -1424,12 +1444,13 @@ namespace vl::presentation::remoteprotocol
|
||||
MessageDecl_response = 10,
|
||||
MessageRequest_type = 11,
|
||||
MessageResponse_type = 12,
|
||||
PrimitiveType_type = 13,
|
||||
ReferenceType_name = 14,
|
||||
Schema_declarations = 15,
|
||||
StructDecl_members = 16,
|
||||
StructMember_name = 17,
|
||||
StructMember_type = 18,
|
||||
OptionalType_element = 13,
|
||||
PrimitiveType_type = 14,
|
||||
ReferenceType_name = 15,
|
||||
Schema_declarations = 16,
|
||||
StructDecl_members = 17,
|
||||
StructMember_name = 18,
|
||||
StructMember_type = 19,
|
||||
};
|
||||
|
||||
extern const wchar_t* GuiRemoteProtocolTypeName(GuiRemoteProtocolClasses type);
|
||||
@@ -1480,22 +1501,24 @@ namespace vl::presentation::remoteprotocol
|
||||
STRING = 11,
|
||||
CHAR = 12,
|
||||
KEY = 13,
|
||||
CPP_NAME = 14,
|
||||
ATT_NAME = 15,
|
||||
NAME = 16,
|
||||
OPEN_BRACE = 17,
|
||||
CLOSE_BRACE = 18,
|
||||
OPEN_ARRAY = 19,
|
||||
CLOSE_ARRAY = 20,
|
||||
OPEN = 21,
|
||||
CLOSE = 22,
|
||||
COLON = 23,
|
||||
SEMICOLON = 24,
|
||||
COMMA = 25,
|
||||
SPACE = 26,
|
||||
COLOR = 14,
|
||||
CPP_NAME = 15,
|
||||
ATT_NAME = 16,
|
||||
NAME = 17,
|
||||
OPEN_BRACE = 18,
|
||||
CLOSE_BRACE = 19,
|
||||
OPEN_ARRAY = 20,
|
||||
CLOSE_ARRAY = 21,
|
||||
OPEN = 22,
|
||||
CLOSE = 23,
|
||||
COLON = 24,
|
||||
SEMICOLON = 25,
|
||||
COMMA = 26,
|
||||
QUESTION = 27,
|
||||
SPACE = 28,
|
||||
};
|
||||
|
||||
constexpr vl::vint GuiRemoteProtocolTokenCount = 27;
|
||||
constexpr vl::vint GuiRemoteProtocolTokenCount = 29;
|
||||
extern bool GuiRemoteProtocolTokenDeleter(vl::vint token);
|
||||
extern const wchar_t* GuiRemoteProtocolTokenId(GuiRemoteProtocolTokens token);
|
||||
extern const wchar_t* GuiRemoteProtocolTokenDisplayText(GuiRemoteProtocolTokens token);
|
||||
@@ -1522,20 +1545,20 @@ namespace vl::presentation::remoteprotocol
|
||||
enum class ParserStates
|
||||
{
|
||||
RType = 0,
|
||||
RAttributeParameter = 13,
|
||||
RAttribute = 16,
|
||||
REnumMember = 24,
|
||||
REnum = 28,
|
||||
RStructMember = 35,
|
||||
RStruct = 42,
|
||||
RMessageRequest = 49,
|
||||
RMessageResponse = 55,
|
||||
RMessage = 61,
|
||||
REventRequest = 69,
|
||||
REvent = 75,
|
||||
RDeclDetail = 82,
|
||||
RDecl = 88,
|
||||
Schema = 92,
|
||||
RAttributeParameter = 16,
|
||||
RAttribute = 19,
|
||||
REnumMember = 27,
|
||||
REnum = 31,
|
||||
RStructMember = 38,
|
||||
RStruct = 45,
|
||||
RMessageRequest = 52,
|
||||
RMessageResponse = 58,
|
||||
RMessage = 64,
|
||||
REventRequest = 72,
|
||||
REvent = 78,
|
||||
RDeclDetail = 85,
|
||||
RDecl = 91,
|
||||
Schema = 95,
|
||||
};
|
||||
|
||||
const wchar_t* ParserRuleName(vl::vint index);
|
||||
@@ -1584,6 +1607,7 @@ namespace vl::presentation
|
||||
struct GuiRpSymbols
|
||||
{
|
||||
collections::Dictionary<WString, WString> cppMapping;
|
||||
collections::Dictionary<WString, WString> cppNamespaces;
|
||||
collections::SortedList<WString> dropRepeatDeclNames;
|
||||
collections::SortedList<WString> dropConsecutiveDeclNames;
|
||||
collections::Dictionary<WString, remoteprotocol::GuiRpEnumDecl*> enumDecls;
|
||||
|
||||
@@ -1316,6 +1316,7 @@ Type Declaration (Class)
|
||||
CLASS_MEMBER_PROPERTY_READONLY_FAST(RelatedControl)
|
||||
CLASS_MEMBER_PROPERTY_READONLY_FAST(RelatedControlHost)
|
||||
CLASS_MEMBER_PROPERTY_READONLY_FAST(RelatedCursor)
|
||||
CLASS_MEMBER_PROPERTY_READONLY_FAST(RelatedHitTestResult)
|
||||
CLASS_MEMBER_PROPERTY_FAST(InternalMargin)
|
||||
CLASS_MEMBER_PROPERTY_FAST(PreferredMinSize)
|
||||
|
||||
@@ -1327,7 +1328,7 @@ Type Declaration (Class)
|
||||
CLASS_MEMBER_METHOD(RemoveChild, {L"child"})
|
||||
CLASS_MEMBER_METHOD(MoveChild, {L"child" _ L"newIndex"})
|
||||
CLASS_MEMBER_METHOD(Render, {L"size"})
|
||||
CLASS_MEMBER_METHOD(FindComposition, {L"location" _ L"forMouseEvent"})
|
||||
CLASS_MEMBER_METHOD(FindVisibleComposition, {L"location" _ L"forMouseEvent"})
|
||||
|
||||
CLASS_MEMBER_GUIEVENT(CachedMinSizeChanged)
|
||||
CLASS_MEMBER_GUIEVENT(CachedBoundsChanged)
|
||||
|
||||
+537
-24
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
+6
-6
@@ -21053,7 +21053,7 @@ Class (::demo::ElementTabPageConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_6 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBorderElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBorderElement>()));
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_6.Obj())->SetShape([&](){ ::vl::presentation::elements::ElementShape __vwsn_temp__; __vwsn_temp__.shapeType = ::vl::presentation::elements::ElementShapeType::RoundRect; __vwsn_temp__.radiusX = static_cast<::vl::vint32_t>(10); __vwsn_temp__.radiusY = static_cast<::vl::vint32_t>(5); return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_6.Obj())->SetShape([&](){ ::vl::presentation::elements::ElementShape __vwsn_temp__; __vwsn_temp__.shapeType = ::vl::presentation::elements::ElementShapeType::RoundRect; __vwsn_temp__.radiusX = static_cast<::vl::vint>(10); __vwsn_temp__.radiusY = static_cast<::vl::vint>(5); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_6.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#FFFF00")));
|
||||
@@ -21101,7 +21101,7 @@ Class (::demo::ElementTabPageConstructor)
|
||||
}
|
||||
(this->__vwsn_precompile_12 = ::vl::Ptr<::vl::presentation::elements::GuiSolidBackgroundElement>(::vl::reflection::description::Element_Constructor<::vl::presentation::elements::GuiSolidBackgroundElement>()));
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_12.Obj())->SetShape([&](){ ::vl::presentation::elements::ElementShape __vwsn_temp__; __vwsn_temp__.shapeType = ::vl::presentation::elements::ElementShapeType::RoundRect; __vwsn_temp__.radiusX = static_cast<::vl::vint32_t>(10); __vwsn_temp__.radiusY = static_cast<::vl::vint32_t>(5); return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_12.Obj())->SetShape([&](){ ::vl::presentation::elements::ElementShape __vwsn_temp__; __vwsn_temp__.shapeType = ::vl::presentation::elements::ElementShapeType::RoundRect; __vwsn_temp__.radiusX = static_cast<::vl::vint>(10); __vwsn_temp__.radiusY = static_cast<::vl::vint>(5); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_12.Obj())->SetColor(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#FFFF00")));
|
||||
@@ -21296,7 +21296,7 @@ Class (::demo::ElementTabPageConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_30.Obj())->SetColor1(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#FFFF00")));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_30.Obj())->SetShape([&](){ ::vl::presentation::elements::ElementShape __vwsn_temp__; __vwsn_temp__.shapeType = ::vl::presentation::elements::ElementShapeType::RoundRect; __vwsn_temp__.radiusX = static_cast<::vl::vint32_t>(10); __vwsn_temp__.radiusY = static_cast<::vl::vint32_t>(5); return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_30.Obj())->SetShape([&](){ ::vl::presentation::elements::ElementShape __vwsn_temp__; __vwsn_temp__.shapeType = ::vl::presentation::elements::ElementShapeType::RoundRect; __vwsn_temp__.radiusX = static_cast<::vl::vint>(10); __vwsn_temp__.radiusY = static_cast<::vl::vint>(5); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_30.Obj())->SetDirection(::vl::presentation::elements::GuiGradientBackgroundElement::Direction::Horizontal);
|
||||
@@ -21319,7 +21319,7 @@ Class (::demo::ElementTabPageConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_32.Obj())->SetColor1(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#FFFF00")));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_32.Obj())->SetShape([&](){ ::vl::presentation::elements::ElementShape __vwsn_temp__; __vwsn_temp__.shapeType = ::vl::presentation::elements::ElementShapeType::RoundRect; __vwsn_temp__.radiusX = static_cast<::vl::vint32_t>(10); __vwsn_temp__.radiusY = static_cast<::vl::vint32_t>(5); return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_32.Obj())->SetShape([&](){ ::vl::presentation::elements::ElementShape __vwsn_temp__; __vwsn_temp__.shapeType = ::vl::presentation::elements::ElementShapeType::RoundRect; __vwsn_temp__.radiusX = static_cast<::vl::vint>(10); __vwsn_temp__.radiusY = static_cast<::vl::vint>(5); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_32.Obj())->SetDirection(::vl::presentation::elements::GuiGradientBackgroundElement::Direction::Vertical);
|
||||
@@ -21342,7 +21342,7 @@ Class (::demo::ElementTabPageConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_34.Obj())->SetColor1(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#FFFF00")));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_34.Obj())->SetShape([&](){ ::vl::presentation::elements::ElementShape __vwsn_temp__; __vwsn_temp__.shapeType = ::vl::presentation::elements::ElementShapeType::RoundRect; __vwsn_temp__.radiusX = static_cast<::vl::vint32_t>(10); __vwsn_temp__.radiusY = static_cast<::vl::vint32_t>(5); return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_34.Obj())->SetShape([&](){ ::vl::presentation::elements::ElementShape __vwsn_temp__; __vwsn_temp__.shapeType = ::vl::presentation::elements::ElementShapeType::RoundRect; __vwsn_temp__.radiusX = static_cast<::vl::vint>(10); __vwsn_temp__.radiusY = static_cast<::vl::vint>(5); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_34.Obj())->SetDirection(::vl::presentation::elements::GuiGradientBackgroundElement::Direction::Slash);
|
||||
@@ -21365,7 +21365,7 @@ Class (::demo::ElementTabPageConstructor)
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_36.Obj())->SetColor1(::vl::__vwsn::Parse<::vl::presentation::Color>(::vl::WString::Unmanaged(L"#FFFF00")));
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_36.Obj())->SetShape([&](){ ::vl::presentation::elements::ElementShape __vwsn_temp__; __vwsn_temp__.shapeType = ::vl::presentation::elements::ElementShapeType::RoundRect; __vwsn_temp__.radiusX = static_cast<::vl::vint32_t>(10); __vwsn_temp__.radiusY = static_cast<::vl::vint32_t>(5); return __vwsn_temp__; }());
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_36.Obj())->SetShape([&](){ ::vl::presentation::elements::ElementShape __vwsn_temp__; __vwsn_temp__.shapeType = ::vl::presentation::elements::ElementShapeType::RoundRect; __vwsn_temp__.radiusX = static_cast<::vl::vint>(10); __vwsn_temp__.radiusY = static_cast<::vl::vint>(5); return __vwsn_temp__; }());
|
||||
}
|
||||
{
|
||||
::vl::__vwsn::This(this->__vwsn_precompile_36.Obj())->SetDirection(::vl::presentation::elements::GuiGradientBackgroundElement::Direction::Backslash);
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user