#include "GuiGraphicsRenderersWindowsGDI.h"
namespace
 
{
	
namespace
 
	{
		
namespace
 
		{
			
using
 namespace
 windows
;
			
using
 namespace
 collections
;
			
void
 GuiFocusRectangleElementRenderer
::
()
			{
				
auto
  = 
GetWindowsGDIResourceManager
();
				
  resourceManager
->
();
			}
			
void
 GuiFocusRectangleElementRenderer
::
()
			{
			}
			
void
 GuiFocusRectangleElementRenderer
::
RenderTargetChangedInternal
(
* 
, 
* 
)
			{
			}
			
void
 GuiFocusRectangleElementRenderer
::
(
 )
			{
				int originRop2 = renderTarget->GetDC()->SetRasterOperation(R2_XORPEN);
 
				->
()->
(
);
				
->
()->
(
.
(), 
.
(), 
.
() - 
1
, 
.
() - 
1
);
				
->
()->
(
originRop2
);
			}
			
void
 GuiFocusRectangleElementRenderer
::
()
			{
			}
			
void
 GuiSolidBorderElementRenderer
::
()
			{
				
auto
 =
GetWindowsGDIResourceManager
();
				
->
();
				
resourceManager
->
(
);
				
resourceManager
->
(
(
0
, 
0
, 
0
, 
0
));
			}
			
void
 GuiSolidBorderElementRenderer
::
()
			{
				
auto
 =
GetWindowsGDIResourceManager
();
				
resourceManager
->
(
);
				
resourceManager
->
(
(
0
, 
0
, 
0
, 
0
));
			}
			
void
 GuiSolidBorderElementRenderer
::
RenderTargetChangedInternal
(
* 
, 
* 
)
			{
			}
			
void
 GuiSolidBorderElementRenderer
::
(
 )
			{
				
if
(
.
>
0
)
				{
					
->
()->
(
);
					
->
()->
(
);
					
auto
  = 
->
();
					
switch
(
shape
.
)
					{
					
case
 ::
:
						
->
()->
(
.
(), 
.
(), 
.
()-
1
, 
.
()-
1
);
						
break
;
					
case
 ::
:
						
->
()->
(
.
(), 
.
(), 
.
()-
1
, 
.
()-
1
);
						
break
;
					
case
 ::
:
						
->
()->
(
.
(), 
.
(), 
.
() - 
1
, 
.
() - 
1
, 
shape
.
 * 
2
, 
shape
.
 * 
2
);
						
break
;
					}
				}
			}
			
void
 GuiSolidBorderElementRenderer
::
()
			{
				
 =
->
();
				
if
(
color
)
				{
					
auto
 =
GetWindowsGDIResourceManager
();
					
resourceManager
->
(
);
					
color
;
					
resourceManager
->
(
);
				}
			}
			
void
 Gui3DBorderElementRenderer
::
()
			{
				
auto
 =
GetWindowsGDIResourceManager
();
				
->
();
				
->
();
				
resourceManager
->
(
);
				
resourceManager
->
(
);
			}
			
void
 Gui3DBorderElementRenderer
::
()
			{
				
auto
 =
GetWindowsGDIResourceManager
();
				
resourceManager
->
(
);
				
resourceManager
->
(
);
			}
			
void
 Gui3DBorderElementRenderer
::
RenderTargetChangedInternal
(
* 
, 
* 
)
			{
			}
			
void
 Gui3DBorderElementRenderer
::
(
 )
			{
				
if
(
.
>
0
)
				{
					
->
()->
(
);
					
->
()->
(
.
, 
.
);
					
->
()->
(
.
, 
.
);
					
->
()->
(
.
, 
.
);
					
->
()->
(
.
, 
.
);
				}
				
if
(
.
>
0
)
				{
					
->
()->
(
);
					
->
()->
(
.
-
1
, 
.
-
1
);
					
->
()->
(
.
, 
.
-
1
);
					
->
()->
(
.
-
1
, 
.
-
1
);
					
->
()->
(
.
-
1
, 
.
);
				}
			}
			
void
 Gui3DBorderElementRenderer
::
()
			{
				
 =
->
();
				
if
(
color1
)
				{
					
auto
 =
GetWindowsGDIResourceManager
();
					
resourceManager
->
(
);
					
color1
;
					
resourceManager
->
(
);
				}
				
 =
->
();
				
if
(
color2
)
				{
					
auto
 =
GetWindowsGDIResourceManager
();
					
resourceManager
->
(
);
					
color2
;
					
resourceManager
->
(
);
				}
			}
			
void
 Gui3DSplitterElementRenderer
::
()
			{
				
auto
 =
GetWindowsGDIResourceManager
();
				
->
();
				
->
();
				
resourceManager
->
(
);
				
resourceManager
->
(
);
			}
			
void
 Gui3DSplitterElementRenderer
::
()
			{
				
auto
 =
GetWindowsGDIResourceManager
();
				
resourceManager
->
(
);
				
resourceManager
->
(
);
			}
			
void
 Gui3DSplitterElementRenderer
::
RenderTargetChangedInternal
(
* 
, 
* 
)
			{
			}
			
void
 Gui3DSplitterElementRenderer
::
(
 )
			{
				
 , 
, 
, 
;
				
switch
(
->
())
				{
				
case
 ::
:
					{
						
 =
.
+
.
()/
2
-
1
;
						
p11
(
.
, 
y
);
						
p12
(
.
, 
y
);
						
p21
(
.
, 
y
+
1
);
						
p22
(
.
, 
y
+
1
);
					}
					
break
;
				
case
 ::
:
					{
						
 =
.
+
.
()/
2
-
1
;
						
p11
(
x
, 
.
);
						
p12
(
x
, 
.
);
						
p21
(
x
+
1
, 
.
);
						
p22
(
x
+
1
, 
.
);
					}
					
break
;
				}
				
if
(
.
>
0
)
				{
					
->
()->
(
);
					
->
()->
(
p11
.
, 
p11
.
);
					
->
()->
(
p12
.
, 
p12
.
);
				}
				
if
(
.
>
0
)
				{
					
->
()->
(
);
					
->
()->
(
p21
.
, 
p21
.
);
					
->
()->
(
p22
.
, 
p22
.
);
				}
			}
			
void
 Gui3DSplitterElementRenderer
::
()
			{
				
 =
->
();
				
if
(
color1
)
				{
					
auto
 =
GetWindowsGDIResourceManager
();
					
resourceManager
->
(
);
					
color1
;
					
resourceManager
->
(
);
				}
				
 =
->
();
				
if
(
color2
)
				{
					
auto
 =
GetWindowsGDIResourceManager
();
					
resourceManager
->
(
);
					
color2
;
					
resourceManager
->
(
);
				}
			}
			
void
 GuiSolidBackgroundElementRenderer
::
()
			{
				
auto
 =
GetWindowsGDIResourceManager
();
				
->
();
				
resourceManager
->
(
);
				
resourceManager
->
(
);
			}
			
void
 GuiSolidBackgroundElementRenderer
::
()
			{
				
auto
 =
GetWindowsGDIResourceManager
();
				
resourceManager
->
(
);
				
resourceManager
->
(
);
			}
			
void
 GuiSolidBackgroundElementRenderer
::
RenderTargetChangedInternal
(
* 
, 
* 
)
			{
			}
			
void
 GuiSolidBackgroundElementRenderer
::
(
 )
			{
				
if
(
.
>
0
)
				{
					
->
()->
(
);
					
->
()->
(
);
					
auto
  = 
->
();
					
switch
(
shape
.
)
					{
					
case
 ::
:
						
->
()->
(
.
(), 
.
(), 
.
(), 
.
());
						
break
;
					
case
 ::
:
						
->
()->
(
.
(), 
.
(), 
.
()-
1
, 
.
()-
1
);
						
break
;
					
case
 ::
:
						
->
()->
(
.
(), 
.
(), 
.
() - 
1
, 
.
() - 
1
, 
shape
.
 * 
2
, 
shape
.
 * 
2
);
						
break
;
					}
				}
			}
			
void
 GuiSolidBackgroundElementRenderer
::
()
			{
				
 =
->
();
				
if
(
color
)
				{
					
auto
 =
GetWindowsGDIResourceManager
();
					
resourceManager
->
(
);
					
resourceManager
->
(
);
					
color
;
					
resourceManager
->
(
);
					
resourceManager
->
(
);
				}
			}
			
void
 GuiGradientBackgroundElementRenderer
::
()
			{
			}
			
void
 GuiGradientBackgroundElementRenderer
::
()
			{
			}
			
void
 GuiGradientBackgroundElementRenderer
::
RenderTargetChangedInternal
(
* 
, 
* 
)
			{
			}
			
void
 GuiGradientBackgroundElementRenderer
::
(
 )
			{
				
  = 
->
();
				
  = 
->
();
				
if
 (
color1
.
 > 
0
 || 
color2
.
 > 
0
)
				{
					
<
> 
, 
, 
;
					
auto
  = 
->
();
					
switch
 (
shape
.
)
					{
					
case
 ::
:
						
targetRegion
  new
 (
.
, 
.
, 
.
 + 
1
, 
.
 + 
1
, 
false
);
						
break
;
					
case
 ::
:
						
targetRegion
  new
 (
.
, 
.
, 
.
 + 
1
, 
.
 + 
1
, 
shape
.
 * 
2
, 
shape
.
 * 
2
);
						
break
;
					}
					
if
 (
targetRegion
)
					{
						
oldRegion
  ->
()->
();
						newRegion = new WinRegion(oldRegion, targetRegion, RGN_AND);
						newRegion
  new
 (
oldRegion
, 
targetRegion
, 
1
);
  
						->
()->
(
newRegion
);
					}
					
switch
 (
->
())
					{
					
case
 GuiGradientBackgroundElement
::
:
					
case
 GuiGradientBackgroundElement
::
:
						{
							
 [
2
];
							
 [
1
];
							
vertices
[
0
].
 = (
int
)
.
;
							
vertices
[
0
].
 = (
int
)
.
;
							
vertices
[
1
].
 = (
int
)
.
;
							
vertices
[
1
].
 = (
int
)
.
;
							
rectangles
[
0
].
 = 
0
;
							
rectangles
[
0
].
 = 
1
;
							
vertices
[
0
].
 = 
color1
.
 << 
8
;
							
vertices
[
0
].
 = 
color1
.
 << 
8
;
							
vertices
[
0
].
 = 
color1
.
 << 
8
;
							
vertices
[
0
].
 = 
color1
.
 << 
8
;
							
vertices
[
1
].
 = 
color2
.
 << 
8
;
							
vertices
[
1
].
 = 
color2
.
 << 
8
;
							
vertices
[
1
].
 = 
color2
.
 << 
8
;
							
vertices
[
1
].
 = 
color2
.
 << 
8
;
							
switch
 (
->
())
							{
							
case
 GuiGradientBackgroundElement
::
:
								
->
()->
(
vertices
, 
sizeof
(
vertices
) / 
sizeof
(*
vertices
), 
rectangles
, 
sizeof
(
rectangles
) / 
sizeof
(*
rectangles
));
								
break
;
							
case
 GuiGradientBackgroundElement
::
:
								
->
()->
(
vertices
, 
sizeof
(
vertices
) / 
sizeof
(*
vertices
), 
rectangles
, 
sizeof
(
rectangles
) / 
sizeof
(*
rectangles
));
								
break
;
							}
						}
						
break
;
					
case
 GuiGradientBackgroundElement
::
:
					
case
 GuiGradientBackgroundElement
::
:
						{
							
 [
4
];
							
 [
2
];
							
switch
 (
->
())
							{
							
case
 GuiGradientBackgroundElement
::
:
								
vertices
[
0
].
 = (
int
)
.
;
								
vertices
[
0
].
 = (
int
)
.
;
								
vertices
[
1
].
 = (
int
)
.
;
								
vertices
[
1
].
 = (
int
)
.
;
								
vertices
[
2
].
 = (
int
)
.
;
								
vertices
[
2
].
 = (
int
)
.
;
								
vertices
[
3
].
 = (
int
)
.
;
								
vertices
[
3
].
 = (
int
)
.
;
								
break
;
							
case
 GuiGradientBackgroundElement
::
:
								
vertices
[
0
].
 = (
int
)
.
;
								
vertices
[
0
].
 = (
int
)
.
;
								
vertices
[
1
].
 = (
int
)
.
;
								
vertices
[
1
].
 = (
int
)
.
;
								
vertices
[
2
].
 = (
int
)
.
;
								
vertices
[
2
].
 = (
int
)
.
;
								
vertices
[
3
].
 = (
int
)
.
;
								
vertices
[
3
].
 = (
int
)
.
;
								
break
;
							}
							
triangles
[
0
].
 = 
0
;
							
triangles
[
0
].
 = 
1
;
							
triangles
[
0
].
 = 
2
;
							
triangles
[
1
].
 = 
1
;
							
triangles
[
1
].
 = 
2
;
							
triangles
[
1
].
 = 
3
;
							
vertices
[
0
].
 = 
color1
.
 << 
8
;
							
vertices
[
0
].
 = 
color1
.
 << 
8
;
							
vertices
[
0
].
 = 
color1
.
 << 
8
;
							
vertices
[
0
].
 = 
color1
.
 << 
8
;
							
vertices
[
1
].
 = ((
color1
.
 + 
color2
.
) / 
2
) << 
8
;
							
vertices
[
1
].
 = ((
color1
.
 + 
color2
.
) / 
2
) << 
8
;
							
vertices
[
1
].
 = ((
color1
.
 + 
color2
.
) / 
2
) << 
8
;
							
vertices
[
1
].
 = ((
color1
.
 + 
color2
.
) / 
2
) << 
8
;
							
vertices
[
2
].
 = ((
color1
.
 + 
color2
.
) / 
2
) << 
8
;
							
vertices
[
2
].
 = ((
color1
.
 + 
color2
.
) / 
2
) << 
8
;
							
vertices
[
2
].
 = ((
color1
.
 + 
color2
.
) / 
2
) << 
8
;
							
vertices
[
2
].
 = ((
color1
.
 + 
color2
.
) / 
2
) << 
8
;
							
vertices
[
3
].
 = 
color2
.
 << 
8
;
							
vertices
[
3
].
 = 
color2
.
 << 
8
;
							
vertices
[
3
].
 = 
color2
.
 << 
8
;
							
vertices
[
3
].
 = 
color2
.
 << 
8
;
							
->
()->
(
vertices
, 
sizeof
(
vertices
) / 
sizeof
(*
vertices
), 
triangles
, 
sizeof
(
triangles
) / 
sizeof
(*
triangles
));
						}
						
break
;
					}
					
if
 (
targetRegion
)
					{
						
->
()->
(
oldRegion
);
					}
				}
			}
			
void
 GuiGradientBackgroundElementRenderer
::
()
			{
			}
			
void
 GuiInnerShadowElementRenderer
::
()
			{
			}
			
void
 GuiInnerShadowElementRenderer
::
()
			{
			}
			
void
 GuiInnerShadowElementRenderer
::
RenderTargetChangedInternal
(
* 
, 
* 
)
			{
			}
			
GuiInnerShadowElementRenderer
::
GuiInnerShadowElementRenderer
()
			{
			}
			
void
 GuiInnerShadowElementRenderer
::
(
 )
			{
			}
			
void
 GuiInnerShadowElementRenderer
::
()
			{
			}
			
void
 GuiSolidLabelElementRenderer
::
()
			{
				
if
(
)
				{
					
->
()->
(
);
					
 ={
0
};
					
const
 & 
=
->
();
					
if
(
->
())
					{
						
if
(
->
GetWrapLineHeightCalculation
())
						{
							
if
(
==-
1
 || 
text
.
()==
0
)
							{
								
size
->
()->
(
L" "
);
							}
							
else
							{
								
size
->
()->
(
text
, 
);
							}
						}
					}
					
else
					{
						
size
=
text
.
()==
0
							?
->
()->
(
L" "
)
							:
->
()->
(
text
)
							;
					}
					
((
->
()?
0
:
size
.
), 
size
.
);
				}
				
else
				{
					
();
				}
			}
			
void
 GuiSolidLabelElementRenderer
::
()
			{
				
auto
 =
GetWindowsGDIResourceManager
();
				
->
();
				
resourceManager
->
(
);
			}
			
void
 GuiSolidLabelElementRenderer
::
()
			{
				
auto
 =
GetWindowsGDIResourceManager
();
				
resourceManager
->
(
);
			}
			
void
 GuiSolidLabelElementRenderer
::
RenderTargetChangedInternal
(
* 
, 
* 
)
			{
				
();
			}
			
GuiSolidLabelElementRenderer
::
GuiSolidLabelElementRenderer
()
				:oldMaxWidth(-
1
)
			{
			}
			
void
 GuiSolidLabelElementRenderer
::
(
 )
			{
				
 =
->
();
				
if
(
color
.
>
0
)
				{
					
->
()->
(
);
					renderTarget->GetDC()->SetTextColor(RGB(color.r, color.g, color.b));
					->
()->
(((
)(((
)(
color
.
)|((
)((
)(
color
.
))<<
8
))|(((
)(
)(
color
.
))<<
16
))));
  
					 ;
					
rect
.
=(
int
)
.
();
					
rect
.
=(
int
)
.
();
					
rect
.
=(
int
)
.
();
					
rect
.
=(
int
)
.
();
					
if
(
->
() || 
->
())
					{
					}
					
else
					{
						switch
(
->
())
						{
						
case
 ::
:
							break
;
						
case
 ::
:
							break
;
						
case
 ::
:
							break
;
						}
					}
					
switch
(
->
())
					{
					
case
 ::
:
						break
;
					
case
 ::
:
						break
;
					
case
 ::
:
						break
;
					}
					
if
(
->
())
					{
					}
					
if
(
->
())
					{
					}
					
->
()->
(
rect
, 
->
(), 
format
);
					
if
(
!=
.
())
					{
						
=
.
();
						
();
					}
				}
			}
			
void
 GuiSolidLabelElementRenderer
::
()
			{
				
 =
->
();
				
if
(
fontProperties
)
				{
					
auto
 =
GetWindowsGDIResourceManager
();
					
resourceManager
->
(
);
					
fontProperties
;
					
resourceManager
->
(
);
				}
				
();
			}
			
void
 GuiImageFrameElementRenderer
::
()
			{
				
if
(
->
())
				{
					
auto
 =
GetWindowsGDIResourceManager
();
					
* 
=
->
()
(
->
());
					
resourceManager
->
(
frame
, 
->
());
					
if
 (
->
())
					{
						
(
0
,
0
);
					}
					
else
					{
						
frame
->
();
					}
				}
				
else
				{
					
0
;
					
(
0
, 
0
);
				}
			}
			
void
 GuiImageFrameElementRenderer
::
()
			{
				
();
			}
			
void
 GuiImageFrameElementRenderer
::
()
			{
			}
			
void
 GuiImageFrameElementRenderer
::
RenderTargetChangedInternal
(
* 
, 
* 
)
			{
			}
			
GuiImageFrameElementRenderer
::
GuiImageFrameElementRenderer
()
			{
			}
			
void
 GuiImageFrameElementRenderer
::
(
 )
			{
				
if
(
)
				{
					
* 
=
->
();
					
 (
0
, 
0
, 
.
, 
.
);
					
 ;
					
if
(
->
())
					{
						
* 
=
->
()
(
->
());
						
source
  (
(
0
, 
0
), 
frame
->
());
						
destination
(
.
, 
.
, 
.
, 
.
);
					}
					
else
					{
						
 =
0
;
						
 =
0
;
						
switch
(
->
())
						{
						
case
 ::
:
							
x
=
.
();
							
break
;
						
case
 ::
:
							
x
=
.
()+(
.
()-
.
)/
2
;
							
break
;
						
case
 ::
:
							
x
=
.
()-
.
;
							
break
;
						}
						
switch
(
->
())
						{
						
case
 ::
:
							
y
=
.
();
							
break
;
						
case
 ::
:
							
y
=
.
()+(
.
()-
.
)/
2
;
							
break
;
						
case
 ::
:
							
y
=
.
()-
.
;
							
break
;
						}
						
destination
(
x
, 
y
, 
x
+
.
, 
y
+
.
);
					}
					
if
(
->
()
()==
::
 &&  
->
()>
0
)
					{
						
auto
 =
GetWindowsGDIResourceManager
();
						
 =
->
();
						
for
(
 =
0
;
i
<=
max
;
i
++)
						{
							
<
> 
=
resourceManager
->
(
->
()
(
i
), 
->
());
							
dc
->
(
								
destination
.
(), 
destination
.
(), 
destination
.
(), 
destination
.
(),
								
frameBitmap
,
								
source
.
(), 
source
.
(), 
source
.
(), 
source
.
()
								);
						}
					}
					
else
					{
						
dc
->
(
							
destination
.
(), 
destination
.
(), 
destination
.
(), 
destination
.
(),
							
,
							
source
.
(), 
source
.
(), 
source
.
(), 
source
.
()
							);
					}
				}
			}
			
void
 GuiImageFrameElementRenderer
::
()
			{
				
();
			}
			
void
 GuiPolygonElementRenderer
::
()
			{
				
auto
 =
GetWindowsGDIResourceManager
();
				
resourceManager
->
(
);
				
resourceManager
->
(
);
			}
			
void
 GuiPolygonElementRenderer
::
()
			{
				
auto
 =
GetWindowsGDIResourceManager
();
				
resourceManager
->
(
);
				
resourceManager
->
(
);
			}
			
void
 GuiPolygonElementRenderer
::
RenderTargetChangedInternal
(
* 
, 
* 
)
			{
			}
			
GuiPolygonElementRenderer
::
GuiPolygonElementRenderer
()
				:points(
0
)
				,pointCount(
0
)
				,oldPenColor(
0
, 
0
, 
0
, 
0
)
				,oldBrushColor(
0
, 
0
, 
0
, 
0
)
			{
			}
			
GuiPolygonElementRenderer
::
~
GuiPolygonElementRenderer
()
			{
				
if
(
) 
delete
[] 
;
			}
			
void
 GuiPolygonElementRenderer
::
(
 )
			{
				
if
(
>=
3
 && (
.
 || 
.
))
				{
					
 =(
.
()-
.
)/
2
+
.
;
					
 =(
.
()-
.
)/
2
+
.
;
					
for
(
 =
0
;
i
<
;
i
++)
					{
						
[
i
].
+=(
int
)
offsetX
;
						
[
i
].
+=(
int
)
offsetY
;
					}
					
->
()->
(
);
					
->
()->
(
);
					
->
()->
(
, 
);
					
for
(
 =
0
;
i
<
;
i
++)
					{
						
[
i
].
-=(
int
)
offsetX
;
						
[
i
].
-=(
int
)
offsetY
;
					}
				}
			}
			
void
 GuiPolygonElementRenderer
::
()
			{
				
->
();
				{
					
if
(
)
					{
						
delete
[] 
;
						
=
0
;
					}
					
=
->
();
					
if
(
>
0
)
					{
						
=
new
 [
];
						
for
(
 =
0
;
i
<
;
i
++)
						{
							
 =
->
(
i
);
							
[
i
].
=(
int
)
p
.
;
							
[
i
].
=(
int
)
p
.
;
						}
					}
				}
				
auto
 =
GetWindowsGDIResourceManager
();
				
if
(
->
() || !
)
				{
					
resourceManager
->
(
);
					
->
();
					
resourceManager
->
(
);
				}
				
if
(
->
() || !
)
				{
					
resourceManager
->
(
);
					
->
();
					
resourceManager
->
(
);
				}
			}
			
void
 GuiColorizedTextElementRenderer
::
()
			{
				
auto
 =
GetWindowsGDIResourceManager
();
				
for
(
 =
0
;
i
<
.
();
i
++)
				{
					
resourceManager
->
(
i
].
.
);
					
resourceManager
->
(
i
].
.
);
					
resourceManager
->
(
i
].
.
);
				}
			}
			
void
 GuiColorizedTextElementRenderer
::
()
			{
				
auto
 =
GetWindowsGDIResourceManager
();
				
 ;
				
newColors
.
(
->
().
());
				
for
(
 =
0
;
i
<
newColors
.
();
i
++)
				{
					
text
::
 =
->
().
(
i
);
					
 ;
					
newEntry
.
.
text
entry
.
.
text
;
					
newEntry
.
.
entry
.
.
;
					
newEntry
.
.
resourceManager
->
(
newEntry
.
.
);
					
newEntry
.
.
text
entry
.
.
text
;
					
newEntry
.
.
entry
.
.
;
					
newEntry
.
.
resourceManager
->
(
newEntry
.
.
);
					
newEntry
.
.
text
entry
.
.
text
;
					
newEntry
.
.
entry
.
.
;
					
newEntry
.
.
resourceManager
->
(
newEntry
.
.
);
					
newColors
i
]
newEntry
;
				}
				
();
				
(
, 
newColors
);
			}
			
void
 GuiColorizedTextElementRenderer
::
()
			{
				
auto
  = 
GetWindowsGDIResourceManager
();
				
if
 (
)
				{
					
->
().
(
nullptr
);
					
resourceManager
->
(
);
					
resourceManager
->
(
);
					
  nullptr
;
				}
				
  ->
();
				
  resourceManager
->
(
);
				
->
().
(
resourceManager
->
(
).
());
			}
			
void
 GuiColorizedTextElementRenderer
::
()
			{
				
auto
 =
GetWindowsGDIResourceManager
();
				
->
(
this
);
				
->
();
				
resourceManager
->
(
);
			}
			
void
 GuiColorizedTextElementRenderer
::
()
			{
				
auto
 =
GetWindowsGDIResourceManager
();
				
if
(
)
				{
					
resourceManager
->
(
);
					
resourceManager
->
(
);
				}
				
resourceManager
->
(
);
				
();
			}
			
void
 GuiColorizedTextElementRenderer
::
RenderTargetChangedInternal
(
* 
, 
* 
)
			{
				
->
().
(
);
			}
			
void
 GuiColorizedTextElementRenderer
::
(
 )
			{
				
if
 (
)
				{
					
* 
 = 
->
();
					
dc
->
(
);
					
wchar_t
  = 
->
();
					
  = 
->
();
					
 (
viewPosition
, 
.
());
					
  = 
->
().
(
(
viewBounds
.
, 
viewBounds
.
)).
;
					
  = 
->
().
(
(
viewBounds
.
, 
viewBounds
.
)).
;
					
  = 
->
() 
 ->
() ? 
->
() : 
->
();
					
  = 
->
() 
 ->
() ? 
->
() : 
->
();
					
bool
  = 
->
();
					
<
windows
::
> 
 = 
0
;
					
for
 (
  = 
startRow
; 
row
 <= 
endRow
; 
row
++)
					{
						
  = 
->
().
(
(
row
, 
0
));
						
  = 
startRect
.
();
						
  = 
->
().
(
(
viewBounds
.
, 
startPoint
.
)).
;
						
  = 
->
().
(
(
viewBounds
.
, 
startPoint
.
)).
;
						
text
::
& 
 = 
->
().
(
row
);
						
if
 (
text
::
(
line
.
text
[
endColumn
]) && 
endColumn
 + 
1
 < 
line
.
 && 
text
::
(
line
.
text
[
startColumn
 + 
1
]))
						{
							
endColumn
++;
						}
						
  = 
startColumn
 == 
0
 ? 
0
 : 
line
.
[
startColumn
 - 
1
].
;
						
for
 (
  = 
startColumn
; 
column
 <= 
endColumn
; 
column
++)
						{
							
bool
  = 
false
;
							
if
 (
selectionBegin
.
 == 
selectionEnd
.
)
							{
								
inSelection
 = (
row
 == 
selectionBegin
.
 && 
selectionBegin
.
 <= 
column
 && 
column
 < 
selectionEnd
.
);
							}
							
else
 if
 (
row
 == 
selectionBegin
.
)
							{
								
inSelection
 = 
selectionBegin
.
 <= 
column
;
							}
							
else
 if
 (
row
 == 
selectionEnd
.
)
							{
								
inSelection
 = 
column
 < 
selectionEnd
.
;
							}
							
else
							{
								
inSelection
 = 
selectionBegin
.
 < 
row
 && 
row
 < 
selectionEnd
.
;
							}
							
bool
  = 
column
 == 
line
.
;
							
  = 
crlf
 ? 
0
 : 
line
.
[
column
].
;
							
if
 (
colorIndex
 >= 
.
())
							{
								
colorIndex
 = 
0
;
							}
							
& 
 =
								!
inSelection
 ? 
colorIndex
].
 :
								
focused
 ? 
colorIndex
].
 :
								
colorIndex
].
;
							
  = 
crlf
 ? 
x
 + 
startRect
.
() / 
2
 : 
line
.
[
column
].
;
							
  = 
x
 - 
viewPosition
.
 + 
.
;
							
  = 
startPoint
.
 - 
viewPosition
.
 + 
.
;
							
if
 (
color
.
.
)
							{
								
if
 (
lastBrush
  color
.
)
								{
									
lastBrush
  color
.
;
									
dc
->
(
lastBrush
);
								}
								
dc
->
(
tx
, 
ty
, 
tx
 + (
x2
 - 
x
), 
ty
 + 
startRect
.
());
							}
							
if
 (!
crlf
)
							{
								
  = 
text
::
(
line
.
text
[
column
]) && 
column
 + 
1
 < 
line
.
 && 
text
::
(
line
.
text
[
column
 + 
1
]) ? 
2
 : 
1
;
								
if
 (
color
.
text
.
)
								{
									dc->SetTextColor(RGB(color.text.r, color.text.g, color.text.b));
									dc
->
(((
)(((
)(
color
.
text
.
)|((
)((
)(
color
.
text
.
))<<
8
))|(((
)(
)(
color
.
text
.
))<<
16
))));
  
									dc
->
(
tx
, 
ty
, (
passwordChar
 ? &
passwordChar
 : &
line
.
text
[
column
]), 
count
);
								}
								
if
 (
count
 == 
2
) 
column
++;
							}
							
x
 = 
x2
;
						}
					}
					
if
 (
->
() && 
->
().
(
->
()))
					{
						
  = 
->
().
(
->
());
						
  = 
->
().
();
						
dc
->
(
);
						
dc
->
(
caretPoint
.
 - 
viewPosition
.
 + 
.
, 
caretPoint
.
 - 
viewPosition
.
 + 
.
 + 
1
);
						
dc
->
(
caretPoint
.
 - 
viewPosition
.
 + 
.
, 
caretPoint
.
 + 
height
 - 
viewPosition
.
 + 
.
 - 
1
);
						
dc
->
(
caretPoint
.
 - 
1
 - 
viewPosition
.
 + 
.
, 
caretPoint
.
 - 
viewPosition
.
 + 
.
 + 
1
);
						
dc
->
(
caretPoint
.
 - 
1
 - 
viewPosition
.
 + 
.
, 
caretPoint
.
 + 
height
 - 
viewPosition
.
 + 
.
 - 
1
);
					}
				}
			}
			
void
 GuiColorizedTextElementRenderer
::
()
			{
				
 =
->
();
				
if
(
caretColor
)
				{
					
auto
 =
GetWindowsGDIResourceManager
();
					
resourceManager
->
(
);
					
caretColor
;
					
resourceManager
->
(
);
				}
			}
			
void
 ::
()
			{
			}
			
void
 ::
()
			{
			}
			
void
 ::
RenderTargetChangedInternal
(
* 
, 
* 
)
			{
			}
			
::
()
			{
			}
			
::
()
			{
			}
			
			
void
 ::
(
 )
			{
				
if
(
)
				{
					
->
(
);
					
if
(!
->
IsClipperCoverWholeTarget
())
					{
						
* 
=
->
();
						
 (
, 
dc
, 
);
						
->
.
(
arguments
);
					}
					
->
();
				}
			}
			
void
 ::
()
			{
			}
		}
	}
}