#ifndef VCZH_PRESENTATION_GUITYPES
#define VCZH_PRESENTATION_GUITYPES
#include <VlppParser.h>
#include <VlppWorkflowLibrary.h>
namespace
{
namespace
{
using
namespace
reflection
;
enum
class
{
=
0
,
=
0
,
=
1
,
=
2
,
=
2
,
};
enum
class
{
,
,
,
,
,
,
,
,
};
struct
{
;
;
()
:row(
0
) ,column(
0
)
{
}
(
,
)
:row(
) ,column(
)
{
}
(
const
&
)
const
{
if
(
<
.
)
return
-
1
;
if
(
>
.
)
return
1
;
if
(
<
.
)
return
-
1
;
if
(
>
.
)
return
1
;
return
0
;
}
bool
(
const
&
)
const
{
return
(
)==
0
;}
bool
(
const
&
)
const
{
return
(
)!=
0
;}
bool
(
const
&
)
const
{
return
(
)<
0
;}
bool
(
const
&
)
const
{
return
(
)<=
0
;}
bool
(
const
&
)
const
{
return
(
)>
0
;}
bool
(
const
&
)
const
{
return
(
)>=
0
;}
};
struct
{
;
;
()
:row(
0
) ,column(
0
)
{
}
(
,
)
:row(
) ,column(
)
{
}
(
const
&
)
const
{
if
(
<
.
)
return
-
1
;
if
(
>
.
)
return
1
;
if
(
<
.
)
return
-
1
;
if
(
>
.
)
return
1
;
return
0
;
}
bool
(
const
&
)
const
{
return
(
)==
0
;}
bool
(
const
&
)
const
{
return
(
)!=
0
;}
bool
(
const
&
)
const
{
return
(
)<
0
;}
bool
(
const
&
)
const
{
return
(
)<=
0
;}
bool
(
const
&
)
const
{
return
(
)>
0
;}
bool
(
const
&
)
const
{
return
(
)>=
0
;}
};
using
=
;
struct
{
;
() :value(
0
) {}
(
) :value(
) {}
(
const
&
) =
default
;
(
&&
) =
default
;
&
(
const
&
) =
default
;
&
(
&&
) =
default
;
inline
bool
(
)
const
{
return
==
.
; };
inline
bool
(
)
const
{
return
!=
.
; };
inline
bool
(
)
const
{
return
<
.
; };
inline
bool
(
)
const
{
return
<=
.
; };
inline
bool
(
)
const
{
return
>
.
; };
inline
bool
(
)
const
{
return
>=
.
; };
inline
(
)
const
{
return
+
.
; };
inline
(
)
const
{
return
-
.
; };
inline
(
)
const
{
return
*
.
; };
inline
(
)
const
{
return
/
.
; };
inline
&
(
) {
+=
.
;
return
*
this
; };
inline
&
(
) {
-=
.
;
return
*
this
; };
inline
&
(
) {
*=
.
;
return
*
this
; };
inline
&
(
) {
/=
.
;
return
*
this
; };
};
template
<
typename
>
struct
{
;
;
()
:x(
0
), y(
0
)
{
}
(
,
)
:x(
), y(
)
{
}
bool
(
<
>
)
const
{
return
==
.
&&
==
.
;
}
bool
(
<
>
)
const
{
return
!=
.
||
!=
.
;
}
};
using
=
<
>;
using
=
<
>;
template
<
typename
>
struct
{
;
;
()
:x(
0
), y(
0
)
{
}
(
,
)
:x(
), y(
)
{
}
bool
(
<
>
)
const
{
return
==
.
&&
==
.
;
}
bool
(
<
>
)
const
{
return
!=
.
||
!=
.
;
}
};
using
=
<
>;
using
=
<
>;
template
<
typename
>
struct
{
;
;
;
;
()
:x1(
0
), y1(
0
), x2(
0
), y2(
0
)
{
}
(
,
,
,
)
:x1(
), y1(
), x2(
), y2(
)
{
}
(
<
>
,
<
>
)
:x1(
.
), y1(
.
), x2(
.
+
.
), y2(
.
+
.
)
{
}
bool
(
<
>
)
const
{
return
==
.
&&
==
.
&&
==
.
&&
==
.
;
}
bool
(
<
>
)
const
{
return
!=
.
||
!=
.
||
!=
.
||
!=
.
;
}
<
>
()
const
{
return
<
>(
,
);
}
<
>
()
const
{
return
<
>(
,
);
}
<
>
()
const
{
return
<
>(
-
,
-
);
}
()
const
{
return
;
}
()
const
{
return
;
}
()
const
{
return
-
;
}
()
const
{
return
;
}
()
const
{
return
;
}
()
const
{
return
-
;
}
void
(
,
)
{
-=
;
-=
;
+=
;
+=
;
}
void
(
<
>
)
{
-=
.
;
-=
.
;
+=
.
;
+=
.
;
}
void
(
,
)
{
+=
;
+=
;
+=
;
+=
;
}
void
(
<
>
)
{
+=
.
;
+=
.
;
+=
.
;
+=
.
;
}
bool
(
<
>
)
{
return
<=
.
&&
.
<
&&
<=
.
&&
.
<
;
}
};
using
=
<
>;
using
=
<
>;
template
<
typename
>
inline
<
>
(
<
>
,
<
>
)
{
return
<
>(
.
+
.
,
.
+
.
);
}
template
<
typename
>
inline
<
>
(
<
>
,
<
>
)
{
return
<
>(
.
+
.
,
.
+
.
);
}
template
<
typename
>
inline
<
>
(
<
>
,
<
>
)
{
return
<
>(
.
-
.
,
.
-
.
);
}
template
<
typename
>
inline
<
>
(
<
>
,
<
>
)
{
return
<
>(
.
-
.
,
.
-
.
);
}
template
<
typename
>
inline
<
>
(
<
>
,
<
>
)
{
return
<
>(
.
+
.
,
.
+
.
);
}
template
<
typename
>
inline
<
>
(
<
>
,
<
>
)
{
return
<
>(
.
-
.
,
.
-
.
);
}
template
<
typename
>
inline
<
>
(
<
>
,
)
{
return
<
>(
.
*
,
.
*
);
}
template
<
typename
>
inline
<
>
(
<
>
,
)
{
return
<
>(
.
/
,
.
/
);
}
template
<
typename
>
inline
<
>
(
<
>&
,
<
>
)
{
.
+=
.
;
.
+=
.
;
return
;
}
template
<
typename
>
inline
<
>
(
<
>&
,
<
>
)
{
.
-=
.
;
.
-=
.
;
return
;
}
template
<
typename
>
inline
<
>
(
<
>&
,
<
>
)
{
.
+=
.
;
.
+=
.
;
return
;
}
template
<
typename
>
inline
<
>
(
<
>&
,
<
>
)
{
.
-=
.
;
.
-=
.
;
return
;
}
struct
{
union
{
struct
{
unsigned
char
;
unsigned
char
;
unsigned
char
;
unsigned
char
;
};
;
};
()
:r(
0
), g(
0
), b(
0
), a(
255
)
{
}
(
unsigned
char
,
unsigned
char
,
unsigned
char
,
unsigned
char
=
255
)
:r(
), g(
), b(
), a(
)
{
}
(
)
const
{
return
-
.
;
}
static
(
const
&
)
{
const
wchar_t
*
=
L"0123456789ABCDEF"
;
if
((
.
()==
7
||
.
()==
9
) &&
0
]==
L'#'
)
{
[
8
]={
15
,
15
,
15
,
15
,
15
,
15
,
15
,
15
};
for
(
=
0
;
i
<
.
()-
1
;
i
++)
{
index
[
i
]=
(
code
,
i
+
1
])-
code
;
if
(
index
[
i
]<
0
||
index
[
i
]>
15
)
{
return
();
}
}
;
c
.
=(
unsigned
char
)(
index
[
0
]*
16
+
index
[
1
]);
c
.
=(
unsigned
char
)(
index
[
2
]*
16
+
index
[
3
]);
c
.
=(
unsigned
char
)(
index
[
4
]*
16
+
index
[
5
]);
c
.
=(
unsigned
char
)(
index
[
6
]*
16
+
index
[
7
]);
return
c
;
}
return
();
}
()
const
{
const
wchar_t
*
=
L"0123456789ABCDEF"
;
wchar_t
[
10
]=
L"#00000000"
;
result
[
1
]=
code
[
/
16
];
result
[
2
]=
code
[
%
16
];
result
[
3
]=
code
[
/
16
];
result
[
4
]=
code
[
%
16
];
result
[
5
]=
code
[
/
16
];
result
[
6
]=
code
[
%
16
];
if
(
==
255
)
{
result
[
7
]=
L'\0'
;
}
else
{
result
[
7
]=
code
[
/
16
];
result
[
8
]=
code
[
%
16
];
}
return
result
;
}
bool
(
)
const
{
return
(
)==
0
;}
bool
(
)
const
{
return
(
)!=
0
;}
bool
(
)
const
{
return
(
)<
0
;}
bool
(
)
const
{
return
(
)<=
0
;}
bool
(
)
const
{
return
(
)>
0
;}
bool
(
)
const
{
return
(
)>=
0
;}
};
template
<
typename
>
struct
{
;
;
;
;
()
:left(
0
), top(
0
), right(
0
), bottom(
0
)
{
}
(
,
,
,
)
:left(
), top(
), right(
), bottom(
)
{
}
bool
(
<
>
)
const
{
return
==
.
&&
==
.
&&
==
.
&&
==
.
;
}
bool
(
<
>
)
const
{
return
!=
.
||
!=
.
||
!=
.
||
!=
.
;
}
};
using
=
<
>;
using
=
<
>;
struct
{
;
;
bool
;
bool
;
bool
;
bool
;
bool
;
bool
;
()
:size(
0
)
,bold(
false
)
,italic(
false
)
,underline(
false
)
,strikeline(
false
)
,antialias(
true
)
,verticalAntialias(
false
)
{
}
(
const
&
)
const
{
=
0
;
result
=
::
(
,
.
);
if
(
result
!=
0
)
return
result
;
result
=
-
.
;
if
(
result
!=
0
)
return
result
;
result
=(
)
-(
)
.
;
if
(
result
!=
0
)
return
result
;
result
=(
)
-(
)
.
;
if
(
result
!=
0
)
return
result
;
result
=(
)
-(
)
.
;
if
(
result
!=
0
)
return
result
;
result
=(
)
-(
)
.
;
if
(
result
!=
0
)
return
result
;
result
=(
)
-(
)
.
;
if
(
result
!=
0
)
return
result
;
return
0
;
}
bool
(
const
&
)
const
{
return
(
)==
0
;}
bool
(
const
&
)
const
{
return
(
)!=
0
;}
bool
(
const
&
)
const
{
return
(
)<
0
;}
bool
(
const
&
)
const
{
return
(
)<=
0
;}
bool
(
const
&
)
const
{
return
(
)>
0
;}
bool
(
const
&
)
const
{
return
(
)>=
0
;}
};
#define GUI_DEFINE_KEYBOARD_CODE(ITEM) \
/* \
* Virtual Keys, Standard Set \
*/ \
ITEM(LBUTTON, 0x01) \
ITEM(RBUTTON, 0x02) \
ITEM(CANCEL, 0x03) \
ITEM(MBUTTON, 0x04) /* NOT contiguous with L & RBUTTON */ \
ITEM(XBUTTON1, 0x05) /* NOT contiguous with L & RBUTTON */ \
ITEM(XBUTTON2, 0x06) /* NOT contiguous with L & RBUTTON */ \
ITEM(BACK, 0x08) \
ITEM(TAB, 0x09) \
ITEM(CLEAR, 0x0C) \
ITEM(RETURN, 0x0D) \
ITEM(SHIFT, 0x10) \
ITEM(CONTROL, 0x11) \
ITEM(MENU, 0x12) \
ITEM(PAUSE, 0x13) \
ITEM(CAPITAL, 0x14) \
ITEM(KANA_HANGUL, 0x15) \
ITEM(JUNJA, 0x17) \
ITEM(FINAL, 0x18) \
ITEM(HANJA, 0x19) \
ITEM(KANJI, 0x19) \
ITEM(ESCAPE, 0x1B) \
ITEM(CONVERT, 0x1C) \
ITEM(NONCONVERT, 0x1D) \
ITEM(ACCEPT, 0x1E) \
ITEM(MODECHANGE, 0x1F) \
ITEM(SPACE, 0x20) \
ITEM(PRIOR, 0x21) \
ITEM(NEXT, 0x22) \
ITEM(END, 0x23) \
ITEM(HOME, 0x24) \
ITEM(LEFT, 0x25) \
ITEM(UP, 0x26) \
ITEM(RIGHT, 0x27) \
ITEM(DOWN, 0x28) \
ITEM(SELECT, 0x29) \
ITEM(PRINT, 0x2A) \
ITEM(EXECUTE, 0x2B) \
ITEM(SNAPSHOT, 0x2C) \
ITEM(INSERT, 0x2D) \
ITEM(DELETE, 0x2E) \
ITEM(HELP, 0x2F) \
/* \
* VKEY_0 - VKEY_9 are the same as ASCII '0' - '9' (0x30 - 0x39) \
* VKEY_A - VKEY_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A) \
*/ \
ITEM(0, 0x30) \
ITEM(1, 0x31) \
ITEM(2, 0x32) \
ITEM(3, 0x33) \
ITEM(4, 0x34) \
ITEM(5, 0x35) \
ITEM(6, 0x36) \
ITEM(7, 0x37) \
ITEM(8, 0x38) \
ITEM(9, 0x39) \
ITEM(A, 0x41) \
ITEM(B, 0x42) \
ITEM(C, 0x43) \
ITEM(D, 0x44) \
ITEM(E, 0x45) \
ITEM(F, 0x46) \
ITEM(G, 0x47) \
ITEM(H, 0x48) \
ITEM(I, 0x49) \
ITEM(J, 0x4A) \
ITEM(K, 0x4B) \
ITEM(L, 0x4C) \
ITEM(M, 0x4D) \
ITEM(N, 0x4E) \
ITEM(O, 0x4F) \
ITEM(P, 0x50) \
ITEM(Q, 0x51) \
ITEM(R, 0x52) \
ITEM(S, 0x53) \
ITEM(T, 0x54) \
ITEM(U, 0x55) \
ITEM(V, 0x56) \
ITEM(W, 0x57) \
ITEM(X, 0x58) \
ITEM(Y, 0x59) \
ITEM(Z, 0x5A) \
ITEM(LWIN, 0x5B) \
ITEM(RWIN, 0x5C) \
ITEM(APPS, 0x5D) \
ITEM(SLEEP, 0x5F) \
ITEM(NUMPAD0, 0x60) \
ITEM(NUMPAD1, 0x61) \
ITEM(NUMPAD2, 0x62) \
ITEM(NUMPAD3, 0x63) \
ITEM(NUMPAD4, 0x64) \
ITEM(NUMPAD5, 0x65) \
ITEM(NUMPAD6, 0x66) \
ITEM(NUMPAD7, 0x67) \
ITEM(NUMPAD8, 0x68) \
ITEM(NUMPAD9, 0x69) \
ITEM(MULTIPLY, 0x6A) \
ITEM(ADD, 0x6B) \
ITEM(SEPARATOR, 0x6C) \
ITEM(SUBTRACT, 0x6D) \
ITEM(DECIMAL, 0x6E) \
ITEM(DIVIDE, 0x6F) \
ITEM(F1, 0x70) \
ITEM(F2, 0x71) \
ITEM(F3, 0x72) \
ITEM(F4, 0x73) \
ITEM(F5, 0x74) \
ITEM(F6, 0x75) \
ITEM(F7, 0x76) \
ITEM(F8, 0x77) \
ITEM(F9, 0x78) \
ITEM(F10, 0x79) \
ITEM(F11, 0x7A) \
ITEM(F12, 0x7B) \
ITEM(F13, 0x7C) \
ITEM(F14, 0x7D) \
ITEM(F15, 0x7E) \
ITEM(F16, 0x7F) \
ITEM(F17, 0x80) \
ITEM(F18, 0x81) \
ITEM(F19, 0x82) \
ITEM(F20, 0x83) \
ITEM(F21, 0x84) \
ITEM(F22, 0x85) \
ITEM(F23, 0x86) \
ITEM(F24, 0x87) \
ITEM(NUMLOCK, 0x90) \
ITEM(SCROLL, 0x91) \
/* \
* NEC PC-9800 kbd definitions \
*/ \
ITEM(OEM_NEC_EQUAL, 0x92) /* '=' key on numpad */ \
/* \
* Fujitsu/OASYS kbd definitions \
*/ \
ITEM(OEM_FJ_JISHO, 0x92) /* 'Dictionary' key */ \
ITEM(OEM_FJ_MASSHOU, 0x93) /* 'Unregister word' key */ \
ITEM(OEM_FJ_TOUROKU, 0x94) /* 'Register word' key */ \
ITEM(OEM_FJ_LOYA, 0x95) /* 'Left OYAYUBI' key */ \
ITEM(OEM_FJ_ROYA, 0x96) /* 'Right OYAYUBI' key */ \
/* \
* VKEY_L* & VKEY_R* - left and right Alt, Ctrl and Shift virtual keys. \
* Used only as parameters to GetAsyncKeyState() and GetKeyState(). \
* No other API or message will distinguish left and right keys in this way. \
*/ \
ITEM(LSHIFT, 0xA0) \
ITEM(RSHIFT, 0xA1) \
ITEM(LCONTROL, 0xA2) \
ITEM(RCONTROL, 0xA3) \
ITEM(LMENU, 0xA4) \
ITEM(RMENU, 0xA5) \
ITEM(BROWSER_BACK, 0xA6) \
ITEM(BROWSER_FORWARD, 0xA7) \
ITEM(BROWSER_REFRESH, 0xA8) \
ITEM(BROWSER_STOP, 0xA9) \
ITEM(BROWSER_SEARCH, 0xAA) \
ITEM(BROWSER_FAVORITES, 0xAB) \
ITEM(BROWSER_HOME, 0xAC) \
ITEM(VOLUME_MUTE, 0xAD) \
ITEM(VOLUME_DOWN, 0xAE) \
ITEM(VOLUME_UP, 0xAF) \
ITEM(MEDIA_NEXT_TRACK, 0xB0) \
ITEM(MEDIA_PREV_TRACK, 0xB1) \
ITEM(MEDIA_STOP, 0xB2) \
ITEM(MEDIA_PLAY_PAUSE, 0xB3) \
ITEM(LAUNCH_MAIL, 0xB4) \
ITEM(LAUNCH_MEDIA_SELECT, 0xB5) \
ITEM(LAUNCH_APP1, 0xB6) \
ITEM(LAUNCH_APP2, 0xB7) \
ITEM(OEM_1, 0xBA) /* ';:' for US */ \
ITEM(OEM_PLUS, 0xBB) /* '+' any country */ \
ITEM(OEM_COMMA, 0xBC) /* ',' any country */ \
ITEM(OEM_MINUS, 0xBD) /* '-' any country */ \
ITEM(OEM_PERIOD, 0xBE) /* '.' any country */ \
ITEM(OEM_2, 0xBF) /* '/?' for US */ \
ITEM(OEM_3, 0xC0) /* '`~' for US */ \
ITEM(OEM_4, 0xDB) /* '[{' for US */ \
ITEM(OEM_5, 0xDC) /* '\|' for US */ \
ITEM(OEM_6, 0xDD) /* ']}' for US */ \
ITEM(OEM_7, 0xDE) /* ''"' for US */ \
ITEM(OEM_8, 0xDF) \
/* \
* Various extended or enhanced keyboards \
*/ \
ITEM(OEM_AX, 0xE1) /* 'AX' key on Japanese AX kbd */ \
ITEM(OEM_102, 0xE2) /* "<>" or "\|" on RT 102-key kbd */ \
ITEM(ICO_HELP, 0xE3) /* Help key on ICO */ \
ITEM(ICO_00, 0xE4) /* 00 key on ICO */ \
ITEM(PROCESSKEY, 0xE5) \
ITEM(ICO_CLEAR, 0xE6) \
ITEM(PACKET, 0xE7) \
/* \
* Nokia/Ericsson definitions \
*/ \
ITEM(OEM_RESET, 0xE9) \
ITEM(OEM_JUMP, 0xEA) \
ITEM(OEM_PA1, 0xEB) \
ITEM(OEM_PA2, 0xEC) \
ITEM(OEM_PA3, 0xED) \
ITEM(OEM_WSCTRL, 0xEE) \
ITEM(OEM_CUSEL, 0xEF) \
ITEM(OEM_ATTN, 0xF0) \
ITEM(OEM_FINISH, 0xF1) \
ITEM(OEM_COPY, 0xF2) \
ITEM(OEM_AUTO, 0xF3) \
ITEM(OEM_ENLW, 0xF4) \
ITEM(OEM_BACKTAB, 0xF5) \
ITEM(ATTN, 0xF6) \
ITEM(CRSEL, 0xF7) \
ITEM(EXSEL, 0xF8) \
ITEM(EREOF, 0xF9) \
ITEM(PLAY, 0xFA) \
ITEM(ZOOM, 0xFB) \
ITEM(NONAME, 0xFC) \
ITEM(PA1, 0xFD) \
ITEM(OEM_CLEAR, 0xFE) \
/* \
* Friendly names for common keys (US) \
*/ \
ITEM(SEMICOLON, 0xBA) /* OEM_1 */ \
ITEM(SLASH, 0xBF) /* OEM_2 */ \
ITEM(GRAVE_ACCENT, 0xC0) /* OEM_3 */ \
ITEM(RIGHT_BRACKET, 0xDB) /* OEM_4 */ \
ITEM(BACKSLASH, 0xDC) /* OEM_5 */ \
ITEM(LEFT_BRACKET, 0xDD) /* OEM_6 */ \
ITEM(APOSTROPHE, 0xDE) /* OEM_7 */ \
#define GUI_DEFINE_KEYBOARD_CODE_ENUM_ITEM(NAME, CODE) _##NAME = CODE,
enum
class
{
= -
1
,
GUI_DEFINE_KEYBOARD_CODE(GUI_DEFINE_KEYBOARD_CODE_ENUM_ITEM)
=
0x01
,
=
0x02
,
=
0x03
,
=
0x04
,
=
0x05
,
=
0x06
,
=
0x08
,
=
0x09
,
=
0x0C
,
=
0x0D
,
=
0x10
,
=
0x11
, =
0x12
,
=
0x13
,
=
0x14
,
=
0x15
,
=
0x17
,
=
0x18
,
=
0x19
,
=
0x19
,
=
0x1B
,
=
0x1C
,
=
0x1D
,
=
0x1E
,
=
0x1F
,
=
0x20
,
=
0x21
,
=
0x22
,
=
0x23
,
=
0x24
,
=
0x25
,
=
0x26
,
=
0x27
,
=
0x28
,
=
0x29
,
=
0x2A
,
=
0x2B
,
=
0x2C
,
=
0x2D
,
=
0x2E
,
=
0x2F
,
=
0x30
,
=
0x31
,
=
0x32
,
=
0x33
,
=
0x34
,
=
0x35
,
=
0x36
,
=
0x37
,
=
0x38
,
=
0x39
,
=
0x41
,
=
0x42
,
=
0x43
,
=
0x44
,
=
0x45
,
=
0x46
,
=
0x47
,
=
0x48
,
=
0x49
,
=
0x4A
,
=
0x4B
,
=
0x4C
,
=
0x4D
,
=
0x4E
,
=
0x4F
,
=
0x50
,
=
0x51
,
=
0x52
,
=
0x53
,
=
0x54
,
=
0x55
,
=
0x56
,
=
0x57
,
=
0x58
,
=
0x59
,
=
0x5A
,
=
0x5B
,
=
0x5C
,
=
0x5D
,
=
0x5F
,
=
0x60
,
=
0x61
,
=
0x62
,
=
0x63
,
=
0x64
,
=
0x65
,
=
0x66
,
=
0x67
,
=
0x68
,
=
0x69
,
=
0x6A
,
=
0x6B
,
=
0x6C
,
=
0x6D
,
=
0x6E
,
=
0x6F
,
=
0x70
,
=
0x71
,
=
0x72
,
=
0x73
,
=
0x74
,
=
0x75
,
=
0x76
,
=
0x77
,
=
0x78
,
=
0x79
,
=
0x7A
,
=
0x7B
,
=
0x7C
,
=
0x7D
,
=
0x7E
,
=
0x7F
,
=
0x80
,
=
0x81
,
=
0x82
,
=
0x83
,
=
0x84
,
=
0x85
,
=
0x86
,
=
0x87
,
=
0x90
,
=
0x91
,
=
0x92
,
=
0x92
,
=
0x93
,
=
0x94
,
=
0x95
,
=
0x96
,
=
0xA0
,
=
0xA1
,
=
0xA2
,
=
0xA3
, =
0xA4
, =
0xA5
,
=
0xA6
,
=
0xA7
,
=
0xA8
,
=
0xA9
,
=
0xAA
,
=
0xAB
,
=
0xAC
,
=
0xAD
,
=
0xAE
,
=
0xAF
,
=
0xB0
,
=
0xB1
,
=
0xB2
,
=
0xB3
,
=
0xB4
,
=
0xB5
,
=
0xB6
,
=
0xB7
,
=
0xBA
,
=
0xBB
,
=
0xBC
,
=
0xBD
,
=
0xBE
,
=
0xBF
,
=
0xC0
,
=
0xDB
,
=
0xDC
,
=
0xDD
,
=
0xDE
,
=
0xDF
,
=
0xE1
,
=
0xE2
,
=
0xE3
,
=
0xE4
,
=
0xE5
,
=
0xE6
,
=
0xE7
,
=
0xE9
,
=
0xEA
,
=
0xEB
,
=
0xEC
,
=
0xED
,
=
0xEE
,
=
0xEF
,
=
0xF0
,
=
0xF1
,
=
0xF2
,
=
0xF3
,
=
0xF4
,
=
0xF5
,
=
0xF6
,
=
0xF7
,
=
0xF8
,
=
0xF9
,
=
0xFA
,
=
0xFB
,
=
0xFC
,
=
0xFD
,
=
0xFE
,
=
0xBA
,
=
0xBF
,
=
0xC0
,
=
0xDB
,
=
0xDC
,
=
0xDD
,
=
0xDE
,
};
#undef GUI_DEFINE_KEYBOARD_CODE_ENUM_ITEM
static
bool
(
,
) {
return
(
)
== (
)
; }
static
bool
(
,
) {
return
(
)
!= (
)
; }
static
bool
(
,
) {
return
(
)
< (
)
; }
static
bool
(
,
) {
return
(
)
<= (
)
; }
static
bool
(
,
) {
return
(
)
> (
)
; }
static
bool
(
,
) {
return
(
)
>= (
)
; }
static
(
,
) {
return
(
)((
)
& (
)
); }
static
(
,
) {
return
(
)((
)
| (
)
); }
}
}
#endif