win32 themes: rename Dpi->PPI to comply with other LCL methods

This commit is contained in:
Ondrej Pokorny 2022-11-15 23:39:21 +01:00
parent 843dc303af
commit 6a48c90712
2 changed files with 25 additions and 25 deletions

View File

@ -17,22 +17,22 @@ uses
type
TThemeData = array[TThemedElement] of HTHEME;
TThemeDpiDataEntry = record
DPI: Integer;
TThemePPIDataEntry = record
PPI: Integer;
Data: TThemeData;
end;
PThemeDpiDataEntry = ^TThemeDpiDataEntry;
TThemeDpiData = array of TThemeDpiDataEntry;
PThemePPIDataEntry = ^TThemePPIDataEntry;
TThemePPIData = array of TThemePPIDataEntry;
{ TWin32ThemeServices }
TWin32ThemeServices = class(TThemeServices)
private
FThemeData: TThemeData; // Holds a list of theme data handles.
FThemeDpiData: TThemeDpiData;
FThemePPIData: TThemePPIData;
protected
function GetTheme(Element: TThemedElement): HTHEME;
function GetThemeForDPI(Element: TThemedElement; DPI: Integer): HTHEME;
function GetTheme(Element: TThemedElement): HTHEME; deprecated 'use GetThemeForPPI';
function GetThemeForPPI(Element: TThemedElement; PPI: Integer): HTHEME;
function InitThemes: Boolean; override;
procedure UnloadThemeData; override;
function UseThemes: Boolean; override;
@ -71,7 +71,7 @@ type
function HasTransparentParts(Details: TThemedElementDetails): Boolean; override;
procedure PaintBorder(Control: TObject; EraseLRCorner: Boolean); override;
property Theme[Element: TThemedElement]: HTHEME read GetTheme;
property ThemeForDPI[Element: TThemedElement; DPI: Integer]: HTHEME read GetThemeForDPI;
property ThemeForPPI[Element: TThemedElement; PPI: Integer]: HTHEME read GetThemeForPPI;
end;
implementation
@ -164,12 +164,12 @@ procedure TWin32ThemeServices.UnloadThemeData;
end;
end;
var
E: TThemeDpiDataEntry;
E: TThemePPIDataEntry;
begin
_Unload(FThemeData);
for E in FThemeDpiData do
for E in FThemePPIData do
_Unload(E.Data);
FThemeDpiData := nil;
FThemePPIData := nil;
end;
function TWin32ThemeServices.InitThemes: Boolean;
@ -379,30 +379,30 @@ begin
Result := FThemeData[Element];
end;
function TWin32ThemeServices.GetThemeForDPI(Element: TThemedElement; DPI: Integer): HTHEME;
function TWin32ThemeServices.GetThemeForPPI(Element: TThemedElement; PPI: Integer): HTHEME;
var
I: Integer;
E: PThemeDpiDataEntry;
E: PThemePPIDataEntry;
begin
if (WindowsVersion < wv10) or (DPI=0) or (DPI=ScreenInfo.PixelsPerInchX) then
if (WindowsVersion < wv10) or (PPI=0) or (PPI=ScreenInfo.PixelsPerInchX) then
Exit(GetTheme(Element));
E := nil;
for I := 0 to High(FThemeDpiData) do
if FThemeDpiData[I].DPI=DPI then
for I := 0 to High(FThemePPIData) do
if FThemePPIData[I].PPI=PPI then
begin
E := @FThemeDpiData[I];
E := @FThemePPIData[I];
break;
end;
if not Assigned(E) then
begin
FThemeDpiData := FThemeDpiData + [Default(TThemeDpiDataEntry)];
E := @FThemeDpiData[High(FThemeDpiData)];
E^.DPI := DPI;
FThemePPIData := FThemePPIData + [Default(TThemePPIDataEntry)];
E := @FThemePPIData[High(FThemePPIData)];
E^.PPI := PPI;
end;
if (E^.Data[Element] = 0) then
E^.Data[Element] := OpenThemeDataForDpi(0, ThemeDataNamesVista[Element], DPI);
E^.Data[Element] := OpenThemeDataForDpi(0, ThemeDataNamesVista[Element], PPI);
Result := E^.Data[Element];
end;

View File

@ -419,7 +419,7 @@ var
DPI: Integer;
begin
DPI := AMenuItem.GetDPI;
Theme := TWin32ThemeServices(ThemeServices).ThemeForDPI[teMenu, DPI];
Theme := TWin32ThemeServices(ThemeServices).ThemeForPPI[teMenu, DPI];
Result := Default(TVistaPopupMenuMetrics);
GetThemeMargins(Theme, DC, MENU_POPUPITEM, 0, TMT_CONTENTMARGINS, nil, Result.ItemMargins);
GetThemePartSize(Theme, DC, MENU_POPUPCHECK, 0, nil, TS_TRUE, Result.CheckSize);
@ -476,7 +476,7 @@ var
DPI: Integer;
begin
DPI := AMenuItem.GetDPI;
Theme := TWin32ThemeServices(ThemeServices).ThemeForDPI[teMenu, DPI];
Theme := TWin32ThemeServices(ThemeServices).ThemeForPPI[teMenu, DPI];
Result := Default(TVistaBarMenuMetrics);
GetThemeMargins(Theme, 0, MENU_BARITEM, 0, TMT_CONTENTMARGINS, nil, Result.ItemMargins);
@ -604,7 +604,7 @@ end;
procedure ThemeDrawElement(DC: HDC; Details: TThemedElementDetails; const DPI: Integer; const R: TRect; ClipRect: PRect); inline;
begin
with Details do
DrawThemeBackground(TWin32ThemeServices(ThemeServices).ThemeForDPI[Element, DPI], DC, Part, State, R, ClipRect);
DrawThemeBackground(TWin32ThemeServices(ThemeServices).ThemeForPPI[Element, DPI], DC, Part, State, R, ClipRect);
end;
procedure ThemeDrawText(DC: HDC; Details: TThemedElementDetails; const DPI: Integer;
@ -615,7 +615,7 @@ begin
with Details do
begin
w := UTF8ToUTF16(S);
DrawThemeText(TWin32ThemeServices(ThemeServices).ThemeForDPI[Element, DPI], DC, Part, State, PWideChar(w), Length(w), Flags, Flags2, R);
DrawThemeText(TWin32ThemeServices(ThemeServices).ThemeForPPI[Element, DPI], DC, Part, State, PWideChar(w), Length(w), Flags, Flags2, R);
end;
end;