#include "GuiDocumentViewer.h"
#include "../../GraphicsHost/GuiGraphicsHost.h"
namespace
{
namespace
{
namespace
{
using
namespace
collections
;
using
namespace
elements
;
using
namespace
compositions
;
::
(
const
&
)
:name(
)
{
=
new
;
->
(
::
LimitToElementAndChildren
);
->
(
()->
()->
(
::
));
}
::
()
{
if
(!
)
{
(
);
}
}
compositions
::
*
::
()
{
return
;
}
::
()
{
return
;
}
void
GuiDocumentCommonInterface
::
()
{
.
(
->
());
}
void
GuiDocumentCommonInterface
::
()
{
.
(
->
());
}
void
GuiDocumentCommonInterface
::
()
{
*
=
->
();
if
(
host
)
{
=
->
(
->
(),
->
IsCaretEndPreferFrontSide
());
=
();
=
caret
.
-
view
.
;
=
caret
.
-
view
.
;
host
->
(
(
x
,
y
),
);
}
}
void
GuiDocumentCommonInterface
::
EnsureDocumentRectVisible
(
)
{
if
(
())
{
.
-=
15
;
.
-=
15
;
.
+=
15
;
.
+=
15
;
(
);
}
}
void
GuiDocumentCommonInterface
::
(
,
bool
,
bool
)
{
=
->
();
=
->
();
=
?
begin
:
;
=
;
->
(
newBegin
,
newEnd
,
);
->
(
true
);
EnsureDocumentRectVisible
(
->
(
newEnd
,
));
();
.
(
->
());
}
bool
GuiDocumentCommonInterface
::
(
,
bool
,
bool
)
{
if
(
*
=
internalShortcutKeyManager
(
,
,
false
,
))
{
(
->
());
item
->
.
(
arguments
);
return
true
;
}
=
->
();
bool
=
->
IsCaretEndPreferFrontSide
();
=
->
();
=
->
();
switch
(
)
{
case
::
:
{
=
->
(
currentCaret
,
::
,
frontSide
);
(
newCaret
,
,
frontSide
);
}
break
;
case
::
:
{
=
->
(
currentCaret
,
::
,
frontSide
);
(
newCaret
,
,
frontSide
);
}
break
;
case
::
:
{
=
->
(
currentCaret
,
::
,
frontSide
);
(
newCaret
,
,
frontSide
);
}
break
;
case
::
:
{
=
->
(
currentCaret
,
::
,
frontSide
);
(
newCaret
,
,
frontSide
);
}
break
;
case
::
:
{
=
->
(
currentCaret
,
::
,
frontSide
);
if
(
newCaret
currentCaret
)
{
newCaret
->
(
currentCaret
,
::
,
frontSide
);
}
(
newCaret
,
,
frontSide
);
}
break
;
case
::
:
{
=
->
(
currentCaret
,
::
,
frontSide
);
if
(
newCaret
currentCaret
)
{
newCaret
->
(
currentCaret
,
::
,
frontSide
);
}
(
newCaret
,
,
frontSide
);
}
break
;
case
::
:
{
}
break
;
case
::
:
{
}
break
;
case
::
:
if
(
==
)
{
if
(
begin
end
)
{
(
::
,
true
,
false
);
}
<
>
;
(
->
(),
->
(),
->
IsCaretEndPreferFrontSide
(),
text
);
return
true
;
}
break
;
case
::
:
if
(
==
)
{
if
(
begin
end
)
{
(
::
,
true
,
false
);
}
<
>
;
(
->
(),
->
(),
->
IsCaretEndPreferFrontSide
(),
text
);
return
true
;
}
break
;
case
::
:
if
(
==
)
{
if
(
)
{
<
>
(
1
);
text
0
]=
L"\r\n"
;
(
->
(),
->
(),
->
IsCaretEndPreferFrontSide
(),
text
);
}
else
{
<
>
(
2
);
(
->
(),
->
(),
->
IsCaretEndPreferFrontSide
(),
text
);
}
return
true
;
}
break
;
default
:;
}
return
false
;
}
void
GuiDocumentCommonInterface
::
(
*
,
compositions
::
*
,
compositions
::
*
,
compositions
::
*
,
compositions
::
*
)
{
=
;
=
::
();
->
(
this
);
=
new
;
->
(
);
->
(
::
);
->
(
(
5
,
5
,
5
,
5
));
->
(
);
(
);
->
()->
.
(
this
, &
GuiDocumentCommonInterface
::
);
->
()->
.
(
this
, &
GuiDocumentCommonInterface
::
);
->
()->
.
(
this
, &
GuiDocumentCommonInterface
::
);
->
()->
.
(
this
, &
GuiDocumentCommonInterface
::
);
->
()->
.
(
this
, &
GuiDocumentCommonInterface
::
);
(
,
);
.
(
);
.
(
);
.
(
);
.
(
);
.
(
);
.
(
this
, &
GuiDocumentCommonInterface
::
);
.
(
this
, &
GuiDocumentCommonInterface
::
);
(
new
);
}
void
GuiDocumentCommonInterface
::
(
compositions
::
*
)
{
if
(
)
{
->
()->
.
(
);
->
()->
.
(
);
->
()->
.
(
);
->
()->
.
(
);
nullptr
;
nullptr
;
nullptr
;
nullptr
;
}
=
;
if
(
)
{
->
()->
.
(
this
, &
GuiDocumentCommonInterface
::
);
->
()->
.
(
this
, &
GuiDocumentCommonInterface
::
);
->
()->
.
(
this
, &
GuiDocumentCommonInterface
::
);
->
()->
.
(
this
, &
GuiDocumentCommonInterface
::
);
}
}
void
GuiDocumentCommonInterface
::
(
<
::
>
)
{
(
false
);
=
!
?
nullptr
:
.
() ==
0
?
nullptr
:
;
(
true
);
.
(
->
());
}
void
GuiDocumentCommonInterface
::
(
bool
)
{
if
(
)
{
FOREACH(Ptr<DocumentHyperlinkRun>, run, activeHyperlinks->hyperlinks)
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
<
>>&
= ::
vl
::
collections
::
(
);
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
<
>
;
__foreach_iterator__
.
(
run
);)
{
run
?
run
:
run
;
}
->
(
,
1
,
1
,
false
);
}
}
void
GuiDocumentCommonInterface
::
(
,
const
<
void
()>&
)
{
*
=
internalShortcutKeyManager
(
true
,
false
,
false
,
);
item
->
.
([=](
*
,
&
)
{
);
});
}
void
GuiDocumentCommonInterface
::
(
,
,
const
<
void
(
,
,
&,
&)>&
)
{
if
(
)
{
=
;
;
temp
;
}
<
>
=
->
()
(
,
,
true
);
if
(
originalModel
)
{
=
0
;
=
0
;
,
,
paragraphCount
,
lastParagraphLength
);
;
if
(
paragraphCount
==
0
)
{
caret
;
}
else
if
(
paragraphCount
==
1
)
{
caret
(
.
,
.
+
lastParagraphLength
);
}
else
{
caret
(
.
+
paragraphCount
-
1
,
lastParagraphLength
);
}
->
(
caret
,
caret
,
true
);
EnsureDocumentRectVisible
(
->
(
caret
,
true
));
->
.
(
->
());
();
.
(
->
());
<
>
=
->
()
(
,
caret
,
true
);
GuiDocumentUndoRedoProcessor
::
;
arguments
.
;
arguments
.
;
arguments
.
originalModel
;
arguments
.
;
arguments
.
caret
;
arguments
.
inputModel
;
(
arguments
);
}
}
void
GuiDocumentCommonInterface
::
(
,
,
const
<
void
(
,
)>&
)
{
if
(
)
{
=
;
;
temp
;
}
<
>
=
->
()
(
,
,
true
);
if
(
originalModel
)
{
,
);
<
>
=
->
()
(
,
,
true
);
GuiDocumentUndoRedoProcessor
::
;
arguments
.
;
arguments
.
;
arguments
.
originalModel
;
arguments
.
;
arguments
.
;
arguments
.
inputModel
;
(
arguments
);
}
}
void
GuiDocumentCommonInterface
::
MergeBaselineAndDefaultFont
(
<
>
)
{
(
->
());
if
(
)
{
(
);
}
}
void
GuiDocumentCommonInterface
::
()
{
auto
=
->
();
MergeBaselineAndDefaultFont
(
document
);
->
(
document
);
}
void
GuiDocumentCommonInterface
::
(
compositions
::
*
,
compositions
::
&
)
{
if
(
->
())
{
if
(
!=
)
{
->
(!
->
());
}
}
}
void
GuiDocumentCommonInterface
::
(
compositions
::
*
,
compositions
::
&
)
{
if
(
->
())
{
if
(
!=
)
{
->
(
true
);
();
}
}
}
void
GuiDocumentCommonInterface
::
(
compositions
::
*
,
compositions
::
&
)
{
if
(
->
())
{
->
(
false
);
}
}
void
GuiDocumentCommonInterface
::
(
compositions
::
*
,
compositions
::
&
)
{
if
(
->
())
{
if
(
!=
)
{
if
(
(
.
,
.
,
.
))
{
.
=
true
;
}
}
}
}
void
GuiDocumentCommonInterface
::
(
compositions
::
*
,
compositions
::
&
)
{
if
(
->
())
{
if
(
==
&&
.
!= (
wchar_t
)
::
&&
.
!= (
wchar_t
)
::
&&
.
!= (
wchar_t
)
::
&&
(
.
!= (
wchar_t
)
::
||
->
()) &&
!
.
)
{
<
>
(
1
);
text
0
]
(
.
);
(
->
(),
->
(),
->
IsCaretEndPreferFrontSide
(),
text
);
}
}
}
void
GuiDocumentCommonInterface
::
(
*
)
{
if
(
)
{
->
(
);
}
}
GuiDocumentCommonInterface
::
()
{
if
(
)
{
auto
=
->
();
auto
=
->
();
return
(
documentBounds
.
-
mouseAreaBounds
.
,
documentBounds
.
-
mouseAreaBounds
.
);
}
else
{
return
(
0
,
0
);
}
}
void
GuiDocumentCommonInterface
::
(
compositions
::
*
,
compositions
::
&
)
{
auto
=
();
auto
=
.
-
offset
.
;
auto
=
.
-
offset
.
;
if
(
->
())
{
switch
(
)
{
case
:
{
auto
=
->
({
x
,
y
});
bool
=
false
;
if
(
)
{
if
(
)
{
if
(
package
&&
(
,
package
) ==
0
)
{
(
true
);
handCursor
=
true
;
}
else
{
(
false
);
}
}
}
else
{
(
package
);
handCursor
=
;
}
if
(
handCursor
)
{
auto
=
()->
()->
(
::
);
(
cursor
);
}
else
{
(
nullptr
);
}
}
break
;
case
:
case
:
if
(
)
{
=
->
(
(
x
,
y
));
=
->
();
(
caret
,
true
, (
oldCaret
caret
?
->
IsCaretEndPreferFrontSide
():
caret
oldCaret
));
}
break
;
}
}
}
void
GuiDocumentCommonInterface
::
(
compositions
::
*
,
compositions
::
&
)
{
auto
=
();
auto
=
.
-
offset
.
;
auto
=
.
-
offset
.
;
if
(
->
())
{
switch
(
)
{
case
:
(
->
({
x
,
y
}));
break
;
case
:
case
:
{
->
();
=
->
(
(
x
,
y
));
=
->
();
if
(
caret
oldCaret
)
{
(
caret
,
.
,
caret
oldCaret
);
}
}
break
;
}
=
true
;
}
}
void
GuiDocumentCommonInterface
::
(
compositions
::
*
,
compositions
::
&
)
{
auto
=
();
auto
=
.
-
offset
.
;
auto
=
.
-
offset
.
;
if
(
->
())
{
=
false
;
switch
(
)
{
case
:
{
auto
=
->
({
x
,
y
});
if
(
)
{
if
(
package
&&
(
,
package
) ==
0
)
{
.
(
->
());
}
else
{
(
nullptr
);
}
}
}
break
;
default
:;
}
}
}
void
GuiDocumentCommonInterface
::
(
compositions
::
*
,
compositions
::
&
)
{
(
nullptr
);
}
GuiDocumentCommonInterface
::
()
{
return
(
0
,
0
);
}
void
GuiDocumentCommonInterface
::
(
)
{
}
void
GuiDocumentCommonInterface
::
()
{
FOREACH(Ptr<GuiDocumentItem>, item, documentItems.Values())
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
<
>>&
= ::
vl
::
collections
::
(
.
());
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
<
>
;
__foreach_iterator__
.
(
item
);)
{
item
=
false
;
}
}
void
GuiDocumentCommonInterface
::
()
{
FOREACH(Ptr<GuiDocumentItem>, item, documentItems.Values())
if
(
bool
=
true
)
for
(
const
::
vl
::
collections
::
<
<
>>&
= ::
vl
::
collections
::
(
.
());
__scope_variable_flag__
;
__scope_variable_flag__
=
false
)
for
(
<
>
;
__foreach_iterator__
.
(
item
);)
{
if
(
item
->
() !=
item
)
{
item
->
(
item
);
}
}
}
GuiDocumentCommonInterface
::
(
const
&
,
const
&
)
{
=
.
().
(
);
if
(
index
!= -
1
)
{
auto
=
.
()
index
];
auto
=
item
->
().
();
item
->
(
(
.
(),
(
0
,
0
)));
item
=
true
;
return
size
;
}
return
();
}
GuiDocumentCommonInterface
::
GuiDocumentCommonInterface
()
{
new
GuiDocumentUndoRedoProcessor
;
internalShortcutKeyManager
new
;
(
::
,
<
bool
()>(
this
, &
GuiDocumentCommonInterface
::
));
(
::
,
<
bool
()>(
this
, &
GuiDocumentCommonInterface
::
));
(
::
,
<
void
()>(
this
, &
GuiDocumentCommonInterface
::
));
(
::
,
<
bool
()>(
this
, &
GuiDocumentCommonInterface
::
));
(
::
,
<
bool
()>(
this
, &
GuiDocumentCommonInterface
::
));
(
::
,
<
bool
()>(
this
, &
GuiDocumentCommonInterface
::
));
}
GuiDocumentCommonInterface
::
~
GuiDocumentCommonInterface
()
{
}
<
>
GuiDocumentCommonInterface
::
()
{
return
->
();
}
void
GuiDocumentCommonInterface
::
(
<
>
)
{
(
0
);
();
();
if
(
)
{
if
(
.
() ==
0
)
{
.
(
new
);
}
MergeBaselineAndDefaultFont
(
);
}
->
(
);
}
bool
GuiDocumentCommonInterface
::
(
<
>
)
{
if
(
.
().
(
()))
{
return
false
;
}
.
(
(),
);
->
(
);
=
false
;
=
true
;
->
(
false
);
return
true
;
}
bool
GuiDocumentCommonInterface
::
(
<
>
)
{
=
.
().
(
());
if
(
index
== -
1
)
{
return
false
;
}
if
(
.
()
index
]
)
{
return
false
;
}
=
false
;
->
(
);
.
(
());
return
true
;
}
const
GuiDocumentCommonInterface
::
&
GuiDocumentCommonInterface
::
()
{
return
;
}
GuiDocumentCommonInterface
::
()
{
return
->
();
}
GuiDocumentCommonInterface
::
()
{
return
->
();
}
void
GuiDocumentCommonInterface
::
(
,
)
{
->
(
,
,
);
();
.
(
->
());
}
GuiDocumentCommonInterface
::
(
)
{
return
->
(
);
}
GuiDocumentCommonInterface
::
(
,
bool
)
{
return
->
(
,
);
}
void
GuiDocumentCommonInterface
::
(
,
,
,
bool
)
{
->
(
,
,
,
);
}
void
GuiDocumentCommonInterface
::
(
,
,
<
>
,
bool
)
{
(
,
, [=](
,
,
&
,
&
)
{
->
(
begin
,
end
,
,
);
paragraphCount
=
.
();
lastParagraphLength
=
paragraphCount
==
0
?
0
:
paragraphCount
-
1
]
(
false
).
();
});
}
void
GuiDocumentCommonInterface
::
(
,
,
bool
,
const
collections
::
<
>&
)
{
(
,
, [=, &text](
,
,
&
,
&
)
{
->
(
begin
,
end
,
,
);
paragraphCount
=
.
();
lastParagraphLength
=
paragraphCount
==
0
?
0
:
paragraphCount
-
1
].
();
});
}
void
GuiDocumentCommonInterface
::
(
,
,
<
>
)
{
(
,
, [=](
,
)
{
->
(
begin
,
end
,
);
});
}
void
GuiDocumentCommonInterface
::
(
,
,
<
>
)
{
(
,
, [=](
,
,
&
,
&
)
{
->
(
begin
,
end
,
);
paragraphCount
=
1
;
lastParagraphLength
=
(
::
);
});
}
void
GuiDocumentCommonInterface
::
(
,
,
,
const
&
,
const
&
,
const
&
)
{
(
(
,
),
(
,
), [=](
,
)
{
->
(
begin
.
,
begin
.
,
end
.
,
,
,
);
});
}
void
GuiDocumentCommonInterface
::
(
,
,
)
{
(
(
,
),
(
,
), [=](
,
)
{
->
(
begin
.
,
begin
.
,
end
.
);
});
}
void
GuiDocumentCommonInterface
::
(
,
,
const
&
)
{
(
,
, [=](
,
)
{
->
(
begin
,
end
,
);
});
}
void
GuiDocumentCommonInterface
::
(
,
)
{
(
,
, [=](
,
)
{
->
(
begin
,
end
);
});
}
void
GuiDocumentCommonInterface
::
(
const
&
,
const
&
)
{
->
(
,
);
GuiDocumentUndoRedoProcessor
::
;
arguments
.
;
arguments
.
;
(
arguments
);
}
void
GuiDocumentCommonInterface
::
(
,
)
{
(
,
, [=](
,
)
{
->
(
begin
,
end
);
});
}
<
>
GuiDocumentCommonInterface
::
(
,
)
{
if
(
)
{
=
;
;
temp
;
}
return
->
(
,
);
}
<
>
GuiDocumentCommonInterface
::
(
,
)
{
if
(
)
{
=
;
;
temp
;
}
return
->
(
,
);
}
void
GuiDocumentCommonInterface
::
(
,
,
const
collections
::
<
<
>>&
)
{
=
.
;
=
.
;
if
(
first
>
last
)
{
=
first
;
first
=
last
;
last
=
temp
;
}
<
>
=
->
();
if
(
0
<=
first
&&
first
<
document
.
() &&
0
<=
last
&&
last
<
document
.
() &&
last
-
first
+
1
==
.
())
{
<
GuiDocumentUndoRedoProcessor
::
>
=
new
GuiDocumentUndoRedoProcessor
::
;
arguments
=
first
;
arguments
=
last
;
arguments
.
(
.
());
arguments
.
(
.
());
for
(
=
first
;
i
<=
last
;
i
++)
{
arguments
i
-
first
]
document
i
]
;
arguments
i
-
first
]
i
-
first
];
}
->
(
,
,
);
(
arguments
);
}
}
void
GuiDocumentCommonInterface
::
(
,
,
<
>
)
{
#if defined VCZH_GCC && defined VCZH_64
#define abs labs
#endif
<
<
>>
(
(
.
-
.
) +
1
);
#if defined VCZH_GCC && defined VCZH_64
#undef abs
#endif
for
(
=
0
;
i
<
alignments
.
();
i
++)
{
alignments
i
]
;
}
(
,
,
alignments
);
}
<
>
GuiDocumentCommonInterface
::
SummarizeParagraphAlignment
(
,
)
{
if
(
)
{
=
;
;
temp
;
}
return
->
SummarizeParagraphAlignment
(
,
);
}
GuiDocumentCommonInterface
::
GetActiveHyperlinkReference
()
{
return
?
0
]
:
L""
;
}
GuiDocumentCommonInterface
::
GuiDocumentCommonInterface
::
()
{
return
;
}
void
GuiDocumentCommonInterface
::
(
)
{
if
(
)
{
(
nullptr
);
}
=
;
if
(
==
)
{
(
nullptr
);
}
else
{
*
=
()->
()->
(
::
);
(
cursor
);
}
}
void
GuiDocumentCommonInterface
::
()
{
=
->
()
.
()-
1
;
<
>
=
->
()
lastIndex
];
(
0
,
0
);
(
lastIndex
,
lastParagraph
(
false
).
());
(
begin
,
end
);
}
GuiDocumentCommonInterface
::
()
{
=
->
();
=
->
();
if
(
begin
end
)
{
=
begin
;
begin
end
;
end
temp
;
}
<
>
=
->
()
(
begin
,
end
,
false
);
return
model
(
true
);
}
void
GuiDocumentCommonInterface
::
(
const
&
)
{
<
>
;
{
stream
::
(
);
;
bool
=
true
;
while
(!
reader
.
())
{
=
reader
.
();
if
(
empty
)
{
paragraph
line
;
empty
=
false
;
}
else
if
(
line
!=
L""
)
{
paragraph
+=
L"\r\n"
+
line
;
}
else
{
paragraphs
.
(
paragraph
);
paragraph
=
L""
;
empty
=
true
;
}
}
if
(!
empty
)
{
paragraphs
.
(
paragraph
);
}
}
=
->
();
=
->
();
if
(
begin
end
)
{
=
begin
;
begin
end
;
end
temp
;
}
<
>
;
(
text
,
paragraphs
);
(
begin
,
end
,
->
IsCaretEndPreferFrontSide
(),
text
);
}
<
>
GuiDocumentCommonInterface
::
()
{
=
->
();
=
->
();
if
(
begin
end
)
{
=
begin
;
begin
end
;
end
temp
;
}
<
>
=
->
()
(
begin
,
end
,
true
);
return
model
;
}
void
GuiDocumentCommonInterface
::
(
<
>
)
{
=
->
();
=
->
();
if
(
begin
end
)
{
=
begin
;
begin
end
;
end
temp
;
}
(
begin
,
end
,
,
true
);
}
bool
GuiDocumentCommonInterface
::
()
{
return
==
&&
->
()!=
->
();
}
bool
GuiDocumentCommonInterface
::
()
{
return
->
()
->
();
}
bool
GuiDocumentCommonInterface
::
()
{
if
(
==
)
{
auto
=
()->
()->
();
return
reader
() ||
reader
() ||
reader
();
}
return
false
;
}
bool
GuiDocumentCommonInterface
::
()
{
if
(!
())
return
false
;
auto
=
()->
()->
();
auto
=
();
writer
(
model
);
writer
();
(
L""
);
return
true
;
}
bool
GuiDocumentCommonInterface
::
()
{
if
(!
())
return
false
;
auto
=
()->
()->
();
auto
=
();
writer
(
model
);
writer
();
return
true
;
}
bool
GuiDocumentCommonInterface
::
()
{
if
(!
())
return
false
;
auto
=
()->
()->
();
if
(
reader
())
{
if
(
auto
=
reader
())
{
(
document
);
return
true
;
}
}
if
(
reader
())
{
(
reader
());
return
true
;
}
if
(
reader
())
{
if
(
auto
=
reader
())
{
auto
=
<
>(
image
,
0
);
(
(),
(),
imageData
);
return
true
;
}
}
return
false
;
}
bool
GuiDocumentCommonInterface
::
()
{
return
==
&&
();
}
bool
GuiDocumentCommonInterface
::
()
{
return
==
&&
();
}
void
GuiDocumentCommonInterface
::
()
{
();
}
bool
GuiDocumentCommonInterface
::
()
{
return
();
}
void
GuiDocumentCommonInterface
::
()
{
();
}
bool
GuiDocumentCommonInterface
::
()
{
if
(
())
{
return
();
}
else
{
return
false
;
}
}
bool
GuiDocumentCommonInterface
::
()
{
if
(
())
{
return
();
}
else
{
return
false
;
}
}
void
::
BeforeControlTemplateUninstalled_
()
{
(
nullptr
);
}
void
::
AfterControlTemplateInstalled_
(
bool
)
{
auto
=
TypedControlTemplateObject
(
true
);
ct
->
();
if
(
)
{
->
(
ct
->
());
(
());
}
(
->
());
}
void
::
()
{
::
();
();
}
::
()
{
return
().
();
}
void
::
(
)
{
=
();
=
0
;
if
(
.
<
viewBounds
.
)
{
offset
=
.
-
viewBounds
.
;
}
else
if
(
.
>
viewBounds
.
)
{
offset
=
.
-
viewBounds
.
;
}
if
(
auto
=
())
{
scroll
->
(
viewBounds
.
+
offset
);
}
}
::
(
theme
::
)
:
(
)
{
(
true
);
(
);
(
this
,
->
(),
,
,
);
(
true
);
SetHorizontalAlwaysVisible
(
false
);
}
::
()
{
}
const
&
::
()
{
->
()
(
true
);
return
;
}
void
::
(
const
&
)
{
();
(
);
}
void
::
BeforeControlTemplateUninstalled_
()
{
}
void
::
AfterControlTemplateInstalled_
(
bool
)
{
auto
=
TypedControlTemplateObject
(
true
);
ct
->
();
if
(
)
{
->
(
ct
->
());
(
());
}
}
void
::
()
{
::
();
();
}
::
(
theme
::
)
:
(
)
{
(
true
);
(
);
(
this
,
,
,
,
);
}
::
()
{
}
const
&
::
()
{
->
()
(
true
);
return
;
}
void
::
(
const
&
)
{
();
(
);
}
}
}
}