#ifndef VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSTEXTELEMENT
#define VCZH_PRESENTATION_ELEMENTS_GUIGRAPHICSTEXTELEMENT
#include "GuiGraphicsElement.h"
namespace
{
namespace
{
namespace
{
class
;
namespace
{
struct
{
;
;
};
struct
{
static
const
=
32
;
static
const
=
0xFFFF
;
wchar_t
*
;
*
;
;
;
;
;
;
();
();
static
(
);
bool
(
const
&
)
const
{
return
false
;}
bool
(
const
&
)
const
{
return
true
;}
void
();
void
();
bool
();
bool
(
,
,
const
wchar_t
*
,
);
(
);
void
(
&
);
};
#if defined VCZH_MSVC
inline
bool
(
wchar_t
)
{
return
0xD800
<=
&&
<
0xDC00
;
}
inline
bool
(
wchar_t
)
{
return
0xDC00
<=
&&
<
0xDFFF
;
}
#endif
struct
{
#if defined VCZH_MSVC
wchar_t
[
2
];
(
wchar_t
) :characters{
,
0
} {}
(
wchar_t
,
wchar_t
) :characters{
,
} {}
#elif defined VCZH_GCC
wchar_t character;
UnicodeCodePoint(wchar_t c) :character(c) {}
#endif
()
const
{
#if defined VCZH_MSVC
if
(
(
[
0
]) &&
(
[
1
]))
{
return
(
wchar_t
)(
[
0
] -
0xD800
) *
0x400
+ (
wchar_t
)(
[
1
] -
0xDC00
) +
0x10000
;
}
else
{
return
(
)
[
0
];
}
#elif defined VCZH_GCC
return (vuint32_t)character;
#endif
}
};
class
:
public
virtual
{
protected
:
*
=
nullptr
;
;
[
65536
];
virtual
(
,
*
)=
0
;
virtual
(
*
)=
0
;
public
:
(
);
();
void
(
*
);
(
);
();
};
class
:
public
,
public
<
>
{
typedef
collections
::
<
>
;
protected
:
*
;
;
*
;
*
;
;
;
wchar_t
;
public
:
(
*
);
();
();
&
(
);
*
();
void
(
*
);
*
();
void
(
*
);
(
,
);
();
void
(
const
&
);
bool
(
,
);
bool
(
);
(
);
(
,
,
const
wchar_t
**
,
*
,
);
(
,
,
const
wchar_t
*
,
);
(
,
,
const
wchar_t
*
);
(
,
,
const
&
);
void
();
void
();
();
void
(
);
void
(
);
(
);
();
();
();
(
);
(
);
(
);
wchar_t
();
void
(
wchar_t
);
};
struct
{
;
;
bool
(
const
&
)
const
{
return
.
&&
==
.
; }
bool
(
const
&
)
const
{
return
!(*
this
); }
};
struct
{
;
;
;
bool
(
const
&
)
const
{
return
.
&&
==
.
&&
==
.
;}
bool
(
const
&
)
const
{
return
!(*
this
);}
};
}
class
:
public
<
>
{
DEFINE_GUI_GRAPHICS_ELEMENT(GuiColorizedTextElement, L"ColorizedText");
friend
class
<
>;
public
:
static
() {
static
= -
1
;
if
(
elementType
== -
1
) {
auto
=
GetGuiGraphicsResourceManager
();
do
{
if
(!(
manager
!=
nullptr
))
throw
(
L"SetGuiGraphicsResourceManager must be called before registering element types."
);}
while
(
0
);
elementType
=
manager
->
(
(
L"ColorizedText"
,
false
)); }
return
elementType
; };
friend
class
text
::
;
typedef
collections
::
<
text
::
>
;
public
:
class
:
public
virtual
,
public
<
>
{
public
:
virtual
void
()=
0
;
virtual
void
()=
0
;
};
protected
:
*
;
;
;
;
bool
;
bool
;
;
;
bool
;
;
text
::
;
();
public
:
text
::
&
();
*
();
void
(
*
);
const
&
();
void
(
const
&
);
void
(
);
const
&
();
void
(
const
&
);
wchar_t
();
void
(
wchar_t
);
();
void
(
);
bool
();
void
(
bool
);
bool
();
void
(
bool
);
();
void
(
);
();
void
(
);
bool
();
void
(
bool
);
();
void
(
);
};
}
}
}
#endif