#ifndef VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSRENDERERSWINDOWSGDI
#define VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSRENDERERSWINDOWSGDI
#include "GuiGraphicsWindowsGDI.h"
namespace
{
namespace
{
namespace
{
using
namespace
elements
;
class
GuiFocusRectangleElementRenderer
:
public
,
public
{
DEFINE_GUI_GRAPHICS_RENDERER(GuiFocusRectangleElement, GuiFocusRectangleElementRenderer, IWindowsGDIRenderTarget)
public
:
class
:
public
,
public
IGuiGraphicsRendererFactory
{
public
:
*
() {
GuiFocusRectangleElementRenderer
*
=
new
GuiFocusRectangleElementRenderer
;
renderer
->
=
this
;
renderer
->
=
0
;
renderer
->
=
0
;
return
renderer
; } };
protected
:
IGuiGraphicsRendererFactory
*
;
*
;
*
;
;
public
:
static
void
() {
auto
=
GetGuiGraphicsResourceManager
();
do
{
if
(!(
manager
!=
nullptr
))
throw
(
L"SetGuiGraphicsResourceManager must be called before registering element renderers."
);}
while
(
0
);
manager
->
(
::
(),
new
GuiFocusRectangleElementRenderer
::
); }
IGuiGraphicsRendererFactory
*
()
override
{
return
; }
void
(
*
)
override
{
=
dynamic_cast
<
*>(
);
(); }
void
()
override
{
(); }
void
(
*
)
override
{
*
=
;
=
dynamic_cast
<
*>(
);
RenderTargetChangedInternal
(
oldRenderTarget
,
); }
()
override
{
return
; }
protected
:
<
windows
::
>
;
void
();
void
();
void
RenderTargetChangedInternal
(
*
,
*
);
public
:
void
(
)
override
;
void
()
override
;
};
class
GuiSolidBorderElementRenderer
:
public
,
public
{
DEFINE_GUI_GRAPHICS_RENDERER(GuiSolidBorderElement, GuiSolidBorderElementRenderer, IWindowsGDIRenderTarget)
public
:
class
:
public
,
public
IGuiGraphicsRendererFactory
{
public
:
*
() {
GuiSolidBorderElementRenderer
*
=
new
GuiSolidBorderElementRenderer
;
renderer
->
=
this
;
renderer
->
=
0
;
renderer
->
=
0
;
return
renderer
; } };
protected
:
IGuiGraphicsRendererFactory
*
;
*
;
*
;
;
public
:
static
void
() {
auto
=
GetGuiGraphicsResourceManager
();
do
{
if
(!(
manager
!=
nullptr
))
throw
(
L"SetGuiGraphicsResourceManager must be called before registering element renderers."
);}
while
(
0
);
manager
->
(
::
(),
new
GuiSolidBorderElementRenderer
::
); }
IGuiGraphicsRendererFactory
*
()
override
{
return
; }
void
(
*
)
override
{
=
dynamic_cast
<
*>(
);
(); }
void
()
override
{
(); }
void
(
*
)
override
{
*
=
;
=
dynamic_cast
<
*>(
);
RenderTargetChangedInternal
(
oldRenderTarget
,
); }
()
override
{
return
; }
protected
:
;
<
windows
::
>
;
<
windows
::
>
;
void
();
void
();
void
RenderTargetChangedInternal
(
*
,
*
);
public
:
void
(
)
override
;
void
()
override
;
};
class
Gui3DBorderElementRenderer
:
public
,
public
{
DEFINE_GUI_GRAPHICS_RENDERER(Gui3DBorderElement, Gui3DBorderElementRenderer, IWindowsGDIRenderTarget)
public
:
class
:
public
,
public
IGuiGraphicsRendererFactory
{
public
:
*
() {
Gui3DBorderElementRenderer
*
=
new
Gui3DBorderElementRenderer
;
renderer
->
=
this
;
renderer
->
=
0
;
renderer
->
=
0
;
return
renderer
; } };
protected
:
IGuiGraphicsRendererFactory
*
;
*
;
*
;
;
public
:
static
void
() {
auto
=
GetGuiGraphicsResourceManager
();
do
{
if
(!(
manager
!=
nullptr
))
throw
(
L"SetGuiGraphicsResourceManager must be called before registering element renderers."
);}
while
(
0
);
manager
->
(
::
(),
new
Gui3DBorderElementRenderer
::
); }
IGuiGraphicsRendererFactory
*
()
override
{
return
; }
void
(
*
)
override
{
=
dynamic_cast
<
*>(
);
(); }
void
()
override
{
(); }
void
(
*
)
override
{
*
=
;
=
dynamic_cast
<
*>(
);
RenderTargetChangedInternal
(
oldRenderTarget
,
); }
()
override
{
return
; }
protected
:
;
;
<
windows
::
>
;
<
windows
::
>
;
void
();
void
();
void
RenderTargetChangedInternal
(
*
,
*
);
public
:
void
(
)
override
;
void
()
override
;
};
class
Gui3DSplitterElementRenderer
:
public
,
public
{
DEFINE_GUI_GRAPHICS_RENDERER(Gui3DSplitterElement, Gui3DSplitterElementRenderer, IWindowsGDIRenderTarget)
public
:
class
:
public
,
public
IGuiGraphicsRendererFactory
{
public
:
*
() {
Gui3DSplitterElementRenderer
*
=
new
Gui3DSplitterElementRenderer
;
renderer
->
=
this
;
renderer
->
=
0
;
renderer
->
=
0
;
return
renderer
; } };
protected
:
IGuiGraphicsRendererFactory
*
;
*
;
*
;
;
public
:
static
void
() {
auto
=
GetGuiGraphicsResourceManager
();
do
{
if
(!(
manager
!=
nullptr
))
throw
(
L"SetGuiGraphicsResourceManager must be called before registering element renderers."
);}
while
(
0
);
manager
->
(
::
(),
new
Gui3DSplitterElementRenderer
::
); }
IGuiGraphicsRendererFactory
*
()
override
{
return
; }
void
(
*
)
override
{
=
dynamic_cast
<
*>(
);
(); }
void
()
override
{
(); }
void
(
*
)
override
{
*
=
;
=
dynamic_cast
<
*>(
);
RenderTargetChangedInternal
(
oldRenderTarget
,
); }
()
override
{
return
; }
protected
:
;
;
<
windows
::
>
;
<
windows
::
>
;
void
();
void
();
void
RenderTargetChangedInternal
(
*
,
*
);
public
:
void
(
)
override
;
void
()
override
;
};
class
GuiSolidBackgroundElementRenderer
:
public
,
public
{
DEFINE_GUI_GRAPHICS_RENDERER(GuiSolidBackgroundElement, GuiSolidBackgroundElementRenderer, IWindowsGDIRenderTarget)
public
:
class
:
public
,
public
IGuiGraphicsRendererFactory
{
public
:
*
() {
GuiSolidBackgroundElementRenderer
*
=
new
GuiSolidBackgroundElementRenderer
;
renderer
->
=
this
;
renderer
->
=
0
;
renderer
->
=
0
;
return
renderer
; } };
protected
:
IGuiGraphicsRendererFactory
*
;
GuiSolidBackgroundElement
*
;
*
;
;
public
:
static
void
() {
auto
=
GetGuiGraphicsResourceManager
();
do
{
if
(!(
manager
!=
nullptr
))
throw
(
L"SetGuiGraphicsResourceManager must be called before registering element renderers."
);}
while
(
0
);
manager
->
(
GuiSolidBackgroundElement
::
(),
new
GuiSolidBackgroundElementRenderer
::
); }
IGuiGraphicsRendererFactory
*
()
override
{
return
; }
void
(
*
)
override
{
=
dynamic_cast
<
GuiSolidBackgroundElement
*>(
);
(); }
void
()
override
{
(); }
void
(
*
)
override
{
*
=
;
=
dynamic_cast
<
*>(
);
RenderTargetChangedInternal
(
oldRenderTarget
,
); }
()
override
{
return
; }
protected
:
;
<
windows
::
>
;
<
windows
::
>
;
void
();
void
();
void
RenderTargetChangedInternal
(
*
,
*
);
public
:
void
(
)
override
;
void
()
override
;
};
class
GuiGradientBackgroundElementRenderer
:
public
,
public
{
DEFINE_GUI_GRAPHICS_RENDERER(GuiGradientBackgroundElement, GuiGradientBackgroundElementRenderer, IWindowsGDIRenderTarget)
public
:
class
:
public
,
public
IGuiGraphicsRendererFactory
{
public
:
*
() {
GuiGradientBackgroundElementRenderer
*
=
new
GuiGradientBackgroundElementRenderer
;
renderer
->
=
this
;
renderer
->
=
0
;
renderer
->
=
0
;
return
renderer
; } };
protected
:
IGuiGraphicsRendererFactory
*
;
GuiGradientBackgroundElement
*
;
*
;
;
public
:
static
void
() {
auto
=
GetGuiGraphicsResourceManager
();
do
{
if
(!(
manager
!=
nullptr
))
throw
(
L"SetGuiGraphicsResourceManager must be called before registering element renderers."
);}
while
(
0
);
manager
->
(
GuiGradientBackgroundElement
::
(),
new
GuiGradientBackgroundElementRenderer
::
); }
IGuiGraphicsRendererFactory
*
()
override
{
return
; }
void
(
*
)
override
{
=
dynamic_cast
<
GuiGradientBackgroundElement
*>(
);
(); }
void
()
override
{
(); }
void
(
*
)
override
{
*
=
;
=
dynamic_cast
<
*>(
);
RenderTargetChangedInternal
(
oldRenderTarget
,
); }
()
override
{
return
; }
protected
:
void
();
void
();
void
RenderTargetChangedInternal
(
*
,
*
);
public
:
void
(
)
override
;
void
()
override
;
};
class
GuiInnerShadowElementRenderer
:
public
,
public
{
DEFINE_GUI_GRAPHICS_RENDERER(GuiInnerShadowElement, GuiInnerShadowElementRenderer, IWindowsGDIRenderTarget)
public
:
class
:
public
,
public
IGuiGraphicsRendererFactory
{
public
:
*
() {
GuiInnerShadowElementRenderer
*
=
new
GuiInnerShadowElementRenderer
;
renderer
->
=
this
;
renderer
->
=
0
;
renderer
->
=
0
;
return
renderer
; } };
protected
:
IGuiGraphicsRendererFactory
*
;
*
;
*
;
;
public
:
static
void
() {
auto
=
GetGuiGraphicsResourceManager
();
do
{
if
(!(
manager
!=
nullptr
))
throw
(
L"SetGuiGraphicsResourceManager must be called before registering element renderers."
);}
while
(
0
);
manager
->
(
::
(),
new
GuiInnerShadowElementRenderer
::
); }
IGuiGraphicsRendererFactory
*
()
override
{
return
; }
void
(
*
)
override
{
=
dynamic_cast
<
*>(
);
(); }
void
()
override
{
(); }
void
(
*
)
override
{
*
=
;
=
dynamic_cast
<
*>(
);
RenderTargetChangedInternal
(
oldRenderTarget
,
); }
()
override
{
return
; }
protected
:
void
();
void
();
void
RenderTargetChangedInternal
(
*
,
*
);
public
:
GuiInnerShadowElementRenderer
();
void
(
)
override
;
void
()
override
;
};
class
GuiSolidLabelElementRenderer
:
public
,
public
{
DEFINE_GUI_GRAPHICS_RENDERER(GuiSolidLabelElement, GuiSolidLabelElementRenderer, IWindowsGDIRenderTarget)
public
:
class
:
public
,
public
IGuiGraphicsRendererFactory
{
public
:
*
() {
GuiSolidLabelElementRenderer
*
=
new
GuiSolidLabelElementRenderer
;
renderer
->
=
this
;
renderer
->
=
0
;
renderer
->
=
0
;
return
renderer
; } };
protected
:
IGuiGraphicsRendererFactory
*
;
*
;
*
;
;
public
:
static
void
() {
auto
=
GetGuiGraphicsResourceManager
();
do
{
if
(!(
manager
!=
nullptr
))
throw
(
L"SetGuiGraphicsResourceManager must be called before registering element renderers."
);}
while
(
0
);
manager
->
(
::
(),
new
GuiSolidLabelElementRenderer
::
); }
IGuiGraphicsRendererFactory
*
()
override
{
return
; }
void
(
*
)
override
{
=
dynamic_cast
<
*>(
);
(); }
void
()
override
{
(); }
void
(
*
)
override
{
*
=
;
=
dynamic_cast
<
*>(
);
RenderTargetChangedInternal
(
oldRenderTarget
,
); }
()
override
{
return
; }
protected
:
;
<
windows
::
>
;
;
void
();
void
();
void
();
void
RenderTargetChangedInternal
(
*
,
*
);
public
:
GuiSolidLabelElementRenderer
();
void
(
)
override
;
void
()
override
;
};
class
GuiImageFrameElementRenderer
:
public
,
public
{
DEFINE_GUI_GRAPHICS_RENDERER(GuiImageFrameElement, GuiImageFrameElementRenderer, IWindowsGDIRenderTarget)
public
:
class
:
public
,
public
IGuiGraphicsRendererFactory
{
public
:
*
() {
GuiImageFrameElementRenderer
*
=
new
GuiImageFrameElementRenderer
;
renderer
->
=
this
;
renderer
->
=
0
;
renderer
->
=
0
;
return
renderer
; } };
protected
:
IGuiGraphicsRendererFactory
*
;
*
;
*
;
;
public
:
static
void
() {
auto
=
GetGuiGraphicsResourceManager
();
do
{
if
(!(
manager
!=
nullptr
))
throw
(
L"SetGuiGraphicsResourceManager must be called before registering element renderers."
);}
while
(
0
);
manager
->
(
::
(),
new
GuiImageFrameElementRenderer
::
); }
IGuiGraphicsRendererFactory
*
()
override
{
return
; }
void
(
*
)
override
{
=
dynamic_cast
<
*>(
);
(); }
void
()
override
{
(); }
void
(
*
)
override
{
*
=
;
=
dynamic_cast
<
*>(
);
RenderTargetChangedInternal
(
oldRenderTarget
,
); }
()
override
{
return
; }
protected
:
<
windows
::
>
;
void
();
void
();
void
();
void
RenderTargetChangedInternal
(
*
,
*
);
public
:
GuiImageFrameElementRenderer
();
void
(
)
override
;
void
()
override
;
};
class
GuiPolygonElementRenderer
:
public
,
public
{
DEFINE_GUI_GRAPHICS_RENDERER(GuiPolygonElement, GuiPolygonElementRenderer, IWindowsGDIRenderTarget)
public
:
class
:
public
,
public
IGuiGraphicsRendererFactory
{
public
:
*
() {
GuiPolygonElementRenderer
*
=
new
GuiPolygonElementRenderer
;
renderer
->
=
this
;
renderer
->
=
0
;
renderer
->
=
0
;
return
renderer
; } };
protected
:
IGuiGraphicsRendererFactory
*
;
*
;
*
;
;
public
:
static
void
() {
auto
=
GetGuiGraphicsResourceManager
();
do
{
if
(!(
manager
!=
nullptr
))
throw
(
L"SetGuiGraphicsResourceManager must be called before registering element renderers."
);}
while
(
0
);
manager
->
(
::
(),
new
GuiPolygonElementRenderer
::
); }
IGuiGraphicsRendererFactory
*
()
override
{
return
; }
void
(
*
)
override
{
=
dynamic_cast
<
*>(
);
(); }
void
()
override
{
(); }
void
(
*
)
override
{
*
=
;
=
dynamic_cast
<
*>(
);
RenderTargetChangedInternal
(
oldRenderTarget
,
); }
()
override
{
return
; }
protected
:
*
;
;
;
;
<
windows
::
>
;
<
windows
::
>
;
void
();
void
();
void
RenderTargetChangedInternal
(
*
,
*
);
public
:
GuiPolygonElementRenderer
();
~
GuiPolygonElementRenderer
();
void
(
)
override
;
void
()
override
;
};
class
GuiColorizedTextElementRenderer
:
public
,
public
,
protected
::
{
DEFINE_GUI_GRAPHICS_RENDERER(GuiColorizedTextElement, GuiColorizedTextElementRenderer, IWindowsGDIRenderTarget)
public
:
class
:
public
,
public
IGuiGraphicsRendererFactory
{
public
:
*
() {
GuiColorizedTextElementRenderer
*
=
new
GuiColorizedTextElementRenderer
;
renderer
->
=
this
;
renderer
->
=
0
;
renderer
->
=
0
;
return
renderer
; } };
protected
:
IGuiGraphicsRendererFactory
*
;
*
;
*
;
;
public
:
static
void
() {
auto
=
GetGuiGraphicsResourceManager
();
do
{
if
(!(
manager
!=
nullptr
))
throw
(
L"SetGuiGraphicsResourceManager must be called before registering element renderers."
);}
while
(
0
);
manager
->
(
::
(),
new
GuiColorizedTextElementRenderer
::
); }
IGuiGraphicsRendererFactory
*
()
override
{
return
; }
void
(
*
)
override
{
=
dynamic_cast
<
*>(
);
(); }
void
()
override
{
(); }
void
(
*
)
override
{
*
=
;
=
dynamic_cast
<
*>(
);
RenderTargetChangedInternal
(
oldRenderTarget
,
); }
()
override
{
return
; }
public
:
struct
{
;
;
<
windows
::
>
;
};
struct
{
;
;
;
bool
(
const
&
){
return
false
;}
bool
(
const
&
){
return
true
;}
};
typedef
collections
::
<
>
;
protected
:
;
<
windows
::
>
;
;
;
<
windows
::
>
;
void
();
void
();
void
();
void
();
void
();
void
RenderTargetChangedInternal
(
*
,
*
);
public
:
void
(
)
override
;
void
()
override
;
};
class
:
public
,
public
{
DEFINE_GUI_GRAPHICS_RENDERER(GuiGDIElement, GuiGDIElementRenderer, IWindowsGDIRenderTarget)
public
:
class
:
public
,
public
IGuiGraphicsRendererFactory
{
public
:
*
() {
*
=
new
;
renderer
->
=
this
;
renderer
->
=
0
;
renderer
->
=
0
;
return
renderer
; } };
protected
:
IGuiGraphicsRendererFactory
*
;
*
;
*
;
;
public
:
static
void
() {
auto
=
GetGuiGraphicsResourceManager
();
do
{
if
(!(
manager
!=
nullptr
))
throw
(
L"SetGuiGraphicsResourceManager must be called before registering element renderers."
);}
while
(
0
);
manager
->
(
::
(),
new
::
); }
IGuiGraphicsRendererFactory
*
()
override
{
return
; }
void
(
*
)
override
{
=
dynamic_cast
<
*>(
);
(); }
void
()
override
{
(); }
void
(
*
)
override
{
*
=
;
=
dynamic_cast
<
*>(
);
RenderTargetChangedInternal
(
oldRenderTarget
,
); }
()
override
{
return
; }
protected
:
void
();
void
();
void
RenderTargetChangedInternal
(
*
,
*
);
public
:
();
();
void
(
)
override
;
void
()
override
;
};
}
}
}
#endif