#include "GuiButtonControls.h"
namespace
{
namespace
{
namespace
{
using
namespace
elements
;
using
namespace
compositions
;
using
namespace
collections
;
using
namespace
reflection
::
description
;
void
::
()
{
}
void
::
(
bool
)
{
TypedControlTemplateObject
(
true
)->
(
);
}
void
::
()
{
::
();
if
(
()==
0
)
{
=
false
;
=
false
;
();
}
}
void
::
()
{
if
(
)
{
::
();
}
.
(
());
}
bool
::
()
{
return
&&
::
();
}
void
::
()
{
auto
=
::
;
if
(
)
{
newControlState
=
::
;
}
else
if
(
)
{
if
(
)
{
newControlState
=
::
;
}
else
{
newControlState
=
::
;
}
}
else
{
if
(
)
{
newControlState
=
::
;
}
else
{
newControlState
=
::
;
}
}
if
(
!=
newControlState
)
{
=
newControlState
;
TypedControlTemplateObject
(
true
)->
(
);
}
}
void
::
(
compositions
::
&
)
{
auto
=
.
->
();
while
(
eventSource
&&
eventSource
!=
this
)
{
if
(
eventSource
->
())
{
return
;
}
eventSource
=
eventSource
->
();
}
.
(
());
}
void
::
(
compositions
::
*
,
compositions
::
&
)
{
if
(
.
==
|| !
ignoreChildControlMouseEvents
)
{
=
true
;
if
(
)
{
();
}
();
if
(!
)
{
(
);
}
}
}
void
::
(
compositions
::
*
,
compositions
::
&
)
{
if
(
.
==
|| !
ignoreChildControlMouseEvents
)
{
=
false
;
();
}
if
(
())
{
if
(
&&
)
{
(
);
}
}
}
void
::
(
compositions
::
*
,
compositions
::
&
)
{
if
(
.
==
|| !
ignoreChildControlMouseEvents
)
{
=
true
;
();
}
}
void
::
(
compositions
::
*
,
compositions
::
&
)
{
if
(
.
==
|| !
ignoreChildControlMouseEvents
)
{
=
false
;
();
}
}
void
::
(
compositions
::
*
,
compositions
::
&
)
{
if
(
.
==
&& !
.
&& !
.
&& !
.
)
{
switch
(
.
)
{
case
::
:
(
);
.
=
true
;
break
;
if
(!
.
)
{
=
true
;
();
}
.
=
true
;
break
;
default
:;
}
}
}
void
::
(
compositions
::
*
,
compositions
::
&
)
{
if
(
.
==
&& !
.
&& !
.
&& !
.
)
{
switch
(
.
)
{
if
(
)
{
=
false
;
();
(
);
}
.
=
true
;
break
;
default
:;
}
}
}
void
::
(
compositions
::
*
,
compositions
::
&
)
{
if
(
)
{
=
false
;
();
}
}
::
(
theme
::
)
:
(
)
{
.
(
);
(
);
->
()->
.
(
this
, &
::
);
->
()->
.
(
this
, &
::
);
->
()->
.
(
this
, &
::
);
->
()->
.
(
this
, &
::
);
->
()->
.
(
this
, &
::
);
->
()->
.
(
this
, &
::
);
->
()->
.
(
this
, &
::
);
}
::
()
{
}
bool
::
()
{
return
;
}
void
::
(
bool
)
{
=
;
}
bool
::
()
{
return
;
}
void
::
(
bool
)
{
=
;
}
bool
::
()
{
return
ignoreChildControlMouseEvents
;
}
void
::
(
bool
)
{
ignoreChildControlMouseEvents
=
;
}
::
::
()
{
}
::
::
()
{
for
(
=
.
()-
1
;
i
>=
0
;
i
--)
{
i
]->
(
0
);
}
}
void
::
::
(
*
)
{
if
(!
.
(
))
{
.
(
);
}
}
void
::
::
(
*
)
{
.
(
);
}
::
::
()
:suppress(
false
)
{
}
::
::
()
{
}
void
::
::
(
*
)
{
if
(!
)
{
=
true
;
for
(
=
0
;
i
<
.
();
i
++)
{
i
]->
(
i
]==
);
}
=
false
;
}
}
void
::
()
{
}
void
::
(
bool
)
{
TypedControlTemplateObject
(
true
)->
(
);
}
void
::
(
compositions
::
*
,
compositions
::
&
)
{
if
(
)
{
(!
());
}
}
::
(
theme
::
)
:
(
)
{
.
(
);
.
(
);
.
(
);
.
(
this
, &
::
);
}
::
()
{
if
(
)
{
->
(
this
);
}
}
::
*
::
()
{
return
;
}
void
::
(
*
)
{
if
(
)
{
->
(
this
);
}
=
;
if
(
)
{
->
(
this
);
}
.
(
());
}
bool
::
()
{
return
;
}
void
::
(
bool
)
{
if
(
!=
)
{
=
;
.
(
());
}
}
bool
::
()
{
return
;
}
void
::
(
bool
)
{
if
(
!=
)
{
=
;
TypedControlTemplateObject
(
true
)->
(
);
if
(
)
{
->
(
this
);
}
.
(
());
}
}
}
}
}