From ca6535bd28ffa180adbf2a3db99b973b7209280d Mon Sep 17 00:00:00 2001 From: Carlo Barazzetta Date: Fri, 28 Jan 2022 18:46:56 +0100 Subject: [PATCH] Added RegisterThemeAttributes to Interface section to add custom styles (fixes #1) --- Demo/Projects/D10_4/ModernAppDemo.dproj | 7 - .../D10_4/VCLThemeSelectorLauncher.dproj | 4 +- .../D10_4/VCLThemeSelectorLauncher.res | Bin 2276752 -> 2525400 bytes Demo/Source/DImageCollections.dfm | 2 +- Demo/Source/DImageCollections.pas | 2 +- Demo/Source/EditForm.pas | 2 +- Demo/Source/LauncherForm.pas | 8 +- Demo/Source/uSplitView.pas | 2 +- Ext/VCLStyleUtils/Common/VCL.Styles.Utils.inc | 2 +- .../Common/Vcl.PlatformVclStylesActnCtrls.pas | 4 +- .../Common/Vcl.Styles.ColorTabs.pas | 6 +- .../Common/Vcl.Styles.ControlColor.pas | 2 +- .../Common/Vcl.Styles.DPIAware.pas | 58 ++--- .../Common/Vcl.Styles.DateTimePickers.pas | 16 +- .../Common/Vcl.Styles.DbGrid.pas | 6 +- Ext/VCLStyleUtils/Common/Vcl.Styles.Ext.pas | 16 +- Ext/VCLStyleUtils/Common/Vcl.Styles.Fixes.pas | 4 +- .../Common/Vcl.Styles.FontAwesome.pas | 64 +++--- .../Common/Vcl.Styles.FormStyleHooks.pas | 4 +- Ext/VCLStyleUtils/Common/Vcl.Styles.Hooks.pas | 64 +++--- Ext/VCLStyleUtils/Common/Vcl.Styles.NC.pas | 4 +- .../Common/Vcl.Styles.OwnerDrawFix.pas | 2 +- .../Common/Vcl.Styles.Preview.pas | 216 +++++++++--------- .../Common/Vcl.Styles.Utils.ComCtrls.pas | 6 +- .../Common/Vcl.Styles.Utils.Forms.pas | 14 +- .../Common/Vcl.Styles.Utils.Graphics.pas | 4 +- .../Common/Vcl.Styles.Utils.Menus.pas | 40 ++-- .../Common/Vcl.Styles.Utils.Misc.pas | 4 +- .../Common/Vcl.Styles.Utils.ScreenTips.pas | 2 +- .../Common/Vcl.Styles.Utils.StdCtrls.pas | 10 +- .../Common/Vcl.Styles.Utils.SysControls.pas | 20 +- .../Common/Vcl.Styles.Utils.SysStyleHook.pas | 16 +- .../Common/Vcl.Styles.Utils.SystemMenu.pas | 2 +- Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.pas | 62 ++--- .../Common/Vcl.Styles.UxTheme.pas | 70 +++--- .../Common/Vcl.Styles.WebBrowser.pas | 6 +- Source/CBVCLStylePreview.pas | 2 +- Source/CBVCLStylePreviewForm.pas | 2 +- Source/FVCLThemeSelector.dfm | 3 +- Source/FVCLThemeSelector.pas | 129 ++++++++++- 40 files changed, 511 insertions(+), 376 deletions(-) diff --git a/Demo/Projects/D10_4/ModernAppDemo.dproj b/Demo/Projects/D10_4/ModernAppDemo.dproj index 058522b..95a97a6 100644 --- a/Demo/Projects/D10_4/ModernAppDemo.dproj +++ b/Demo/Projects/D10_4/ModernAppDemo.dproj @@ -166,13 +166,6 @@ - Microsoft Office XP Sample Automation Server Wrapper Components - Ethea InstantSolutions 6 ReportBuilder Components - Ethea InstantSolutions 6 Rtl Library - Ethea InstantSolutions 6 Vcl Library - Ethea InstantSolutions 6 LibreOffice/OpenOffice Components - Ethea InstantSolutions 6 Framework Library - Microsoft Office 2000 Sample Automation Server Wrapper Components ModernAppDemo.dpr diff --git a/Demo/Projects/D10_4/VCLThemeSelectorLauncher.dproj b/Demo/Projects/D10_4/VCLThemeSelectorLauncher.dproj index 68715f1..ee0f802 100644 --- a/Demo/Projects/D10_4/VCLThemeSelectorLauncher.dproj +++ b/Demo/Projects/D10_4/VCLThemeSelectorLauncher.dproj @@ -54,7 +54,7 @@ false false false - "Aqua Light Slate|VCLSTYLE|$(BDSCOMMONDIR)\Styles\AquaLightSlate.vsf";CopperDark|VCLSTYLE|$(BDSCOMMONDIR)\Styles\CopperDark.vsf;Glow|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Glow.vsf;"Iceberg Classico|VCLSTYLE|$(BDSCOMMONDIR)\Styles\IcebergClassico.vsf";"Lavender Classico|VCLSTYLE|$(BDSCOMMONDIR)\Styles\LavenderClassico.vsf";Sky|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Sky.vsf;"Slate Classico|VCLSTYLE|$(BDSCOMMONDIR)\Styles\SlateClassico.vsf";"Tablet Dark|VCLSTYLE|$(BDSCOMMONDIR)\Styles\TabletDark.vsf";"Tablet Light|VCLSTYLE|$(BDSCOMMONDIR)\Styles\TabletLight.vsf";Windows10|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10.vsf;"Windows10 Blue|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10Blue.vsf";"Windows10 Dark|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10Dark.vsf";"Windows10 Green|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10Green.vsf";"Windows10 Purple|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10Purple.vsf";"Windows10 SlateGray|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10SlateGray.vsf" + "Aqua Light Slate|VCLSTYLE|$(BDSCOMMONDIR)\Styles\AquaLightSlate.vsf";CopperDark|VCLSTYLE|$(BDSCOMMONDIR)\Styles\CopperDark.vsf;Glow|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Glow.vsf;"Iceberg Classico|VCLSTYLE|$(BDSCOMMONDIR)\Styles\IcebergClassico.vsf";"Lavender Classico|VCLSTYLE|$(BDSCOMMONDIR)\Styles\LavenderClassico.vsf";Sky|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Sky.vsf;"Slate Classico|VCLSTYLE|$(BDSCOMMONDIR)\Styles\SlateClassico.vsf";"Tablet Dark|VCLSTYLE|$(BDSCOMMONDIR)\Styles\TabletDark.vsf";"Tablet Light|VCLSTYLE|$(BDSCOMMONDIR)\Styles\TabletLight.vsf";Windows10|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10.vsf;"Windows10 Blue|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10Blue.vsf";"Windows10 Dark|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10Dark.vsf";"Windows10 Green|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10Green.vsf";"Windows10 Purple|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10Purple.vsf";"Windows10 SlateGray|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows10SlateGray.vsf";"Windows11 Modern Dark|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows11_Modern_Dark.vsf";"Windows11 Modern Light|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows11_Modern_Light.vsf" 1033 @@ -129,8 +129,6 @@ VCLThemeSelectorLauncher.dpr - Microsoft Office 2000 Sample Automation Server Wrapper Components - Microsoft Office XP Sample Automation Server Wrapper Components diff --git a/Demo/Projects/D10_4/VCLThemeSelectorLauncher.res b/Demo/Projects/D10_4/VCLThemeSelectorLauncher.res index bcad57e426f5f7cd7d0ff22dd318b92301e3e14b..409278ccb0a5c077a3e0d92cb45ef4171980fe25 100644 GIT binary patch delta 248623 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 Xh7TV;!Z*ZaCc-E|)0v;Y19AwL=O diff --git a/Demo/Source/DImageCollections.dfm b/Demo/Source/DImageCollections.dfm index fdfc756..88e1c91 100644 --- a/Demo/Source/DImageCollections.dfm +++ b/Demo/Source/DImageCollections.dfm @@ -1,7 +1,7 @@ object ImageCollectionDataModule: TImageCollectionDataModule + OldCreateOrder = True Height = 302 Width = 584 - PixelsPerInch = 144 object SVGIconImageCollection: TSVGIconImageCollection SVGIconItems = < item diff --git a/Demo/Source/DImageCollections.pas b/Demo/Source/DImageCollections.pas index 18c0bc6..c748a97 100644 --- a/Demo/Source/DImageCollections.pas +++ b/Demo/Source/DImageCollections.pas @@ -3,7 +3,7 @@ { A full example of an HighDPI - VCL Themed enabled application } { See how to select the application Theme using VCLThemeSelector Form } { } -{ Copyright (c) 2020, 2021 (Ethea S.r.l.) } +{ Copyright (c) 2020-2022 (Ethea S.r.l.) } { Author: Carlo Barazzetta } { https://github.com/EtheaDev/VCLThemeSelector } { } diff --git a/Demo/Source/EditForm.pas b/Demo/Source/EditForm.pas index 8b833b7..8e2647c 100644 --- a/Demo/Source/EditForm.pas +++ b/Demo/Source/EditForm.pas @@ -3,7 +3,7 @@ { A full example of an HighDPI - VCL Themed enabled application } { See how to select the application Theme using VCLThemeSelector Form } { } -{ Copyright (c) 2020, 2021 (Ethea S.r.l.) } +{ Copyright (c) 2020-2022 (Ethea S.r.l.) } { Author: Carlo Barazzetta } { https://github.com/EtheaDev/VCLThemeSelector } { } diff --git a/Demo/Source/LauncherForm.pas b/Demo/Source/LauncherForm.pas index 171c0e6..c9d149a 100644 --- a/Demo/Source/LauncherForm.pas +++ b/Demo/Source/LauncherForm.pas @@ -2,7 +2,7 @@ { VCLThemeSelector Launcher by Carlo Barazzetta } { A simple example to launch VCLThemeSelector } { } -{ Copyright (c) 2020, 2021 (Ethea S.r.l.) } +{ Copyright (c) 2020-2022 (Ethea S.r.l.) } { Author: Carlo Barazzetta } { https://github.com/EtheaDev/VCLThemeSelector } { } @@ -113,4 +113,10 @@ procedure TLauncher.Loaded; inherited; end; +initialization + //Example: how to add a new style not present into VCLThemeSelectorLauncher.InitDefaultThemesAttributes + //download 'Radiant VCL Premium Style' from GetIt Package Manager and add to the + //appearance section of this application + RegisterThemeAttributes('Radiant', ttLight, clWebLightYellow, clWebLightgrey); + end. diff --git a/Demo/Source/uSplitView.pas b/Demo/Source/uSplitView.pas index c3c1e82..b0bff41 100644 --- a/Demo/Source/uSplitView.pas +++ b/Demo/Source/uSplitView.pas @@ -3,7 +3,7 @@ { A full example of an HighDPI - VCL Themed enabled application } { See how to select the application Theme using VCLThemeSelector Form } { } -{ Copyright (c) 2020, 2021 (Ethea S.r.l.) } +{ Copyright (c) 2020-2022 (Ethea S.r.l.) } { Author: Carlo Barazzetta } { https://github.com/EtheaDev/VCLThemeSelector } { } diff --git a/Ext/VCLStyleUtils/Common/VCL.Styles.Utils.inc b/Ext/VCLStyleUtils/Common/VCL.Styles.Utils.inc index 5c44b23..087efdf 100644 --- a/Ext/VCLStyleUtils/Common/VCL.Styles.Utils.inc +++ b/Ext/VCLStyleUtils/Common/VCL.Styles.Utils.inc @@ -14,7 +14,7 @@ // // // Portions created by Mahdi Safsafi [SMP3] e-mail SMP@LIVE.FR -// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2020 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2021 Rodrigo Ruz V. // All Rights Reserved. // //************************************************************************************************ diff --git a/Ext/VCLStyleUtils/Common/Vcl.PlatformVclStylesActnCtrls.pas b/Ext/VCLStyleUtils/Common/Vcl.PlatformVclStylesActnCtrls.pas index 3b0dece..670c0e4 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.PlatformVclStylesActnCtrls.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.PlatformVclStylesActnCtrls.pas @@ -15,7 +15,7 @@ // The Original Code is Vcl.PlatformVclStylesActnCtrls // // The Initial Developer of the Original Code is Rodrigo Ruz V. -// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2020 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2021 Rodrigo Ruz V. // All Rights Reserved. // //************************************************************************************************** @@ -409,7 +409,7 @@ procedure TThemedDropDownButtonEx.DrawBackground(var PaintRect: TRect); const CheckedState: array[Boolean] of TThemedToolBar = (ttbButtonHot, ttbButtonCheckedHot); var - LIndex : Integer; + LIndex: Integer; begin LIndex := SaveDC(Canvas.Handle); try diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.ColorTabs.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.ColorTabs.pas index ea11239..8137fbc 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.ColorTabs.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.ColorTabs.pas @@ -15,7 +15,7 @@ // The Original Code is Vcl.Styles.ColorTabs // // The Initial Developer of the Original Code is Rodrigo Ruz V. -// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2019 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2021 Rodrigo Ruz V. // All Rights Reserved. // // ************************************************************************************************** @@ -84,9 +84,11 @@ TTabControlStyleHookHelper = class helper for TTabControlStyleHook End; class function TCustomStyleEngineHelper.GetRegisteredStyleHooks - : TStyleHookDictionary; +: TStyleHookDictionary; +{$IF (CompilerVersion >=31)} var p: Pointer; +{$IFEND} begin {$IF (CompilerVersion <31)} Result := Self.FRegisteredStyleHooks; diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.ControlColor.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.ControlColor.pas index 5012b09..73a46cf 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.ControlColor.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.ControlColor.pas @@ -15,7 +15,7 @@ // The Original Code is Vcl.Styles.ControlColor // // The Initial Developer of the Original Code is Rodrigo Ruz V. -// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2019 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2021 Rodrigo Ruz V. // All Rights Reserved. // //************************************************************************************************** diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.DPIAware.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.DPIAware.pas index 757815e..cde0918 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.DPIAware.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.DPIAware.pas @@ -5,7 +5,7 @@ TMyForm = class(TForm) private - FStyleDPIAwareness : TStyleDPIAwareness; + FStyleDPIAwareness: TStyleDPIAwareness; procedure TFrmMain.FormCreate(Sender: TObject); begin @@ -40,7 +40,7 @@ TMyForm = class(TForm) procedure TFrmMain.FormCreate(Sender: TObject); Var - StyleDPIAwareness : TStyleDPIAwareness; + StyleDPIAwareness: TStyleDPIAwareness; begin StyleDPIAwareness := TStyleDPIAwareness.Create(Self); StyleDPIAwareness.Parent := Self; @@ -75,10 +75,10 @@ TStyleDPI = class(TObject) TStyleDPIAwareness = class(TControl) private - FScaledStyles : TStringList; - FRoundScalingFactor : Boolean; - FUseCustomScalingFactor : Boolean; - FCustomPPI : integer; + FScaledStyles: TStringList; + FRoundScalingFactor: Boolean; + FUseCustomScalingFactor: Boolean; + FCustomPPI: integer; FOldDPI: Integer; protected procedure CMStyleChanged(var Message: TMessage); message CM_STYLECHANGED; @@ -88,14 +88,14 @@ TStyleDPIAwareness = class(TControl) destructor Destroy; override; procedure AfterDPIChange(OldDPI, NewDPI: Integer); procedure BeforeDPIChange(OldDPI, NewDPI: Integer); - procedure ScaleStyle(Style : TCustomStyleServices); + procedure ScaleStyle(Style: TCustomStyleServices); property OldDPI: Integer read FOldDPI write FOldDPI; published - property RoundScalingFactor : Boolean read FRoundScalingFactor + property RoundScalingFactor: Boolean read FRoundScalingFactor write FRoundScalingFactor default True; - property UseCustomScalingFactor : Boolean read FUseCustomScalingFactor + property UseCustomScalingFactor: Boolean read FUseCustomScalingFactor write FUseCustomScalingFactor default False; - property CustomPPI : integer read FCustomPPI write FCustomPPI default 96; + property CustomPPI: integer read FCustomPPI write FCustomPPI default 96; end; implementation @@ -141,7 +141,7 @@ constructor TStyleDPIAwareness.Create(AOwner: TComponent); destructor TStyleDPIAwareness.Destroy; var - i : Integer; + i: Integer; begin for i := 0 to FScaledStyles.Count - 1 do TStyleDPI(FScaledStyles.Objects[i]).Free; @@ -161,7 +161,7 @@ procedure TStyleDPIAwareness.BeforeDPIChange(OldDPI, NewDPI: Integer); procedure TStyleDPIAwareness.RecreateForms; Var - i : Integer; + i: Integer; begin for i := 0 to Screen.FormCount - 1 do begin @@ -172,19 +172,19 @@ procedure TStyleDPIAwareness.RecreateForms; procedure TStyleDPIAwareness.ScaleStyle(Style: TCustomStyleServices); Var - NewDPI : integer; - SeStyle : TObject; - SeStyleSource : TObject; - BitmapList : TList; - BitMap : TBitmap; - StyleObjectList : Tlist; + NewDPI: integer; + SeStyle: TObject; + SeStyleSource: TObject; + BitmapList: TList; + BitMap: TBitmap; + StyleObjectList: Tlist; i,n: integer; - StyleObject : TComponent; + StyleObject: TComponent; obj: TStyleDPI; - procedure ProcessBitmapLink(BL : TObject); + procedure ProcessBitmapLink(BL: TObject); Var - BLType : TRTTIType; + BLType: TRTTIType; begin BLType := TRttiContext.Create.GetType(BL.ClassType); BLType.GetProperty('Bottom').SetValue(BL, Round((BLType.GetProperty('Bottom').GetValue(BL).AsInteger * NewDPI - 1) / OldDPI)); @@ -193,7 +193,7 @@ procedure TStyleDPIAwareness.ScaleStyle(Style: TCustomStyleServices); BLType.GetProperty('Top').SetValue(BL, Round(BLType.GetProperty('Top').GetValue(BL).AsInteger * NewDPI / OldDPI)); end; - procedure ProcessSO(aSO : TComponent; aSOType : TRTTIType); + procedure ProcessSO(aSO: TComponent; aSOType: TRTTIType); begin aSOType.GetProperty('Top').SetValue(aSO, Round(aSOType.GetProperty('Top').GetValue(aSO).AsInteger * NewDPI / OldDPI)); aSOType.GetProperty('Left').SetValue(aSO, Round(aSOType.GetProperty('Left').GetValue(aSO).AsInteger * NewDPI / OldDPI)); @@ -208,12 +208,12 @@ procedure TStyleDPIAwareness.ScaleStyle(Style: TCustomStyleServices); aSOType.GetProperty('TextMarginRight').SetValue(aSO, Round(aSOType.GetProperty('TextMarginRight').GetValue(aSO).AsInteger * NewDPI / OldDPI)); end; - procedure ProcessStyleObject(SO : TComponent); + procedure ProcessStyleObject(SO: TComponent); var i: integer; - ChildSo : TComponent; - SOType : TRTTIType; - BitmapLink : TObject; + ChildSo: TComponent; + SOType: TRTTIType; + BitmapLink: TObject; begin SOType := TRttiContext.Create.GetType(SO.ClassType); ProcessSO(SO, SOType); @@ -318,14 +318,14 @@ procedure TStyleDPIAwareness.ScaleStyle(Style: TCustomStyleServices); TGetBorderSize = function: TRect of object; TFormStyleHookFix = class helper for TFormStyleHook - procedure SetStretchedCaptionInc(Value : Integer); + procedure SetStretchedCaptionInc(Value: Integer); function GetBorderSizeAddr: Pointer; function Detour_GetBorderSize: TRect; end; var - Trampoline_TFormStyleHook_GetBorderSize : TGetBorderSize; - Detour_TFormStyleHook_GetBorderSize : TGetBorderSize; + Trampoline_TFormStyleHook_GetBorderSize: TGetBorderSize; + Detour_TFormStyleHook_GetBorderSize: TGetBorderSize; { TFormStyleHookFix } diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.DateTimePickers.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.DateTimePickers.pas index 27374b6..df4f7dd 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.DateTimePickers.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.DateTimePickers.pas @@ -15,7 +15,7 @@ // The Original Code is Vcl.Styles.DateTimePickers // // The Initial Developer of the Original Code is Rodrigo Ruz V. -// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2016 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2021 Rodrigo Ruz V. // All Rights Reserved. // //************************************************************************************************** @@ -66,8 +66,8 @@ TDateTimePickerStyleHookHelper = class helper for TDateTimePickerStyleHook procedure SetMouseOnButton(const Value: Boolean); public function GetButtonRect_: TRect; - property _FDroppedDown : Boolean read GetDroppedDown Write SetDroppedDown; - property _FMouseOnButton : Boolean read GetMouseOnButton Write SetMouseOnButton; + property _FDroppedDown: Boolean read GetDroppedDown Write SetDroppedDown; + property _FMouseOnButton: Boolean read GetMouseOnButton Write SetMouseOnButton; end; { TDateTimePickerStyleHookHelper } @@ -99,8 +99,8 @@ procedure TDateTimePickerStyleHookHelper.SetMouseOnButton(const Value: Boolean); { TDateTimePickerStyleHookFix } procedure TDateTimePickerStyleHookFix.SetColorsCalendar; Var - LTextColor, LBackColor : TColor; - LDateTimePicker : TDateTimePicker; + LTextColor, LBackColor: TColor; + LDateTimePicker: TDateTimePicker; begin LDateTimePicker:=TDateTimePicker(Control); //get the vcl styles colors @@ -176,7 +176,7 @@ procedure TDateTimePickerStyleHookFix.WMPaint(var Message: TMessage); LPaintStruct: TPaintStruct; LRect: TRect; LDetails: TThemedElementDetails; - sDateTime : string; + sDateTime: string; begin DC := Message.WParam; LCanvas := TCanvas.Create; @@ -203,8 +203,8 @@ procedure TDateTimePickerStyleHookFix.WMPaint(var Message: TMessage); //only works for DateFormat = dfShort case TDateTimePicker(Control).Kind of - dtkDate : sDateTime:=DateToStr(TDateTimePicker(Control).DateTime); - dtkTime : sDateTime:=TimeToStr(TDateTimePicker(Control).DateTime); + dtkDate: sDateTime:=DateToStr(TDateTimePicker(Control).DateTime); + dtkTime: sDateTime:=TimeToStr(TDateTimePicker(Control).DateTime); end; //draw the current date/time value diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.DbGrid.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.DbGrid.pas index 8d982dd..1dde326 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.DbGrid.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.DbGrid.pas @@ -15,7 +15,7 @@ // The Original Code is Vcl.Styles.DbGrid.pas. // // The Initial Developer of the Original Code is Rodrigo Ruz V. -// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2019 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2021 Rodrigo Ruz V. // All Rights Reserved. // //************************************************************************************************** @@ -57,7 +57,7 @@ TDbGridHelper = class helper for TCustomDBGrid function GetSelRow: Integer; procedure SetSelRow(const Value: Integer); public - property TitleOffset : Byte read GetTitleOffset; + property TitleOffset: Byte read GetTitleOffset; property Indicators: TCustomImageList read GetIndicators; property SelRow: Integer read GetSelRow write SetSelRow; end; @@ -95,7 +95,7 @@ procedure _WriteText(ACanvas: TCanvas; ARect: TRect; DX, DY: Integer; const ATex if (ACanvas.CanvasOrientation = coRightToLeft) and (not ARightToLeft) then ChangeBiDiModeAlignment(Alignment); case Alignment of - taLeftJustify : X := ARect.Left + DX; + taLeftJustify: X := ARect.Left + DX; taRightJustify: X := ARect.Right - ACanvas.TextWidth(AText) - 3; else X := ARect.Left + (ARect.Right - ARect.Left) shr 1 - (ACanvas.TextWidth(AText) shr 1); diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.Ext.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.Ext.pas index 7996af2..9fe3752 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.Ext.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.Ext.pas @@ -15,7 +15,7 @@ // The Original Code is Vcl.Styles.Ext.pas. // // The Initial Developer of the Original Code is Rodrigo Ruz V. -// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2020 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2021 Rodrigo Ruz V. // All Rights Reserved. // // ************************************************************************************************** @@ -1665,9 +1665,11 @@ procedure TVclStylesPreview.Paint; TextRect.Right := ButtonRect.Left; // Draw text + {$IF RTLVersion > 28} if Assigned(Application.Mainform) then CaptionBitmap.Canvas.Font.Size := Round(8*Application.MainForm.Monitor.PixelsPerInch / 96) else + {$IFEND} CaptionBitmap.Canvas.Font.Size := Round(8*Screen.PixelsPerInch / 96); Style.DrawText(CaptionBitmap.Canvas.Handle, CaptionDetails, FCaption, TextRect, [tfLeft, tfSingleLine, tfVerticalCenter]); @@ -1694,9 +1696,11 @@ procedure TVclStylesPreview.Paint; LDetails := Style.GetElementDetails(twFrameBottomActive); DrawStyleElement(FBitmap.Canvas.Handle, LDetails, CaptionRect, True, FStyle); + {$IF RTLVersion > 28} if Assigned(Application.Mainform) then FBitmap.Canvas.Font.Size := Round(8 * Application.MainForm.Monitor.PixelsPerInch / Screen.PixelsPerInch) else + {$IFEND} FBitmap.Canvas.Font.Size := 8; // Draw Main Menu @@ -1742,12 +1746,14 @@ procedure TVclStylesPreview.Paint; for i := 1 to 3 do begin ButtonRect.Top := LRect.Top + 30; + {$IF RTLVersion > 28} if Assigned(Application.Mainform) then begin ButtonRect.Width := Round(65 * Application.MainForm.Monitor.PixelsPerInch / 96); ButtonRect.Height := Round(25 * Application.MainForm.Monitor.PixelsPerInch / 96); end else + {$IFEND} begin ButtonRect.Width := Round(65 * Screen.PixelsPerInch / 96); ButtonRect.Height := Round(25 * Screen.PixelsPerInch / 96); @@ -1764,12 +1770,14 @@ procedure TVclStylesPreview.Paint; LDetails := Style.GetElementDetails(tbPushButtonNormal); ButtonRect.Left := BorderRect.Left + 2; ButtonRect.Top := ARect.Height - 45; + {$IF RTLVersion > 28} if Assigned(Application.Mainform) then begin ButtonRect.Width := Round(65 * Application.MainForm.Monitor.PixelsPerInch / 96); ButtonRect.Height := Round(25 * Application.MainForm.Monitor.PixelsPerInch / 96); end else + {$IFEND} begin ButtonRect.Width := Round(65 * Screen.PixelsPerInch / 96); ButtonRect.Height := Round(25 * Screen.PixelsPerInch / 96); @@ -1784,12 +1792,14 @@ procedure TVclStylesPreview.Paint; LDetails := Style.GetElementDetails(tbPushButtonHot); ButtonRect.Left := ButtonRect.Right + 2; ButtonRect.Top := ARect.Height - 45; + {$IF RTLVersion > 28} if Assigned(Application.Mainform) then begin ButtonRect.Width := Round(65 * Application.MainForm.Monitor.PixelsPerInch / 96); ButtonRect.Height := Round(25 * Application.MainForm.Monitor.PixelsPerInch / 96); end else + {$IFEND} begin ButtonRect.Width := Round(65 * Screen.PixelsPerInch / 96); ButtonRect.Height := Round(25 * Screen.PixelsPerInch / 96); @@ -1804,12 +1814,14 @@ procedure TVclStylesPreview.Paint; LDetails := Style.GetElementDetails(tbPushButtonPressed); ButtonRect.Left := ButtonRect.Right + 2; ButtonRect.Top := ARect.Height - 45; + {$IF RTLVersion > 28} if Assigned(Application.Mainform) then begin ButtonRect.Width := Round(65 * Application.MainForm.Monitor.PixelsPerInch / 96); ButtonRect.Height := Round(25 * Application.MainForm.Monitor.PixelsPerInch / 96); end else + {$IFEND} begin ButtonRect.Width := Round(65 * Screen.PixelsPerInch / 96); ButtonRect.Height := Round(25 * Screen.PixelsPerInch / 96); @@ -1824,12 +1836,14 @@ procedure TVclStylesPreview.Paint; LDetails := Style.GetElementDetails(tbPushButtonDisabled); ButtonRect.Left := ButtonRect.Right + 2; ButtonRect.Top := ARect.Height - 45; + {$IF RTLVersion > 28} if Assigned(Application.Mainform) then begin ButtonRect.Width := Round(65 * Application.MainForm.Monitor.PixelsPerInch / 96); ButtonRect.Height := Round(25 * Application.MainForm.Monitor.PixelsPerInch / 96); end else + {$IFEND} begin ButtonRect.Width := Round(65 * Screen.PixelsPerInch / 96); ButtonRect.Height := Round(25 * Screen.PixelsPerInch / 96); diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.Fixes.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.Fixes.pas index 9337546..00561ce 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.Fixes.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.Fixes.pas @@ -15,7 +15,7 @@ // The Original Code is Vcl.Styles.Fixes // // The Initial Developer of the Original Code is Rodrigo Ruz V. -// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2019 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2021 Rodrigo Ruz V. // All Rights Reserved. // // Contributors @@ -163,7 +163,7 @@ TComboBoxStyleHookHelper = class helper for TComboBoxStyleHook strict private function _getDroppedDown: Boolean; private - property _DroppedDown : Boolean read _getDroppedDown; + property _DroppedDown: Boolean read _getDroppedDown; end; {$IFEND} diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.FontAwesome.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.FontAwesome.pas index 474e04a..d183c3b 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.FontAwesome.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.FontAwesome.pas @@ -15,7 +15,7 @@ // The Original Code is Vcl.Styles.FontAwesome.pas. // // The Initial Developer of the Original Code is Rodrigo Ruz V. -// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2020 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2021 Rodrigo Ruz V. // All Rights Reserved. // //************************************************************************************************** @@ -577,25 +577,25 @@ interface //http://fortawesome.github.io/Font-Awesome/cheatsheet/ TFontAwesome = class private - FPrivateFontCollection : TGPPrivateFontCollection; + FPrivateFontCollection: TGPPrivateFontCollection; procedure LoadFontFromResource; public constructor Create; Destructor Destroy; override; - procedure DrawChar(DC: HDC; const AChar: Char; DestRect: TRect; AColor : TColor; Orientation : Integer = 0; ImageAlignment: TImageAlignment = iaLeft); overload; - procedure DrawChar(DC: HDC; const AChar: Char; DestRect: TRect; AFontHeight : Integer; AColor : TColor; Orientation : Integer = 0; ImageAlignment: TImageAlignment = iaLeft); overload; + procedure DrawChar(DC: HDC; const AChar: Char; DestRect: TRect; AColor: TColor; Orientation: Integer = 0; ImageAlignment: TImageAlignment = iaLeft); overload; + procedure DrawChar(DC: HDC; const AChar: Char; DestRect: TRect; AFontHeight: Integer; AColor: TColor; Orientation: Integer = 0; ImageAlignment: TImageAlignment = iaLeft); overload; - procedure DrawChar(DC: HDC; const ACode: Word; DestRect: TRect; AColor : TColor; Orientation : Integer = 0; ImageAlignment: TImageAlignment = iaLeft); overload; - procedure DrawChar(DC: HDC; const ACode: Word; DestRect: TRect; AFontHeight : Integer; AColor : TColor; Orientation : Integer = 0; ImageAlignment: TImageAlignment = iaLeft); overload; + procedure DrawChar(DC: HDC; const ACode: Word; DestRect: TRect; AColor: TColor; Orientation: Integer = 0; ImageAlignment: TImageAlignment = iaLeft); overload; + procedure DrawChar(DC: HDC; const ACode: Word; DestRect: TRect; AFontHeight: Integer; AColor: TColor; Orientation: Integer = 0; ImageAlignment: TImageAlignment = iaLeft); overload; - function GetIcon(const ACode: Word; Width, Height : Integer; AColor, ABackColor : TColor; Orientation : Integer = 0; ImageAlignment: TImageAlignment = iaLeft) : HICON; overload; - function GetIcon(const ACode: Word; Width, Height, CharX, CharY : Integer; AColor, ABackColor : TColor; Orientation : Integer = 0; ImageAlignment: TImageAlignment = iaLeft) : HICON; overload; + function GetIcon(const ACode: Word; Width, Height: Integer; AColor, ABackColor: TColor; Orientation: Integer = 0; ImageAlignment: TImageAlignment = iaLeft): HICON; overload; + function GetIcon(const ACode: Word; Width, Height, CharX, CharY: Integer; AColor, ABackColor: TColor; Orientation: Integer = 0; ImageAlignment: TImageAlignment = iaLeft): HICON; overload; end; {$IFDEF WinXCtrls} TFontAwesomeAnimated = class(TCustomActivityIndicator) private - FFontAwesomeCode : Word; - FColor, FBackColor : TColor; + FFontAwesomeCode: Word; + FColor, FBackColor: TColor; procedure SetFontAwesomeCode(const Value: Word); procedure SetColor(const Value: TColor); procedure SetBackColor(const Value: TColor); @@ -611,14 +611,14 @@ TFontAwesomeAnimated = class(TCustomActivityIndicator) property IndicatorColor; property IndicatorSize; property IndicatorType; - property Color : TColor read FColor write SetColor; - property BackColor : TColor read FBackColor write SetBackColor; - property FontAwesomeCode : Word read FFontAwesomeCode write SetFontAwesomeCode; + property Color: TColor read FColor write SetColor; + property BackColor: TColor read FBackColor write SetBackColor; + property FontAwesomeCode: Word read FFontAwesomeCode write SetFontAwesomeCode; end; {$ENDIF} var - FontAwesome : TFontAwesome; + FontAwesome: TFontAwesome; implementation @@ -656,8 +656,8 @@ destructor TFontAwesome.Destroy; procedure TFontAwesome.LoadFontFromResource; var - LStream : TResourceStream; - LStatus : TStatus; + LStream: TResourceStream; + LStatus: TStatus; cFonts: DWord; begin LStream := TResourceStream.Create(HInstance, 'fontawesome', RT_RCDATA); @@ -726,13 +726,13 @@ function TFontAwesome.GetIcon(const ACode: Word; Width, Height: Integer; AColor, Result := GetIcon(ACode, Width, Height, Width, Height, AColor, ABackColor, Orientation, ImageAlignment); end; -procedure TFontAwesome.DrawChar(DC: HDC; const ACode: Word; DestRect: TRect; AColor: TColor; Orientation : Integer = 0; ImageAlignment: TImageAlignment = iaLeft); +procedure TFontAwesome.DrawChar(DC: HDC; const ACode: Word; DestRect: TRect; AColor: TColor; Orientation: Integer = 0; ImageAlignment: TImageAlignment = iaLeft); begin DrawChar(DC, Chr(ACode), DestRect, AColor, Orientation, ImageAlignment); end; -procedure TFontAwesome.DrawChar(DC: HDC; const AChar: Char; DestRect: TRect; AColor: TColor; Orientation : Integer = 0; ImageAlignment: TImageAlignment = iaLeft); +procedure TFontAwesome.DrawChar(DC: HDC; const AChar: Char; DestRect: TRect; AColor: TColor; Orientation: Integer = 0; ImageAlignment: TImageAlignment = iaLeft); begin DrawChar(DC, AChar, DestRect, DestRect.Height, AColor, Orientation, ImageAlignment); end; @@ -748,11 +748,11 @@ procedure TFontAwesome.DrawChar(DC: HDC; const AChar: Char; DestRect: TRect; AFontHeight: Integer; AColor: TColor; Orientation: Integer; ImageAlignment: TImageAlignment); var - LFont : TGPFont; - LGPGraphics : TGPGraphics; - LBrush : TGPSolidBrush; - LColor : Cardinal; - LGPStringFormat : TGPStringFormat; + LFont: TGPFont; + LGPGraphics: TGPGraphics; + LBrush: TGPSolidBrush; + LColor: Cardinal; + LGPStringFormat: TGPStringFormat; LRect: TGPRectF; begin LGPGraphics := TGPGraphics.Create(DC); @@ -785,11 +785,11 @@ procedure TFontAwesome.DrawChar(DC: HDC; const AChar: Char; DestRect: TRect; //var // LogFont: TLogFont; -// AFont : HFONT; +// AFont: HFONT; // pOldFont: HGDIOBJ; // LColorRef: COLORREF; // OldMode: integer; -// uFormat : Cardinal; +// uFormat: Cardinal; //begin // if FFontHandle = 0 then exit; // @@ -821,11 +821,11 @@ procedure TFontAwesome.DrawChar(DC: HDC; const AChar: Char; DestRect: TRect; // uFormat := DT_SINGLELINE; // // case ImageAlignment of -// iaLeft : uFormat := uFormat or DT_LEFT; -// iaRight : uFormat := uFormat or DT_RIGHT; -// iaCenter : uFormat := uFormat or DT_CENTER; -// iaTop : uFormat := uFormat or DT_TOP; -// iaBottom : uFormat := uFormat or DT_BOTTOM; +// iaLeft: uFormat := uFormat or DT_LEFT; +// iaRight: uFormat := uFormat or DT_RIGHT; +// iaCenter: uFormat := uFormat or DT_CENTER; +// iaTop: uFormat := uFormat or DT_TOP; +// iaBottom: uFormat := uFormat or DT_BOTTOM; // end; // // uFormat := uFormat or DT_NOCLIP; @@ -934,8 +934,8 @@ procedure RotateBitmap(ABitmap: TBitmap; Degs: Integer; Resize: Boolean; ABackCo procedure TFontAwesomeAnimated.ReloadFrames; var - i, LFrameSize, LAngleDelta, LAngle : Integer; - LBitmap : TBitmap; + i, LFrameSize, LAngleDelta, LAngle: Integer; + LBitmap: TBitmap; begin TCustomActivityIndicatorShadow(Self).FFrameSize := 48; LFrameSize := TCustomActivityIndicatorShadow(Self).FFrameSize; diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.FormStyleHooks.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.FormStyleHooks.pas index 64c0952..13edcaf 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.FormStyleHooks.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.FormStyleHooks.pas @@ -15,7 +15,7 @@ // The Original Code is Vcl.Styles.FormStyleHooks.pas. // // The Initial Developer of the Original Code is Rodrigo Ruz V. -// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2019 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2021 Rodrigo Ruz V. // All Rights Reserved. // // ************************************************************************************************** @@ -195,7 +195,7 @@ function RectVCenter(var R: TRect; Bounds: TRect): TRect; { TFormStyleHookRgn } procedure TFormStyleHookRgn.WMWindowPosChanging(var Message - : TWMWindowPosChanging); +: TWMWindowPosChanging); var Changed: Boolean; diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.Hooks.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.Hooks.pas index 38dfc21..23743a2 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.Hooks.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.Hooks.pas @@ -16,7 +16,7 @@ // // The Initial Developer of the Original Code is Rodrigo Ruz V. // -// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2020 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2021 Rodrigo Ruz V. // // Contributor(s): Mahdi Safsafi. // @@ -74,11 +74,11 @@ TCommonCalendarClass = class(TCommonCalendar); VCLStylesLock: TCriticalSection = nil; LSetStylePtr: TSetStyle; - Trampoline_SetStyle : procedure(Self: TObject; Style: TCustomStyleServices); - Trampoline_user32_FillRect : function(hDC: hDC; const lprc: TRect; hbr: HBRUSH): Integer; stdcall; - Trampoline_user32_DrawEdge : function(hDC: hDC; var qrc: TRect; edge: UINT; grfFlags: UINT): BOOL; stdcall = nil; - Trampoline_user32_DrawFrameControl : function (DC: HDC; Rect: PRect; uType, uState: UINT): BOOL; stdcall = nil; - Trampoline_user32_LoadIconW : function (hInstance: HINST; lpIconName: PWideChar): HICON; stdcall = nil; + Trampoline_SetStyle: procedure(Self: TObject; Style: TCustomStyleServices); + Trampoline_user32_FillRect: function(hDC: hDC; const lprc: TRect; hbr: HBRUSH): Integer; stdcall; + Trampoline_user32_DrawEdge: function(hDC: hDC; var qrc: TRect; edge: UINT; grfFlags: UINT): BOOL; stdcall = nil; + Trampoline_user32_DrawFrameControl: function (DC: HDC; Rect: PRect; uType, uState: UINT): BOOL; stdcall = nil; + Trampoline_user32_LoadIconW: function (hInstance: HINST; lpIconName: PWideChar): HICON; stdcall = nil; Trampoline_user32_GetSysColorBrush: function(nIndex: Integer): HBRUSH; stdcall; {$IFDEF HOOK_UXTHEME} Trampoline_user32_LoadImageW: function (hInst: HINST; ImageName: LPCWSTR; ImageType: UINT; X, Y: Integer; Flags: UINT): THandle; stdcall = nil; @@ -148,7 +148,7 @@ function Detour_GetSysColorBrush(nIndex: Integer): HBRUSH; stdcall; The reason to change the previous code implementation is that the win32 graphics may differ with the VCL graphics: Eg: TColor is signed in VCL and Unsigned in Win32Api. - When hooking : keep always using the native way ! + When hooking: keep always using the native way ! Need Color ? Use GetObject with LOGBRUSH ! or use TBrushColorPair ! } @@ -216,7 +216,7 @@ function Detour_WinApi_DrawFrameControl(DC: HDC; Rect: PRect; uType, uState: UIN var LRect: TRect; LDetails: TThemedElementDetails; - CanDraw : Boolean; + CanDraw: Boolean; LThemedButton: TThemedButton; LThemedComboBox: TThemedComboBox; @@ -446,7 +446,7 @@ function Detour_WinApi_DrawFrameControl(DC: HDC; Rect: PRect; uType, uState: UIN Exit(Trampoline_user32_DrawFrameControl(DC, Rect, uType, uState)); end; -function GetStyleHighLightColor : TColor; +function GetStyleHighLightColor: TColor; begin if ColorIsBright(StyleServices.GetSystemColor(clBtnFace)) or not ColorIsBright(StyleServices.GetSystemColor(clHighlight)) then Result := StyleServices.GetSystemColor(clBtnText) @@ -456,10 +456,10 @@ function GetStyleHighLightColor : TColor; function Detour_LoadIconW(_hInstance: HINST; lpIconName: PWideChar): HICON; stdcall; var - s : string; - LIcon : TIcon; - LHandle : THandle; - MustRelease : Boolean; + s: string; + LIcon: TIcon; + LHandle: THandle; + MustRelease: Boolean; procedure DrawIcon(const ACode: Word); begin @@ -496,12 +496,12 @@ function Detour_LoadIconW(_hInstance: HINST; lpIconName: PWideChar): HICON; stdc if _hInstance=0 then case NativeUInt(lpIconName) of - 32518 : DrawIcon(fa_shield); - 32516 : DrawIcon(fa_info_circle); - 32515 : DrawIcon(fa_warning); - 32513 : DrawIcon(fa_minus_circle); - 32514 : DrawIcon(fa_question_circle); - 32517 : DrawIcon(fa_windows); + 32518: DrawIcon(fa_shield); + 32516: DrawIcon(fa_info_circle); + 32515: DrawIcon(fa_warning); + 32513: DrawIcon(fa_minus_circle); + 32514: DrawIcon(fa_question_circle); + 32517: DrawIcon(fa_windows); end; finally @@ -519,11 +519,11 @@ function Detour_LoadImageW(hInst: HINST; ImageName: LPCWSTR; ImageType: UINT; X, const ExplorerFrame = 'explorerframe.dll'; var - hModule : WinApi.Windows.HMODULE; - LBitmap : TBitmap; - s : string; - LRect, LRect2 : TRect; - LBackColor, LColor : TColor; + hModule: WinApi.Windows.HMODULE; + LBitmap: TBitmap; + s: string; + LRect, LRect2: TRect; + LBackColor, LColor: TColor; begin if not(ExecutingInMainThread) or StyleServices.IsSystemStyle or not(TSysStyleManager.Enabled) then Exit(Trampoline_user32_LoadImageW(hInst, ImageName, ImageType, X, Y, Flags)); @@ -694,10 +694,10 @@ function Detour_LoadImageW(hInst: HINST; ImageName: LPCWSTR; ImageType: UINT; X, 581: begin case NativeUInt(ImageName) of - 577 : LColor := StyleServices.GetSystemColor(clBtnText); - 578 : LColor := StyleServices.GetSystemColor(clHighlight); - 579 : LColor := StyleServices.GetSystemColor(clGrayText); - 581 : LColor := StyleServices.GetSystemColor(clBtnText); + 577: LColor := StyleServices.GetSystemColor(clBtnText); + 578: LColor := StyleServices.GetSystemColor(clHighlight); + 579: LColor := StyleServices.GetSystemColor(clGrayText); + 581: LColor := StyleServices.GetSystemColor(clBtnText); else LColor:= StyleServices.GetSystemColor(clBtnText); end; @@ -718,9 +718,9 @@ function Detour_LoadImageW(hInst: HINST; ImageName: LPCWSTR; ImageType: UINT; X, 582..584: begin case NativeUInt(ImageName) of - 582 : LColor := StyleServices.GetSystemColor(clBtnText); - 583 : LColor := StyleServices.GetSystemColor(clHighlight); - 584 : LColor := StyleServices.GetSystemColor(clGrayText); + 582: LColor := StyleServices.GetSystemColor(clBtnText); + 583: LColor := StyleServices.GetSystemColor(clHighlight); + 584: LColor := StyleServices.GetSystemColor(clGrayText); else LColor := StyleServices.GetSystemColor(clBtnText); end; @@ -796,7 +796,7 @@ function Detour_LoadImageW(hInst: HINST; ImageName: LPCWSTR; ImageType: UINT; X, {$IF CompilerVersion>=29} function Detour_SetWindowTheme(hwnd: HWND; pszSubAppName: LPCWSTR; pszSubIdList: LPCWSTR): HRESULT; stdcall; var - LControl : TWinControl; + LControl: TWinControl; begin if not(ExecutingInMainThread) then Exit(Trampoline_SetWindowTheme(hwnd, pszSubAppName, pszSubIdList)); diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.NC.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.NC.pas index 6256140..ea25369 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.NC.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.NC.pas @@ -15,7 +15,7 @@ // The Original Code is Vcl.Styles.NC.pas. // // The Initial Developer of the Original Code is Rodrigo Ruz V. -// Portions created by Rodrigo Ruz V. are Copyright (C) 2014-2020 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2014-2021 Rodrigo Ruz V. // All Rights Reserved. // // ************************************************************************************************** @@ -2296,7 +2296,7 @@ procedure TNCControl.SetVisible(const Value: Boolean); begin if FVisible <> Value then FVisible := Value; - // TODO : Add parent notification + // TODO: Add parent notification end; procedure TNCControl.SetWidth(const Value: Integer); diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.OwnerDrawFix.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.OwnerDrawFix.pas index 2c95d2b..fc0576a 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.OwnerDrawFix.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.OwnerDrawFix.pas @@ -15,7 +15,7 @@ // The Original Code is Vcl.Styles.OwnerDrawFix.pas. // // The Initial Developer of the Original Code is Rodrigo Ruz V. -// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2020 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2021 Rodrigo Ruz V. // All Rights Reserved. // // ************************************************************************************************** diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.Preview.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.Preview.pas index 9e6fdec..6fc8c44 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.Preview.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.Preview.pas @@ -11,37 +11,37 @@ interface TVisualStylePreview = class(TCustomControl) protected - FStyle : TCustomStyleServices; - FIcon : HICON; - FCaption : TCaption; - FRegion : HRGN; - FBitmap : TBitmap; - FPreviewType : TPreviewType; - FFormBorderSize : TRect; - FBkgColor : TColor; - FUnavailableText : string; - FSelectedText : string; - FHotText : string; - FNormalText : string; - FDisabledText : string; - FPressedText : string; - FButtonText : string; - FFileMenuText : string; - FEditMenuText : string; - FViewMenuText : string; - FHelpMenuText : string; - - procedure SetStyle(const aStyle : TCustomStyleServices); - - function GetFormBorderSize : TRect; - function GetMainMenuRect : TRect; - function GetTabsRect : TRect; - - function GetCaptionHeight : integer; - function GetLeftFormBorderWidth : integer; - function GetRightFormBorderWidth : integer; - function GetBottomFormBorderHeight : integer; - function RectVCenter(var aRect : TRect; aBounds : TRect): TRect; + FStyle: TCustomStyleServices; + FIcon: HICON; + FCaption: TCaption; + FRegion: HRGN; + FBitmap: TBitmap; + FPreviewType: TPreviewType; + FFormBorderSize: TRect; + FBkgColor: TColor; + FUnavailableText: string; + FSelectedText: string; + FHotText: string; + FNormalText: string; + FDisabledText: string; + FPressedText: string; + FButtonText: string; + FFileMenuText: string; + FEditMenuText: string; + FViewMenuText: string; + FHelpMenuText: string; + + procedure SetStyle(const aStyle: TCustomStyleServices); + + function GetFormBorderSize: TRect; + function GetMainMenuRect: TRect; + function GetTabsRect: TRect; + + function GetCaptionHeight: integer; + function GetLeftFormBorderWidth: integer; + function GetRightFormBorderWidth: integer; + function GetBottomFormBorderHeight: integer; + function RectVCenter(var aRect: TRect; aBounds: TRect): TRect; procedure DrawCaption; procedure DrawFormBorders; @@ -60,25 +60,25 @@ TVisualStylePreview = class(TCustomControl) destructor Destroy; override; procedure AfterConstruction; override; - property Icon : HICON read FIcon write FIcon; - property Style : TCustomStyleServices read FStyle write SetStyle; - property Caption : TCaption read FCaption write FCaption; - property Bitmap : TBitmap read FBitmap write FBitmap; - property UnavailableText : string read FUnavailableText write FUnavailableText; - property SelectedText : string read FSelectedText write FSelectedText; - property HotText : string read FHotText write FHotText; - property NormalText : string read FNormalText write FNormalText; - property DisabledText : string read FDisabledText write FDisabledText; - property PressedText : string read FPressedText write FPressedText; - property ButtonText : string read FButtonText write FButtonText; - property FileMenuText : string read FFileMenuText write FFileMenuText; - property EditMenuText : string read FEditMenuText write FEditMenuText; - property ViewMenuText : string read FViewMenuText write FViewMenuText; - property HelpMenuText : string read FHelpMenuText write FHelpMenuText; + property Icon: HICON read FIcon write FIcon; + property Style: TCustomStyleServices read FStyle write SetStyle; + property Caption: TCaption read FCaption write FCaption; + property Bitmap: TBitmap read FBitmap write FBitmap; + property UnavailableText: string read FUnavailableText write FUnavailableText; + property SelectedText: string read FSelectedText write FSelectedText; + property HotText: string read FHotText write FHotText; + property NormalText: string read FNormalText write FNormalText; + property DisabledText: string read FDisabledText write FDisabledText; + property PressedText: string read FPressedText write FPressedText; + property ButtonText: string read FButtonText write FButtonText; + property FileMenuText: string read FFileMenuText write FFileMenuText; + property EditMenuText: string read FEditMenuText write FEditMenuText; + property ViewMenuText: string read FViewMenuText write FViewMenuText; + property HelpMenuText: string read FHelpMenuText write FHelpMenuText; published - property PreviewType : TPreviewType read FPreviewType write FPreviewType; - property BkgColor : TColor read FBkgColor write FBkgColor; + property PreviewType: TPreviewType read FPreviewType write FPreviewType; + property BkgColor: TColor read FBkgColor write FBkgColor; property Align; property Anchors; property Visible; @@ -144,7 +144,7 @@ procedure TVisualStylePreview.AfterConstruction; FBitmap.PixelFormat := pf32bit; end; -procedure TVisualStylePreview.SetStyle(const aStyle : TCustomStyleServices); +procedure TVisualStylePreview.SetStyle(const aStyle: TCustomStyleServices); begin if (FStyle <> nil) then FreeAndNil(FStyle); @@ -152,10 +152,10 @@ procedure TVisualStylePreview.SetStyle(const aStyle : TCustomStyleServices); Refresh; end; -function TVisualStylePreview.GetCaptionHeight : integer; +function TVisualStylePreview.GetCaptionHeight: integer; var - LSize : TSize; - LDetails : TThemedElementDetails; + LSize: TSize; + LDetails: TThemedElementDetails; begin LDetails := FStyle.GetElementDetails(twCaptionActive); if Assigned(Application.Mainform) then @@ -165,10 +165,10 @@ function TVisualStylePreview.GetCaptionHeight : integer; Result := LSize.cy; end; -function TVisualStylePreview.GetLeftFormBorderWidth : integer; +function TVisualStylePreview.GetLeftFormBorderWidth: integer; var - LSize : TSize; - LDetails : TThemedElementDetails; + LSize: TSize; + LDetails: TThemedElementDetails; begin LDetails := FStyle.GetElementDetails(twFrameLeftActive); if Assigned(Application.Mainform) then @@ -178,10 +178,10 @@ function TVisualStylePreview.GetLeftFormBorderWidth : integer; Result := LSize.cx; end; -function TVisualStylePreview.GetRightFormBorderWidth : integer; +function TVisualStylePreview.GetRightFormBorderWidth: integer; var - LSize : TSize; - LDetails : TThemedElementDetails; + LSize: TSize; + LDetails: TThemedElementDetails; begin LDetails := FStyle.GetElementDetails(twFrameRightActive); if Assigned(Application.Mainform) then @@ -191,10 +191,10 @@ function TVisualStylePreview.GetRightFormBorderWidth : integer; Result := LSize.cx; end; -function TVisualStylePreview.GetBottomFormBorderHeight : integer; +function TVisualStylePreview.GetBottomFormBorderHeight: integer; var - LSize : TSize; - LDetails : TThemedElementDetails; + LSize: TSize; + LDetails: TThemedElementDetails; begin LDetails := FStyle.GetElementDetails(twFrameBottomActive); if Assigned(Application.Mainform) then @@ -212,7 +212,7 @@ function TVisualStylePreview.GetFormBorderSize: TRect; Result.Bottom := GetBottomFormBorderHeight; end; -function TVisualStylePreview.GetMainMenuRect : TRect; +function TVisualStylePreview.GetMainMenuRect: TRect; const MENU_ITEM_HEIGHT = 20; begin @@ -225,7 +225,7 @@ function TVisualStylePreview.GetMainMenuRect : TRect; Result.Bottom := Result.Top + MulDiv(MENU_ITEM_HEIGHT, Screen.PixelsPerInch, ORIGINAL_PPI); end; -function TVisualStylePreview.GetTabsRect : TRect; +function TVisualStylePreview.GetTabsRect: TRect; const TABS_HEIGHT = 27; begin @@ -238,7 +238,7 @@ function TVisualStylePreview.GetTabsRect : TRect; Result.Bottom := Result.Top + MulDiv(TABS_HEIGHT, Screen.PixelsPerInch, ORIGINAL_PPI); end; -function TVisualStylePreview.RectVCenter(var aRect : TRect; aBounds : TRect): TRect; +function TVisualStylePreview.RectVCenter(var aRect: TRect; aBounds: TRect): TRect; begin OffsetRect(aRect, - aRect.Left, - aRect.Top); OffsetRect(aRect, 0, (aBounds.Height - aRect.Height) div 2); @@ -249,9 +249,9 @@ function TVisualStylePreview.RectVCenter(var aRect : TRect; aBounds : TRect): TR procedure TVisualStylePreview.DrawDefaultPanel; var - LDetails : TThemedElementDetails; - LColor : TColor; - LRect : TRect; + LDetails: TThemedElementDetails; + LColor: TColor; + LRect: TRect; begin LRect := rect(0, 0, FBitmap.Width, FBitmap.Height); @@ -293,15 +293,15 @@ procedure TVisualStylePreview.DrawDefaultPanel; procedure TVisualStylePreview.DrawCaption; var - LClientRect : TRect; - LCaptionRect : TRect; - LTextRect : TRect; - LIconRect : TRect; - LButtonRect : TRect; - LDetails : TThemedElementDetails; - LCaptionDetails : TThemedElementDetails; - LIconDetails : TThemedElementDetails; - LRegion : HRGN; + LClientRect: TRect; + LCaptionRect: TRect; + LTextRect: TRect; + LIconRect: TRect; + LButtonRect: TRect; + LDetails: TThemedElementDetails; + LCaptionDetails: TThemedElementDetails; + LIconDetails: TThemedElementDetails; + LRegion: HRGN; begin LClientRect := ClientRect; LCaptionRect := Rect(0, 0, FBitmap.Width, FFormBorderSize.Top); @@ -374,8 +374,8 @@ procedure TVisualStylePreview.DrawCaption; procedure TVisualStylePreview.DrawFormBorders; var - LRect : TRect; - LDetails : TThemedElementDetails; + LRect: TRect; + LDetails: TThemedElementDetails; begin //Draw left border LRect := Rect(0, FFormBorderSize.Top, FFormBorderSize.Left, FBitmap.Height - FFormBorderSize.Bottom); @@ -397,11 +397,11 @@ procedure TVisualStylePreview.DrawMainMenu; const MENU_ITEM_WIDTH = 30; var - LMenuRect : TRect; - LItemRect : TRect; - LDetails : TThemedElementDetails; - LColor : TColor; - LWidth : integer; + LMenuRect: TRect; + LItemRect: TRect; + LDetails: TThemedElementDetails; + LColor: TColor; + LWidth: integer; begin LMenuRect := GetMainMenuRect; @@ -447,14 +447,14 @@ procedure TVisualStylePreview.DrawToolButtons; BUTTON_HEIGHT = 25; PANEL_PADDING = 10; var - LMenuRect : TRect; - LButtonRect : TRect; - LDetails : TThemedElementDetails; - LColor : TColor; - i : integer; - LWidth : integer; - LHeight : integer; - LPadding : integer; + LMenuRect: TRect; + LButtonRect: TRect; + LDetails: TThemedElementDetails; + LColor: TColor; + i: integer; + LWidth: integer; + LHeight: integer; + LPadding: integer; begin LMenuRect := GetMainMenuRect; if Assigned(Application.Mainform) then @@ -494,14 +494,14 @@ procedure TVisualStylePreview.DrawButtons; BUTTON_HEIGHT = 25; PANEL_PADDING = 10; var - LButtonRect : TRect; - LDetails : TThemedElementDetails; - LColor : TColor; - i : integer; - LCaption : string; - LWidth : integer; - LHeight : integer; - LPadding : integer; + LButtonRect: TRect; + LDetails: TThemedElementDetails; + LColor: TColor; + i: integer; + LCaption: string; + LWidth: integer; + LHeight: integer; + LPadding: integer; begin if Assigned(Application.Mainform) then begin @@ -563,13 +563,13 @@ procedure TVisualStylePreview.DrawTabs; TAB_WIDTH = 80; TAB_OFFSET = 3; var - LDetails : TThemedElementDetails; - LTabsRect : TRect; - LItemRect : TRect; - LWidth : integer; - LColor : TColor; - LFlags : TTextFormat; - LOffset : integer; + LDetails: TThemedElementDetails; + LTabsRect: TRect; + LItemRect: TRect; + LWidth: integer; + LColor: TColor; + LFlags: TTextFormat; + LOffset: integer; begin if Assigned(Application.Mainform) then begin @@ -650,8 +650,8 @@ procedure TVisualStylePreview.Paint; DrawDefaultPanel else case FPreviewType of - ptOriginal : DrawOriginalPreview; - ptTabs : DrawTabsPreview; + ptOriginal: DrawOriginalPreview; + ptTabs: DrawTabsPreview; end; Canvas.Draw(0, 0, FBitmap); diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.ComCtrls.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.ComCtrls.pas index 80f74c3..edbc16e 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.ComCtrls.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.ComCtrls.pas @@ -14,7 +14,7 @@ // // // Portions created by Mahdi Safsafi [SMP3] e-mail SMP@LIVE.FR -// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2020 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2021 Rodrigo Ruz V. // All Rights Reserved. // //************************************************************************************************ @@ -276,7 +276,7 @@ TSysToolbarButton = class TSysProgressBarStyleHook = class(TSysStyleHook) strict private FStep: Integer; - // FLastPos : Integer; + // FLastPos: Integer; FOrientation: TProgressBarOrientation; FTimer: TTimer; procedure TimerAction(Sender: TObject); @@ -2674,7 +2674,7 @@ procedure TSysLinkStyleHook.Paint(Canvas: TCanvas); var LDetails: TThemedElementDetails; LRect: TRect; - s : string; + s: string; begin LRect := SysControl.ClientRect; if GetBkMode(Canvas.Handle) = TRANSPARENT then diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.Forms.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.Forms.pas index 565671e..abe4f15 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.Forms.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.Forms.pas @@ -14,7 +14,7 @@ // // // Portions created by Mahdi Safsafi [SMP3] e-mail SMP@LIVE.FR -// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2020 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2021 Rodrigo Ruz V. // All Rights Reserved. // // ************************************************************************************************** @@ -100,8 +100,8 @@ TSysScrollingStyleHook = class(TMouseTrackSysControlStyleHook) function IsHorzScrollDisabled: Boolean; function IsVertScrollDisabled: Boolean; protected - property LstPos : Integer read FLstPos write FLstPos; - property AllowScrolling : Boolean read FAllowScrolling write FAllowScrolling; + property LstPos: Integer read FLstPos write FLstPos; + property AllowScrolling: Boolean read FAllowScrolling write FAllowScrolling; function NormalizePoint(const P: TPoint): TPoint; procedure Scroll(const Kind: TScrollBarKind; const ScrollType: TSysScrollingType; Pos, Delta: Integer); virtual; procedure DoScroll(const Kind: TScrollBarKind; const ScrollType: TSysScrollingType; Pos, Delta: Integer); @@ -1108,11 +1108,9 @@ procedure TSysDialogStyleHook.PaintNC(Canvas: TCanvas); Inc(TextRect.Left, R.Left); MoveWindowOrg(Canvas.Handle, 0, TextTopOffset); if Assigned(Application.Mainform) then - StyleServices.DrawText(Canvas.Handle, CaptionDetails, LText, TextRect, TextFormat, clRed - {$IF (CompilerVersion >= 33)}, Application.MainForm.Monitor.PixelsPerInch{$ENDIF}) + StyleServices.DrawText(Canvas.Handle, CaptionDetails, LText, TextRect, TextFormat, clRed{$IF RTLVersion > 32}, Application.MainForm.Monitor.PixelsPerInch{$IFEND}) else - StyleServices.DrawText(Canvas.Handle, CaptionDetails, LText, TextRect, TextFormat, clRed - {$IF (CompilerVersion >= 33)}, Screen.PixelsPerInch{$ENDIF}); + StyleServices.DrawText(Canvas.Handle, CaptionDetails, LText, TextRect, TextFormat, clRed{$IF RTLVersion > 32}, Screen.PixelsPerInch{$IFEND}); MoveWindowOrg(Canvas.Handle, 0, -TextTopOffset); end else @@ -1359,7 +1357,7 @@ procedure TSysDialogStyleHook.WMPaint(var Message: TMessage); procedure TSysDialogStyleHook.WMSetText(var Message: TMessage); var FRedraw: Boolean; - LBorderStyle : TFormBorderStyle; + LBorderStyle: TFormBorderStyle; begin LBorderStyle := BorderStyle; if (LBorderStyle = bsNone) or (WindowState = wsMinimized) or (StyleServices.IsSystemStyle) then diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.Graphics.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.Graphics.pas index 00b2df6..2086466 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.Graphics.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.Graphics.pas @@ -15,7 +15,7 @@ // The Original Code is Vcl.Styles.Utils.Graphics.pas. // // The Initial Developer of the Original Code is Rodrigo Ruz V. -// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2020 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2021 Rodrigo Ruz V. // All Rights Reserved. // // ************************************************************************************************** @@ -146,7 +146,7 @@ TColorFilter = class TBitmapFilter = class(TColorFilter) private - // FColorValue : Integer; + // FColorValue: Integer; FUseBitmap: Boolean; FSourceBitmap: TBitmap; public diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.Menus.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.Menus.pas index da0d525..28d88d5 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.Menus.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.Menus.pas @@ -14,7 +14,7 @@ // // // Portions created by Mahdi Safsafi [SMP3] e-mail SMP@LIVE.FR -// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2020 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2021 Rodrigo Ruz V. // All Rights Reserved. // // ************************************************************************************************** @@ -140,10 +140,10 @@ TSysPopupItem = class {$ENDREGION} var - FOffset : Integer; - FOffsetCache : Integer; - FSeparatorHeightCache : Integer; - FItemHeightCache : Integer; + FOffset: Integer; + FOffsetCache: Integer; + FSeparatorHeightCache: Integer; + FItemHeightCache: Integer; FItemsPainted: Boolean; FParentSubItemPainted: Boolean; FPreviousHotItemIndex: integer; @@ -153,11 +153,11 @@ TSysPopupItem = class FCount: integer; FMenu: HMENU; FVCLMenuItems: TMenuItem; - FNCRect : TRect; - FEnterWithKeyboard : Boolean; - FPersistentHotKeys : Boolean; + FNCRect: TRect; + FEnterWithKeyboard: Boolean; + FPersistentHotKeys: Boolean; - FMenuBarHook : TObject; + FMenuBarHook: TObject; function GetMenuFromHandle(AHandle: HWND): HMENU; function GetItemsCount: integer; procedure MNSELECTITEM(var Message: TMessage); message MN_SELECTITEM; @@ -171,20 +171,20 @@ TSysPopupItem = class const Style: TSysPopupItemStyle); Virtual; procedure PaintBackground(Canvas: TCanvas); override; procedure GetNbSeparator(var PNbSeparator: Integer; const PIndex: Integer); - function GetMenuItemHeight(const Index: Integer) : Integer; - function GetOffset(UseCache: Boolean) : Integer; + function GetMenuItemHeight(const Index: Integer): Integer; + function GetOffset(UseCache: Boolean): Integer; function ItemIsVisible(const Index: Integer): Boolean; procedure SetMaxOffset(); procedure RefreshMenu(); procedure GetItemHeight(); procedure GetSeparatorHeight(); function GetClientRectHeight(var PValue: TRect): Integer; - function GetItemClicked(var PButton: Byte; PInitPos: TPoint) : Integer; - function GetMousePos() : TPoint; + function GetItemClicked(var PButton: Byte; PInitPos: TPoint): Integer; + function GetMousePos(): TPoint; procedure WndProc(var Message: TMessage); override; procedure UpdateColors; override; procedure SetOffset(PValue: Integer); - function GetBottom(const Index: Integer) : Integer; + function GetBottom(const Index: Integer): Integer; public constructor Create(AHandle: THandle); override; Destructor Destroy; override; @@ -1269,7 +1269,7 @@ procedure TSysPopupStyleHook.GetNbSeparator(var PNbSeparator: Integer; const PIn end; end; -function TSysPopupStyleHook.GetMenuItemHeight(const Index: Integer) : Integer; +function TSysPopupStyleHook.GetMenuItemHeight(const Index: Integer): Integer; var LItemRect: TRect; begin @@ -1277,7 +1277,7 @@ function TSysPopupStyleHook.GetMenuItemHeight(const Index: Integer) : Integer; Result := LItemRect.Height; end; -function TSysPopupStyleHook.GetBottom(const Index: Integer) : Integer; +function TSysPopupStyleHook.GetBottom(const Index: Integer): Integer; var LItemRect: TRect; P: TPoint; @@ -1288,7 +1288,7 @@ function TSysPopupStyleHook.GetBottom(const Index: Integer) : Integer; Result := P.Y; end; -function TSysPopupStyleHook.GetOffset(UseCache: Boolean) : Integer; +function TSysPopupStyleHook.GetOffset(UseCache: Boolean): Integer; var LNbSeparator: Integer; begin @@ -1478,7 +1478,7 @@ procedure TSysPopupStyleHook.SetOffset(PValue: Integer); FOffsetCache := 0; end; -function TSysPopupStyleHook.GetItemClicked(var PButton: Byte; PInitPos: TPoint) : Integer; +function TSysPopupStyleHook.GetItemClicked(var PButton: Byte; PInitPos: TPoint): Integer; var ArrowHeight, i: Integer; R, LItemRect: TRect; @@ -1529,7 +1529,7 @@ function TSysPopupStyleHook.GetItemClicked(var PButton: Byte; PInitPos: TPoint) Result := -1; end; -function TSysPopupStyleHook.GetMousePos() : TPoint; +function TSysPopupStyleHook.GetMousePos(): TPoint; begin Result := Mouse.CursorPos; ScreenToClient(Handle, Result); @@ -2034,7 +2034,7 @@ function TSysPopupStyleHook.TSysPopupItem.GetVCLRealItem: TMenuItem; windows will delete this item but the VCL will not delete the item from Items property .And thats can cause the item to be painted ! Do not access VCLMenuItems.Items[Index] directly - => Instead , use this one : VCLItem . + => Instead , use this one: VCLItem . } VisibleItems := nil; Result := nil; diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.Misc.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.Misc.pas index 9ba1f55..4e3fd0d 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.Misc.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.Misc.pas @@ -14,7 +14,7 @@ // // The Original Code is Vcl.Styles.Utils.Misc.pas. // -// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2020 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2021 Rodrigo Ruz V. // All Rights Reserved. // // ************************************************************************************************** @@ -812,7 +812,7 @@ function WM_To_String(const WM_Message: Integer): string; Result := 'LM_SETITEM'; LM_GETITEM: Result := 'LM_GETITEM'; - // LM_GETIDEALSIZE : Result:= 'LM_GETIDEALSIZE'; + // LM_GETIDEALSIZE: Result:= 'LM_GETIDEALSIZE'; else begin diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.ScreenTips.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.ScreenTips.pas index afadcde..ac85d93 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.ScreenTips.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.ScreenTips.pas @@ -14,7 +14,7 @@ // // // Portions created by Mahdi Safsafi [SMP3] e-mail SMP@LIVE.FR -// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2019 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2021 Rodrigo Ruz V. // All Rights Reserved. // // ************************************************************************************************** diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.StdCtrls.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.StdCtrls.pas index 7ee9ffe..20781d4 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.StdCtrls.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.StdCtrls.pas @@ -14,7 +14,7 @@ // // // Portions created by Mahdi Safsafi [SMP3] e-mail SMP@LIVE.FR -// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2020 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2021 Rodrigo Ruz V. // All Rights Reserved. // // ************************************************************************************************** @@ -2021,8 +2021,8 @@ function TSysComboBoxStyleHook.CallDefaultListBoxProc(var Msg: TMessage): LRESUL if (FDefListBoxProc <> nil) then Result := CallWindowProc(FDefListBoxProc, FListHandle, Msg.Msg, Msg.wParam, Msg.lParam); except - on e : exception do - OutputDebugString(PWideChar('CallDefaultListBoxProc error : ' + e.message + chr(0))); + on e: exception do + OutputDebugString(PWideChar('CallDefaultListBoxProc error: ' + e.message + chr(0))); end; end; @@ -2586,7 +2586,7 @@ constructor TSysCheckBoxStyleHook.Create(AHandle: THandle); end; function TSysCheckBoxStyleHook.GetDrawState(State: TSysCheckBoxState) - : TThemedButton; +: TThemedButton; begin Result := tbButtonDontCare; @@ -2815,7 +2815,7 @@ constructor TSysRadioButtonStyleHook.Create(AHandle: THandle); end; function TSysRadioButtonStyleHook.GetDrawState(State: TSysCheckBoxState) - : TThemedButton; +: TThemedButton; begin Result := tbButtonDontCare; diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.SysControls.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.SysControls.pas index 4531ee2..8999f0b 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.SysControls.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.SysControls.pas @@ -14,7 +14,7 @@ // // // Portions created by Mahdi Safsafi [SMP3] e-mail SMP@LIVE.FR -// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2019 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2021 Rodrigo Ruz V. // All Rights Reserved. // // ************************************************************************************************** @@ -134,7 +134,7 @@ TSysStyleManager = class(TComponent) /// Collection of Styled Child Controls /// class property ChildRegSysStylesList: TObjectDictionary read FChildRegSysStylesList; - class procedure AddControlDirectly(Handle: HWND; const sClassName : string; IncludeChildControls : Boolean = False); + class procedure AddControlDirectly(Handle: HWND; const sClassName: string; IncludeChildControls: Boolean = False); end; @@ -242,16 +242,16 @@ procedure HookNotification(Action: TSysHookAction; Info: PControlInfo); inherited; end; -class procedure TSysStyleManager.AddControlDirectly(Handle: HWND; const sClassName : string; IncludeChildControls : Boolean = False); +class procedure TSysStyleManager.AddControlDirectly(Handle: HWND; const sClassName: string; IncludeChildControls: Boolean = False); var - LStyleHook : TSysStyleHook; - ParentStyle : DWORD; + LStyleHook: TSysStyleHook; + ParentStyle: DWORD; procedure AddChildControl(ChildHandle: HWND); var Info: TChildControlInfo; - sChildClassName : string; - LStyleHook : TSysStyleHook; + sChildClassName: string; + LStyleHook: TSysStyleHook; begin { Hook the control directly ! } ZeroMemory(@Info, sizeof(TChildControlInfo)); @@ -269,7 +269,7 @@ class procedure TSysStyleManager.AddControlDirectly(Handle: HWND; const sClassNa end; end; - function EnumChildProc(const hWindow: hWnd; const LParam : LParam): boolean; stdcall; + function EnumChildProc(const hWindow: hWnd; const LParam: LParam): boolean; stdcall; begin AddChildControl(hWindow); Result:= True; @@ -318,7 +318,7 @@ class function TSysStyleManager.HookActionCallBackCBT(nCode: Integer; wParam: wP procedure RemoveUnusedHooks; var - LHandle : THandle; + LHandle: THandle; begin for LHandle in TSysStyleManager.SysStyleHookList.Keys do if TSysStyleClass(TSysStyleManager.SysStyleHookList.Items[LHandle]).MustRemove then @@ -343,7 +343,7 @@ class function TSysStyleManager.HookActionCallBackCBT(nCode: Integer; wParam: wP procedure AddControl(Handle: HWND); var - LStyleHook : TSysStyleHook; + LStyleHook: TSysStyleHook; begin { Hook the control directly ! } RemoveUnusedHooks; diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.SysStyleHook.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.SysStyleHook.pas index 6d93b8a..ac535ba 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.SysStyleHook.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.SysStyleHook.pas @@ -15,7 +15,7 @@ // The Original Code is uSysStyleHook.pas. // // Portions created by Mahdi Safsafi [SMP3] e-mail SMP@LIVE.FR -// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2019 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2021 Rodrigo Ruz V. // All Rights Reserved. // // ************************************************************************************************** @@ -67,8 +67,8 @@ TSysControl = class FFont: TFont; FParent: TSysControl; FHandle: THandle; - FWindowClassName : string; - FDestroyed : Boolean; + FWindowClassName: string; + FDestroyed: Boolean; function GetParent: TSysControl; function GetParentHandle: THandle; function GetText: String; @@ -124,7 +124,7 @@ TSysControl = class property ControlID: Integer read GetControlID; property BoundsRect: TRect read GetBoundsRect; property IsChild: Boolean read IsControlChild; - property Destroyed : Boolean read FDestroyed write FDestroyed; //WM_DESTROY + property Destroyed: Boolean read FDestroyed write FDestroyed; //WM_DESTROY function DrawTextBiDiModeFlags(const Flags: Longint): Longint; function UseRightToLeftAlignment: Boolean; dynamic; function DrawTextBiDiModeFlagsReadingOnly: Longint; @@ -193,7 +193,7 @@ TSysStyleHook = class procedure UpdateColors; virtual; function PaintControls(AControl: HWND; DC: HDC): Boolean; property HookedDirectly: Boolean read FHookedDirectly write FHookedDirectly; - property MustRemove : Boolean read FMustRemove; + property MustRemove: Boolean read FMustRemove; public constructor Create(AHandle: THandle); virtual; Destructor Destroy; override; @@ -582,8 +582,8 @@ function TSysStyleHook.CallDefaultProc(var Msg: TMessage): LRESULT; if (FOrgWndProc <> 0) then Result := CallWindowProc(Pointer(FOrgWndProc), Handle, Msg.Msg, Msg.wParam, Msg.lParam); except - on e : exception do - OutputDebugString(PWideChar('CallDefaultProc error : ' + e.message + chr(0))); + on e: exception do + OutputDebugString(PWideChar('CallDefaultProc error: ' + e.message + chr(0))); end; end; @@ -1159,7 +1159,7 @@ procedure TSysStyleHook.WndProc(var Message: TMessage); var TempResult: LRESULT; ChildHandle: HWND; - ItemRemoved : Boolean; + ItemRemoved: Boolean; begin case Message.Msg of diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.SystemMenu.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.SystemMenu.pas index 629ea67..e36b41d 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.SystemMenu.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.SystemMenu.pas @@ -13,7 +13,7 @@ // and limitations under the License. // // The Initial Developer of the Original Code is Rodrigo Ruz V. -// Portions created by Rodrigo Ruz V. are Copyright (C) 2014-2019 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2014-2021 Rodrigo Ruz V. // All Rights Reserved. // // ************************************************************************************************** diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.pas index 2242e2a..38efbe0 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.Utils.pas @@ -15,7 +15,7 @@ // The Original Code is Vcl.Styles.Utils.pas. // // The Initial Developer of the Original Code is Rodrigo Ruz V. -// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2016 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2021 Rodrigo Ruz V. // All Rights Reserved. // //************************************************************************************************** @@ -36,27 +36,27 @@ interface TVclStylesUtils = class private - FClone : Boolean; - FStream : TStream; - FStyleExt : TCustomStyleExt; - FElements : TVCLStylesElements; + FClone: Boolean; + FStream: TStream; + FStyleExt: TCustomStyleExt; + FElements: TVCLStylesElements; //FSourceInfo: TSourceInfo; public - procedure SetFilters(Filters : TObjectList); + procedure SetFilters(Filters: TObjectList); procedure ApplyChanges; procedure SaveToFile(const FileName: string); //property SourceInfo: TSourceInfo read FSourceInfo; - property StyleExt : TCustomStyleExt read FStyleExt; - property Elements : TVCLStylesElements read FElements write FElements; - constructor Create(const StyleName : string;Clone:Boolean=False); + property StyleExt: TCustomStyleExt read FStyleExt; + property Elements: TVCLStylesElements read FElements write FElements; + constructor Create(const StyleName: string;Clone:Boolean=False); destructor Destroy;override; - class procedure SaveSettings(const FileName:String;Elements :TVCLStylesElements; FilterType : TVCLStylesFilter;Filters : TObjectList); - class procedure LoadSettings(const FileName:String;var Elements :TVCLStylesElements; var FilterType : TVCLStylesFilter;Filters : TObjectList); + class procedure SaveSettings(const FileName:String;Elements :TVCLStylesElements; FilterType: TVCLStylesFilter;Filters: TObjectList); + class procedure LoadSettings(const FileName:String;var Elements :TVCLStylesElements; var FilterType: TVCLStylesFilter;Filters: TObjectList); //class procedure LoadAndApplySettings(const FileName:String); end; const - VCLStylesFilterNames : Array[TVCLStylesFilter] of string = ('HSL','RGB','Blend','Texture Blend'); + VCLStylesFilterNames: Array[TVCLStylesFilter] of string = ('HSL','RGB','Blend','Texture Blend'); implementation @@ -70,7 +70,7 @@ implementation { TVclStylesUtils } -constructor TVclStylesUtils.Create(const StyleName : string;Clone:Boolean=False); +constructor TVclStylesUtils.Create(const StyleName: string;Clone:Boolean=False); var FSourceInfo: TSourceInfo; begin @@ -117,11 +117,11 @@ procedure TVclStylesUtils.ApplyChanges; end; end; -class procedure TVclStylesUtils.SaveSettings(const FileName:String;Elements :TVCLStylesElements; FilterType : TVCLStylesFilter;Filters : TObjectList); +class procedure TVclStylesUtils.SaveSettings(const FileName:String;Elements :TVCLStylesElements; FilterType: TVCLStylesFilter;Filters: TObjectList); var - Doc : IXMLDocument; - RootNode, ChildNode, oNode : IXMLNode; - LFilter : TBitmapFilter; + Doc: IXMLDocument; + RootNode, ChildNode, oNode: IXMLNode; + LFilter: TBitmapFilter; begin Doc :=TXMLDocument.Create(nil); try @@ -149,16 +149,16 @@ class procedure TVclStylesUtils.SaveSettings(const FileName:String;Elements :TVC end; end; -class procedure TVclStylesUtils.LoadSettings(const FileName:String;var Elements :TVCLStylesElements; var FilterType : TVCLStylesFilter;Filters : TObjectList); +class procedure TVclStylesUtils.LoadSettings(const FileName:String;var Elements :TVCLStylesElements; var FilterType: TVCLStylesFilter;Filters: TObjectList); var - Doc : IXMLDocument; - RootNode, ChildNode, oNode : IXMLNode; + Doc: IXMLDocument; + RootNode, ChildNode, oNode: IXMLNode; LFilterType :TVCLStylesFilter; - i : Integer; - LClassName : string; - Ctx : TRttiContext; - RttiInstanceType : TRttiInstanceType; - Value : TValue; + i: Integer; + LClassName: string; + Ctx: TRttiContext; + RttiInstanceType: TRttiInstanceType; + Value: TValue; begin Doc :=LoadXMLDocument(FileName); try @@ -215,14 +215,14 @@ procedure TVclStylesUtils.SaveToFile(const FileName: string); procedure TVclStylesUtils.SetFilters(Filters: TObjectList); var - LBitmap : TBitmap; + LBitmap: TBitmap; BitmapList: TObjectList; - Index : Integer; - Filter : TBitmapFilter; - Element : TIdentMapEntry; - LColor : TColor; + Index: Integer; + Filter: TBitmapFilter; + Element: TIdentMapEntry; + LColor: TColor; StyleColor: TStyleColor; - StyleFont : TStyleFont; + StyleFont: TStyleFont; begin if vseBitmaps in FElements then begin diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.UxTheme.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.UxTheme.pas index 52daccf..074306c 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.UxTheme.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.UxTheme.pas @@ -15,7 +15,7 @@ // The Original Code is Vcl.Styles.UxTheme.pas. // // The Initial Developer of the Original Code is Rodrigo Ruz V. -// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2020 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2021 Rodrigo Ruz V. // All Rights Reserved. // // ************************************************************************************************** @@ -154,30 +154,30 @@ implementation type TDrawThemeBackground = function(hTheme: hTheme; hdc: hdc; iPartId, iStateId: Integer; const pRect: TRect; Foo: Pointer): HRESULT; stdcall; - TFuncDrawThemeBackground = function(hTheme: HTHEME; hdc: HDC; iPartId, iStateId: Integer; const pRect: TRect; Foo: Pointer; Trampoline : TDrawThemeBackground; LThemeClass : string; hwnd : HWND): HRESULT; stdcall; + TFuncDrawThemeBackground = function(hTheme: HTHEME; hdc: HDC; iPartId, iStateId: Integer; const pRect: TRect; Foo: Pointer; Trampoline: TDrawThemeBackground; LThemeClass: string; hwnd: HWND): HRESULT; stdcall; var - Trampoline_UxTheme_OpenThemeDataEx : function(hwnd: HWND; pszClassList: LPCWSTR; dwFlags: DWORD): HTHEME; stdcall = nil; - Trampoline_UxTheme_OpenThemeData : function(hwnd: HWND; pszClassList: LPCWSTR): HTHEME; stdcall = nil; + Trampoline_UxTheme_OpenThemeDataEx: function(hwnd: HWND; pszClassList: LPCWSTR; dwFlags: DWORD): HTHEME; stdcall = nil; + Trampoline_UxTheme_OpenThemeData: function(hwnd: HWND; pszClassList: LPCWSTR): HTHEME; stdcall = nil; {$IF CompilerVersion >= 30} - Trampoline_UxTheme_OpenThemeDataForDPI : function(hwnd: HWND; pszClassList: LPCWSTR; dpi: UINT): HTHEME; stdcall = nil; + Trampoline_UxTheme_OpenThemeDataForDPI: function(hwnd: HWND; pszClassList: LPCWSTR; dpi: UINT): HTHEME; stdcall = nil; {$IFEND} - Trampoline_UxTheme_CloseThemeData : function(hTheme: HTHEME): HRESULT; stdcall = nil; - Trampoline_UxTheme_DrawThemeBackground : function(hTheme: HTHEME; hdc: HDC; iPartId, iStateId: Integer; const pRect: TRect; pClipRect: Pointer): HRESULT; stdcall = nil; - Trampoline_UxTheme_DrawThemeBackgroundEx : function(hTheme: HTHEME; hdc: HDC; iPartId, iStateId: Integer; const pRect: TRect; pOptions: Pointer): HResult; stdcall = nil; - Trampoline_UxTheme_GetThemeColor : function(hTheme: HTHEME; iPartId, iStateId, iPropId: Integer; var pColor: COLORREF): HRESULT; stdcall = nil; - Trampoline_UxTheme_GetThemeSysColor : function(hTheme: HTHEME; iColorId: Integer): COLORREF; stdcall = nil; - Trampoline_UxTheme_GetThemeSysColorBrush : function(hTheme: HTHEME; iColorId: Integer): HBRUSH; stdcall = nil; - Trampoline_UxTheme_DrawThemeText : function(hTheme: HTHEME; hdc: HDC; iPartId, iStateId: Integer; pszText: LPCWSTR; iCharCount: Integer; dwTextFlags, dwTextFlags2: DWORD; const pRect: TRect): HRESULT; stdcall = nil; - Trampoline_UxTheme_DrawThemeTextEx : function(hTheme: HTHEME; hdc: HDC; iPartId: Integer; iStateId: Integer; pszText: LPCWSTR; cchText: Integer; dwTextFlags: DWORD; pRect: PRect; var pOptions: TDTTOpts): HResult; stdcall = nil; - Trampoline_UxTheme_DrawThemeEdge : function(hTheme: HTHEME; hdc: HDC; iPartId, iStateId: Integer; const pDestRect: TRect; uEdge, uFlags: UINT; pContentRect: PRECT): HRESULT; stdcall = nil; + Trampoline_UxTheme_CloseThemeData: function(hTheme: HTHEME): HRESULT; stdcall = nil; + Trampoline_UxTheme_DrawThemeBackground: function(hTheme: HTHEME; hdc: HDC; iPartId, iStateId: Integer; const pRect: TRect; pClipRect: Pointer): HRESULT; stdcall = nil; + Trampoline_UxTheme_DrawThemeBackgroundEx: function(hTheme: HTHEME; hdc: HDC; iPartId, iStateId: Integer; const pRect: TRect; pOptions: Pointer): HResult; stdcall = nil; + Trampoline_UxTheme_GetThemeColor: function(hTheme: HTHEME; iPartId, iStateId, iPropId: Integer; var pColor: COLORREF): HRESULT; stdcall = nil; + Trampoline_UxTheme_GetThemeSysColor: function(hTheme: HTHEME; iColorId: Integer): COLORREF; stdcall = nil; + Trampoline_UxTheme_GetThemeSysColorBrush: function(hTheme: HTHEME; iColorId: Integer): HBRUSH; stdcall = nil; + Trampoline_UxTheme_DrawThemeText: function(hTheme: HTHEME; hdc: HDC; iPartId, iStateId: Integer; pszText: LPCWSTR; iCharCount: Integer; dwTextFlags, dwTextFlags2: DWORD; const pRect: TRect): HRESULT; stdcall = nil; + Trampoline_UxTheme_DrawThemeTextEx: function(hTheme: HTHEME; hdc: HDC; iPartId: Integer; iStateId: Integer; pszText: LPCWSTR; cchText: Integer; dwTextFlags: DWORD; pRect: PRect; var pOptions: TDTTOpts): HResult; stdcall = nil; + Trampoline_UxTheme_DrawThemeEdge: function(hTheme: HTHEME; hdc: HDC; iPartId, iStateId: Integer; const pDestRect: TRect; uEdge, uFlags: UINT; pContentRect: PRECT): HRESULT; stdcall = nil; - THThemesClasses : TDictionary; - THThemesHWND : TDictionary; + THThemesClasses: TDictionary; + THThemesHWND: TDictionary; - FuncsDrawThemeBackground : TDictionary; + FuncsDrawThemeBackground: TDictionary; - VCLStylesLock : TCriticalSection = nil; + VCLStylesLock: TCriticalSection = nil; { Helper methods } @@ -530,7 +530,7 @@ function Detour_UxTheme_GetThemeSysColorBrush(hTheme: hTheme; iColorId: Integer) Doesn't affect Compressed files font color (blue) } -function Detour_UxTheme_GetThemeColor(hTheme: hTheme; iPartId, iStateId, iPropId: Integer; var pColor: COLORREF) : HRESULT; stdcall; +function Detour_UxTheme_GetThemeColor(hTheme: hTheme; iPartId, iStateId, iPropId: Integer; var pColor: COLORREF): HRESULT; stdcall; var LThemeClass: string; begin @@ -677,8 +677,8 @@ function Detour_UxTheme_GetThemeColor(hTheme: hTheme; iPartId, iStateId, iPropId case iPartId of 9: case iStateId of - 1 : pColor := ColorToRGB(StyleServices.GetSystemColor(clWindow)); - 2 : pColor := ColorToRGB(StyleServices.GetSystemColor(clHighlight)); + 1: pColor := ColorToRGB(StyleServices.GetSystemColor(clWindow)); + 2: pColor := ColorToRGB(StyleServices.GetSystemColor(clHighlight)); end; end; @@ -699,7 +699,7 @@ function Detour_UxTheme_GetThemeColor(hTheme: hTheme; iPartId, iStateId, iPropId case iPartId of 13: case iStateId of - 0 : pColor := ColorToRGB(StyleServices.GetSystemColor(clBtnFace)); + 0: pColor := ColorToRGB(StyleServices.GetSystemColor(clBtnFace)); end; end; @@ -721,7 +721,7 @@ function Detour_UxTheme_GetThemeColor(hTheme: hTheme; iPartId, iStateId, iPropId case iPartId of 11: case iStateId of - 0 : pColor := ColorToRGB(StyleServices.GetStyleColor(scPanel)); + 0: pColor := ColorToRGB(StyleServices.GetStyleColor(scPanel)); end; end; @@ -1181,12 +1181,12 @@ function Detour_UxTheme_DrawThemeText(hTheme: hTheme; hdc: hdc; iPartId, iStateI LDetails := StyleServices.GetElementDetails(tmPopupItemNormal); MPI_HOT: LDetails := StyleServices.GetElementDetails(tmPopupItemHot); - // MPI_PUSHED : LDetails := StyleServices.GetElementDetails(tmMenuBarItemPushed); + // MPI_PUSHED: LDetails := StyleServices.GetElementDetails(tmMenuBarItemPushed); MPI_DISABLED: LDetails := StyleServices.GetElementDetails(tmPopupItemDisabled); MPI_DISABLEDHOT: LDetails := StyleServices.GetElementDetails(tmPopupItemDisabledHot); - // MPI_DISABLEDPUSHED : LDetails := StyleServices.GetElementDetails(tmMenuBarItemDisabledPushed); + // MPI_DISABLEDPUSHED: LDetails := StyleServices.GetElementDetails(tmMenuBarItemDisabledPushed); else LDetails := StyleServices.GetElementDetails(tmPopupItemNormal); end; @@ -1280,11 +1280,11 @@ function Detour_UxTheme_DrawThemeText(hTheme: hTheme; hdc: hdc; iPartId, iStateI MC_TRAILINGGRIDCELLUPPER, MC_GRIDCELLUPPER, MC_GRIDCELL: begin // case iStateId of - // MCGCB_SELECTED : LDetails := StyleServices.GetElementDetails(tgCellSelected); - // MCGCB_HOT : LDetails := StyleServices.GetElementDetails(tgFixedCellHot); - // MCGCB_SELECTEDHOT : LDetails := StyleServices.GetElementDetails(tgCellSelected); - // MCGCB_SELECTEDNOTFOCUSED : LDetails := StyleServices.GetElementDetails(tgCellSelected); - // MCGCB_TODAY : LDetails := StyleServices.GetElementDetails(tgFixedCellHot); + // MCGCB_SELECTED: LDetails := StyleServices.GetElementDetails(tgCellSelected); + // MCGCB_HOT: LDetails := StyleServices.GetElementDetails(tgFixedCellHot); + // MCGCB_SELECTEDHOT: LDetails := StyleServices.GetElementDetails(tgCellSelected); + // MCGCB_SELECTEDNOTFOCUSED: LDetails := StyleServices.GetElementDetails(tgCellSelected); + // MCGCB_TODAY: LDetails := StyleServices.GetElementDetails(tgFixedCellHot); // else // LDetails := StyleServices.GetElementDetails(tgCellNormal); // end; @@ -2169,8 +2169,8 @@ function UxTheme_Header(hTheme: hTheme; hdc: hdc; iPartId, iStateId: Integer; co HP_HEADERSORTARROW: begin // case iStateId of - // HSAS_SORTEDUP : LDetails := StyleServices.GetElementDetails(thHeaderSortArrowSortedUp); - // HSAS_SORTEDDOWN : LDetails := StyleServices.GetElementDetails(thHeaderSortArrowSortedDown); + // HSAS_SORTEDUP: LDetails := StyleServices.GetElementDetails(thHeaderSortArrowSortedUp); + // HSAS_SORTEDDOWN: LDetails := StyleServices.GetElementDetails(thHeaderSortArrowSortedDown); // end; LColor := GetStyleHighLightColor(); @@ -3585,7 +3585,7 @@ function UxTheme_ProgressBar(hTheme: hTheme; hdc: hdc; iPartId, iStateId: Intege LDetails := StyleServices.GetElementDetails(tpChunkVert); // GetElementDetails(tpFillVert); not defined // Use the Native PP_PULSEOVERLAY part to get better results. - // PP_PULSEOVERLAY : if SameText(THThemesClasses.Items[hTheme], VSCLASS_PROGRESS) then + // PP_PULSEOVERLAY: if SameText(THThemesClasses.Items[hTheme], VSCLASS_PROGRESS) then // LDetails := StyleServices.GetElementDetails(tpChunk)//GetElementDetails(tpPulseOverlay); // else // LDetails := StyleServices.GetElementDetails(tpBar); @@ -3596,8 +3596,8 @@ function UxTheme_ProgressBar(hTheme: hTheme; hdc: hdc; iPartId, iStateId: Intege else LDetails := StyleServices.GetElementDetails(tpChunk); - // PP_PULSEOVERLAYVERT : LDetails := StyleServices.GetElementDetails(tpPulseOverlayVert); - // PP_MOVEOVERLAYVERT : LDetails := StyleServices.GetElementDetails(tpMoveOverlayVert); + // PP_PULSEOVERLAYVERT: LDetails := StyleServices.GetElementDetails(tpPulseOverlayVert); + // PP_MOVEOVERLAYVERT: LDetails := StyleServices.GetElementDetails(tpMoveOverlayVert); PP_TRANSPARENTBAR: LDetails := StyleServices.GetElementDetails(tpBar); // GetElementDetails(tpTransparentBarNormal); not defined diff --git a/Ext/VCLStyleUtils/Common/Vcl.Styles.WebBrowser.pas b/Ext/VCLStyleUtils/Common/Vcl.Styles.WebBrowser.pas index ec575dc..f9df32e 100644 --- a/Ext/VCLStyleUtils/Common/Vcl.Styles.WebBrowser.pas +++ b/Ext/VCLStyleUtils/Common/Vcl.Styles.WebBrowser.pas @@ -15,7 +15,7 @@ // The Original Code is Vcl.Styles.WebBrowser.pas. // // The Initial Developer of the Original Code is Rodrigo Ruz V. -// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2019 Rodrigo Ruz V. +// Portions created by Rodrigo Ruz V. are Copyright (C) 2012-2021 Rodrigo Ruz V. // All Rights Reserved. // // ************************************************************************************************** @@ -67,14 +67,14 @@ TDocHostUIInfo = record function GetHostInfo(var pInfo: TDocHostUIInfo): HRESULT; stdcall; function ShowUI(const dwID: DWORD; const pActiveObject: IOleInPlaceActiveObject; const pCommandTarget: IOleCommandTarget; const pFrame: IOleInPlaceFrame; const pDoc: IOleInPlaceUIWindow) - : HRESULT; stdcall; +: HRESULT; stdcall; function HideUI: HRESULT; stdcall; function UpdateUI: HRESULT; stdcall; function EnableModeless(const fEnable: BOOL): HRESULT; stdcall; function OnDocWindowActivate(const fActivate: BOOL): HRESULT; stdcall; function OnFrameWindowActivate(const fActivate: BOOL): HRESULT; stdcall; function ResizeBorder(const prcBorder: PRECT; const pUIWindow: IOleInPlaceUIWindow; const FrameWindow: BOOL) - : HRESULT; stdcall; +: HRESULT; stdcall; function TranslateAccelerator(const lpMsg: PMSG; const pguidCmdGroup: PGUID; const nCmdID: DWORD): HRESULT; stdcall; function GetOptionKeyPath(var pchKey: POLESTR; const dw: DWORD): HRESULT; stdcall; function GetDropTarget(const pDropTarget: IDropTarget; out ppDropTarget: IDropTarget): HRESULT; stdcall; diff --git a/Source/CBVCLStylePreview.pas b/Source/CBVCLStylePreview.pas index cc6b9e4..751020b 100644 --- a/Source/CBVCLStylePreview.pas +++ b/Source/CBVCLStylePreview.pas @@ -4,7 +4,7 @@ { based on: VCLStylePreview Vcl.Styles.Ext } { https://github.com/RRUZ/vcl-styles-utils/ } { } -{ Copyright (c) 2020 (Ethea S.r.l.) } +{ Copyright (c) 2020-2022 (Ethea S.r.l.) } { Author: Carlo Barazzetta } { } { https://github.com/EtheaDev/VCLThemeSelector } diff --git a/Source/CBVCLStylePreviewForm.pas b/Source/CBVCLStylePreviewForm.pas index 7eb8915..b09c9f8 100644 --- a/Source/CBVCLStylePreviewForm.pas +++ b/Source/CBVCLStylePreviewForm.pas @@ -4,7 +4,7 @@ { based on: VCLStylePreview Vcl.Styles.Ext } { https://github.com/RRUZ/vcl-styles-utils/ } { } -{ Copyright (c) 2020 (Ethea S.r.l.) } +{ Copyright (c) 2020-2022 (Ethea S.r.l.) } { Author: Carlo Barazzetta } { } { https://github.com/EtheaDev/VCLThemeSelector } diff --git a/Source/FVCLThemeSelector.dfm b/Source/FVCLThemeSelector.dfm index 6951b80..5774811 100644 --- a/Source/FVCLThemeSelector.dfm +++ b/Source/FVCLThemeSelector.dfm @@ -7,13 +7,14 @@ object VCLThemeSelectorForm: TVCLThemeSelectorForm ClientWidth = 1065 Color = clBtnFace ParentFont = True + OldCreateOrder = True Position = poScreenCenter ShowHint = True OnAfterMonitorDpiChanged = FormAfterMonitorDpiChanged OnCreate = FormCreate OnResize = FormResize PixelsPerInch = 96 - TextHeight = 25 + TextHeight = 13 object paButtons: TPanel Left = 0 Top = 464 diff --git a/Source/FVCLThemeSelector.pas b/Source/FVCLThemeSelector.pas index 7ff1145..dddd50c 100644 --- a/Source/FVCLThemeSelector.pas +++ b/Source/FVCLThemeSelector.pas @@ -2,7 +2,7 @@ { } { VCLThemeSelector: Form for Preview and Selection of VCL Style } { } -{ Copyright (c) 2020, 2021 (Ethea S.r.l.) } +{ Copyright (c) 2020-2022 (Ethea S.r.l.) } { Author: Carlo Barazzetta } { Contributor: Nicola Tambascia } { } @@ -37,7 +37,8 @@ interface , Vcl.Forms , Vcl.StdCtrls , Vcl.Graphics - , Vcl.Controls; + , Vcl.Controls + , Vcl.DBCtrls; const VCLThemeSelectorVersion = '1.3.1'; @@ -45,6 +46,32 @@ interface DEFAULT_MAXCOLUMNS = 4; resourcestring +{$IFDEF LANGUAGE_ITA} + SELECT_THEME = 'Seleziona il tema chiaro o scuro'; + APPLY_THEME = 'Applica'; + CANCEL_THEME = 'Annulla'; + LIGHT_THEMES = 'Temi chiari'; + DARK_THEMES = 'Temi scuri'; + + PREVIEW_THEME = 'Anteprima'; + THEME_SELECTED = 'Nuovo tema selezionato: %s'; + THEME_PREVIEW_VALUES = + 'File'+sLineBreak+ + 'Modifica'+sLineBreak+ + 'Visualizza'+sLineBreak+ + 'Help'+sLineBreak+ + 'Editor di testo'+sLineBreak+ + 'Normale'+sLineBreak+ + 'Caldo'+sLineBreak+ + 'Premuto'+sLineBreak+ + 'Disabilitato'+sLineBreak+ + 'Obbligatorio'+sLineBreak+ + 'Sola lettura'+sLineBreak+ + 'Spunta'+sLineBreak+ + 'Pag. 1'+sLineBreak+ + 'Pag. 2'+sLineBreak+ + 'Pag. 3'+sLineBreak; +{$ELSE} SELECT_THEME = 'Select Light or Dark theme'; APPLY_THEME = 'Apply'; CANCEL_THEME = 'Cancel'; @@ -69,6 +96,7 @@ interface 'Page 1'+sLineBreak+ 'Page 2'+sLineBreak+ 'Page 3'+sLineBreak; +{$ENDIF} type TVCLThemeSelectorForm = class(TForm) @@ -142,6 +170,13 @@ procedure ReadAppStyleAndFontFromReg(const CompanyName, ApplicationName: string; out AAppStyle: string; const AFont: TFont); procedure WriteAppStyleAndFontToReg(const CompanyName, ApplicationName: string; const AAppStyle: string; const AFont: TFont); +procedure SetEditorStyleAttributes(const AEditControl: TDBEdit); +procedure SetRequiredEditStyleAttributes(const AEdit: TCustomEdit); + +//To add new styles used from your application that are not managed by default +procedure RegisterThemeAttributes(const AVCLStyleName: string; + const AThemeType: TThemeType; const AEditRequiredColor: TColor; + const AEditReadonlyColor: TColor); implementation @@ -149,6 +184,7 @@ implementation uses Vcl.Themes + , System.TypInfo {$IF CompilerVersion > 33} , CBVCLStylePreviewForm {$IFEND} @@ -178,7 +214,8 @@ function GetStyleAttributes(const AStyleName: string; end; Result := False; AThemeAttribute := nil; - raise Exception.CreateFmt('Attributes for Style "%s" not found',[AStyleName]); + raise Exception.CreateFmt('Attributes for Style "%s" not found!'+sLineBreak+ + 'please call RegisterThemeAttributes in an initialization section to add your custom style',[AStyleName]); end; procedure FreeThemesAttributes; @@ -297,6 +334,8 @@ procedure ReadAppStyleAndFontFromReg(const CompanyName, ApplicationName: string; begin if FRegistry.ValueExists('FontName') then AFont.Name := FRegistry.ReadString('FontName'); + if FRegistry.ValueExists('PixelsPerInch') then + AFont.PixelsPerInch := FRegistry.ReadInteger('PixelsPerInch'); if FRegistry.ValueExists('FontHeight') then AFont.Height := FRegistry.ReadInteger('FontHeight'); if FRegistry.ValueExists('FontColor') then @@ -323,6 +362,7 @@ procedure WriteAppStyleAndFontToReg(const CompanyName, ApplicationName: string; begin FRegistry.WriteString('FontName',AFont.Name); FRegistry.WriteInteger('FontHeight',AFont.Height); + FRegistry.WriteInteger('PixelsPerInch',AFont.PixelsPerInch); FRegistry.WriteInteger('FontColor',AFont.Color); FRegistry.WriteBool('FontBold',fsBold in AFont.Style); FRegistry.WriteBool('FontItalic',fsItalic in AFont.Style); @@ -371,6 +411,89 @@ function ShowVCLThemeSelector(var AStyleName: string; End; end; +procedure SetEditorStyleAttributes(const AEditControl: TDBEdit); +var + LActiveStyleName: string; + LThemeAttribute: TThemeAttribute; + LDetails: TThemedElementDetails; + LFontColor: TColor; +begin + AEditControl.StyleElements := [seBorder]; + + //Retrieve info from my LThemeAttribute structure + LActiveStyleName := TStyleManager.ActiveStyle.Name; + if GetStyleAttributes(LActiveStyleName, LThemeAttribute) then + begin + if AEditControl.ReadOnly then + AEditControl.Color := LThemeAttribute.EditReadonlyColor + else + AEditControl.Color := LThemeAttribute.EditRequiredColor; + end + else + begin + AEditControl.Color := clWindow; + end; + + if StyleServices.Enabled then + begin + LDetails := StyleServices.GetElementDetails(teEditTextNormal); + StyleServices.GetElementColor(LDetails, ecTextColor, LFontColor); + end + else + LFontColor := clDefault; + + AEditControl.Font.Color := LFontColor; +end; + +procedure SetRequiredEditStyleAttributes(const AEdit: TCustomEdit); +var + LActiveStyleName: string; + LThemeAttribute: TThemeAttribute; + LDetails: TThemedElementDetails; + LFontColor: TColor; + LFont: TFont; + LReadOnly: Boolean; +begin + AEdit.StyleElements := [seBorder]; + + //Recupero le informazioni dalla mia struttura LThemeAttribute + LActiveStyleName := TStyleManager.ActiveStyle.Name; + if IsPublishedProp(AEdit, 'Color') then + begin + if GetStyleAttributes(LActiveStyleName, LThemeAttribute) then + begin + if IsPublishedProp(AEdit, 'ReadOnly') then + LReadOnly := Boolean(GetOrdProp(AEdit, 'ReadOnly')) + else + LReadOnly := AEdit.ReadOnly; + + //Imposto il colore del componente di Edit tramite RTTI + if LReadOnly then + SetOrdProp(AEdit, 'Color', LThemeAttribute.EditReadonlyColor) + else + SetOrdProp(AEdit, 'Color', LThemeAttribute.EditRequiredColor); + end + else + SetOrdProp(AEdit, 'Color', clWindow); + end; + + if StyleServices.Enabled and (LActiveStyleName <> 'Windows') then + begin + LDetails := StyleServices.GetElementDetails(teEditTextNormal); + StyleServices.GetElementColor(LDetails, ecTextColor, LFontColor); + end + else + LFontColor := clWindowText; + + if IsPublishedProp(AEdit, 'Font') then + begin + LFont := GetObjectProp(AEdit, 'Font', TFont) as TFont; + LFont.Color := LFontColor; + end; +end; + +{ TVCLThemeSelectorForm } + procedure TVCLThemeSelectorForm.acApplyStyleExecute(Sender: TObject); begin inherited;