#ifndef VCZH_PRESENTATION_COMPOSITION_GUIGRAPHICSTABLECOMPOSITION
#define VCZH_PRESENTATION_COMPOSITION_GUIGRAPHICSTABLECOMPOSITION
#include "IncludeForward.h"
namespace
{
namespace
{
namespace
{
struct
{
enum
{
,
,
,
};
;
;
double
;
()
:composeType(
)
,absolute(
20
)
,percentage(
0
)
{
}
bool
(
const
&
){
return
false
;}
bool
(
const
&
){
return
true
;}
static
(
)
{
;
option
.
=
;
option
.
=
;
return
option
;
}
static
(
double
)
{
;
option
.
=
;
option
.
=
;
return
option
;
}
static
()
{
;
option
.
=
;
return
option
;
}
};
class
:
public
,
public
<
>
{
friend
class
;
friend
class
GuiTableSplitterCompositionBase
;
friend
class
GuiRowSplitterComposition
;
friend
class
GuiColumnSplitterComposition
;
protected
:
;
;
;
bool
;
;
;
collections
::
<
>
;
collections
::
<
>
;
collections
::
<
*>
;
collections
::
<
>
;
collections
::
<
>
;
collections
::
<
>
;
collections
::
<
>
;
collections
::
<
>
;
;
(
,
,
,
);
void
(
,
,
*
);
void
(
collections
::
<
>&
,
&
,
&
,
collections
::
<
>&
,
::*
,
::*
,
(*
)(
),
(*
)(
*),
(*
)(
*),
(*
)(
,
),
(*
)(
,
),
);
void
UpdateCellBoundsPercentages
(
collections
::
<
>&
,
,
,
collections
::
<
>&
);
(
collections
::
<
>&
,
collections
::
<
>&
,
void
()
override
;
public
:
();
();
compositions
::
;
();
();
bool
(
,
);
*
(
,
);
(
);
void
(
,
);
(
);
void
(
,
);
();
void
(
);
bool
();
void
(
bool
);
();
void
();
void
()
override
;
GetMinPreferredClientSize
()
override
;
()
override
;
};
class
:
public
,
public
<
>
{
friend
class
;
protected
:
;
;
;
;
*
;
;
void
(
*
);
void
(
*
);
void
();
bool
(
,
,
,
);
void
(
*
,
*
)
override
;
void
OnTableRowsAndColumnsChanged
();
public
:
();
();
*
();
();
();
();
();
bool
(
,
,
,
);
()
override
;
};
class
GuiTableSplitterCompositionBase
:
public
,
public
<
GuiTableSplitterCompositionBase
>
{
protected
:
*
;
bool
;
;
void
(
*
,
*
)
override
;
void
(
*
,
&
);
void
(
*
,
&
);
void
(
,
::*
,
collections
::
<
>&
,
,
(
::*
)(
),
void
(
::*
)(
,
)
);
(
,
::*
,
(
::*
)()
const
,
collections
::
<
>&
,
::*
,
::*
,
::*
,
::*
);
public
:
GuiTableSplitterCompositionBase
();
~
GuiTableSplitterCompositionBase
();
*
();
};
class
GuiRowSplitterComposition
:
public
GuiTableSplitterCompositionBase
,
public
<
GuiRowSplitterComposition
>
{
protected
:
;
void
(
*
,
&
);
public
:
GuiRowSplitterComposition
();
~
GuiRowSplitterComposition
();
();
void
(
);
()
override
;
};
class
GuiColumnSplitterComposition
:
public
GuiTableSplitterCompositionBase
,
public
<
GuiColumnSplitterComposition
>
{
protected
:
;
void
(
*
,
&
);
public
:
GuiColumnSplitterComposition
();
~
GuiColumnSplitterComposition
();
();
void
(
);
()
override
;
};
}
}
}
#endif