#include "GuiComboControls.h"
#include "../GuiApplication.h"
namespace
{
namespace
{
namespace
{
void
::
BeforeControlTemplateUninstalled_
()
{
}
void
::
AfterControlTemplateInstalled_
(
bool
)
{
}
::
::()
{
return
::
;
}
void
::
(
compositions
::
*
,
compositions
::
&
)
{
=
GetPreferredMenuClientSize
();
size
.
=
->
().
();
SetPreferredMenuClientSize
(
size
);
}
::
(
theme
::
)
:
(
)
{
();
(
false
);
->
.
(
this
, &
::
);
}
::
()
{
}
void
::
()
{
::
();
if
(
)
{
->
(
());
}
();
}
void
::
BeforeControlTemplateUninstalled
()
{
::
BeforeControlTemplateUninstalled
();
}
void
::
AfterControlTemplateInstalled
(
bool
)
{
::
AfterControlTemplateInstalled
(
);
TypedControlTemplateObject
(
true
)->
(!
);
}
void
::
()
{
if
(
)
{
(
);
=
nullptr
;
}
}
void
::
(
)
{
if
(
)
{
if
(
!= -
1
)
{
auto
=
->
()->
(
);
if
(!
item
.
())
{
if
(
auto
=
item
))
{
=
style
;
->
(
());
->
(
());
->
(
());
->
(
());
->
(
(
0
,
0
,
0
,
0
));
->
(
);
}
}
}
}
}
void
::
(
)
{
if
(
== -
1
)
{
(
L""
);
}
else
{
=
->
()->
(
);
(
text
);
}
();
(
);
if
(
!=
)
{
=
;
.
(
());
}
}
void
::()
{
if
(
auto
=
())
{
(
0
,
().
*
20
);
=
->
(
expectedSize
);
=
GetPreferredMenuClientSize
();
clientSize
.
=
adoptedSize
.
+
subMenu
->
().
-
->
()->
().
();
SetPreferredMenuClientSize
(
clientSize
);
if
(
())
{
subMenu
->
(
clientSize
);
}
}
}
void
::
(
compositions
::
*
,
compositions
::
&
)
{
if
(
)
{
->
(
());
}
}
void
::
(
compositions
::
*
,
compositions
::
&
)
{
if
(
)
{
->
(
());
}
();
}
void
::
(
compositions
::
*
,
compositions
::
&
)
{
if
(
)
{
->
(
());
}
}
void
::(
compositions
::
* ,
compositions
::
& )
{
->
(
,
false
,
false
,
true
);
->
(
);
}
void
::
OnListControlAdoptedSizeInvalidated
(
compositions
::
*
,
compositions
::
&
)
{
();
}
void
::
OnListControlBoundsChanged
(
compositions
::
*
,
compositions
::
&
)
{
auto
=
();
()->
(
(), [=]()
{
if
(!
flag
())
{
();
}
});
}
void
::
OnListControlItemMouseDown
(
compositions
::
*
,
compositions
::
&
)
{
(
->
());
()->
();
}
void
::
(
compositions
::
*
,
compositions
::
&
)
{
if
(!
.
)
{
switch
(
.
)
{
case
::
:
(
->
());
.
=
true
;
case
::
:
()->
();
.
=
true
;
break
;
default
:
->
(
.
,
.
,
.
);
}
}
}
void
::
(
::
*
)
{
}
void
::
(
,
,
)
{
if
(
==
)
{
if
(
<=
&&
<
+
)
{
(
);
}
}
else
{
(-
1
);
}
}
::
(
theme
::
,
*
)
:
(
)
, containedListControl(
)
{
.
(
this
, &
::
);
.
(
this
, &
::
);
.
(
this
, &
::
);
.
(
this
, &
::
);
->
()->
(
this
);
->
(
false
);
->
.
(
this
, &
::
OnListControlAdoptedSizeInvalidated
);
->
.
(
this
, &
::
OnListControlItemMouseDown
);
->
.
(
this
, &
::
OnListControlItemMouseDown
);
->
()->
.
(
this
, &
::
OnListControlBoundsChanged
);
->
()->
.
(
this
, &
::
);
auto
=
->
();
.
(
);
->
()->
(
(
0
,
0
,
0
,
0
));
()->
()->
(
->
());
(
());
}
::
()
{
->
()->
(
this
);
->
()->
.
(
);
nullptr
;
}
*
::
()
{
return
;
}
::
::
()
{
return
;
}
void
::
(
)
{
();
;
TypedControlTemplateObject
(
true
)->
(!
);
(
);
.
(
());
}
::
()
{
return
;
}
void
::
(
)
{
if
(
!=
)
{
if
(
0
<=
&&
<
->
()->
())
{
(
);
}
}
()->
();
}
description
::
::
()
{
if
(
!= -
1
)
{
return
->
()->
(
);
}
return
description
::
();
}
::
*
::
()
{
return
->
();
}
}
}
}