#ifndef VCZH_PRESENTATION_CONTROLS_GUITOOLSTRIPMENU
#define VCZH_PRESENTATION_CONTROLS_GUITOOLSTRIPMENU
#include "GuiToolstripCommand.h"
#include "GuiMenuControls.h"
namespace
{
namespace
{
namespace
{
class
:
public
{
public
:
virtual
void
() =
0
;
};
class
:
public
{
public
:
static
const
wchar_t
*
const
;
virtual
void
(
*
) =
0
;
};
class
:
public
collections
::
<
*>
{
public
:
protected
:
*
;
void
();
bool
(
,
*
const
&
)
override
;
void
(
,
*
const
&
)
override
;
void
(
,
*
const
&
)
override
;
void
(
,
)
override
;
public
:
(
*
);
();
};
class
:
public
GuiToolstripCollectionBase
{
using
=
collections
::
<
<
compositions
::
>>;
protected
:
compositions
::
*
;
;
void
(
,
*
);
void
(
compositions
::
*
,
compositions
::
&
);
void
(
,
*
const
&
)
override
;
void
(
,
*
const
&
)
override
;
void
(
,
)
override
;
public
:
(
*
,
compositions
::
*
);
();
};
class
:
public
,
protected
,
<
>
{
protected
:
compositions
::
GuiSharedSizeRootComposition
* ;
compositions
::
* ;
<
> ;
void
()
override
;
public
:
(
theme
::
,
* );
();
collections
::
<
*>& ();
};
class
:
public
,
public
<
>
{
protected
:
compositions
::
* ;
<
> ;
public
:
(
theme
::
);
();
collections
::
<
*>& ();
};
class
:
public
,
public
<
>
{
protected
:
compositions
::
*
;
<
>
;
public
:
(
theme
::
);
();
collections
::
<
*>&
();
};
class
:
public
,
protected
IToolstripUpdateLayoutInvoker
,
public
<
>
{
protected
:
*
;
*
=
nullptr
;
<
compositions
::
>
;
void
(
*
)
override
;
void
()
override
;
void
();
void
(
compositions
::
*
,
compositions
::
&
);
void
(
compositions
::
*
,
compositions
::
&
);
void
(
compositions
::
*
,
compositions
::
&
);
public
:
(
theme
::
);
();
*
();
void
(
*
);
* ();
* ();
void
(
<
templates
::
> );
*
(
const
&
)
override
;
};
class
:
public
,
protected
,
protected
IToolstripUpdateLayoutInvoker
{
protected
:
*
=
nullptr
;
void
()
override
;
void
(
*
)
override
;
public
:
(
theme
::
);
();
*
(
const
&
)
override
;
};
class
:
public
GuiToolstripNestedContainer
,
public
<
GuiToolstripGroupContainer
>
{
protected
:
class
:
public
GuiToolstripCollectionBase
{
protected
:
GuiToolstripGroupContainer
*
;
ControlTemplatePropertyType
;
void
(
,
*
const
&
)
override
;
void
(
,
*
const
&
)
override
;
void
(
,
)
override
;
public
:
(
GuiToolstripGroupContainer
*
);
();
ControlTemplatePropertyType
();
void
(
const
ControlTemplatePropertyType
&
);
void
();
};
protected
:
compositions
::
*
;
theme
::
;
<
>
;
void
()
override
;
public
:
(
theme
::
);
();
ControlTemplatePropertyType
();
void
(
const
ControlTemplatePropertyType
&
);
collections
::
<
*>&
();
};
class
:
public
GuiToolstripNestedContainer
,
public
<
>
{
protected
:
compositions
::
*
;
<
>
;
void
()
override
;
public
:
(
theme
::
);
();
collections
::
<
*>&
();
};
}
}
namespace
{
namespace
{
template
<>
struct
<
presentation
::
controls
::
>
{
static
const
bool
=
true
;
static
const
bool
=
false
;
};
}
}
}
#endif