You've already forked lazarus-ccr
* draw themed header item according to position. Issue 17467
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2200 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -8489,6 +8489,9 @@ end;
|
|||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
type
|
||||||
|
THeaderItemPosition = (thpLeft, thpCenter, thpRight);
|
||||||
|
|
||||||
procedure TVirtualTreeColumns.PaintHeader(DC: HDC; const R: TRect; HOffset: Integer);
|
procedure TVirtualTreeColumns.PaintHeader(DC: HDC; const R: TRect; HOffset: Integer);
|
||||||
|
|
||||||
// Main paint method to draw the header.
|
// Main paint method to draw the header.
|
||||||
@ -8498,6 +8501,9 @@ const
|
|||||||
(3, 5) {ascending}, (2, 4) {descending}
|
(3, 5) {ascending}, (2, 4) {descending}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
HotThemedHeaders: array[THeaderItemPosition] of TThemedHeader = (thHeaderItemLeftHot, thHeaderItemHot, thHeaderItemRightHot);
|
||||||
|
PressedThemedHeaders: array[THeaderItemPosition] of TThemedHeader = (thHeaderItemLeftPressed, thHeaderItemPressed, thHeaderItemRightPressed);
|
||||||
|
NormalThemedHeaders: array[THeaderItemPosition] of TThemedHeader = (thHeaderItemLeftNormal, thHeaderItemNormal, thHeaderItemRightNormal);
|
||||||
var
|
var
|
||||||
I, Y,
|
I, Y,
|
||||||
SortIndex: Integer;
|
SortIndex: Integer;
|
||||||
@ -8516,7 +8522,8 @@ var
|
|||||||
WrapCaption,
|
WrapCaption,
|
||||||
AdvancedOwnerDraw: Boolean;
|
AdvancedOwnerDraw: Boolean;
|
||||||
{$ifdef ThemeSupport}
|
{$ifdef ThemeSupport}
|
||||||
Details: TThemedElementDetails;
|
Details: TThemedElementDetails;
|
||||||
|
HeaderItemPosition: THeaderItemPosition;
|
||||||
{$endif ThemeSupport}
|
{$endif ThemeSupport}
|
||||||
|
|
||||||
PaintInfo: THeaderPaintInfo;
|
PaintInfo: THeaderPaintInfo;
|
||||||
@ -8708,13 +8715,18 @@ begin
|
|||||||
{$ifdef ThemeSupport}
|
{$ifdef ThemeSupport}
|
||||||
if tsUseThemes in FHeader.Treeview.FStates then
|
if tsUseThemes in FHeader.Treeview.FStates then
|
||||||
begin
|
begin
|
||||||
|
if I = GetFirstVisibleColumn then
|
||||||
|
HeaderItemPosition := thpLeft
|
||||||
|
else
|
||||||
|
HeaderItemPosition := thpCenter;
|
||||||
|
//todo?: handle autoresize header. LastColumn.HeaderItemPosition := thpRight
|
||||||
if IsDownIndex then
|
if IsDownIndex then
|
||||||
Details := ThemeServices.GetElementDetails(thHeaderItemPressed)
|
Details := ThemeServices.GetElementDetails(PressedThemedHeaders[HeaderItemPosition])
|
||||||
else
|
else
|
||||||
if IsHoverIndex then
|
if IsHoverIndex then
|
||||||
Details := ThemeServices.GetElementDetails(thHeaderItemHot)
|
Details := ThemeServices.GetElementDetails(HotThemedHeaders[HeaderItemPosition])
|
||||||
else
|
else
|
||||||
Details := ThemeServices.GetElementDetails(thHeaderItemNormal);
|
Details := ThemeServices.GetElementDetails(NormalThemedHeaders[HeaderItemPosition]);
|
||||||
ThemeServices.DrawElement(Handle, Details, PaintRectangle, @PaintRectangle);
|
ThemeServices.DrawElement(Handle, Details, PaintRectangle, @PaintRectangle);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
Reference in New Issue
Block a user