From: <aka...@us...> - 2023-11-11 16:53:41
|
Revision: 4096 http://sourceforge.net/p/gexperts/code/4096 Author: akalwahome Date: 2023-11-11 16:53:39 +0000 (Sat, 11 Nov 2023) Log Message: ----------- Merged with trunk Modified Paths: -------------- branches/dark-mode/BuildInstall/GExperts.iss branches/dark-mode/BuildInstall/MakeInstallers.cmd branches/dark-mode/BuildTools/doGetDelphiPath.cmd branches/dark-mode/Documentation/License.txt branches/dark-mode/ExternalSource/Abbrevia/AbDfEnc.pas branches/dark-mode/ExternalSource/dzlib/u_dzCompilerAndRtlVersions.pas branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dpr branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dpr branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dproj branches/dark-mode/Source/Editor/GX_eIfDef.pas branches/dark-mode/Source/FavoriteFiles/GX_FavFiles.pas branches/dark-mode/Source/Framework/GX_GetIdeVersion.pas branches/dark-mode/Source/Framework/GX_VerDepConst.pas Added Paths: ----------- branches/dark-mode/Projects/DelphiXx110Alexandria/GExperts_manifest.res Property Changed: ---------------- branches/dark-mode/ branches/dark-mode/Projects/DelphiXx120/ branches/dark-mode/Projects/DelphiXx120/dcu/Win32/Debug/ branches/dark-mode/Projects/DelphiXx120/dcu/Win32/Release/ Index: branches/dark-mode =================================================================== --- branches/dark-mode 2023-11-08 20:30:54 UTC (rev 4095) +++ branches/dark-mode 2023-11-11 16:53:39 UTC (rev 4096) Property changes on: branches/dark-mode ___________________________________________________________________ Added: svn:mergeinfo ## -0,0 +1 ## +/trunk:4085-4095 \ No newline at end of property Modified: branches/dark-mode/BuildInstall/GExperts.iss =================================================================== --- branches/dark-mode/BuildInstall/GExperts.iss 2023-11-08 20:30:54 UTC (rev 4095) +++ branches/dark-mode/BuildInstall/GExperts.iss 2023-11-11 16:53:39 UTC (rev 4096) @@ -202,6 +202,14 @@ #define IDERegName "BDS" #define IDERegVer "22" #endif +#ifdef RS120 + #define IDEShortName "RADStudio" + #define IDELongName "RAD Studio" + #define IDEVer "12" + #define DLLSuffix "RS120" + #define IDERegName "BDS" + #define IDERegVer "23" +#endif #ifndef IDEShortName #error Usage: "isppcc.exe GExperts.iss /dDelphi7 /dVersion=1.38" Modified: branches/dark-mode/BuildInstall/MakeInstallers.cmd =================================================================== --- branches/dark-mode/BuildInstall/MakeInstallers.cmd 2023-11-08 20:30:54 UTC (rev 4095) +++ branches/dark-mode/BuildInstall/MakeInstallers.cmd 2023-11-11 16:53:39 UTC (rev 4096) @@ -14,7 +14,7 @@ call :getdate set special=%dateYYYYMMDD% -rem call :makeinst RS103 RS10.3 +rem call :makeinst RS120 RS12 rem pause rem goto :eof @@ -39,6 +39,7 @@ call :makeinst RS103 RS10.3 call :makeinst RS104 RS10.4 call :makeinst RS110 RS11 +call :makeinst RS120 RS12 goto :eof :makeinst Modified: branches/dark-mode/BuildTools/doGetDelphiPath.cmd =================================================================== --- branches/dark-mode/BuildTools/doGetDelphiPath.cmd 2023-11-08 20:30:54 UTC (rev 4095) +++ branches/dark-mode/BuildTools/doGetDelphiPath.cmd 2023-11-11 16:53:39 UTC (rev 4096) @@ -118,6 +118,12 @@ :DelphiXX110Alexandria call :ReadReg Embarcadero\BDS\22.0 goto :DelphiEndCase +:Delphi12 +:Delphi120 +:DelphiXX12 +:DelphiXX120 + call :ReadReg Embarcadero\BDS\23.0 + goto :DelphiEndCase :DelphiEndCase echo DelphiPath: "%DelphiPath%" Modified: branches/dark-mode/Documentation/License.txt =================================================================== --- branches/dark-mode/Documentation/License.txt 2023-11-08 20:30:54 UTC (rev 4095) +++ branches/dark-mode/Documentation/License.txt 2023-11-11 16:53:39 UTC (rev 4096) @@ -1,6 +1,6 @@ GExperts License Agreement - GExperts is copyright 1996-2021 by Thomas Mueller, Erik Berry and the GExperts development team. This license agreement only covers code written by Erik Berry and the rest of the GExperts development team who have specifically submitted their code for inclusion with GExperts. You should contact the other third-party authors concerning their respective copyrights and conditions. + GExperts is copyright 1996-2023 by Thomas Mueller, Erik Berry and the GExperts development team. This license agreement only covers code written by Erik Berry and the rest of the GExperts development team who have specifically submitted their code for inclusion with GExperts. You should contact the other third-party authors concerning their respective copyrights and conditions. The rules governing the use of GExperts and the GExperts source code are derived from the official Open Source Definition, available at http://www.opensource.org. The conditions and limitations are as follows: Modified: branches/dark-mode/ExternalSource/Abbrevia/AbDfEnc.pas =================================================================== --- branches/dark-mode/ExternalSource/Abbrevia/AbDfEnc.pas 2023-11-08 20:30:54 UTC (rev 4095) +++ branches/dark-mode/ExternalSource/Abbrevia/AbDfEnc.pas 2023-11-11 16:53:39 UTC (rev 4096) @@ -812,7 +812,7 @@ {$IFNDEF VER330} // Delphi 10.3 Tokyo / BDS 20 does not need this {$IFNDEF VER340} // Delphi 10.4 Sydney / BDS 21 does not need this {$IFNDEF VER350} // Delphi 11 Alexandria / BDS 22 does not need this - {$IFNDEF VER360} // Delphi 12 Yukon / BDS 23 does not need this + {$IFNDEF VER360} // Delphi 12 Athens / BDS 23 does not need this Result := 0; {$ENDIF} {$ENDIF} Modified: branches/dark-mode/ExternalSource/dzlib/u_dzCompilerAndRtlVersions.pas =================================================================== --- branches/dark-mode/ExternalSource/dzlib/u_dzCompilerAndRtlVersions.pas 2023-11-08 20:30:54 UTC (rev 4095) +++ branches/dark-mode/ExternalSource/dzlib/u_dzCompilerAndRtlVersions.pas 2023-11-11 16:53:39 UTC (rev 4096) @@ -45,9 +45,9 @@ CompilerVersionDelphiRio = 33; CompilerVersionDelphiSydney = 34; CompilerVersionDelphiAlexandria = 35; - CompilerVersionDelphiYukon = 36; // don't know release name yet; maybe "Athens" + CompilerVersionDelphiAthens = 36; -{$IF CompilerVersion > CompilerVersionDelphiYukon} +{$IF CompilerVersion > CompilerVersionDelphiAthens} {$MESSAGE HINT 'Add new CompilerVersion(s) here'} {$IFEND} @@ -90,9 +90,9 @@ RtlVersionDelphiRio = 33; RtlVersionDelphiSydney = 34; RtlVersionDelphiAlexandria = 35; - RtlVersionDelphiYukon = 36; + RtlVersionDelphiAthens= 36; -{$IF RtlVersion > RtlVersionDelphiYukon} +{$IF RtlVersion > RtlVersionDelphiAthens} {$MESSAGE HINT 'Add new RtlVersion(s) here'} {$IFEND} Modified: branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dpr =================================================================== --- branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dpr 2023-11-08 20:30:54 UTC (rev 4095) +++ branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dpr 2023-11-11 16:53:39 UTC (rev 4096) @@ -1,6 +1,7 @@ library GExpertsRS110; {$E dll} +{$R 'GExperts_manifest.res' '..\..\Source\GExperts_manifest.rc'} uses GX_About in '..\..\source\Framework\GX_About.pas' {fmAbout}, @@ -260,7 +261,6 @@ {$R '..\..\images\GXIcons.res' '..\..\images\GXIcons.rc'} {$R '..\..\Binaries\CodeProofreaderDefault.res' '..\..\Binaries\CodeProofreaderDefault.rc'} {$R '..\..\Binaries\ConvertStrings.res' '..\..\Binaries\ConvertStrings.rc'} -{$R 'GExperts_manifest.res' '..\..\Source\GExperts_manifest.rc'} {$R *_version.res} Copied: branches/dark-mode/Projects/DelphiXx110Alexandria/GExperts_manifest.res (from rev 4095, trunk/Projects/DelphiXx110Alexandria/GExperts_manifest.res) =================================================================== (Binary files differ) Index: branches/dark-mode/Projects/DelphiXx120 =================================================================== --- branches/dark-mode/Projects/DelphiXx120 2023-11-08 20:30:54 UTC (rev 4095) +++ branches/dark-mode/Projects/DelphiXx120 2023-11-11 16:53:39 UTC (rev 4096) Property changes on: branches/dark-mode/Projects/DelphiXx120 ___________________________________________________________________ Added: svn:ignore ## -0,0 +1,5 ## +GExperts_manifest.res +GExpertsRS120.res +GExpertsRS120_Version.rc +GExpertsRS120_Version.RES +GXIcons.res Modified: branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dpr =================================================================== --- branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dpr 2023-11-08 20:30:54 UTC (rev 4095) +++ branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dpr 2023-11-11 16:53:39 UTC (rev 4096) @@ -1,7 +1,6 @@ library GExpertsRS120; {$E dll} - uses GX_About in '..\..\source\Framework\GX_About.pas' {fmAbout}, GX_AboutExperimental in '..\..\source\Formatter\GX_AboutExperimental.pas' {fmAboutExperimental}, @@ -257,10 +256,10 @@ GX_XmlUtils in '..\..\source\Utils\GX_XmlUtils.pas', GX_Zipper in '..\..\source\BackupProject\GX_Zipper.pas'; +{$R 'GExperts_manifest.res' '..\..\Source\GExperts_manifest.rc'} {$R '..\..\images\GXIcons.res' '..\..\images\GXIcons.rc'} {$R '..\..\Binaries\CodeProofreaderDefault.res' '..\..\Binaries\CodeProofreaderDefault.rc'} {$R '..\..\Binaries\ConvertStrings.res' '..\..\Binaries\ConvertStrings.rc'} -{$R 'GExperts_manifest.res' '..\..\Source\GExperts_manifest.rc'} {$R *_version.res} begin Modified: branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dproj =================================================================== --- branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dproj 2023-11-08 20:30:54 UTC (rev 4095) +++ branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dproj 2023-11-11 16:53:39 UTC (rev 4096) @@ -14,31 +14,31 @@ <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''"> + <Base>true</Base> + <CfgParent>Base</CfgParent> <Base_Win32>true</Base_Win32> - <CfgParent>Base</CfgParent> - <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''"> + <Base>true</Base> + <CfgParent>Base</CfgParent> <Cfg_1>true</Cfg_1> - <CfgParent>Base</CfgParent> - <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''"> - <Cfg_1_Win32>true</Cfg_1_Win32> + <Base>true</Base> <CfgParent>Cfg_1</CfgParent> <Cfg_1>true</Cfg_1> - <Base>true</Base> + <Cfg_1_Win32>true</Cfg_1_Win32> </PropertyGroup> <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''"> + <Base>true</Base> + <CfgParent>Base</CfgParent> <Cfg_2>true</Cfg_2> - <CfgParent>Base</CfgParent> - <Base>true</Base> </PropertyGroup> <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''"> - <Cfg_2_Win32>true</Cfg_2_Win32> + <Base>true</Base> <CfgParent>Cfg_2</CfgParent> <Cfg_2>true</Cfg_2> - <Base>true</Base> + <Cfg_2_Win32>true</Cfg_2_Win32> </PropertyGroup> <PropertyGroup Condition="'$(Base)'!=''"> <SanitizedProjectName>GExpertsRS120</SanitizedProjectName> @@ -56,10 +56,12 @@ <DCC_UsePackage>rtl;vcl;designide;$(DCC_UsePackage)</DCC_UsePackage> <GenDll>true</GenDll> <Manifest_File>(None)</Manifest_File> - <PreBuildEvent><![CDATA[call ..\..\images\_CreateGXIconsRc.cmd + <PreBuildEvent> + <![CDATA[call ..\..\images\_CreateGXIconsRc.cmd call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)" call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)" -$(PreBuildEvent)]]></PreBuildEvent> +$(PreBuildEvent)]]> + </PreBuildEvent> <UsePackages>True</UsePackages> <VerInfo_Keys>FileVersion=1.0.0.0</VerInfo_Keys> <VerInfo_Locale>2057</VerInfo_Locale> @@ -752,7 +754,9 @@ <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/> <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/> <Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/> - <PropertyGroup Condition="'$(Config)'=='Release' And '$(Platform)'=='Win32'"> + <PropertyGroup Condition="'$(Config)'=='Release' And '$(Platform)'=='Win64'"> + <PostBuildEvent/> + <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> <PreBuildEvent>call ..\..\images\_CreateGXIconsRc.cmd &&call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)" &&call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)" @@ -760,10 +764,10 @@ <PreBuildEventIgnoreExitCode>False</PreBuildEventIgnoreExitCode> <PreLinkEvent/> <PreLinkEventIgnoreExitCode>False</PreLinkEventIgnoreExitCode> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' And '$(Platform)'=='Win32'"> <PostBuildEvent/> <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> - </PropertyGroup> - <PropertyGroup Condition="'$(Config)'=='Release' And '$(Platform)'=='Win64'"> <PreBuildEvent>call ..\..\images\_CreateGXIconsRc.cmd &&call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)" &&call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)" @@ -771,10 +775,10 @@ <PreBuildEventIgnoreExitCode>False</PreBuildEventIgnoreExitCode> <PreLinkEvent/> <PreLinkEventIgnoreExitCode>False</PreLinkEventIgnoreExitCode> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' And '$(Platform)'=='Win64'"> <PostBuildEvent/> <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> - </PropertyGroup> - <PropertyGroup Condition="'$(Config)'=='Debug' And '$(Platform)'=='Win32'"> <PreBuildEvent>call ..\..\images\_CreateGXIconsRc.cmd &&call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)" &&call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)" @@ -782,10 +786,10 @@ <PreBuildEventIgnoreExitCode>False</PreBuildEventIgnoreExitCode> <PreLinkEvent/> <PreLinkEventIgnoreExitCode>False</PreLinkEventIgnoreExitCode> + </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' And '$(Platform)'=='Win32'"> <PostBuildEvent/> <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> - </PropertyGroup> - <PropertyGroup Condition="'$(Config)'=='Debug' And '$(Platform)'=='Win64'"> <PreBuildEvent>call ..\..\images\_CreateGXIconsRc.cmd &&call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)" &&call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)" @@ -793,7 +797,5 @@ <PreBuildEventIgnoreExitCode>False</PreBuildEventIgnoreExitCode> <PreLinkEvent/> <PreLinkEventIgnoreExitCode>False</PreLinkEventIgnoreExitCode> - <PostBuildEvent/> - <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> </PropertyGroup> </Project> Index: branches/dark-mode/Projects/DelphiXx120/dcu/Win32/Debug =================================================================== --- branches/dark-mode/Projects/DelphiXx120/dcu/Win32/Debug 2023-11-08 20:30:54 UTC (rev 4095) +++ branches/dark-mode/Projects/DelphiXx120/dcu/Win32/Debug 2023-11-11 16:53:39 UTC (rev 4096) Property changes on: branches/dark-mode/Projects/DelphiXx120/dcu/Win32/Debug ___________________________________________________________________ Added: svn:ignore ## -0,0 +1 ## +*.dcu Index: branches/dark-mode/Projects/DelphiXx120/dcu/Win32/Release =================================================================== --- branches/dark-mode/Projects/DelphiXx120/dcu/Win32/Release 2023-11-08 20:30:54 UTC (rev 4095) +++ branches/dark-mode/Projects/DelphiXx120/dcu/Win32/Release 2023-11-11 16:53:39 UTC (rev 4096) Property changes on: branches/dark-mode/Projects/DelphiXx120/dcu/Win32/Release ___________________________________________________________________ Added: svn:ignore ## -0,0 +1 ## +*.dcu Modified: branches/dark-mode/Source/Editor/GX_eIfDef.pas =================================================================== --- branches/dark-mode/Source/Editor/GX_eIfDef.pas 2023-11-08 20:30:54 UTC (rev 4095) +++ branches/dark-mode/Source/Editor/GX_eIfDef.pas 2023-11-11 16:53:39 UTC (rev 4096) @@ -674,7 +674,7 @@ {$ENDIF} def := TIfdefTabDefinition.Create(Self, pc_IfClasses, '&VERxxx', 4, 1, '{$IFNDEF %s}'); FTabDefinitions.Add(def); - def.AddEntry('VER360', 'Delphi 12 / BDS 23'); + def.AddEntry('VER360', 'Delphi 12 Athens / BDS 23'); def.AddEntry('VER350', 'Delphi 11 Alexandria / BDS 22'); def.AddEntry('VER340', 'Delphi 10.4 Sydney / BDS 21'); def.AddEntry('VER330', 'Delphi 10.3 Rio / BDS 20'); @@ -716,7 +716,7 @@ {$IFEND} def := TIfdefTabDefinition.Create(Self, pc_IfClasses, '&RtlVersion', 16, 2, '{$IF RtlVersion >= %s}'); FTabDefinitions.Add(def); - def.AddEntry(IntToStr(RtlVersionDelphiX120), 'Delphi 12 / BDS 23'); + def.AddEntry(IntToStr(RtlVersionDelphiX120), 'Delphi 12 Athens / BDS 23'); def.AddEntry(IntToStr(RtlVersionDelphiX110), 'Delphi 11 Alexandria / BDS 22'); def.AddEntry(IntToStr(RtlVersionDelphiX104), 'Delphi 10.4 Sydney / BDS 21'); def.AddEntry(IntToStr(RtlVersionDelphiX103), 'Delphi 10.3 Rio / BDS 20'); @@ -753,7 +753,7 @@ {$IF CompilerVersion > CompilerVersionDelphiX120} {$MESSAGE HINT 'Add a new Delphi version here'} {$IFEND} - def.AddEntry(IntToStr(CompilerVersionDelphiX120), 'Delphi 12 / BDS 23'); + def.AddEntry(IntToStr(CompilerVersionDelphiX120), 'Delphi 12 Athens / BDS 23'); def.AddEntry(IntToStr(CompilerVersionDelphiX110), 'Delphi 11 Alexandria/ BDS 22'); def.AddEntry(IntToStr(CompilerVersionDelphiX104), 'Delphi 10.4 Sydney / BDS 21'); def.AddEntry(IntToStr(CompilerVersionDelphiX103), 'Delphi 10.3 Rio / BDS 20'); Modified: branches/dark-mode/Source/FavoriteFiles/GX_FavFiles.pas =================================================================== --- branches/dark-mode/Source/FavoriteFiles/GX_FavFiles.pas 2023-11-08 20:30:54 UTC (rev 4095) +++ branches/dark-mode/Source/FavoriteFiles/GX_FavFiles.pas 2023-11-11 16:53:39 UTC (rev 4096) @@ -696,7 +696,10 @@ resourcestring SSaveWarning = 'The file for storing the list of your favorite files does not exist:'#13#10 + '"%s"'#13#10 - + 'Resetting it to the default:'#13#10 + + #13#10 + + 'This is normal on first run after installation. '#13#10 + + #13#10 + + 'A new empty favorites file list will be created:'#13#10 + '"%s"'; SMissingRootFolder = 'Error: Missing root folder in file "%s"!' + sLineBreak + sLineBreak + @@ -712,7 +715,7 @@ Node := nil; if not FileExists(FEntryFile) then begin ErrorMsg := Format(SSaveWarning, [FEntryFile, GetDefaultEntryFileName]); - MessageDlg(ErrorMsg, mtError, [mbOK], 0); + MessageDlg(ErrorMsg, mtInformation, [mbOK], 0); FEntryFile := GetDefaultEntryFileName; end; Modified: branches/dark-mode/Source/Framework/GX_GetIdeVersion.pas =================================================================== --- branches/dark-mode/Source/Framework/GX_GetIdeVersion.pas 2023-11-08 20:30:54 UTC (rev 4095) +++ branches/dark-mode/Source/Framework/GX_GetIdeVersion.pas 2023-11-11 16:53:39 UTC (rev 4096) @@ -48,7 +48,7 @@ ideRS11U1, // Rad Studio 11 Alexandria Update 1 (aka version 11.1) ideRS11U2, // Rad Studio 11 Alexandria Update 2 (aka version 11.2) ideRS11U3, // Rad Studio 11 Alexandria Update 3 (aka version 11.3) - ideRS12, // Rad Studio 12 + ideRS12, // Rad Studio 12 Athens // C# Builder ideCSB100, // C++Builder @@ -845,9 +845,9 @@ } function GetRS101Version: TBorlandIdeVersion; const - CoreIde2400: TVersionNumber = (Minor: 24; Major: 0; Build: 6822; Release: 22858); - CoreIde2400Upd1: TVersionNumber = (Minor: 24; Major: 0; Build: 8770; Release: 24468); - CoreIde2400Upd2: TVersionNumber = (Minor: 24; Major: 0; Build: 9432; Release: 25048); + CoreIde2400: TVersionNumber = (Minor: 0; Major: 24; Build: 6822; Release: 22858); + CoreIde2400Upd1: TVersionNumber = (Minor: 0; Major: 24; Build: 8770; Release: 24468); + CoreIde2400Upd2: TVersionNumber = (Minor: 0; Major: 24; Build: 9432; Release: 25048); var CoreIdeFileVersion: TVersionNumber; VersionNumber: Integer; @@ -875,7 +875,7 @@ } function GetRS102Version: TBorlandIdeVersion; const - CoreIde2500: TVersionNumber = (Minor: 25; Major: 0; Build: 314; Release: 26309); + CoreIde2500: TVersionNumber = (Minor: 0; Major: 25; Build: 314; Release: 26309); begin Result := ideRS102; end; @@ -911,10 +911,10 @@ } function GetRS103Version: TBorlandIdeVersion; const - CoreIde2600: TVersionNumber = (Minor: 26; Major: 0; Build: 4364; Release: 32429); - CoreIde2600Upd1: TVersionNumber = (Minor: 26; Major: 0; Build: 4899; Release: 33219); - CoreIde2600Upd2: TVersionNumber = (Minor: 26; Major: 0; Build: 6593; Release: 34749); - CoreIde2600Upd3: TVersionNumber = (Minor: 26; Major: 0; Build: 7899; Release: 36039); + CoreIde2600: TVersionNumber = (Minor: 0; Major: 26; Build: 4364; Release: 32429); + CoreIde2600Upd1: TVersionNumber = (Minor: 0; Major: 26; Build: 4899; Release: 33219); + CoreIde2600Upd2: TVersionNumber = (Minor: 0; Major: 26; Build: 6593; Release: 34749); + CoreIde2600Upd3: TVersionNumber = (Minor: 0; Major: 26; Build: 7899; Release: 36039); var CoreIdeFileVersion: TVersionNumber; VersionNumber: Integer; @@ -975,9 +975,9 @@ function GetRS104Version: TBorlandIdeVersion; const RegKey = 'Software\Embarcadero\BDS\21.0\CatalogRepository\Elements\10.4Patch2pro-10'; - CoreIde2700: TVersionNumber = (Minor: 27; Major: 0; Build: 9797; Release: 37829); - CoreIde2700UPd1: TVersionNumber = (Minor: 27; Major: 0; Build: 1461; Release: 38860); - CoreIde2700UPd2: TVersionNumber = (Minor: 27; Major: 0; Build: 4203; Release: 40680); + CoreIde2700: TVersionNumber = (Minor: 0; Major: 27; Build: 9797; Release: 37829); + CoreIde2700UPd1: TVersionNumber = (Minor: 0; Major: 27; Build: 1461; Release: 38860); + CoreIde2700UPd2: TVersionNumber = (Minor: 0; Major: 27; Build: 4203; Release: 40680); var RegValue: Integer; CoreIdeFileVersion: TVersionNumber; @@ -1031,10 +1031,10 @@ } function GetRS11Version: TBorlandIdeVersion; const - CoreIde2800: TVersionNumber = (Minor: 28; Major: 0; Build: 6491; Release: 42600); - CoreIde2800Upd1: TVersionNumber = (Minor: 28; Major: 0; Build: 8973; Release: 44500); - CoreIde2800Upd2: TVersionNumber = (Minor: 28; Major: 0; Build: 0937; Release: 46141); - CoreIde2800Upd3: TVersionNumber = (Minor: 28; Major: 0; Build: 2819; Release: 47991); + CoreIde2800: TVersionNumber = (Minor: 0; Major: 28; Build: 6491; Release: 42600); + CoreIde2800Upd1: TVersionNumber = (Minor: 0; Major: 28; Build: 8973; Release: 44500); + CoreIde2800Upd2: TVersionNumber = (Minor: 0; Major: 28; Build: 0937; Release: 46141); + CoreIde2800Upd3: TVersionNumber = (Minor: 0; Major: 28; Build: 2819; Release: 47991); var CoreIdeFileVersion: TVersionNumber; begin @@ -1052,7 +1052,7 @@ function GetRS12Version: TBorlandIdeVersion; const - BdsIde2900: TVersionNumber = (Minor: 29; Major: 0; Build: 5667; Release: 50371); + BdsIde2900: TVersionNumber = (Minor: 0; Major: 29; Build: 5718; Release: 50491); var BdsIdeFileVersion: TVersionNumber; begin Modified: branches/dark-mode/Source/Framework/GX_VerDepConst.pas =================================================================== --- branches/dark-mode/Source/Framework/GX_VerDepConst.pas 2023-11-08 20:30:54 UTC (rev 4095) +++ branches/dark-mode/Source/Framework/GX_VerDepConst.pas 2023-11-11 16:53:39 UTC (rev 4096) @@ -232,7 +232,7 @@ ClassBrowserStorageFolder = 'Classes.RADStudio11.0'; {$ENDIF VER350} - {$IFDEF VER360} // Delphi/RAD Studio 12 + {$IFDEF VER360} // Delphi/RAD Studio 12 "Athens" GExpertsDll = 'GExpertsRS120.dll'; TTabDockHostFormClassContainer = 'designide290.bpl'; MajorVersionNumberChar = '29'; @@ -241,7 +241,8 @@ ClassBrowserStorageFolder = 'Classes.RADStudio12.0'; {$ENDIF VER360} -{$IF CompilerVersion > 36} // new Delphi version 'Add the information for the new Delphi version above and increase the CompilerVersion in this conditional' +{$IF CompilerVersion > 36} // new Delphi version + 'Add the information for the new Delphi version above and increase the CompilerVersion in this conditional' {$IFEND} implementation This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aka...@us...> - 2024-06-09 16:07:37
|
Revision: 4263 http://sourceforge.net/p/gexperts/code/4263 Author: akalwahome Date: 2024-06-09 16:07:34 +0000 (Sun, 09 Jun 2024) Log Message: ----------- Merged from trunk Modified Paths: -------------- branches/dark-mode/ExternalSource/dzlib/u_dzFileUtils.pas branches/dark-mode/ExternalSource/dzlib/u_dzLineBuilder.pas branches/dark-mode/ExternalSource/dzlib/u_dzSpeedBitBtn.pas branches/dark-mode/ExternalSource/dzlib/u_dzVclUtils.pas branches/dark-mode/Source/AutoTodo/GX_InsertAutoTodo.pas branches/dark-mode/Source/BackupProject/GX_BackupConfig.pas branches/dark-mode/Source/ClipboardHistory/GX_ClipboardOptions.pas branches/dark-mode/Source/Editor/GX_eAlignOptions.pas branches/dark-mode/Source/Editor/GX_eComment.pas branches/dark-mode/Source/Editor/GX_eDate.pas branches/dark-mode/Source/Editor/GX_ePasteAs.pas branches/dark-mode/Source/Editor/GX_eSort.pas branches/dark-mode/Source/Editor/GX_eSortOptions.pas branches/dark-mode/Source/Editor/GX_eWarn.pas branches/dark-mode/Source/ExplicitFilter/GX_ExplicitFilterExpert.pas branches/dark-mode/Source/Goto/GX_GotoConfig.pas branches/dark-mode/Source/Grep/GX_GrepMenuConfig.pas branches/dark-mode/Source/Grep/GX_GrepOptions.pas branches/dark-mode/Source/Grep/GX_GrepResultsOptions.pas branches/dark-mode/Source/MacroLibrary/GX_MacroLibraryConfig.pas branches/dark-mode/Source/MacroLibrary/GX_MacroLibraryEditEntry.pas branches/dark-mode/Source/MessageDialog/GX_MessageOptions.pas branches/dark-mode/Source/ProcedureList/GX_ProcedureListOptions.pas branches/dark-mode/Source/ProjectDependencies/GX_ProjDependOptions.pas Property Changed: ---------------- branches/dark-mode/ Index: branches/dark-mode =================================================================== --- branches/dark-mode 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode 2024-06-09 16:07:34 UTC (rev 4263) Property changes on: branches/dark-mode ___________________________________________________________________ Modified: svn:mergeinfo ## -1 +1 ## -/trunk:4085-4256 \ No newline at end of property +/trunk:4085-4262 \ No newline at end of property Modified: branches/dark-mode/ExternalSource/dzlib/u_dzFileUtils.pas =================================================================== --- branches/dark-mode/ExternalSource/dzlib/u_dzFileUtils.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/ExternalSource/dzlib/u_dzFileUtils.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -1580,10 +1580,21 @@ // declared wrongly in WINDOWS +{$IFDEF UNICODE} function GetVolumeInformation(lpRootPathName: PChar; lpVolumeNameBuffer: PChar; nVolumeNameSize: DWORD; lpVolumeSerialNumber: PDWORD; lpMaximumComponentLength, lpFileSystemFlags: LPDWORD; + lpFileSystemNameBuffer: PChar; nFileSystemNameSize: DWORD): BOOL; stdcall; external kernel32 Name 'GetVolumeInformationW'; +function GetVolumeInformationA(lpRootPathName: PAnsiChar; + lpVolumeNameBuffer: PAnsiChar; nVolumeNameSize: DWORD; lpVolumeSerialNumber: PDWORD; + lpMaximumComponentLength, lpFileSystemFlags: LPDWORD; + lpFileSystemNameBuffer: PAnsiChar; nFileSystemNameSize: DWORD): BOOL; stdcall; external kernel32 Name 'GetVolumeInformationA'; +{$ELSE} +function GetVolumeInformation(lpRootPathName: PChar; + lpVolumeNameBuffer: PChar; nVolumeNameSize: DWORD; lpVolumeSerialNumber: PDWORD; + lpMaximumComponentLength, lpFileSystemFlags: LPDWORD; lpFileSystemNameBuffer: PChar; nFileSystemNameSize: DWORD): BOOL; stdcall; external kernel32 Name 'GetVolumeInformationA'; +{$ENDIF} class function TFileSystem.GetVolumeName(_DriveLetter: Char): string; begin @@ -1982,14 +1993,14 @@ end; end; -{$if not declared(MOVEFILE_WRITE_THROUGH)} +{$IF not declared(MOVEFILE_WRITE_THROUGH)} const - MOVEFILE_WRITE_THROUGH = $00000008; -{$ifend} -{$if not declared(MOVEFILE_FAIL_IF_NOT_TRACKABLE)} + MOVEFILE_WRITE_THROUGH = $00000008; +{$IFEND} +{$IF not declared(MOVEFILE_FAIL_IF_NOT_TRACKABLE)} const - MOVEFILE_FAIL_IF_NOT_TRACKABLE = $00000020; -{$ifend} + MOVEFILE_FAIL_IF_NOT_TRACKABLE = $00000020; +{$IFEND} class function TFileSystem.MoveFileEx(const _Source, _Dest: string; _Flags: TMoveFileExFlagSet; _ErrorHandling: TErrorHandlingEnum = ehRaiseException): Boolean; Modified: branches/dark-mode/ExternalSource/dzlib/u_dzLineBuilder.pas =================================================================== --- branches/dark-mode/ExternalSource/dzlib/u_dzLineBuilder.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/ExternalSource/dzlib/u_dzLineBuilder.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -22,6 +22,7 @@ FQuoteChar: Char; FColumnCount: Integer; FForceQuoted: Boolean; + FIgnoreEmpty: Boolean; function GetDecimalSeparator: Char; procedure SetDecimalSeparator(_Value: Char); public @@ -76,11 +77,42 @@ ///<summary> If set to true, every column will be enclosed in quotes </summary> property ForceQuoted: Boolean read FForceQuoted write FForceQuoted; property QuoteChar: Char read FQuoteChar write FQuoteChar; + ///<summary> + /// If set to True, adding empty strings will not change the content -> no empty columns will be added + /// Default: False </summary> + property IgnoreEmpty: Boolean read FIgnoreEmpty write FIgnoreEmpty; {$IF Declared(TFormatSettings)} property FormatSettings: TFormatSettings read FFormatSettings; {$IFEND} end; +{$IFDEF SUPPORTS_ENHANCED_RECORDS} +type + ///<summary> + /// A very simple version of the line builder that only generates a comma separated string and + /// ignores empty strings. </summary> + TCommaSepStringBuilderRec = record + private + FSeparator: string; + FValue: string; + function GetSeparator: string; + public + procedure Clear; + ///<summary> + /// Appends a string, if it is not empty. Inserts the separator string in front of it, if Value + /// is not empty. if Value = '' then Value := _s; if_s = '' then Value remains unchanged, + /// otherwise Value := Value + Separator + _s </summary> + procedure Append(const _s: string); + property Value: string read FValue; + ///<summary> + /// The string used to separate strings appended, defaults to ',' + /// @NOTE: For better readability, you might want to set it to ', ' instead. </summary> + property Separator: string read GetSeparator write FSeparator; + class operator Implicit(_a: TCommaSepStringBuilderRec): string; + class operator Add(_a: TCommaSepStringBuilderRec; _b: string): TCommaSepStringBuilderRec; + end; +{$ENDIF} + implementation uses @@ -211,6 +243,8 @@ var s: string; begin + if (_Column = '') and (FIgnoreEmpty) then + Exit; //==> if FColumnCount > 0 then FContent := FContent + FListSeparator; if FForceQuoted then @@ -309,4 +343,42 @@ FColumnCount := FColumnCount + _Line.ColumnCount; end; +{$IFDEF SUPPORTS_ENHANCED_RECORDS} +{ TCommaSepListBuilderRec } + +procedure TCommaSepStringBuilderRec.Append(const _s: string); +begin + if _s = '' then + Exit; //==> + + if FValue <> '' then + FValue := FValue + GetSeparator; + FValue := FValue + _s; +end; + +procedure TCommaSepStringBuilderRec.Clear; +begin + FValue := ''; +end; + +function TCommaSepStringBuilderRec.GetSeparator: string; +begin + Result := FSeparator; + if Result = '' then + Result := ',' + else +end; + +class operator TCommaSepStringBuilderRec.Implicit(_a: TCommaSepStringBuilderRec): string; +begin + Result := _a.FValue; +end; + +class operator TCommaSepStringBuilderRec.Add(_a: TCommaSepStringBuilderRec; _b: string): TCommaSepStringBuilderRec; +begin + Result := _a; + Result.Append(_b); +end; +{$ENDIF} + end. Modified: branches/dark-mode/ExternalSource/dzlib/u_dzSpeedBitBtn.pas =================================================================== --- branches/dark-mode/ExternalSource/dzlib/u_dzSpeedBitBtn.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/ExternalSource/dzlib/u_dzSpeedBitBtn.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -17,7 +17,12 @@ u_dzVclUtils, u_dzTranslator; +{$IF not declared(NativeInt)} type + NativeInt = Integer; +{$IFEND} + +type EdzSpeedButton = class(EdzException); type @@ -33,6 +38,9 @@ /// Note: Actions do not work.</summary> TdzSpeedBitBtn = class(TWindowProcHook) private + FColorRaised: TColor; + FColorSunken: TColor; + FColorText: TColor; FCaption: string; FUpGlyph: TBitmap; FDownGlyph: TBitmap; @@ -49,8 +57,7 @@ procedure SetDown(const Value: Boolean); procedure UpdateGlyph; function GetBitBtn: TBitBtn; - procedure PrepareBmp(_w, _h: Integer; _Color: TColor; _Edge: UINT; _Glyph: TBitmap; - _bmp: TBitmap); + procedure PrepareBmp(_w, _h: Integer; _Color: TColor; _Edge: UINT; _Glyph: TBitmap; _bmp: TBitmap); procedure PrepareBmps(_UpBmp, _DownBmp: TBitmap); protected procedure NewWindowProc(var _Msg: TMessage); override; @@ -58,6 +65,7 @@ constructor Create(_btn: TBitBtn); reintroduce; overload; constructor Create(_btn: TBitBtn; _UpGlyph, _DownGlyph: TBitmap); overload; constructor Create(_btn: TBitBtn; _ImageList: TImageList; _UpGlyphIdx, _DownGlyphIdx: Integer); overload; + constructor Create(_btn: TWinControl; AColorText: TColor = clNone; AColorRaised: TColor = clNone; AColorSunken: TColor = clNone); overload; destructor Destroy; override; property Down: Boolean read GetDown write SetDown; property BitBtn: TBitBtn read GetBitBtn; @@ -74,6 +82,9 @@ FOnClick: TNotifyEvent; FList: TList; FAllowAllUp: Boolean; + FColorRaised: TColor; + FColorSunken: TColor; + FColorText: TColor; procedure HandleClick(_Sender: TObject); procedure doOnClick; function TryGetSelectedSb(out _Idx: Integer; out _sb: TdzSpeedBitBtn): Boolean; @@ -82,7 +93,7 @@ destructor Destroy; override; function Add(_btn: TBitBtn): TdzSpeedBitBtn; overload; function Add(_btn: TBitBtn; _Data: Pointer): TdzSpeedBitBtn; overload; - function Add(_btn: TBitBtn; _Data: Integer): TdzSpeedBitBtn; overload; + function Add(_btn: TBitBtn; _Data: NativeInt): TdzSpeedBitBtn; overload; ///<summary> /// Sets the given button's down state to False, if allowed /// @param Idx is the index of the button to change @@ -110,13 +121,26 @@ function TryGetSelected(out _Data: Pointer): Boolean; overload; property AllowAllUp: Boolean read FAllowAllUp write FAllowAllUp; property OnClick: TNotifyEvent read FOnClick write FOnClick; - end; + property ColorRaised: TColor read FColorRaised write FColorRaised default clNone; + property ColorSunken: TColor read FColorSunken write FColorSunken default clNone; + property ColorText: TColor read FColorText write FColorText default clNone; end; implementation +{$IF CompilerVersion >= 35} // Delphi 11 and up. + {$DEFINE USE_THEMING} +{$IFEND} + uses Math, Forms, +{$IFDEF USE_THEMING} + UxTheme, + Themes, + {$IFDEF USE_IDE_THEMING} + GX_OtaUtils, + {$ENDIF} +{$ENDIF} u_dzGraphicsUtils, u_dzMiscUtils; @@ -166,6 +190,20 @@ UpdateGlyph; end; +constructor TdzSpeedBitBtn.Create(_btn: TWinControl; + AColorText, AColorRaised, AColorSunken: TColor); +begin + inherited Create(_btn); + + FColorRaised := AColorRaised; + FColorSunken := AColorSunken; + FColorText := AColorText; + + if FColorRaised = clNone then FColorRaised := RGB(240, 240, 240); // clBtnFace; + if FColorSunken = clNone then FColorSunken := RGB(245, 245, 245); // a bit lighter than clBtnFace; + if FColorText = clNone then FColorText := RGB(0, 0, 0); // Black +end; + constructor TdzSpeedBitBtn.Create(_btn: TBitBtn; _ImageList: TImageList; _UpGlyphIdx, _DownGlyphIdx: Integer); var @@ -204,10 +242,14 @@ begin w := BitBtn.ClientWidth; h := BitBtn.ClientHeight; + BitBtn.Spacing := 0; ColBack1 := RGB(240, 240, 240); // clBtnFace; ColBack2 := RGB(245, 245, 245); // a bit lighter than clBtnFace; + if FColorRaised <> clNone then ColBack1 := FColorRaised; + if FColorSunken <> clNone then ColBack2 := FColorSunken; + PrepareBmp(w, h, ColBack1, EDGE_RAISED, FUpGlyph, FUpBmp); PrepareBmp(w, h, ColBack2, EDGE_SUNKEN, FDownGlyph, FDownBmp); end; @@ -216,6 +258,11 @@ _bmp: TBitmap); var cnv: TCanvas; +{$IFDEF USE_THEMING} + LStyleService : TCustomStyleServices; + LDetails : TThemedElementDetails; + DC : HDC; +{$ENDIF} procedure HandleBmpOnly; var @@ -247,7 +294,21 @@ HorizontalAlignment := dthaLeft; r := Rect(X + 2, 0, _w - 3, _h); end; - TCanvas_DrawTextSingleLine(cnv, FCaption, r, HorizontalAlignment, dtvaCenter, []); +{$IFDEF USE_THEMING} + if Assigned(LStyleService) and (LStyleService.Enabled) then + begin + LStyleService.DrawText( + DC, + LDetails, + FCaption, + R, + [tfCenter, tfVerticalCenter, tfSingleLine], + FColorText + ); + end + else +{$ENDIF} + TCanvas_DrawTextSingleLine(cnv, FCaption, r, HorizontalAlignment, dtvaCenter, []); end; procedure HandleTextOnlyMultiLine; @@ -386,14 +447,40 @@ _bmp.Height := _h; _bmp.TransparentColor := clFuchsia; +{$IFDEF USE_THEMING} + _bmp.PixelFormat := pfDevice; cnv := _bmp.Canvas; - cnv.Brush.Color := _Color; - cnv.Brush.Style := bsSolid; - cnv.FillRect(Rect(0, 0, _w, _h)); + {$IFDEF USE_IDE_THEMING} + LStyleService := IdeStyleService; + {$ELSE} + LStyleService := Themes.StyleServices; + {$ENDIF} + if Assigned(LStyleService) and LStyleService.Enabled then + begin + R := Rect(0, 0, _w, _h); + if _Edge = EDGE_SUNKEN then // "down" + begin + LDetails := LStyleService.GetElementDetails(TThemedButton.tbPushButtonPressed); + FColorText := LStyleService.GetStyleFontColor(TStyleFont.sfButtonTextPressed); + end + else begin // "up" + LDetails := LStyleService.GetElementDetails(TThemedButton.tbPushButtonNormal); + FColorText := LStyleService.GetStyleFontColor(TStyleFont.sfButtonTextNormal); + end; + LStyleService.DrawElement(DC, LDetails, R, nil, 0); +// _bmp.Canvas.Pixels[0, 0] := clFuchsia; + end + else +{$ENDIF USE_THEMING} + begin + cnv := _bmp.Canvas; + cnv.Brush.Color := _Color; + cnv.Brush.Style := bsSolid; + cnv.FillRect(Rect(0, 0, _w, _h)); - r := Rect(0, 0, _w - 1, _h - 2); - DrawEdge(cnv.Handle, r, _Edge, BF_RECT); - + r := Rect(0, 0, _w - 1, _h - 2); + DrawEdge(cnv.Handle, r, _Edge, BF_RECT); + end; cnv.Brush.Style := bsClear; cnv.Font := BitBtn.Font; @@ -485,6 +572,9 @@ begin inherited Create; FList := TList.Create; + FColorRaised := clNone; + FColorSunken := clNone; + FColorText := clNone; end; destructor TdzSpeedBitBtnGroup.Destroy; @@ -496,7 +586,10 @@ function TdzSpeedBitBtnGroup.Add(_btn: TBitBtn; _Data: Pointer): TdzSpeedBitBtn; begin _btn.OnClick := Self.HandleClick; - Result := TdzSpeedBitBtn.Create(_btn); +{$IFDEF USE_THEMING} + _btn.StyleElements := []; +{$ENDIF} + Result := TdzSpeedBitBtn.Create(_btn, FColorText, FColorRaised, FColorSunken); Result.Data := _Data; FList.Add(Result); end; @@ -506,7 +599,7 @@ Result := Add(_btn, nil); end; -function TdzSpeedBitBtnGroup.Add(_btn: TBitBtn; _Data: Integer): TdzSpeedBitBtn; +function TdzSpeedBitBtnGroup.Add(_btn: TBitBtn; _Data: NativeInt): TdzSpeedBitBtn; begin Result := Add(_btn, Pointer(_Data)); //FI:W541 Casting from Integer to Pointer type (or vice versa) end; Modified: branches/dark-mode/ExternalSource/dzlib/u_dzVclUtils.pas =================================================================== --- branches/dark-mode/ExternalSource/dzlib/u_dzVclUtils.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/ExternalSource/dzlib/u_dzVclUtils.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -1133,11 +1133,24 @@ function TRadioGroup_GetItemCaption(_rg: TCustomRadioGroup; out _Caption: string; _Idx: Integer = -1): Boolean; -///<summary> Selects the item in the radio group with the given caption, -/// returns the item's index or -1 if no item matched. -/// Comparison is case insensitive </summary> +///<summary> +/// Selects the item in the radio group with the given caption, +/// @returns the item's index or -1 if no item matched. +/// @NOTE: Comparison is case insensitive </summary> function TRadioGroup_Select(_rg: TCustomRadioGroup; const _Item: string; _DefaultIdx: Integer = -1): Integer; +///<summary> +/// Selects the item in the radio group with the given object value +/// @returns the item's index or -1 if no item matched. </summary> +function TRadioGroup_SelectByObject(_rg: TCustomRadioGroup; _Obj: Pointer; + _WithClick: Boolean = False; _DefaultIdx: Integer = -1): Integer; overload; + +///<summary> +/// Selects the item in the radio group with the given object value +/// @returns the item's index or -1 if no item matched. </summary> +function TRadioGroup_SelectByObject(_rg: TCustomRadioGroup; _ObjAsInt: Integer; + _WithClick: Boolean = False; _DefaultIdx: Integer = -1): Integer; overload; + procedure TRadioGroup_SelectWithoutClickEvent(_rg: TCustomRadioGroup; _Idx: Integer); ///<summary> Gets the object pointer of the selected RadioGroup item @@ -4235,12 +4248,38 @@ if AnsiSameText(Hack.Items[i], _Item) then begin Hack.ItemIndex := i; Result := Hack.ItemIndex; - Exit; + Exit; //==> end; Hack.ItemIndex := _DefaultIdx; Result := Hack.ItemIndex; end; +function TRadioGroup_SelectByObject(_rg: TCustomRadioGroup; _Obj: Pointer; + _WithClick: Boolean = False; _DefaultIdx: Integer = -1): Integer; +var + Hack: TRadioGroupHack; + i: Integer; +begin + Hack := TRadioGroupHack(_rg); + for i := 0 to Hack.Items.Count - 1 do + if Hack.Items.Objects[i] = _Obj then begin + if _WithClick then + Hack.ItemIndex := i + else + TRadioGroup_SelectWithoutClickEvent(_rg, i); + Result := Hack.ItemIndex; + Exit; //==> + end; + Hack.ItemIndex := _DefaultIdx; + Result := Hack.ItemIndex; +end; + +function TRadioGroup_SelectByObject(_rg: TCustomRadioGroup; _ObjAsInt: Integer; + _WithClick: Boolean = False; _DefaultIdx: Integer = -1): Integer; +begin + Result := TRadioGroup_SelectByObject(_rg, Pointer(_ObjAsInt), _WithClick, _DefaultIdx); +end; + procedure TRadioGroup_SelectWithoutClickEvent(_rg: TCustomRadioGroup; _Idx: Integer); var Hack: TRadioGroupHack; Modified: branches/dark-mode/Source/AutoTodo/GX_InsertAutoTodo.pas =================================================================== --- branches/dark-mode/Source/AutoTodo/GX_InsertAutoTodo.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/AutoTodo/GX_InsertAutoTodo.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -324,6 +324,7 @@ i: Integer; begin inherited; + TControl_SetMinConstraints(Self); Placeholders := TStringList.Create; try TAutoTodoHandler.GetPlaceholders(Placeholders); Modified: branches/dark-mode/Source/BackupProject/GX_BackupConfig.pas =================================================================== --- branches/dark-mode/Source/BackupProject/GX_BackupConfig.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/BackupProject/GX_BackupConfig.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -60,6 +60,7 @@ i: Integer; begin inherited; + TControl_SetMinConstraints(Self); TWinControl_ActivateDropFiles(edBackupDir, edBackupDirOnDropFiles); TEdit_ActivateAutoComplete(edBackupDir, [acsFileSystem], [actSuggest]); Modified: branches/dark-mode/Source/ClipboardHistory/GX_ClipboardOptions.pas =================================================================== --- branches/dark-mode/Source/ClipboardHistory/GX_ClipboardOptions.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/ClipboardHistory/GX_ClipboardOptions.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -76,6 +76,8 @@ begin inherited; + TControl_SetMinConstraints(Self); + cbPreviewFont.Items.Assign(Screen.Fonts); InitDpiScaler; Modified: branches/dark-mode/Source/Editor/GX_eAlignOptions.pas =================================================================== --- branches/dark-mode/Source/Editor/GX_eAlignOptions.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/Editor/GX_eAlignOptions.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -27,6 +27,9 @@ implementation +uses + u_dzVclUtils; + {$R *.dfm} { TfmAlignOptions } @@ -34,7 +37,7 @@ constructor TfmAlignOptions.Create(_Owner: TComponent); begin inherited; - + TControl_SetMinConstraints(Self); InitDpiScaler; end; Modified: branches/dark-mode/Source/Editor/GX_eComment.pas =================================================================== --- branches/dark-mode/Source/Editor/GX_eComment.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/Editor/GX_eComment.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -566,6 +566,7 @@ begin inherited; + TControl_SetMinConstraints(Self); InitDpiScaler; InitializeForm; Modified: branches/dark-mode/Source/Editor/GX_eDate.pas =================================================================== --- branches/dark-mode/Source/Editor/GX_eDate.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/Editor/GX_eDate.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -128,6 +128,7 @@ begin inherited; + TControl_SetMinConstraints(Self); InitDpiScaler; end; Modified: branches/dark-mode/Source/Editor/GX_ePasteAs.pas =================================================================== --- branches/dark-mode/Source/Editor/GX_ePasteAs.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/Editor/GX_ePasteAs.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -281,6 +281,7 @@ constructor TfmPasteAsConfig.Create(_Owner: TComponent); begin inherited; + TControl_SetMinConstraints(Self); TPasteAsHandler.GetTypeText(cbPasteAsType.Items); cbPasteAsType.DropDownCount := Integer(High(TPasteAsType)) + 1; Modified: branches/dark-mode/Source/Editor/GX_eSort.pas =================================================================== --- branches/dark-mode/Source/Editor/GX_eSort.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/Editor/GX_eSort.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -68,6 +68,7 @@ begin inherited; + TControl_SetMinConstraints(Self); InitDpiScaler; end; Modified: branches/dark-mode/Source/Editor/GX_eSortOptions.pas =================================================================== --- branches/dark-mode/Source/Editor/GX_eSortOptions.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/Editor/GX_eSortOptions.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -87,6 +87,7 @@ begin inherited; + TControl_SetMinConstraints(Self); InitDpiScaler; end; Modified: branches/dark-mode/Source/Editor/GX_eWarn.pas =================================================================== --- branches/dark-mode/Source/Editor/GX_eWarn.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/Editor/GX_eWarn.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -282,9 +282,9 @@ b_ERROR.Visible := False; {$IFEND} + TControl_SetMinConstraints(Self); InitDpiScaler; GxSetDefaultFont(Self); - TControl_SetMinConstraints(Self); FAvailable := TStringList.Create; InitWarnings; Modified: branches/dark-mode/Source/ExplicitFilter/GX_ExplicitFilterExpert.pas =================================================================== --- branches/dark-mode/Source/ExplicitFilter/GX_ExplicitFilterExpert.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/ExplicitFilter/GX_ExplicitFilterExpert.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -367,7 +367,7 @@ constructor TfmGxExplicitFilter.Create(_Owner: TComponent); begin inherited; - + TControl_SetMinConstraints(Self); InitDpiScaler; end; Modified: branches/dark-mode/Source/Goto/GX_GotoConfig.pas =================================================================== --- branches/dark-mode/Source/Goto/GX_GotoConfig.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/Goto/GX_GotoConfig.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -53,7 +53,7 @@ constructor Tf_GotoConfig.Create(_Owner: TComponent); begin inherited; - + TControl_SetMinConstraints(Self); InitDpiScaler; end; Modified: branches/dark-mode/Source/Grep/GX_GrepMenuConfig.pas =================================================================== --- branches/dark-mode/Source/Grep/GX_GrepMenuConfig.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/Grep/GX_GrepMenuConfig.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -55,6 +55,7 @@ constructor Tf_GrepMenuConfig.Create(_Owner: TComponent); begin inherited; + TControl_SetMinConstraints(Self); InitDpiScaler; end; Modified: branches/dark-mode/Source/Grep/GX_GrepOptions.pas =================================================================== --- branches/dark-mode/Source/Grep/GX_GrepOptions.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/Grep/GX_GrepOptions.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -64,6 +64,7 @@ begin inherited; + TControl_SetMinConstraints(Self); InitDpiScaler; end; Modified: branches/dark-mode/Source/Grep/GX_GrepResultsOptions.pas =================================================================== --- branches/dark-mode/Source/Grep/GX_GrepResultsOptions.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/Grep/GX_GrepResultsOptions.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -86,12 +86,16 @@ {$R *.dfm} -uses Graphics; +uses + Graphics, + u_dzVclUtils; constructor TfmGrepResultsOptions.Create(_Owner: TComponent); begin inherited; + TControl_SetMinConstraints(Self); + InitDpiScaler; end; Modified: branches/dark-mode/Source/MacroLibrary/GX_MacroLibraryConfig.pas =================================================================== --- branches/dark-mode/Source/MacroLibrary/GX_MacroLibraryConfig.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/MacroLibrary/GX_MacroLibraryConfig.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -14,6 +14,7 @@ private public class function Execute(_Owner: TWinControl; var APromptForName: Boolean): Boolean; + constructor Create(_Owner: TComponent); override; end; implementation @@ -25,6 +26,13 @@ { TfmGxMacroLibraryConfig } +constructor TfmGxMacroLibraryConfig.Create(_Owner: TComponent); +begin + inherited; + TControl_SetMinConstraints(Self); + InitDpiScaler; +end; + class function TfmGxMacroLibraryConfig.Execute(_Owner: TWinControl; var APromptForName: Boolean): Boolean; var frm: TfmGxMacroLibraryConfig; @@ -33,8 +41,7 @@ try TForm_CenterOn(frm, _Owner); frm.chk_AutoPrompt.Checked := APromptForName; - frm.InitDpiScaler; - Result := mrOk = frm.ShowModal; + Result := (mrOk = frm.ShowModal); if Result then APromptForName := frm.chk_AutoPrompt.Checked; finally Modified: branches/dark-mode/Source/MacroLibrary/GX_MacroLibraryEditEntry.pas =================================================================== --- branches/dark-mode/Source/MacroLibrary/GX_MacroLibraryEditEntry.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/MacroLibrary/GX_MacroLibraryEditEntry.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -74,6 +74,9 @@ Items: TStrings; begin inherited; + + TControl_SetMinConstraints(Self); + pnlEditGoesHere.BevelOuter := bvNone; FEdit := TSynEdit.Create(Self); FEdit.Parent := pnlEditGoesHere; Modified: branches/dark-mode/Source/MessageDialog/GX_MessageOptions.pas =================================================================== --- branches/dark-mode/Source/MessageDialog/GX_MessageOptions.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/MessageDialog/GX_MessageOptions.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -32,6 +32,7 @@ public class function Execute(_Owner: TWinControl; var _CrLfPascal: string; var _CrLfCPP: string; var _GunGetTextFunction: TGnuGetTextFunction; var _GnuGetTextIndividual: Boolean): Boolean; + constructor Create(_Owner: TComponent); override; end; implementation @@ -51,7 +52,6 @@ frm := TfmMessageOptions.Create(_Owner); try TForm_CenterOn(frm, _Owner); - frm.InitDpiScaler; frm.SetData(_CrLfPascal, _CrLfCPP, _GunGetTextFunction, _GnuGetTextIndividual); Result := (frm.ShowModal = mrOk); if Result then @@ -61,6 +61,13 @@ end; end; +constructor TfmMessageOptions.Create(_Owner: TComponent); +begin + inherited; + TControl_SetMinConstraints(Self); + InitDpiScaler; +end; + procedure TfmMessageOptions.GetData(out _CrLfPascal, _CrLfCPP: string; out _GunGetTextFunction: TGnuGetTextFunction; out _GnuGetTextIndividual: Boolean); begin Modified: branches/dark-mode/Source/ProcedureList/GX_ProcedureListOptions.pas =================================================================== --- branches/dark-mode/Source/ProcedureList/GX_ProcedureListOptions.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/ProcedureList/GX_ProcedureListOptions.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -80,7 +80,9 @@ {$R *.dfm} uses - SysUtils, Dialogs; + SysUtils, + Dialogs, + u_dzVclUtils; const CodeViewFontKey = 'CodeViewFont'; @@ -172,7 +174,7 @@ constructor TfmProcedureListOptions.Create(_Owner: TComponent); begin inherited; - + TControl_SetMinConstraints(Self); InitDpiScaler; end; Modified: branches/dark-mode/Source/ProjectDependencies/GX_ProjDependOptions.pas =================================================================== --- branches/dark-mode/Source/ProjectDependencies/GX_ProjDependOptions.pas 2024-06-06 15:40:57 UTC (rev 4262) +++ branches/dark-mode/Source/ProjectDependencies/GX_ProjDependOptions.pas 2024-06-09 16:07:34 UTC (rev 4263) @@ -31,6 +31,7 @@ public class function Execute(_Owner: TWinControl; var _ScanEntireUnit, _SearchLibraryPath, _SearchBrowsingPath: Boolean): Boolean; + constructor Create(_Owner: TComponent); override; end; implementation @@ -42,6 +43,13 @@ { TfmProjDependOptions } +constructor TfmProjDependOptions.Create(_Owner: TComponent); +begin + inherited; + TControl_SetMinConstraints(Self); + InitDpiScaler; +end; + class function TfmProjDependOptions.Execute(_Owner: TWinControl; var _ScanEntireUnit, _SearchLibraryPath, _SearchBrowsingPath: Boolean): Boolean; var This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aka...@us...> - 2024-06-09 16:10:29
|
Revision: 4265 http://sourceforge.net/p/gexperts/code/4265 Author: akalwahome Date: 2024-06-09 16:10:26 +0000 (Sun, 09 Jun 2024) Log Message: ----------- Use themed colors Modified Paths: -------------- branches/dark-mode/ExternalSource/GX_EnhancedEditor.pas branches/dark-mode/Source/AsciiChart/GX_AsciiChart.pas branches/dark-mode/Source/BackupProject/GX_BackupOptions.pas branches/dark-mode/Source/Bookmarks/GX_Bookmarks.pas branches/dark-mode/Source/ClassBrowser/GX_ClassBrowser.pas branches/dark-mode/Source/CodeLibrarian/GX_CodeOpt.dfm branches/dark-mode/Source/CodeLibrarian/GX_CodeOpt.pas branches/dark-mode/Source/EditPath/GX_EditPath.pas branches/dark-mode/Source/EditorToolbar/GX_ToolbarConfig.pas branches/dark-mode/Source/FavoriteFiles/GX_FavFileProp.pas branches/dark-mode/Source/FavoriteFiles/GX_FavNewFolder.pas branches/dark-mode/Source/FormHotkeys/GX_FormHotkeys.pas branches/dark-mode/Source/Framework/GX_BaseForm.dfm branches/dark-mode/Source/Framework/GX_BaseForm.pas branches/dark-mode/Source/Grep/GX_GrepInstantGrep.pas branches/dark-mode/Source/Grep/GX_GrepResults.dfm branches/dark-mode/Source/Grep/GX_GrepResults.pas branches/dark-mode/Source/Grep/GX_GrepSearch.dfm branches/dark-mode/Source/Grep/GX_GrepSearch.pas branches/dark-mode/Source/IDE/GX_IdeSearchPathEnhancer.pas branches/dark-mode/Source/IDEDocking/GX_IdeDock.pas branches/dark-mode/Source/KeyboardShortcuts/GX_KeyboardShortcuts.dfm branches/dark-mode/Source/KeyboardShortcuts/GX_KeyboardShortcuts.pas branches/dark-mode/Source/OpenFile/GX_OpenFile.pas branches/dark-mode/Source/SourceExport/GX_SourceExport.dfm branches/dark-mode/Source/SourceExport/GX_SourceExport.pas branches/dark-mode/Source/ToDoList/GX_ToDo.dfm branches/dark-mode/Source/ToDoList/GX_ToDo.pas Modified: branches/dark-mode/ExternalSource/GX_EnhancedEditor.pas =================================================================== --- branches/dark-mode/ExternalSource/GX_EnhancedEditor.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/ExternalSource/GX_EnhancedEditor.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -143,7 +143,7 @@ implementation uses - SysUtils, SynUnicode, Math, SynEditPrint; + SysUtils, SynUnicode, Math, Gx_IdeUtils, SynEditPrint; procedure Register; begin @@ -181,7 +181,7 @@ Height := 89; AutoSize := False; ParentColor := False; - Color := clWindow; + Color := GetThemedColor(clWindow); end; destructor TGxEnhancedEditor.Destroy; Modified: branches/dark-mode/Source/AsciiChart/GX_AsciiChart.pas =================================================================== --- branches/dark-mode/Source/AsciiChart/GX_AsciiChart.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/AsciiChart/GX_AsciiChart.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -197,7 +197,7 @@ { draw the character value as Int or Hex on screen } cnv.Font.Name := 'Tahoma'; // do not localize cnv.Font.Size := 9; - cnv.Font.Color := clGrayText; + cnv.Font.Color := GetThemedColor(clGrayText); { Only do the if check once for improved speed rather than every iteration } if FShowHex then begin for i := 0 to 127 do begin @@ -213,7 +213,7 @@ end; end; { Draw in the characters 0-31 if required } - cnv.Font.Color := clWindowText; + cnv.Font.Color := GetThemedColor(clWindowText); if FStartCharacter = 0 then begin DrawCharacter(cnv, 0, 'NUL', HorizMult, VertMult); // Ctrl @, NULL DrawCharacter(cnv, 1, 'SOH', HorizMult, VertMult); // Ctrl A, Start of Header @@ -261,7 +261,7 @@ cnv.Pen.Width := 1; cnv.Pen.Style := psSolid; { 1) draw left and top sides } - cnv.Pen.Color := clBtnHighlight; + cnv.Pen.Color := GetThemedColor(clBtnHighlight); for i := 0 to 7 do for j := 0 to 15 do cnv.PolyLine([Point(i * HorizMult, (j + 1) * VertMult - 2), @@ -268,7 +268,7 @@ Point(i * HorizMult, j * VertMult - 1), Point((i + 1) * HorizMult - 1, j * VertMult + -1)]); { 2) draw right and bottom sides } - cnv.Pen.Color := clBtnShadow; + cnv.Pen.Color := GetThemedColor(clBtnShadow); for i := 0 to 7 do for j := 0 to 15 do cnv.PolyLine([Point((i + 1) * HorizMult - 1, j * VertMult - 1), @@ -443,7 +443,7 @@ KillHint; if FShowHints then begin FHint := TGxHintWindow.Create(Self); - FHint.Color := clInfoBk; + FHint.Color := GetThemedColor(clInfoBk); if (FStartCharacter = 0) and (CharPos < 32) then begin HintText := DescLow[CharPos]; end else begin @@ -770,14 +770,17 @@ end; procedure TfmAsciiChart.doArrangeControls; +var + Spacer: Integer; begin + Spacer := FScaler.Calc(8); sb_Low.Left := 0; sb_High.Left := sb_Low.Left + sb_Low.Width + 1; - sb_Dec.Left := sb_High.Left + sb_High.Width + 8; + sb_Dec.Left := sb_High.Left + sb_High.Width + Spacer; sb_Hex.Left := sb_Dec.Left + sb_Dec.Width + 1; - edFontSize.Left := cbxFontName.Left + cbxFontName.Width + 8; - eChars.Left := edFontSize.Left + edFontSize.Width + updFontSize.Width + 8; + edFontSize.Left := cbxFontName.Left + cbxFontName.Width + Spacer; + eChars.Left := edFontSize.Left + edFontSize.Width + updFontSize.Width + Spacer; btnClear.Left := eChars.Left + eChars.Width + 1; actFontSize8.Caption := Format('Font size: %d', [FScaler.Calc(8)]); Modified: branches/dark-mode/Source/BackupProject/GX_BackupOptions.pas =================================================================== --- branches/dark-mode/Source/BackupProject/GX_BackupOptions.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/BackupProject/GX_BackupOptions.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -24,16 +24,20 @@ implementation -uses Graphics, GX_GenericUtils; - {$R *.dfm} +uses + Graphics, + GX_GenericUtils, + GX_IdeUtils, + u_dzVclUtils; + procedure TfmBackupOptions.cbPasswordClick(Sender: TObject); begin edPassword.Enabled := cbPassword.Checked; if edPassword.Enabled then begin - edPassword.Color := clWindow; + edPassword.Color := GetThemedColor(clWindow); TryFocusControl(edPassword); end else @@ -44,6 +48,7 @@ constructor TfmBackupOptions.Create(_Owner: TComponent); begin inherited; + TControl_SetMinConstraints(Self); InitDpiScaler; end; Modified: branches/dark-mode/Source/Bookmarks/GX_Bookmarks.pas =================================================================== --- branches/dark-mode/Source/Bookmarks/GX_Bookmarks.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/Bookmarks/GX_Bookmarks.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -81,6 +81,7 @@ GX_GExperts, GX_ConfigurationInfo, GX_OtaUtils, + GX_IdeUtils, GX_GenericUtils, GX_NTAEditServiceNotifier, GX_EditBookmark; @@ -109,6 +110,10 @@ { TGxBookmarksExpert } +const + clBookmarkDark = $00404A36; // RGB(54, 74, 65); + clBookmarkLight = $00F6FFFA; // RGB(250, 255, 230); + constructor TBookmarksExpert.Create; begin inherited Create; @@ -498,11 +503,11 @@ LineText: string; begin TextTop := _Rect.Top + TopOffset; - TopColor := clBtnHighlight; - BottomColor := clBtnShadow; + TopColor := GetThemedColor(clBtnHighlight); + BottomColor := GetThemedColor(clBtnShadow); - LbCanvas.Brush.Color := clBtnFace; - LbCanvas.Font.Color := clBtnText; + LbCanvas.Brush.Color := GetThemedColor(clBtnFace); + LbCanvas.Font.Color := GetThemedColor(clBtnText); LbCanvas.FillRect(_Rect); _Rect.Right := _Rect.Right + 2; @@ -535,13 +540,20 @@ BGBookmark: TColor; begin if [odSelected, odFocused] * _State = [odSelected, odFocused] then begin - BGNormal := clHighLight; - LbCanvas.Font.Color := clHighLightText; + BGNormal := GetThemedColor(clHighLight); + LbCanvas.Font.Color := GetThemedColor(clHighLightText); BGBookmark := BGNormal; end else begin - BGNormal := clWindow; - LbCanvas.Font.Color := clWindowText; - BGBookmark := RGB(250, 255, 230); + BGNormal := GetThemedColor(clWindow); + LbCanvas.Font.Color := GetThemedColor(clWindowText); + + {$IFDEF GX_SUPPORTS_THEMING} + if IdeStyleIsDark + then BGBookmark := clBookmarkDark + else BGBookmark := clBookmarkLight; + {$ELSE} + BGBookmark := clBookmarkLight; + {$ENDIF} end; LbCanvas.Brush.Color := BGNormal; LbCanvas.FillRect(_Rect); Modified: branches/dark-mode/Source/ClassBrowser/GX_ClassBrowser.pas =================================================================== --- branches/dark-mode/Source/ClassBrowser/GX_ClassBrowser.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/ClassBrowser/GX_ClassBrowser.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -1841,6 +1841,17 @@ FCodeText.ReadOnly := True; FCodeText.Highlighter := gxpPas; FCodeText.ActiveLineColor := TGxEnhancedEditor.DefaultActiveLineColor; + +{$IFDEF GX_SUPPORTS_THEMING} + GxOtaGetEditorFont(FMethodText.Font, -1); + FMethodText.Color := GetThemedColor(clWindow); + FMethodText.Font.Color := GetThemedColor(clWindowText); + + GxOtaGetEditorFont(FCodeText.Font, -1); + FCodeText.Color := GetThemedColor(clWindow); + FCodeText.Font.Color := GetThemedColor(clWindowText); + FCodeText.ActiveLineColor := GetThemedColor(clInfoBk); +{$ENDIF} end; procedure TfmClassBrowser.ViewBrowserDetails; Modified: branches/dark-mode/Source/CodeLibrarian/GX_CodeOpt.dfm =================================================================== --- branches/dark-mode/Source/CodeLibrarian/GX_CodeOpt.dfm 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/CodeLibrarian/GX_CodeOpt.dfm 2024-06-09 16:10:26 UTC (rev 4265) @@ -43,7 +43,7 @@ Top = 8 Width = 305 Height = 185 - ActivePage = tabPaths + ActivePage = tabLayout Anchors = [akLeft, akTop, akRight, akBottom] TabOrder = 0 object tabPaths: TTabSheet @@ -167,7 +167,6 @@ Height = 22 Style = csDropDownList DropDownCount = 18 - ItemHeight = 0 TabOrder = 0 end object fcEditor: TComboBox @@ -177,7 +176,6 @@ Height = 22 Style = csDropDownList DropDownCount = 18 - ItemHeight = 0 TabOrder = 3 end object udTreeview: TUpDown @@ -190,7 +188,6 @@ Max = 24 Position = 8 TabOrder = 2 - Wrap = False end object udEditor: TUpDown Left = 273 @@ -202,7 +199,6 @@ Max = 24 Position = 8 TabOrder = 5 - Wrap = False end object eTreeview: TEdit Left = 232 Modified: branches/dark-mode/Source/CodeLibrarian/GX_CodeOpt.pas =================================================================== --- branches/dark-mode/Source/CodeLibrarian/GX_CodeOpt.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/CodeLibrarian/GX_CodeOpt.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -1,5 +1,7 @@ unit GX_CodeOpt; +{$I GX_CondDefine.inc} + interface uses @@ -47,7 +49,7 @@ {$R *.dfm} uses - SysUtils, GX_GenericUtils, u_dzVclUtils; + SysUtils, Graphics, GX_GenericUtils, GX_IdeUtils, u_dzVclUtils; procedure TfmCodeOptions.sbBrowseClick(Sender: TObject); var @@ -59,9 +61,28 @@ end; procedure TfmCodeOptions.InitializeForm; + + procedure SetShapeColors(AShape: TShape; APenColor, ABrushColor: TColor); + begin + AShape.Pen.Color := APenColor; + AShape.Brush.Color := ABrushColor; + end; + +var + LPenColor : TColor; + LBrushColor : TColor; + begin fcTreeview.Items.Assign(Screen.Fonts); fcEditor.Items.Assign(Screen.Fonts); + + LPenColor := GetThemedColor(clWindowFrame); + LBrushColor := GetThemedColor(clWindow); + + SetShapeColors(shpLeft, LPenColor, LBrushColor); + SetShapeColors(shpRight, LPenColor, LBrushColor); + SetShapeColors(shpTop, LPenColor, LBrushColor); + SetShapeColors(shpBottom, LPenColor, LBrushColor); end; constructor TfmCodeOptions.Create(_Owner: TComponent); Modified: branches/dark-mode/Source/EditPath/GX_EditPath.pas =================================================================== --- branches/dark-mode/Source/EditPath/GX_EditPath.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/EditPath/GX_EditPath.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -171,6 +171,7 @@ SynUnicode, SynEdit, GX_OtaUtils, + GX_IdeUtils, GX_Experts, GX_EnhancedEditor, GX_GExperts, @@ -214,6 +215,13 @@ il := GExpertsInst.GetScaledSharedImages(_NewDpi); TheActionList.Images := il; + sb_MoveUp.Images := il; + sb_MoveDown.Images := il; + + act_MoveUp.ImageIndex := ImageIndexMoveUp; + sb_MoveUp.ImageIndex := ImageIndexMoveUp; + act_MoveDown.ImageIndex := ImageIndexMoveDown; + sb_MoveDown.ImageIndex := ImageIndexMoveDown; end; {$ENDIF} @@ -818,7 +826,12 @@ FMemo.Align := alClient; FMemo.HideSelection := False; FMemo.WordWrap := False; - FMemo.ActiveLineColor := TGxEnhancedEditor.DefaultActiveLineColor; +{$IFDEF GX_SUPPORTS_THEMING} + FMemo.ParentColor := True; + FMemo.Color := GetIdeEditorBackgroundColor; + FMemo.Font.Color := GetIdeEditorForegroundColor; +{$ENDIF} + FMemo.ActiveLineColor := GetIdeEditorLineHighlightColor; FMemo.RightEdge := 0; FMemo.Gutter.Width := 0; FMemo.Options := FMemo.Options - [eoScrollPastEol, eoTabsToSpaces] + [eoHideShowScrollbars]; Modified: branches/dark-mode/Source/EditorToolbar/GX_ToolbarConfig.pas =================================================================== --- branches/dark-mode/Source/EditorToolbar/GX_ToolbarConfig.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/EditorToolbar/GX_ToolbarConfig.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -81,7 +81,7 @@ uses SysUtils, Graphics, Menus, Messages, StrUtils, u_dzStringUtils, u_dzVclUtils, - GX_ActionBroker, GX_GenericUtils, GX_GxUtils, GX_Toolbar; + GX_ActionBroker, GX_GenericUtils, GX_GxUtils, GX_IdeUtils, GX_Toolbar; procedure AddActionToListbox(Action: TContainedAction; Listbox: TCustomListbox; Select: Boolean); var @@ -346,9 +346,9 @@ Action := TCustomAction(Obj); if odSelected in State then - LbCanvas.Brush.Color := clHighlight + LbCanvas.Brush.Color := GetThemedColor(clHighlight) else - LbCanvas.Brush.Color := clWindow; + LbCanvas.Brush.Color := GetThemedColor(clWindow); LbCanvas.FillRect(Rect); @@ -356,7 +356,7 @@ if Assigned(Action) and (Action.ImageIndex <> -1) then begin OldColor := LbCanvas.Brush.Color; - LbCanvas.Brush.Color := clBtnface; + LbCanvas.Brush.Color := GetThemedColor(clBtnface); try BtnRect := Classes.Rect(Rect.Left, Rect.Top + 1, Rect.Left + 20, Rect.Top + 20); @@ -365,7 +365,7 @@ Rect.Left + 2, Rect.Top + 2, Action.ImageIndex); - Frame3D(LbCanvas, BtnRect, clBtnHighlight, clBtnShadow, 1); + Frame3D(LbCanvas, BtnRect, GetThemedColor(clBtnHighlight), GetThemedColor(clBtnShadow), 1); finally LbCanvas.Brush.Color := OldColor; end; @@ -384,7 +384,7 @@ LbCanvas.Brush.Style := bsClear; if not lbAvailable.Enabled then - LbCanvas.Font.Color := clGrayText; + LbCanvas.Font.Color := GetThemedColor(clGrayText); LbCanvas.TextOut(Rect.Left + 22, Rect.Top + FTextOffSet, Listbox.Items[Index]); end; Modified: branches/dark-mode/Source/FavoriteFiles/GX_FavFileProp.pas =================================================================== --- branches/dark-mode/Source/FavoriteFiles/GX_FavFileProp.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/FavoriteFiles/GX_FavFileProp.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -1,9 +1,11 @@ unit GX_FavFileProp; +{$I GX_CondDefine.inc} + interface uses - SysUtils, Classes, Graphics, Controls, Forms, ExtCtrls, StdCtrls, ComCtrls, + Windows, SysUtils, Classes, Graphics, Controls, Forms, ExtCtrls, StdCtrls, ComCtrls, GX_BaseForm, GX_FavUtil; type @@ -38,6 +40,11 @@ procedure InitializeForm; procedure SetData(_FavoriteFilesForm: TForm; _File: TGXFile); procedure GetData(_File: TGXFile); + protected +{$IFDEF GX_IDE_IS_HIDPI_AWARE} + FOldDPI: Integer; + procedure ApplyDpi(_NewDpi: Integer; _NewBounds: PRect); override; +{$ENDIF} public class function Execute(_Owner: TWinControl; _File: TGXFile): boolean; constructor Create(_Owner: TComponent); override; @@ -48,7 +55,7 @@ {$R *.dfm} uses - GX_FavFiles, GX_GenericUtils, u_dzVclUtils; + GX_FavFiles, GX_GenericUtils, GX_IdeUtils, u_dzVclUtils; { TfmFavFileProp } @@ -73,11 +80,33 @@ begin inherited; + TControl_SetMinConstraints(Self); InitDpiScaler; - InitializeForm; end; +{$IFDEF GX_IDE_IS_HIDPI_AWARE} +procedure TfmFavFileProp.ApplyDpi(_NewDpi: Integer; _NewBounds: PRect); +var + LClientRect: TRect; + NewWidth: Integer; + NewHeight: Integer; +begin + Exit; + + if FOldDPI = 0 then + FOldDPI := TForm_CurrentPPI(Self); + if Assigned(FScaler) then begin + FScaler.ApplyDpi(_NewDpi, _NewBounds); + LClientRect := Self.ClientRect; + NewWidth := FScaler.Calc(LClientRect.Width); + NewHeight := FScaler.Calc(LClientRect.Height); + Self.ClientWidth := NewWidth; + Self.ClientHeight := NewHeight; + end; +end; +{$ENDIF} + procedure TfmFavFileProp.sbnFileClick(Sender: TObject); var TheForm: TfmFavFiles; @@ -129,9 +158,9 @@ sbnExecute.Enabled := ItemEnabled; edtExecuteUsing.Enabled := ItemEnabled; if ItemEnabled then - edtExecuteUsing.Color := clWindow + edtExecuteUsing.Color := GetThemedColor(clWindow) else - edtExecuteUsing.Color := clBtnFace; + edtExecuteUsing.Color := GetThemedColor(clBtnFace); end; procedure TfmFavFileProp.FormActivate(Sender: TObject); Modified: branches/dark-mode/Source/FavoriteFiles/GX_FavNewFolder.pas =================================================================== --- branches/dark-mode/Source/FavoriteFiles/GX_FavNewFolder.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/FavoriteFiles/GX_FavNewFolder.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -44,6 +44,7 @@ u_dzDpiScaleUtils, {$ENDIF} u_dzVclUtils, + GX_IdeUtils, GX_FavFiles; { TfmFavNewFolder } @@ -113,9 +114,9 @@ try cnv := cbxFolderType.Canvas; if odSelected in State then - cnv.Brush.Color := clHighlight + cnv.Brush.Color := GetThemedColor(clHighlight) else - cnv.Brush.Color := clWindow; + cnv.Brush.Color := GetThemedColor(clWindow); cnv.FillRect(Rect); TheForm := (FFavoriteFilesForm as TfmFavFiles); if Assigned(TheForm) then begin Modified: branches/dark-mode/Source/FormHotkeys/GX_FormHotkeys.pas =================================================================== --- branches/dark-mode/Source/FormHotkeys/GX_FormHotkeys.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/FormHotkeys/GX_FormHotkeys.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -82,6 +82,7 @@ Math, u_dzVclUtils, GX_OtaUtils, + GX_IdeUtils, GX_Experts, GX_GetIdeVersion, GX_StringGridDrawFix, @@ -416,14 +417,14 @@ cnv.Font := sg.Font; if (gdSelected in State) and (not (gdFocused in State) or ([goDrawFocusSelected, goRowSelect] * sg.Options <> [])) then begin - cnv.Brush.Color := clHighlight; - cnv.Font.Color := clHighlightText; + cnv.Brush.Color := GetThemedColor(clHighlight); + cnv.Font.Color := GetThemedColor(clHighlightText); end else if gdFixed in State then begin - cnv.Brush.Color := clBtnFace; - cnv.Font.Color := clWindowText; + cnv.Brush.Color := GetThemedColor(clBtnFace); + cnv.Font.Color := GetThemedColor(clWindowText); end else begin - cnv.Brush.Color := sg.Color; - cnv.Font.Color := clWindowText; + cnv.Brush.Color := GetThemedColor(clWindow); + cnv.Font.Color := GetThemedColor(clWindowText); end; cnv.FillRect(Rect); @@ -431,7 +432,7 @@ if s = 'N/A' then begin s := ''; if not (gdSelected in State) then - cnv.Brush.Color := clSilver; + cnv.Brush.Color := GetThemedColor(clScrollBar); end; TStringGrid_DrawCellFixed(sg, s, Rect, State, sg.Focused); end; Modified: branches/dark-mode/Source/Framework/GX_BaseForm.dfm =================================================================== --- branches/dark-mode/Source/Framework/GX_BaseForm.dfm 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/Framework/GX_BaseForm.dfm 2024-06-09 16:10:26 UTC (rev 4265) @@ -11,5 +11,6 @@ Position = poScreenCenter Scaled = False OnShow = FormShow + PixelsPerInch = 96 TextHeight = 13 end Modified: branches/dark-mode/Source/Framework/GX_BaseForm.pas =================================================================== --- branches/dark-mode/Source/Framework/GX_BaseForm.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/Framework/GX_BaseForm.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -51,6 +51,7 @@ {$R *.dfm} uses + GX_OtaUtils, GX_GxUtils; class function TfmBaseForm.Execute(_Owner: TComponent): Boolean; @@ -133,6 +134,7 @@ FGxHintCustomDataRec.ScaleHint := Self.ScaleHint; CopyMemory(@(FGxHintCustomDataRec.ID), @GxHintCustomDataId, SizeOf(FGxHintCustomDataRec.ID)); GxSetDefaultFont(Self); + GxOtaInitTheming(Self); if not Assigned(OnShow) then OnShow := FormShow; end; Modified: branches/dark-mode/Source/Grep/GX_GrepInstantGrep.pas =================================================================== --- branches/dark-mode/Source/Grep/GX_GrepInstantGrep.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/Grep/GX_GrepInstantGrep.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -92,7 +92,8 @@ GX_GrepMenuEntry, GX_GenericUtils, GX_NTAEditServiceNotifier, - GX_GExperts; + GX_GExperts, + GX_IdeUtils; var fmGxInstantGrepForm: TfmGxInstantGrepForm = nil; @@ -296,7 +297,7 @@ if _Index > 0 then _Rect.Top := _Rect.Top - 1; - LbCanvas.Brush.Color := clBtnShadow; + LbCanvas.Brush.Color := GetThemedColor(clBtnShadow); LbCanvas.FrameRect(_Rect); end; @@ -306,21 +307,21 @@ Line: string; TextTop: Integer; begin - LbCanvas.Brush.Color := clBtnFace; + LbCanvas.Brush.Color := GetThemedColor(clBtnFace); LbCanvas.FillRect(_Rect); TextTop := _Rect.Top + TopOffset; for i := -1 to 1 do begin if i = 0 then - LbCanvas.Font.Color := clBtnText + LbCanvas.Font.Color := GetThemedColor(clBtnText) else - LbCanvas.Font.Color := clGrayText; + LbCanvas.Font.Color := GetThemedColor(clGrayText); Line := Format('%d', [Res.Idx + 1 + i]); LbCanvas.TextOut(_Rect.Right - 1 - LbCanvas.TextWidth(Line) - FScaler.Calc(5), TextTop, Line); Inc(TextTop, LineHeight); end; - LbCanvas.Pen.Color := clBtnShadow; + LbCanvas.Pen.Color := GetThemedColor(clBtnShadow); LbCanvas.MoveTo(_Rect.Right - 1, _Rect.Top); LbCanvas.LineTo(_Rect.Right - 1, _Rect.Bottom); end; @@ -335,17 +336,17 @@ Idx: Integer; begin if odSelected in _State then begin - BGNormal := clHighLight; - LbCanvas.Font.Color := clHighLightText; + BGNormal := GetThemedColor(clHighLight); + LbCanvas.Font.Color := GetThemedColor(clHighLightText); BGMatch := BGNormal; end else if _Index = 0 then begin - BGNormal := clBtnFace; - LbCanvas.Font.Color := clWindowText; + BGNormal := GetThemedColor(clBtnFace); + LbCanvas.Font.Color := GetThemedColor(clWindowText); BGMatch := BGNormal; end else begin - BGNormal := clWindow; - LbCanvas.Font.Color := clWindowText; - BGMatch := RGB(250, 255, 230); + BGNormal := GetThemedColor(clWindow); + LbCanvas.Font.Color := GetThemedColor(clWindowText); + BGMatch := GetThemedColor(clInfoBk); // was: RGB(250, 255, 230); end; LbCanvas.Brush.Color := BGNormal; LbCanvas.FillRect(_Rect); @@ -398,7 +399,8 @@ begin cnv := lb_Results.Canvas; cnv.Font := lb_Results.Font; - lb_Results.ItemHeight := (cnv.TextHeight('Mg') + 2) * 3; + lb_Results.Color := GetThemedColor(clWindow); + lb_Results.ItemHeight := 1 + (cnv.TextHeight('Mg') + 2) * 3; end; procedure TfmGxInstantGrepForm.ed_RegExChange(Sender: TObject); Modified: branches/dark-mode/Source/Grep/GX_GrepResults.dfm =================================================================== --- branches/dark-mode/Source/Grep/GX_GrepResults.dfm 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/Grep/GX_GrepResults.dfm 2024-06-09 16:10:26 UTC (rev 4265) @@ -3,8 +3,8 @@ Top = 243 ActiveControl = lbResults Caption = 'Grep Results' - ClientHeight = 337 - ClientWidth = 396 + ClientHeight = 329 + ClientWidth = 394 DefaultMonitor = dmDesktop KeyPreview = True OldCreateOrder = False @@ -17,8 +17,8 @@ object pnlMain: TPanel Left = 0 Top = 0 - Width = 396 - Height = 318 + Width = 394 + Height = 329 Align = alClient BevelOuter = bvNone FullRepaint = False @@ -25,8 +25,8 @@ TabOrder = 0 object SplitterContext: TSplitter Left = 0 - Top = 222 - Width = 396 + Top = 224 + Width = 394 Height = 8 Cursor = crVSplit Align = alBottom @@ -40,8 +40,7 @@ Left = 147 Top = 22 Width = 8 - Height = 200 - Cursor = crHSplit + Height = 202 AutoSnap = False Beveled = True MinSize = 20 @@ -51,8 +50,8 @@ object lbResults: TListBox Left = 155 Top = 22 - Width = 241 - Height = 200 + Width = 239 + Height = 202 Style = lbOwnerDrawFixed Align = alClient ItemHeight = 17 @@ -70,11 +69,10 @@ object ToolBar: TToolBar Left = 0 Top = 0 - Width = 396 + Width = 394 Height = 22 AutoSize = True DisabledImages = dmSharedImages.DisabledImages - Flat = True Images = dmSharedImages.Images ParentShowHint = False ShowHint = True @@ -223,7 +221,7 @@ Left = 0 Top = 22 Width = 147 - Height = 200 + Height = 202 Align = alLeft TabOrder = 1 Tabs.Strings = ( @@ -237,7 +235,7 @@ Left = 4 Top = 25 Width = 139 - Height = 171 + Height = 173 Style = lbVirtualOwnerDraw Align = alClient Font.Charset = ANSI_CHARSET @@ -260,8 +258,8 @@ end object pnlBottom: TPanel Left = 0 - Top = 240 - Width = 396 + Top = 232 + Width = 394 Height = 97 Align = alBottom BevelOuter = bvNone @@ -279,7 +277,6 @@ Width = 60 end> ParentFont = True - SimplePanel = False UseSystemFont = False end object reContext: TRichEdit Modified: branches/dark-mode/Source/Grep/GX_GrepResults.pas =================================================================== --- branches/dark-mode/Source/Grep/GX_GrepResults.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/Grep/GX_GrepResults.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -963,21 +963,12 @@ end; procedure TfmGrepResults.Loaded; -var - PropInfo: PPropInfo; - i: Integer; - cmp: TComponent; begin inherited Loaded; - PropInfo := GetPropInfo(Self, 'StyleElements'); - if Assigned(PropInfo) then - SetOrdProp(Self, PropInfo, 0); - for I := 0 to ComponentCount - 1 do begin - cmp := Components[I]; - PropInfo := GetPropInfo(cmp, 'StyleElements'); - if Assigned(PropInfo) then - SetOrdProp(cmp, PropInfo, 0); - end; + + if IsThemingEnabled then + InitTheming(Self); + RemoveStyleElements(Self, True); // include sub-components end; procedure TfmGrepResults.LoadSettings; @@ -1341,13 +1332,13 @@ FileString: string; FileResult: TFileResult; begin - TopColor := clBtnHighlight; - BottomColor := clBtnShadow; + TopColor := GetThemedColor(clBtnHighlight); + BottomColor := GetThemedColor(clBtnShadow); FileResult := TFileResult(lbResults.Items.Objects[Index]); // Paint an expandable search file header (gray) - ResultsCanvas.Brush.Color := clBtnFace; - ResultsCanvas.Font.Color := clBtnText; + ResultsCanvas.Brush.Color := GetThemedColor(clBtnFace); + ResultsCanvas.Font.Color := GetThemedColor(clBtnText); ResultsCanvas.FillRect(Rect); Rect.Right := Rect.Right + 2; @@ -1404,10 +1395,10 @@ begin if gblGrepExpert.ListUseDefaultColors then begin - nb := clHighLight; - nf := clHighLightText; - sb := clWindow; - sf := clWindowText; + nb := GetThemedColor(clHighLight); + nf := GetThemedColor(clHighLightText); + sb := GetThemedColor(clWindow); + sf := GetThemedColor(clWindowText); end else begin @@ -1421,16 +1412,16 @@ begin if gblGrepExpert.ListUseDefaultColors then begin - sb := clHighLight; - sf := clHighLightText; - nb := clWindow; - nf := clWindowText; + sb := GetThemedColor(clHighLight); + sf := GetThemedColor(clHighLightText); + nb := GetThemedColor(clWindow); + nf := GetThemedColor(clWindowText); end else begin sb := gblGrepExpert.ListMatchBrushColor; sf := gblGrepExpert.ListMatchTextColor; - nb := clWindow; + nb := GetThemedColor(clWindow); nf := gblGrepExpert.ListFont.Color; end; end; @@ -1497,8 +1488,8 @@ procedure PaintOnlySaveSettings; begin - ResultsCanvas.Brush.Color := clWindow; - ResultsCanvas.Font.Color := clWindowText; + ResultsCanvas.Brush.Color := GetThemedColor(clWindow); + ResultsCanvas.Font.Color := GetThemedColor(clWindowText); ResultsCanvas.FillRect(Rect); ResultsCanvas.TextOut(Rect.Left + 3, Rect.Top + 1, lbResults.Items[Index]); @@ -2040,6 +2031,8 @@ end; procedure TfmGrepResults.FormShow(Sender: TObject); +var + LBackColor : TColor; begin inherited; @@ -2046,6 +2039,15 @@ AssignSettingsToForm; ResizeListBox; ResizeStatusBar; + if IsThemingEnabled then begin + InitTheming(Self); + LBackColor := GetThemedColor(clWindow); + pnlMain.Color := LBackColor; + pnlBottom.Color := LBackColor; + lbResults.Color := LBackColor; + lbHistoryList.Color := LBackColor; + reContext.Color := LBackColor; + end; ForceRedraw; end; @@ -2114,7 +2116,9 @@ begin Assert(Assigned(gblGrepExpert)); reContext.Font.Assign(gblGrepExpert.ContextFont); + reContext.Font.Color := GetThemedColor(gblGrepExpert.ContextFont.Color); lbResults.Font.Assign(gblGrepExpert.ListFont); + lbResults.Font.Color := GetThemedColor(gblGrepExpert.ListFont.Color); end; procedure TfmGrepResults.actReplaceAllExecute(Sender: TObject); @@ -2382,10 +2386,23 @@ Exit; cnv := lbHistoryList.Canvas; - if not gblGrepExpert.ListUseDefaultColors then + if gblGrepExpert.ListUseDefaultColors then begin if odSelected in State then begin + cnv.Font.Color := GetThemedColor(clHighlightText); + cnv.Brush.Color := GetThemedColor(clHighlight); + end + else + begin + cnv.Font.Color := GetThemedColor(clWindowText); + cnv.Brush.Color := GetThemedColor(clWindow); + end; + end + else + begin + if odSelected in State then + begin cnv.Font.Color := gblGrepExpert.ListMatchTextColor; cnv.Brush.Color := gblGrepExpert.ListMatchBrushColor; end @@ -2392,7 +2409,7 @@ else begin cnv.Font.Color := gblGrepExpert.ListFont.Color; - cnv.Brush.Color := clWindow; + cnv.Brush.Color := GetThemedColor(clWindow); end; end; Modified: branches/dark-mode/Source/Grep/GX_GrepSearch.dfm =================================================================== --- branches/dark-mode/Source/Grep/GX_GrepSearch.dfm 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/Grep/GX_GrepSearch.dfm 2024-06-09 16:10:26 UTC (rev 4265) @@ -9,7 +9,7 @@ Font.Charset = ANSI_CHARSET Font.Color = clWindowText Font.Height = -12 - Font.Name = 'Tahoma' + Font.Name = 'MS Shell Dlg 2' Font.Style = [] KeyPreview = True OldCreateOrder = False @@ -21,12 +21,12 @@ 681 588) PixelsPerInch = 96 - TextHeight = 14 + TextHeight = 15 object lblFind: TLabel - Left = 14 + Left = 21 Top = 12 - Width = 66 - Height = 14 + Width = 59 + Height = 15 Alignment = taRightJustify Caption = '&Text to find' FocusControl = cbText @@ -38,7 +38,7 @@ Height = 22 Anchors = [akLeft, akTop, akRight] DropDownCount = 15 - ItemHeight = 14 + ItemHeight = 0 TabOrder = 0 OnKeyDown = ComboKeyDown end @@ -141,7 +141,7 @@ 193) object chk_UseMapFile: TCheckBox Left = 24 - Top = 80 + Top = 79 Width = 201 Height = 17 Hint = @@ -214,10 +214,10 @@ OnClick = rbDirectoriesClick end object txt_NoMapFile: TStaticText - Left = 40 - Top = 80 - Width = 116 - Height = 18 + Left = 43 + Top = 79 + Width = 117 + Height = 19 Hint = 'Parses the .map file to get the unit names of all units used in ' + 'the project.'#13#10'You must enable generating a map file with publics' + @@ -355,8 +355,8 @@ object lblMasks: TLabel Left = 8 Top = 72 - Width = 188 - Height = 14 + Width = 183 + Height = 15 Caption = 'File mas&ks (separate by semicolon)' FocusControl = cbMasks end @@ -363,8 +363,8 @@ object lblDirectory: TLabel Left = 8 Top = 24 - Width = 192 - Height = 14 + Width = 185 + Height = 15 Caption = 'Di&rectories (separate by semicolon)' FocusControl = cbDirectory end @@ -371,8 +371,8 @@ object lblExcludeDirs: TLabel Left = 24 Top = 168 - Width = 200 - Height = 14 + Width = 192 + Height = 15 Caption = 'Exclude Dirs (separate by semicolon)' FocusControl = cbExcludedDirs end @@ -379,8 +379,8 @@ object l_MinMaxDepth: TLabel Left = 176 Top = 121 - Width = 90 - Height = 14 + Width = 89 + Height = 15 Caption = 'Min / Max Depth' end object cbMasks: TComboBox @@ -390,7 +390,7 @@ Height = 22 Anchors = [akLeft, akTop, akRight] DropDownCount = 15 - ItemHeight = 14 + ItemHeight = 0 TabOrder = 2 OnKeyDown = ComboKeyDown end Modified: branches/dark-mode/Source/Grep/GX_GrepSearch.pas =================================================================== --- branches/dark-mode/Source/Grep/GX_GrepSearch.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/Grep/GX_GrepSearch.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -101,6 +101,8 @@ procedure CheckEnabledWhereControls; procedure CheckContentTypeSelection(ClickedOption: TCheckBox); procedure CheckSectionSelection(ClickedOption: TCheckBox); + protected + procedure FormResize(Sender: TObject); public constructor Create(AOwner: TComponent); override; procedure EmbeddedInit(AHolderControl: TWinControl; ASearchEvent: TNotifyEvent); @@ -119,6 +121,7 @@ SysUtils, Windows, Messages, Graphics, StrUtils, Menus, Math, u_dzVclUtils, u_dzOsUtils, u_dzStringUtils, GX_GenericUtils, GX_GxUtils, GX_OtaUtils, GX_GrepResults, GX_GrepOptions, + GX_IdeUtils, GX_RegExpr, GX_TestRegEx; procedure FixComboBoxSelections(aForm: TCustomForm); @@ -221,12 +224,12 @@ chk_SubDirRegex.Enabled := New and cbInclude.Checked; btnBrowse.Enabled := New; if New then begin - LBackColor := clWindow; - LFontColor := clWindowText; + LBackColor := GetThemedColor(clWindow); + LFontColor := GetThemedColor(clWindowText); end else begin - LBackColor := clBtnFace; - LFontColor := clGrayText; + LBackColor := GetThemedColor(clBtnFace); + LFontColor := GetThemedColor(clGrayText); end; ApplyColors(cbDirectory); ApplyColors(cbExcludedDirs); @@ -295,13 +298,6 @@ procedure TfmGrepSearch.cbIncludeClick(Sender: TObject); begin EnableDirectoryControls(rbDirectories.Checked); -// -// l_MinMaxDepth.Enabled := LEnabled; -// ed_MinDepth.Enabled := LEnabled; -// ed_MaxDepth.Enabled := LEnabled; -// chk_SubDirRegex.Enabled := LEnabled; -// lblExcludeDirs.Enabled := LEnabled; -// cbExcludedDirs.Enabled := LEnabled; end; procedure TfmGrepSearch.CheckSectionSelection(ClickedOption: TCheckBox); @@ -426,6 +422,8 @@ FEmbedded := False; FEmbeddedHolder := nil; + TControl_SetMinConstraints(Self); + TWinControl_ActivateDropFiles(cbDirectory, cbDirectoryOnDropFiles); pnlBottom.BevelOuter := bvNone; @@ -442,10 +440,14 @@ procedure TfmGrepSearch.ed_MinDepthChange(Sender: TObject); begin inherited; - if ed_MinDepth.Text <> '0' then - ed_MinDepth.Color := clYellow - else - ed_MinDepth.Color := clWindow; + if ed_MinDepth.Text <> '0' then begin + ed_MinDepth.Color := GetThemedColor(clWarningBack); + ed_MinDepth.Font.Color := GetThemedColor(clWarningText); + end + else begin + ed_MinDepth.Color := GetThemedColor(clWindow); + ed_MinDepth.Font.Color := GetThemedColor(clWindowText); + end; end; procedure TfmGrepSearch.InitializeForm; @@ -453,6 +455,7 @@ FOriginalWidth := Width; FOriginalOptionsGroupWidth := gbxOptions.Width; FOriginalWhereGroupWidth := gbxWhere.Width; + OnResize := FormResize; end; procedure TfmGrepSearch.cbDirectoryOnDropFiles(_Sender: TObject; _Files: TStrings); @@ -811,6 +814,9 @@ Self.Font.Height := Self.Font.Height + 1; {$ENDIF} TControl_SetConstraints(Self, [ccMinWidth, ccMinHeight, ccMaxHeight]); + + if not IsStandAlone then + InitTheming(Self); FixComboBoxSelections(Self); end; @@ -976,6 +982,12 @@ Action := caHide; end; +procedure TfmGrepSearch.FormResize(Sender: TObject); +begin + inherited; + FixComboBoxSelections(Self); +end; + procedure TfmGrepSearch.EmbeddedShow; begin if not FEmbedded then Modified: branches/dark-mode/Source/IDE/GX_IdeSearchPathEnhancer.pas =================================================================== --- branches/dark-mode/Source/IDE/GX_IdeSearchPathEnhancer.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/IDE/GX_IdeSearchPathEnhancer.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -49,6 +49,7 @@ GX_GenericUtils, GX_IdeFavoritesList, GX_ConfigurationInfo, + GX_IdeUtils, GX_IdeSearchPathFavoriteEdit, GX_IdeDetectForms, GX_IdeDialogEnhancer, @@ -399,6 +400,10 @@ FMemo.RightEdge := 0; FMemo.Gutter.Width := 0; FMemo.Options := FMemo.Options - [eoScrollPastEol, eoTabsToSpaces] + [eoHideShowScrollbars]; + FMemo.Color := GetIdeEditorBackgroundColor; + FMemo.Font.Color := GetIdeEditorForegroundColor; + FMemo.ActiveLineColor := GetIdeEditorLineHighlightColor; + GxOtaGetEditorFont(FMemo.Font, -1); // Editor font, size reduced by 1 pt. FListbox.Parent := FTabSheetList; @@ -415,6 +420,13 @@ FListbox.OnDrawItem := HandleListboxDrawItem; {$ENDIF} +{$IFDEF GX_DELPHI10_4_UP} + if Assigned(FUpBtn) and (FUpBtn.ImageIndex < 0) then FUpBtn.ImageIndex := 2; + if Assigned(FUpBtn) and (FUpBtn.DisabledImageIndex < 0) then FUpBtn.DisabledImageIndex := 3; + if Assigned(FDownBtn) and (FDownBtn.ImageIndex < 0) then FDownBtn.ImageIndex := 0; + if Assigned(FDownBtn) and (FDownBtn.DisabledImageIndex < 0) then FDownBtn.DisabledImageIndex := 1; +{$ENDIF} + FDelDotsBtn := TButton.Create(_Form); FDelDotsBtn.Name := 'DelDotsBtn'; FDelDotsBtn.Parent := FPageControl.Parent; Modified: branches/dark-mode/Source/IDEDocking/GX_IdeDock.pas =================================================================== --- branches/dark-mode/Source/IDEDocking/GX_IdeDock.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/IDEDocking/GX_IdeDock.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -76,7 +76,7 @@ uses DeskForm, DeskUtil, - GX_GenericClasses, GX_GxUtils; + GX_GenericClasses, GX_OtaUtils, GX_GxUtils; type TIdeDockManager = class(TSingletonInterfacedObject, IIdeDockManager) @@ -152,6 +152,7 @@ CopyMemory(@(FGxHintCustomDataRec.ID), @GxHintCustomDataId, SizeOf(FGxHintCustomDataRec.ID)); GxSetDefaultFont(Self); + GxOtaInitTheming(Self); {$IFDEF GX_EnableIdeDockingSupport} if Menu <> nil then @@ -211,7 +212,10 @@ procedure TfmIdeDockForm.ScaleHint(_HintWindow: TGxHintWindow); begin - _HintWindow.Canvas.Font.Size := FScaler.Calc(Screen.HintFont.Size); + if Assigned(FScaler) then + _HintWindow.Canvas.Font.Height := FScaler.Calc(Screen.HintFont.Height) + else + _HintWindow.Canvas.Font.Size := Screen.HintFont.Size; end; procedure TfmIdeDockForm.InitDpiScaler; Modified: branches/dark-mode/Source/KeyboardShortcuts/GX_KeyboardShortcuts.dfm =================================================================== --- branches/dark-mode/Source/KeyboardShortcuts/GX_KeyboardShortcuts.dfm 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/KeyboardShortcuts/GX_KeyboardShortcuts.dfm 2024-06-09 16:10:26 UTC (rev 4265) @@ -5,20 +5,16 @@ Height = 507 BorderIcons = [biSystemMenu, biMaximize] Caption = 'Actions with Keyboard Shortcuts' - Color = clBtnFace + ParentFont = True Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [] OnClose = FormClose PixelsPerInch = 96 - TextHeight = 14 + TextHeight = 15 object sg_Actions: TStringGrid Left = 0 Top = 0 - Width = 589 - Height = 468 + Width = 653 + Height = 541 Align = alClient ColCount = 4 DefaultColWidth = 50 Modified: branches/dark-mode/Source/KeyboardShortcuts/GX_KeyboardShortcuts.pas =================================================================== --- branches/dark-mode/Source/KeyboardShortcuts/GX_KeyboardShortcuts.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/KeyboardShortcuts/GX_KeyboardShortcuts.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -66,6 +66,8 @@ GX_ActionBroker, GX_GenericUtils, GX_GetIdeVersion, + GX_OtaUtils, + GX_IdeUtils, GX_StringGridDrawFix; type @@ -228,6 +230,9 @@ sg_Actions.OnMouseWheelDown := sg_ActionsMouseWheelDown; sg_Actions.OnMouseWheelUp := sg_ActionsMouseWheelUp; + if IsThemingEnabled then + sg_Actions.DoubleBuffered := True; + TabStr := ShortCutToText(ShortCut(VK_TAB, [])); Row := sg_Actions.FixedRows; for i := 0 to GxActionBroker.GetActionCount - 1 do begin @@ -388,9 +393,9 @@ cnv: TCanvas; begin cnv := _sg.Canvas; - if _Duplicate then begin - cnv.Brush.Color := clYellow; - cnv.Font.Color := clBlack; + if _Duplicate and not (gdSelected in _State) then begin + cnv.Brush.Color := GetThemedColor(clWarningBack); + cnv.Font.Color := GetThemedColor(clWarningText); end; TStringGrid_DrawCellFixed(_sg, _Text, _Rect, _State, _Focused); end; Modified: branches/dark-mode/Source/OpenFile/GX_OpenFile.pas =================================================================== --- branches/dark-mode/Source/OpenFile/GX_OpenFile.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/OpenFile/GX_OpenFile.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -681,9 +681,9 @@ TControl_SetMinConstraints(Self); SetToolbarGradient(ToolBar); - lvSearchPath.Color := clBtnFace; + lvSearchPath.Color := GetThemedColor(clBtnFace); lvSearchPath.Enabled := False; - lvCommon.Color := clBtnFace; + lvCommon.Color := GetThemedColor(clBtnFace); lvCommon.Enabled := False; FAvailableFiles := TAvailableFiles.Create; AvailableFiles.OnFindComplete := SearchPathReady; @@ -737,10 +737,10 @@ begin FilterVisibleUnits; lvSearchPath.HandleNeeded; - lvSearchPath.Color := clWindow; + lvSearchPath.Color := GetThemedColor(clWindow); lvSearchPath.Enabled := True; lvCommon.HandleNeeded; - lvCommon.Color := clWindow; + lvCommon.Color := GetThemedColor(clWindow); lvCommon.Enabled := True; end; @@ -995,6 +995,7 @@ procedure TfmOpenFile.FormShow(Sender: TObject); var R : TRect; + LTextWidth: Integer; begin R := Self.BoundsRect; inherited; // will call ApplyDpi(), which resets the size. @@ -1005,6 +1006,11 @@ GxSetWindowSizeGrip(pnlButtonsRight.Handle, True); {$ENDIF} lvSearchPath.Columns[0].Width := FFileColumnWidth; + if lvSearchPath.Columns.Count >= 3 then + begin + LTextWidth := Self.Canvas.TextWidth(lvSearchPath.Columns[2].Caption) + 16; + lvSearchPath.Columns[2].Width := LTextWidth; + end; CopyColumns(lvSearchPath); ResizeListViewColumns; tabSearchPathShow(tabSearchPath); Modified: branches/dark-mode/Source/SourceExport/GX_SourceExport.dfm =================================================================== --- branches/dark-mode/Source/SourceExport/GX_SourceExport.dfm 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/SourceExport/GX_SourceExport.dfm 2024-06-09 16:10:26 UTC (rev 4265) @@ -101,6 +101,18 @@ end end end + object chkUseDarkMode: TCheckBox + Left = 470 + Top = 13 + Width = 56 + Height = 21 + Margins.Left = 4 + Margins.Top = 4 + Margins.Right = 4 + Margins.Bottom = 4 + Caption = 'Dark' + TabOrder = 2 + end end object pnlEditor: TPanel Left = 0 @@ -138,7 +150,7 @@ ShowHint = True end object tbnSave: TToolButton - Left = 23 + Left = 25 Top = 0 Action = actFileSave ParentShowHint = False @@ -145,7 +157,7 @@ ShowHint = True end object tbnCopy: TToolButton - Left = 46 + Left = 50 Top = 0 Action = actCopy DropdownMenu = pmuCopy @@ -154,7 +166,7 @@ Style = tbsDropDown end object ToolButton3: TToolButton - Left = 84 + Left = 94 Top = 0 Width = 8 ImageIndex = 6 @@ -161,7 +173,7 @@ Style = tbsSeparator end object tbnPrint: TToolButton - Left = 92 + Left = 102 Top = 0 Action = actFilePrint ParentShowHint = False @@ -168,7 +180,7 @@ ShowHint = True end object ToolButton2: TToolButton - Left = 115 + Left = 127 Top = 0 Width = 8 ImageIndex = 6 @@ -175,7 +187,7 @@ Style = tbsSeparator end object tbnConfigure: TToolButton - Left = 123 + Left = 135 Top = 0 Action = actFileConfigure ParentShowHint = False @@ -182,7 +194,7 @@ ShowHint = True end object ToolButton1: TToolButton - Left = 146 + Left = 160 Top = 0 Width = 8 ImageIndex = 6 @@ -189,7 +201,7 @@ Style = tbsSeparator end object tbnHelp: TToolButton - Left = 154 + Left = 168 Top = 0 Action = actHelpHelp ParentShowHint = False Modified: branches/dark-mode/Source/SourceExport/GX_SourceExport.pas =================================================================== --- branches/dark-mode/Source/SourceExport/GX_SourceExport.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/SourceExport/GX_SourceExport.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -55,6 +55,7 @@ tbnConfigure: TToolButton; ToolButton1: TToolButton; tbnHelp: TToolButton; + chkUseDarkMode: TCheckBox; procedure actHelpExecute(Sender: TObject); procedure FormActivate(Sender: TObject); procedure actRefreshExecute(Sender: TObject); @@ -88,6 +89,7 @@ FDefaultCopyFormat: TGXCopyFormat; FSaveDir: string; FSaveFilter: Integer; + FUseDarkMode: Boolean; FBackgroundColor: TColor; protected procedure InternalLoadSettings(_Settings: IExpertSettings); override; @@ -422,6 +424,7 @@ FDefaultCopyFormat := NewCopyFormat; FSaveDir := _Settings.ReadString('Save Directory', ''); FSaveFilter := _Settings.ReadInteger('Save Format', 1); + FUseDarkMode := _Settings.ReadBool('DarkMode', False); FBackgroundColor := _Settings.ReadInteger('Background', GetIdeEditorBackgroundColor); end; @@ -432,6 +435,7 @@ _Settings.WriteInteger('Copy Format', Ord(FDefaultCopyFormat)); _Settings.WriteString('Save Directory', FSaveDir); _Settings.WriteInteger('Save Format', FSaveFilter); + _Settings.WriteBool('DarkMode', FUseDarkMode); _Settings.WriteInteger('Background', FBackgroundColor); end; Modified: branches/dark-mode/Source/ToDoList/GX_ToDo.dfm =================================================================== --- branches/dark-mode/Source/ToDoList/GX_ToDo.dfm 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/ToDoList/GX_ToDo.dfm 2024-06-09 16:10:26 UTC (rev 4265) @@ -4,8 +4,8 @@ ActiveControl = edtFilterTodoList AutoScroll = False Caption = 'To Do List' - ClientHeight = 229 - ClientWidth = 665 + ClientHeight = 213 + ClientWidth = 661 Color = clBtnFace Font.Charset = ANSI_CHARSET Font.Color = clWindowText @@ -19,12 +19,13 @@ OnActivate = FormActivate OnKeyDown = FormKeyDown OnResize = FormResize + ParentFont = True PixelsPerInch = 96 TextHeight = 14 object StatusBar: TStatusBar Left = 0 - Top = 210 - Width = 665 + Top = 194 + Width = 661 Height = 19 Panels = <> ParentFont = True @@ -34,8 +35,8 @@ object lvTodo: TListView Left = 0 Top = 22 - Width = 665 - Height = 188 + Width = 661 + Height = 172 Align = alClient Columns = < item @@ -79,7 +80,7 @@ object ToolBar: TToolBar Left = 0 Top = 0 - Width = 665 + Width = 661 Height = 22 AutoSize = True DisabledImages = dmSharedImages.DisabledImages Modified: branches/dark-mode/Source/ToDoList/GX_ToDo.pas =================================================================== --- branches/dark-mode/Source/ToDoList/GX_ToDo.pas 2024-06-09 16:09:43 UTC (rev 4264) +++ branches/dark-mode/Source/ToDoList/GX_ToDo.pas 2024-06-09 16:10:26 UTC (rev 4265) @@ -133,6 +133,7 @@ FColumnIndex: Integer; FProjectFileName: string; FScannedFiles: TStringList; + FDarkMode: Boolean; function GetSelectedItem: TToDoInfo; procedure UMResizeCols(var Msg: TMessage); message UM_RESIZECOLS; procedure RefreshTodoList; @@ -199,6 +200,7 @@ mPasLex, mwBCBTokenList, mwPasParserTypes, u_dzVclUtils, u_dzStringUtils, GX_GxUtils, GX_GenericUtils, GX_EditReader, + GX_IdeUtils, GX_ToDoOptions, GX_GExperts; resourcestring @@ -717,6 +719,11 @@ RefreshTodoList; ShowNumberOfUnfilteredTodoItems; end; +{$IFDEF GX_SUPPORTS_THEMING} + FDarkMode := IdeStyleIsDark; +{$ELSE} + FDarkMode := False; +{$ENDIF} PostMessage(Self.Handle, UM_RESIZECOLS, 0, 0); edtFilterTodoList.Height := ToolBar.Height; // avoid auto-resetting of edtFilterTodoList.Height / does not work? end; @@ -1042,6 +1049,7 @@ FNotifier := TToDoNotifier.Create(Self); FNotifier.AddNotifierToIDE; + // lvToDo.DoubleBuffered := IsThemingEnabled; LoadSettings; end; @@ -1240,9 +1248,9 @@ begin cnv := lvToDo.Canvas; if Odd(Item.Index) then - cnv.Brush.Color := clWindow + cnv.Brush.Color := GetThemedColor(clWindow) else - cnv.Brush.Color := clWindow or ($0A0A0A); + cnv.Brush.Color := GetThemedColor(clWindow) or ($0A0A0A); // todo: check for current file against TToDoInfo(Item.data).FileName and draw the filename in bold // TODO: make coloring the text an option, maybe even let the user select the colours @@ -1257,19 +1265,22 @@ cnv.Font.Color := clWebOrangeRed; end; tpNormal: begin - cnv.Font.Color := clBlue; + if FDarkMode then + cnv.Font.Color := clWebLightSkyBlue + else + cnv.Font.Color := clBlue; end; tpLow: begin - cnv.Font.Color := clBlack; + cnv.Font.Color := GetThemedColor(clWindowText); end; tpLowest: begin - cnv.Font.Color := clGrayText; + cnv.Font.Color := GetThemedColor(clGrayText); end; tpInfo: begin - cnv.Font.Color := clBlack; + cnv.Font.Color := GetThemedColor(clWindowText); end; tpDone: begin - lvToDo.Canvas.Font.Color := clGrayText; + lvToDo.Canvas.Font.Color := GetThemedColor(clGrayText); end; end; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aka...@us...> - 2024-06-09 16:12:47
|
Revision: 4266 http://sourceforge.net/p/gexperts/code/4266 Author: akalwahome Date: 2024-06-09 16:12:45 +0000 (Sun, 09 Jun 2024) Log Message: ----------- Reworked some image for better contrast in dark mode. Modified Paths: -------------- branches/dark-mode/Images/DownArrowBlue.bmp branches/dark-mode/Images/GXIcons.rc branches/dark-mode/Images/TGoToNextModificationExpert.bmp branches/dark-mode/Images/TGoToPrevModificationExpert.bmp branches/dark-mode/Images/TGotoExpert.bmp branches/dark-mode/Images/UpArrowBlue.bmp branches/dark-mode/Source/Framework/GX_SharedImages.dfm branches/dark-mode/Source/Framework/GX_SharedImages.pas branches/dark-mode/icons/DisabledImages/0.bmp branches/dark-mode/icons/DisabledImages/12.bmp branches/dark-mode/icons/DisabledImages/13.bmp branches/dark-mode/icons/DisabledImages/89.bmp branches/dark-mode/icons/DisabledImages/92.bmp branches/dark-mode/icons/DisabledImages/93.bmp branches/dark-mode/icons/images/0.bmp branches/dark-mode/icons/images/12.bmp branches/dark-mode/icons/images/13.bmp branches/dark-mode/icons/images/80.bmp branches/dark-mode/icons/images/89.bmp branches/dark-mode/icons/images/92.bmp branches/dark-mode/icons/images/93.bmp Added Paths: ----------- branches/dark-mode/Images/TFormHotkeysExpert.bmp branches/dark-mode/Images/TGrepInstantSearchExpert.bmp Modified: branches/dark-mode/Images/DownArrowBlue.bmp =================================================================== (Binary files differ) Modified: branches/dark-mode/Images/GXIcons.rc =================================================================== --- branches/dark-mode/Images/GXIcons.rc 2024-06-09 16:10:26 UTC (rev 4265) +++ branches/dark-mode/Images/GXIcons.rc 2024-06-09 16:12:45 UTC (rev 4266) @@ -39,10 +39,12 @@ TFavoriteFilesExpert BITMAP "TFavoriteFilesExpert.bmp" TFindComponentReferenceExpert BITMAP "TFindComponentReferenceExpert.bmp" TFocusCodeEditorExpert BITMAP "TFocusCodeEditorExpert.bmp" +TFormHotkeysExpert BITMAP "TFormHotkeysExpert.bmp" TGotoExpert BITMAP "TGotoExpert.bmp" TGoToNextModificationExpert BITMAP "TGoToNextModificationExpert.bmp" TGoToPrevModificationExpert BITMAP "TGoToPrevModificationExpert.bmp" TGrepExpert BITMAP "TGrepExpert.bmp" +TGrepInstantSearchExpert BITMAP "TGrepInstantSearchExpert.bmp" TGrepMenuEntryExpert BITMAP "TGrepMenuEntryExpert.bmp" TGrepNextItemExpert BITMAP "TGrepNextItemExpert.bmp" TGrepPrevItemExpert BITMAP "TGrepPrevItemExpert.bmp" Added: branches/dark-mode/Images/TFormHotkeysExpert.bmp =================================================================== (Binary files differ) Index: branches/dark-mode/Images/TFormHotkeysExpert.bmp =================================================================== --- branches/dark-mode/Images/TFormHotkeysExpert.bmp 2024-06-09 16:10:26 UTC (rev 4265) +++ branches/dark-mode/Images/TFormHotkeysExpert.bmp 2024-06-09 16:12:45 UTC (rev 4266) Property changes on: branches/dark-mode/Images/TFormHotkeysExpert.bmp ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Modified: branches/dark-mode/Images/TGoToNextModificationExpert.bmp =================================================================== (Binary files differ) Modified: branches/dark-mode/Images/TGoToPrevModificationExpert.bmp =================================================================== (Binary files differ) Modified: branches/dark-mode/Images/TGotoExpert.bmp =================================================================== (Binary files differ) Added: branches/dark-mode/Images/TGrepInstantSearchExpert.bmp =================================================================== (Binary files differ) Index: branches/dark-mode/Images/TGrepInstantSearchExpert.bmp =================================================================== --- branches/dark-mode/Images/TGrepInstantSearchExpert.bmp 2024-06-09 16:10:26 UTC (rev 4265) +++ branches/dark-mode/Images/TGrepInstantSearchExpert.bmp 2024-06-09 16:12:45 UTC (rev 4266) Property changes on: branches/dark-mode/Images/TGrepInstantSearchExpert.bmp ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Modified: branches/dark-mode/Images/UpArrowBlue.bmp =================================================================== (Binary files differ) Modified: branches/dark-mode/Source/Framework/GX_SharedImages.dfm =================================================================== --- branches/dark-mode/Source/Framework/GX_SharedImages.dfm 2024-06-09 16:10:26 UTC (rev 4265) +++ branches/dark-mode/Source/Framework/GX_SharedImages.dfm 2024-06-09 16:12:45 UTC (rev 4266) @@ -1,12 +1,11 @@ object dmSharedImages: TdmSharedImages - OldCreateOrder = False - Height = 291 - Width = 388 + Height = 364 + Width = 485 object Images: TImageList - Left = 24 - Top = 16 + Left = 30 + Top = 20 Bitmap = { - 494C01015E008400540010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 494C01015E008400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 0000000000003600000028000000400000008001000001002000000000000080 0100000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -25,100 +24,105 @@ 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000008080800000000000000000000000 + 0000000000000000000000000000E8E8E8000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000080808000808080008080800080808000808080000000 + 0000E8E8E800E8E8E800E8E8E800E8E8E800E8E8E800E8E8E800E8E8E8000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000800000008080800080808000000000000000 + 00000000000000000000E8E8E800FF000000E8E8E80000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000008000000080000000800000008000000080000000808080000000 + 0000E8E8E800FF000000FF000000FF000000FF000000FF000000E8E8E8000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000FF000000FF0000008000000080808000808080000000 + 000000000000E8E8E800FF000000FF000000FF000000E8E8E800000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000FF000000FF000000FF000000FF00000080000000808080000000 + 0000E8E8E800FF000000FF000000FF000000FF000000FF000000E8E8E8000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000FF000000FF000000FF000000FF00000080000000808080008080 - 8000000000000000000000000000000000000000000000000000000000000000 - 000000000000FF000000FF000000FF000000FF00000080000000808080000000 + 0000E8E8E800FF000000FF000000FF000000FF000000FF000000E8E8E8000000 0000000000000000000000000000000000000000000000000000000000000000 + 0000E8E8E800FF000000FF000000FF000000FF000000FF000000E8E8E8000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000FF000000FF000000FF000000FF000000FF000000FF000000800000008080 - 8000808080000000000000000000000000000000000000000000000000000000 - 000000000000FF000000FF000000FF000000FF00000080000000808080000000 + 000000000000000000000000000000000000000000000000000000000000E8E8 + E800FF000000FF000000FF000000FF000000FF000000FF000000FF000000E8E8 + E800000000000000000000000000000000000000000000000000000000000000 + 0000E8E8E800FF000000FF000000FF000000FF000000FF000000E8E8E8000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000000000000000000000FF00 - 0000FF000000FF000000FF000000FF000000FF00000080000000800000008000 + 0000000000000000000000000000000000000000000000000000E8E8E800FF00 + 0000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 + 0000E8E8E8000000000000000000000000000000000000000000000000000000 + 0000E8E8E800FF000000FF000000FF000000FF000000FF000000E8E8E8000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000FF000000FF000000FF000000FF00000080000000808080000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000E8E8E800E8E8 + E800E8E8E800FF000000FF000000FF000000FF000000FF000000E8E8E800E8E8 + E800E8E8E8000000000000000000000000000000000000000000E8E8E800E8E8 + E800E8E8E800FF000000FF000000FF000000FF000000FF000000E8E8E800E8E8 + E800E8E8E8000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000FF000000FF000000FF000000FF00000080000000808080000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000FF000000FF000000FF000000FF00000080000000808080008080 - 8000808080000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000FF000000FF000000FF000000FF00000080000000808080000000 - 000000000000000000000000000000000000000000000000000000000000FF00 + 0000E8E8E800FF000000FF000000FF000000FF000000FF000000E8E8E8000000 + 0000000000000000000000000000000000000000000000000000E8E8E800FF00 0000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 + 0000E8E8E8000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 + 0000E8E8E800FF000000FF000000FF000000FF000000FF000000E8E8E8000000 + 000000000000000000000000000000000000000000000000000000000000E8E8 + E800FF000000FF000000FF000000FF000000FF000000FF000000FF000000E8E8 + E800000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000FF000000FF000000FF000000FF00000080000000808080000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000FF000000FF000000FF000000FF000000FF000000FF000000FF0000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 + 0000E8E8E800FF000000FF000000FF000000FF000000FF000000E8E8E8000000 0000000000000000000000000000000000000000000000000000000000000000 + 0000E8E8E800FF000000FF000000FF000000FF000000FF000000E8E8E8000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000FF000000FF000000FF000000FF00000080000000808080000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000FF000000FF000000FF000000FF000000FF000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 + 0000E8E8E800FF000000FF000000FF000000FF000000FF000000E8E8E8000000 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000E8E8E800FF000000FF000000FF000000E8E8E800000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000FF000000FF000000FF000000FF00000080000000808080000000 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000FF000000FF000000FF00000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 + 0000E8E8E800FF000000FF000000FF000000FF000000FF000000E8E8E8000000 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000E8E8E800FF000000E8E8E80000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000FF000000FF000000FF000000FF00000080000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000FF0000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 + 0000E8E8E800E8E8E800E8E8E800E8E8E800E8E8E800E8E8E800E8E8E8000000 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000E8E8E8000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -131,11 +135,6 @@ 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000A01898006C534A006048 4800A01898007040980030285000A04888000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -147,7 +146,7 @@ 00000000000000000000000000000000000080008000FFFFB000FFC8A3002B04 0000997AB100A4C4FF000022FF00000A0000A760750000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000C0C0C000C0C0C00000000000000000000000 000000000000000000000000000000000000000000000000000000000000CC99 00003333CC003333CC003333CC003333CC003333CC003333CC003333CC003333 CC0000000000000000000000000000000000000000000000000000000000CC33 @@ -155,7 +154,7 @@ 00000000000000000000000000000000000080008000FFFFAA00FBD6D2000E00 0000000044009378D300292ACE0000000000F1FCCC000000000056275900C335 C600000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000424242000000000000000000000000000000 + 00000000000000000000C0C0C0004242420042424200C0C0C000000000000000 000000000000000000000000000000000000000000000000000000000000CC99 0000CC9900003333CC00000000000000000000000000000000003333CC003333 CC003333CC00000000000000000000000000000000000000000000000000CC33 @@ -163,7 +162,7 @@ 00000000000000000000000000000000000080008000FFFFFF00E8C4AB005C98 910049FFFF00006FBA00B498FF0000002D00FFFFFF00D8E9DF00867C64000C2D 0800597F5E00F50FF60000000000000000000000000000000000000000000000 - 0000000000000000000042424200424242004242420000000000000000000000 + 000000000000C0C0C00042424200424242004242420042424200C0C0C0000000 00000000000000000000000000000000000000000000CC990000CC990000CC99 0000CC990000CC99000000000000000000000000000000000000000000003333 CC003333CC003333CC00000000000000000000000000CC333300CC333300CC33 @@ -171,16 +170,16 @@ 000000000000000000000000000000000000C000C000484B1C009291820060FF FF0000DBEE000070EF0000002100000000006D706C00EEE4D300E6B8B800F0C8 C4001C261800617C6500F313F300000000000000000000000000000000000000 - 0000000000004242420042424200424242004242420042424200000000000000 - 000000000000000000000000000000000000000000003333CC00CC990000CC99 + 0000C0C0C000424242004242420042424200424242004242420042424200C0C0 + C00000000000000000000000000000000000000000003333CC00CC990000CC99 0000CC990000CC990000CC9900000000000000000000000000003333CC003333 CC003333CC003333CC0000000000000000000000000000000000CC333300CC33 3300CC333300CC333300CC333300000000000000000000000000000000000000 00000000000000000000000000000000000060505000FDD9C6000000000063FF FF00BEFCEA00007BDE0088AB9B00FFFFFF00FFFFFF003B424300373233009074 - 7300FBD2CB000312090096629600000000000000000000000000000000000000 - 0000424242004242420042424200424242004242420042424200424242000000 - 000000000000000000000000000000000000000000003333CC003333CC00CC99 + 7300FBD2CB00031209009662960000000000000000000000000000000000C0C0 + C000424242004242420042424200424242004242420042424200424242004242 + 4200C0C0C000000000000000000000000000000000003333CC003333CC00CC99 0000CC990000CC990000CC990000CC990000000000003333CC003333CC003333 CC00000000003333CC003333CC0000000000000000000000000000000000CC33 3300CC333300CC333300CC333300CC3333000000000000000000000000000000 @@ -188,7 +187,7 @@ CC0026FFFF0000CDCD00000000002A121B0027151D00334045007F8689006D74 7600A98984000E0A1400698D69000000000000000000C0C0C000C0C0C000C0C0 C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0 - C000C0C0C000C0C0C00000000000000000003333CC003333CC00000000000000 + C000C0C0C000C0C0C000C0C0C000000000003333CC003333CC00000000000000 0000CC990000CC990000CC990000CC9900003333CC003333CC003333CC000000 000000000000000000003333CC003333CC000000000000000000000000000000 0000CC333300CC333300CC333300CC333300CC33330000000000000000000000 @@ -196,7 +195,7 @@ 7800003F3300D69E5F00FFFFB600FFF3BD00F4CBB900FCD1BA00B9987E006F77 7A008C928F000E0C1100669066000000000000000000C0C0C000C0C0C000C0C0 C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0 - C000C0C0C000C0C0C00000000000000000003333CC003333CC00000000000000 + C000C0C0C000C0C0C000C0C0C000000000003333CC003333CC00000000000000 000000000000CC990000CC9900003333CC003333CC003333CC00000000000000 000000000000000000003333CC003333CC000000000000000000000000000000 000000000000CC333300CC333300CC333300CC333300CC333300000000000000 @@ -204,7 +203,7 @@ B000FFEDB200000000000000000000000000FFE9B100FFE7BE00DEB0B5000200 0000DAE3DA0000140000D040D000000000000000000042424200424242004242 4200424242004242420042424200424242004242420042424200424242004242 - 4200424242004242420000000000000000003333CC003333CC00000000000000 + 4200424242004242420042424200000000003333CC003333CC00000000000000 000000000000000000003333CC003333CC003333CC00CC990000CC9900000000 000000000000000000003333CC003333CC000000000000000000000000000000 00000000000000000000CC333300CC333300CC333300CC333300CC3333000000 @@ -212,7 +211,7 @@ D20000000000000000000000000000000000948576008858480066300F00061E 0000B9F4B9001500150000000000000000000000000042424200424242004242 4200424242004242420042424200424242004242420042424200424242004242 - 4200424242004242420000000000000000003333CC003333CC00000000000000 + 4200424242004242420042424200000000003333CC003333CC00000000000000 0000000000003333CC003333CC003333CC00CC990000CC990000CC990000CC99 000000000000000000003333CC003333CC000000000000000000000000000000 0000000000000000000000000000CC333300CC333300CC333300CC333300CC33 @@ -220,7 +219,7 @@ 00000000000023B0000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000C0C0C000C0C0C000C0C0 C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0 - C000C0C0C000C0C0C0000000000000000000000000003333CC003333CC000000 + C000C0C0C000C0C0C000C0C0C00000000000000000003333CC003333CC000000 00003333CC003333CC003333CC0000000000CC990000CC990000CC990000CC99 0000CC9900003333CC003333CC00000000000000000000000000000000000000 000000000000000000000000000000000000CC333300CC333300CC333300CC33 @@ -228,7 +227,7 @@ 000023B0000023B0000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000C0C0C000C0C0C000C0C0 C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0C000C0C0 - C000C0C0C000C0C0C0000000000000000000000000003333CC003333CC003333 + C000C0C0C000C0C0C000C0C0C00000000000000000003333CC003333CC003333 CC003333CC003333CC00000000000000000000000000CC990000CC990000CC99 0000CC990000CC9900003333CC00000000000000000000000000000000000000 00000000000000000000000000000000000000000000CC333300CC333300CC33 @@ -236,7 +235,7 @@ 000023B0000023B0000023B0000023B0000023B0000023B0000023B0000023B0 000023B0000023B0000000000000000000000000000042424200424242004242 4200424242004242420042424200424242004242420042424200424242004242 - 42004242420042424200000000000000000000000000000000003333CC003333 + 42004242420042424200424242000000000000000000000000003333CC003333 CC003333CC000000000000000000000000000000000000000000CC990000CC99 0000CC990000CC990000CC990000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000CC333300CC33 @@ -244,7 +243,7 @@ 000023B0000023B0000000000000000000000000000000000000000000000000 0000000000000000000000000000E018E0000000000042424200424242004242 4200424242004242420042424200424242004242420042424200424242004242 - 4200424242004242420000000000000000000000000000000000000000003333 + 4200424242004242420042424200000000000000000000000000000000003333 CC003333CC003333CC00000000000000000000000000000000003333CC00CC99 0000CC990000CC9900003399CC003399CC000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000CC33 @@ -409,8 +408,8 @@ 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000FF000000FF000000FF0000000000000000000000 - 0000000000000000000000000000000000004AB5FF0052B5FF00218CEF004A7B + 000080808000808080000000FF000000FF000000FF0080808000808080008080 + 8000000000000000000000000000000000004AB5FF0052B5FF00218CEF004A7B A500C6949400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF FF00FFFFFF000000000000000000000000000000000000000000241CED00241C ED00241CED00241CED00241CED00241CED00241CED00241CED00241CED00241C @@ -432,9 +431,9 @@ ED00241CED00241CED00241CED00241CED00241CED00241CED00241CED00241C ED00241CED00241CED0000000000000000000000000000000000E8A20000E8A2 0000E8A20000E8A20000E8A20000E8A20000E8A20000E8A20000E8A20000E8A2 - 0000E8A20000E8A2000000000000000000000000000000000000000000000000 - 00000000FF000000FF000000FF000000000000000000000000000000FF000000 - FF00000000000000000000000000000000000000000000000000FFFFFF0052B5 + 0000E8A20000E8A2000000000000000000000000000000000000808080008080 + 80000000FF000000FF000000FF008080800000000000808080000000FF000000 + FF00808080008080800080808000000000000000000000000000FFFFFF0052B5 FF004AB5FF002184DE005A6B7300FFFFFF00AD7B7300C6A59C00D6B5A500CEA5 9C00FFFFFF000000000000000000000000000000000000000000241CED00241C ED00241CED00241CED00241CED00FFFFFF00FFFFFF00241CED00241CED00241C @@ -457,8 +456,8 @@ ED00241CED00241CED0000000000000000000000000000000000E8A20000E8A2 0000E8A20000FFFFFF00FFFFFF00E8A20000E8A20000FFFFFF00FFFFFF00E8A2 0000E8A20000E8A2000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000FF000000FF0000000000000000000000000000000000CC483F00CC48 + 0000000000000000000000000000808080008080800080808000808080008080 + 80000000FF000000FF0080808000000000000000000000000000CC483F00CC48 3F00CC483F00C6948C00F7DEB500F7D6A500FFF7CE00FFFFD600FFFFDE00FFFF EF00FFFFF700FFFFFF00DED6BD00000000000000000000000000241CED00241C ED00241CED00241CED00FFFFFF00FFFFFF00FFFFFF00FFFFFF00241CED00241C @@ -481,8 +480,8 @@ ED00241CED00241CED0000000000000000000000000000000000E8A20000E8A2 0000E8A20000FFFFFF00FFFFFF00E8A20000E8A20000FFFFFF00FFFFFF00E8A2 0000E8A20000E8A2000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000FF000000FF000000FF000000 - 0000000000000000000000000000000000000000000000000000FFFFFF00CC48 + 0000808080008080800080808000808080000000FF000000FF000000FF008080 + 8000808080000000000000000000000000000000000000000000FFFFFF00CC48 3F00CC483F00DEBDAD00FFE7B500EFBD8400F7CE9400FFEFC600FFFFDE00FFFF DE00FFFFDE00FFFFDE00F7EFD600C6A59C000000000000000000241CED00241C ED00241CED00FFFFFF00FFFFFF00241CED00241CED00FFFFFF00FFFFFF00241C @@ -504,9 +503,9 @@ ED00241CED00241CED00241CED00241CED00241CED00241CED00241CED00241C ED00241CED00241CED0000000000000000000000000000000000E8A20000E8A2 0000E8A20000E8A20000E8A20000E8A20000E8A20000E8A20000E8A20000E8A2 - 0000E8A20000E8A2000000000000000000000000000000000000000000000000 - 000000000000000000000000FF000000FF000000FF0000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 0000E8A20000E8A2000000000000000000000000000000000000808080008080 + 800080808000808080000000FF000000FF000000FF0080808000808080008080 + 8000808080008080800080808000000000000000000000000000000000000000 0000000000000000000000000000D6BDBD00F7EFD600FFEFC600FFE7AD00FFE7 B500F7DEB500CEAD9C0000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -2568,59 +2567,59 @@ B500EFCEB500EFCEB500EFCEB500E7C6B500E7C6B500EFCEB500D6BDB500BD84 7B000000000000000000000000000000000000000000B58C8C00B58C8C00B58C 8C00B58C8C00B58C8C00B58C8C00B58C8C00BD84840000000000000000000000 + 0000000000000000000000000000000000000000000094949400949494009494 + 9400949494009494940094949400949494009494940094949400949494009494 + 940094949400949494000000000000000000000000000000000000000000E1E1 + E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1 + E10000000000000000000000000000000000000000004A637B00BD9494000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000000000000000000000000000000000004A637B00BD9494000000 - 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000314A6300AD7B7B000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000063000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000CEA58C00AD734200AD734200AD734200AD734200AD734200734A29000000 - 0000000000000000000000000000000000006B9CC600188CE7004A7BA500C694 + 0000000000000063000000000000000000000000000094949400E1E1E100E1E1 + E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1 + E100E1E1E100949494000000000000000000000000000000000000000000E1E1 + E100CEA58C00AD734200AD734200AD734200AD734200AD734200734A2900E1E1 + E100000000000000000000000000000000006B9CC600188CE7004A7BA500C694 9400000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000005284B5000873E70031638C00B57B 7B00000000000000000000000000000000000000000000000000000000000000 00000000000000AD000000630000000000000000000000000000000000000000 - 0000000000000000000000000000AD7342000000000000000000000000000000 + 00000000000000000000E1E1E100AD734200E1E1E10000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000CEA58C00AD734200AD734200AD734200734A2900000000000000 + 0000E1E1E100CEA58C00AD734200AD734200AD734200734A2900E1E1E1000000 0000000000000000000000000000000000004AB5FF0052B5FF00218CEF004A7B A500C69494000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000031A5FF0039A5FF001073EF003163 8C00B57B7B000000000000000000000000000000000000000000006300000063 00000063000000AD000000AD0000006300000000000000000000000000000000 - 00000000000000000000CEA58C00B57B4A00734A290000000000000000000000 + 000000000000E1E1E100CEA58C00B57B4A00734A2900E1E1E100000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000CEA58C00AD734200734A290000000000000000000000 + 000000000000E1E1E100CEA58C00AD734200734A2900E1E1E100000000000000 0000000000000000000000000000000000000000000052B5FF0052B5FF001884 E7004A7BA500C694940000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000039A5FF0039A5FF00086B E70031638C00B57B7B000000000000000000000000000000000029FF290029FF 290029FF290000AD000000AD000029FF29000000000000000000000000000000 - 000000000000CEA58C00AD734200AD734200AD734200734A2900000000000000 + 0000E1E1E100CEA58C00AD734200AD734200AD734200734A2900E1E1E1000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000AD7342000000000000000000000000000000 + 00000000000000000000E1E1E100AD734200E1E1E10000000000000000000000 000000000000000000000000000000000000000000000000000052B5FF004AB5 FF00188CE7004A7BA500BD949400000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000039A5FF0031A5 FF000873E70031638C00AD7B7B00000000000000000000000000000000000000 - 00000000000000AD000029FF2900000000000000000000000000000000000000 - 0000CEA58C00AD734200AD734200AD734200AD734200AD734200734A29000000 - 0000000000000000000000000000000000000000000008080000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000008080000000000000000000000000000000000000000000052B5 + 00000000000000AD000029FF290000000000000000000000000000000000E1E1 + E100CEA58C00AD734200AD734200AD734200AD734200AD734200734A2900E1E1 + E100000000000000000000000000000000000000000094949400E1E1E100E1E1 + E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1 + E100E1E1E10094949400000000000000000000000000000000000000000052B5 FF004AB5FF002184DE005A6B730000000000AD7B7300C6A59C00D6B5A500CEA5 9C000000000000000000000000000000000000000000000000000000000039A5 FF0031A5FF00106BD60042525A00000000009C635A00B58C8400CEA58C00C68C - 84000000000029FF290000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000008080000080800000808 - 0000080800000808000008080000080800000808000008080000080800000808 - 0000080800000808000000000000000000000000000000000000000000000000 + 84000000000029FF29000000000000000000000000000000000000000000E1E1 + E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1 + E100000000000000000000000000000000000000000094949400949494009494 + 9400949494009494940094949400949494009494940094949400949494009494 + 9400949494009494940000000000000000000000000000000000000000000000 000052BDFF00B5D6EF00A5948C00B59C8C00F7E7CE00FFFFD600FFFFD600FFFF D600E7DEBD00CEADA50000000000000000000000000000000000000000000000 000039ADFF00A5CEEF008C7B7300A5847300F7E7C600FFFFCE00FFFFCE00FFFF @@ -2634,65 +2633,65 @@ 000000000000C6A5A500CEA58C00FFEFB500FFFFCE00FFFFCE00FFFFCE00FFFF D600FFFFE700F7F7EF00A5737300000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000008080000080800000808 - 0000080800000808000008080000080800000808000008080000080800000808 - 0000080800000808000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000094949400949494009494 + 9400949494009494940094949400949494009494940094949400949494009494 + 9400949494009494940000000000000000000000000000000000000000000000 000000000000C6948C00F7DEB500F7D6A500FFF7CE00FFFFD600FFFFDE00FFFF EF00FFFFF700FFFFFF00DED6BD00000000000000000000000000000000000000 000000000000B57B7300F7D6A500F7CE8C00FFF7C600FFFFCE00FFFFD600FFFF - E700FFFFF700FFFFFF00D6CEAD00000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000008080000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000808000000000000000000000000000000000000000000000000 + E700FFFFF700FFFFFF00D6CEAD0000000000000000000000000000000000E1E1 + E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1 + E100000000000000000000000000000000000000000094949400E1E1E100E1E1 + E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1 + E100E1E1E1009494940000000000000000000000000000000000000000000000 000000000000DEBDA500FFE7AD00F7CE9400FFF7CE00FFFFDE00FFFFE700FFFF F700FFFFF700FFFFEF00F7EFD600C69C94000000000000000000000000000000 000000000000D6AD8C00FFE79C00F7C67B00FFF7C600FFFFD600FFFFE700FFFF - F700FFFFF700FFFFE700F7E7C600B5847B000000000000000000000000000000 - 0000CEA58C00AD734200AD734200AD734200AD734200AD734200734A29000000 + F700FFFFF700FFFFE700F7E7C600B5847B00000000000000000000000000E1E1 + E100CEA58C00AD734200AD734200AD734200AD734200AD734200734A2900E1E1 + E100000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000E1E1E100AD734200E1E1E10000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000AD7342000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 000000000000E7C6AD00FFDEAD00EFBD8400F7E7B500FFFFD600FFFFDE00FFFF E700FFFFE700FFFFDE00F7F7D600C6AD9C000000000000000000000000000000 000000000000E7B59C00FFD69C00EFAD6B00F7E7A500FFFFCE00FFFFD600FFFF E700FFFFE700FFFFD600F7F7CE00B59C84000000000000000000000000000000 - 000000000000CEA58C00AD734200AD734200AD734200734A2900000000000000 + 0000E1E1E100CEA58C00AD734200AD734200AD734200734A2900E1E1E1000000 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000CEA58C00B57B4A00734A290000000000000000000000 + 000000000000E1E1E100CEA58C00B57B4A00734A2900E1E1E100000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000DEBDAD00FFE7B500EFBD8400F7CE9400FFEFC600FFFFDE00FFFF DE00FFFFDE00FFFFDE00F7EFD600C6A59C000000000000000000000000000000 000000000000D6AD9C00FFE7A500EFAD6B00F7C67B00FFEFB500FFFFD600FFFF D600FFFFD600FFFFD600F7E7C600B58C84000000000000000000000000000000 - 00000000000000000000CEA58C00AD734200734A290000000000000000000000 + 000000000000E1E1E100CEA58C00AD734200734A2900E1E1E100000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 000000000000CEA58C00AD734200AD734200AD734200734A2900000000000000 + 0000E1E1E100CEA58C00AD734200AD734200AD734200734A2900E1E1E1000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000C69C9400FFEFC600FFEFC600F7D6A500F7CE9C00F7E7B500FFF7 CE00FFF7D600FFFFD600E7DEBD00000000000000000000000000000000000000 000000000000B5847B00FFEFB500FFEFB500F7CE8C00F7C68400F7E7A500FFF7 C600FFF7C600FFFFCE00E7D6AD00000000000000000000000000000000000000 - 0000000000000000000000000000AD7342000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000CEA58C00AD734200AD734200AD734200AD734200AD734200734A29000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000E1E1E100AD734200E1E1E10000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000E1E1 + E100CEA58C00AD734200AD734200AD734200AD734200AD734200734A2900E1E1 + E100000000000000000000000000000000000000000000000000000000000000 00000000000000000000DEC6AD00FFFFFF00FFF7EF00F7CE9400EFBD8400F7CE 9C00FFE7B500FFF7C600BD9C8C00000000000000000000000000000000000000 00000000000000000000D6B59C00FFFFFF00FFF7EF00F7C67B00EFAD6B00F7C6 - 8400FFE7A500FFF7B500AD847300000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 + 8400FFE7A500FFF7B500AD847300000000000000000094949400E1E1E100E1E1 + E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1 + E100E1E1E100949494000000000000000000000000000000000000000000E1E1 + E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1E100E1E1 + E100000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000D6BDBD00F7EFD600FFEFC600FFE7AD00FFE7 B500F7DEB500CEAD9C0000000000000000000000000000000000000000000000 0000000000000000000000000000CEADAD00F7E7C600FFEFB500FFE79C00FFE7 - A500F7D6A500C69C840000000000000000000000000000000000000000000000 + A500F7D6A500C69C840000000000000000000000000094949400949494009494 + 9400949494009494940094949400949494009494940094949400949494009494 + 9400949494009494940000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000CEAD9400CEAD9C00DEBDA500DEBD A500000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000C69C7B00C69C8400D6AD8C00D6AD @@ -3083,13 +3082,13 @@ 000000000000000000000000000000000000424D3E000000000000003E000000 2800000040000000800100000100010000000000000C00000000000000000000 000000000000000000000000FFFFFF00FFFFFFFF00000000FFFFFFFF00000000 - FF7FFC1F00000000FE3FF81F00000000FC1FF81F00000000F80FF81F00000000 - F007F81F00000000E00FF81F00000000F81FF80700000000F81FE00F00000000 - F81FF01F00000000F81FF83F00000000F81FFC7F00000000F83FFEFF00000000 - FFFFFFFF00000000FFFFFFFF0000000080FFFFFFFC3FFFFF007FFFFF800F8FFF - 000FFEFF83C787FF0003FC7F83E383FF0001F83F81C3C1FF0001F01F8089E0FF - 00018003301CF07F00018003383CF83F070180033C1CFC1F09038003380CFE0F - 11FF80039101FF07A00380038381FF83C0018003C7C1FFC1E0028003E3C0FFE0 + FEFFF01F00000000FC7FF01F00000000F83FF01F00000000F01FF01F00000000 + E00FF01F00000000C007F01F00000000C007C00700000000F01FC00700000000 + F01FE00F00000000F01FF01F00000000F01FF83F00000000F01FFC7F00000000 + F01FFEFF00000000FFFFFFFF0000000080FFFFFFFC3FFFFF007FFE7F800F8FFF + 000FFC3F83C787FF0003F81F83E383FF0001F00F81C3C1FF0001E0078089E0FF + 00018001301CF07F00018001383CF83F070180013C1CFC1F09038001380CFE0F + 11FF80019101FF07A00380018381FF83C0018001C7C1FFC1E0028001E3C0FFE0 F1FCFFFFF000FFF0F9E0FFFFFC39FFF9FFFFFFFFFFFF80FF80018001C3FF007F 8001800181FF000F8001800181FF00038001800181FF00018001800180430001 80018001C201000180018001FF81006180018001FF81005180018001C201184B @@ -3162,11 +3161,11 @@ F1FF8000C0018001F0FF8000C0018001F00F8000C0018001C0038000C0018001 80018000C001000100008000C001800100008000C001800100008000C0018001 00008000C001800300008000C001800780018000C001801FC003C001C003801F - F00FFFFFC007803FFFFFFFFFC00F807F8003FFFF9FFF9FFBBFFBF01F0FFF0FF9 - FEFFF83F07FF07C0FC7FFC7F83FF83C0F83FFEFFC1FFC1F9F01FBFFBE10FE10B - FFFF8003F003F003FFFFFFFFF801F801FFFF8003F801F801FFFFBFFBF800F800 - F01FFEFFF800F800F83FFC7FF800F800FC7FF83FF801F801FEFFF01FFC01FC01 - BFFBFFFFFE03FE038003FFFFFF0FFF0FFE7FFFFFFFFFFFFCF07F8FFFE0019FF9 + F00FFFFFC007803FFFFFFFFFC00F807F8003E00F9FFF9FFB8003E00F0FFF0FF9 + FC7FF01F07FF07C0F83FF83F83FF83C0F01FFC7FC1FFC1F9E00F8003E10FE10B + E00F8003F003F003FFFFFFFFF801F801FFFF8003F801F801E00F8003F800F800 + E00FFC7FF800F800F01FF83FF800F800F83FF01FF801F801FC7FE00FFC01FC01 + 8003E00FFE03FE038003FFFFFF0FFF0FFE7FFFFFFFFFFFFCF07F8FFFE0019FF9 C001807FE0018FF3C001800FE00187E7C0018007E001C3CFC0018007E001F11F C0018003E001F83FC0018003E001FC7FC0018000E001F83FC0018000C001F19F C0018000C001E3CFC00180000001C7E7C001800000018FFBC001C3C000031FFF @@ -3182,10 +3181,10 @@ 000000000000} end object DisabledImages: TImageList - Left = 104 - Top = 16 + Left = 130 + Top = 20 Bitmap = { - 494C01015E006C00440010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 494C01015E006C00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 0000000000003600000028000000400000008001000001002000000000000080 0100000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 Modified: branches/dark-mode/Source/Framework/GX_SharedImages.pas =================================================================== --- branches/dark-mode/Source/Framework/GX_SharedImages.pas 2024-06-09 16:10:26 UTC (rev 4265) +++ branches/dark-mode/Source/Framework/GX_SharedImages.pas 2024-06-09 16:12:45 UTC (rev 4266) @@ -57,6 +57,9 @@ ImageIndexInterface = 86; + ImageIndexMoveDown = 92; + ImageIndexMoveUp = 93; + function GetSharedImageList: TImageList; implementation Modified: branches/dark-mode/icons/DisabledImages/0.bmp =================================================================== (Binary files differ) Modified: branches/dark-mode/icons/DisabledImages/12.bmp =================================================================== (Binary files differ) Modified: branches/dark-mode/icons/DisabledImages/13.bmp =================================================================== (Binary files differ) Modified: branches/dark-mode/icons/DisabledImages/89.bmp =================================================================== (Binary files differ) Modified: branches/dark-mode/icons/DisabledImages/92.bmp =================================================================== (Binary files differ) Modified: branches/dark-mode/icons/DisabledImages/93.bmp =================================================================== (Binary files differ) Modified: branches/dark-mode/icons/images/0.bmp =================================================================== (Binary files differ) Modified: branches/dark-mode/icons/images/12.bmp =================================================================== (Binary files differ) Modified: branches/dark-mode/icons/images/13.bmp =================================================================== (Binary files differ) Modified: branches/dark-mode/icons/images/80.bmp =================================================================== (Binary files differ) Modified: branches/dark-mode/icons/images/89.bmp =================================================================== (Binary files differ) Modified: branches/dark-mode/icons/images/92.bmp =================================================================== (Binary files differ) Modified: branches/dark-mode/icons/images/93.bmp =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aka...@us...> - 2024-06-09 16:13:43
|
Revision: 4267 http://sourceforge.net/p/gexperts/code/4267 Author: akalwahome Date: 2024-06-09 16:13:41 +0000 (Sun, 09 Jun 2024) Log Message: ----------- SynEdit dark mode. Modified Paths: -------------- branches/dark-mode/ExternalSource/UniSynEdit/SynHighlighterPas.pas branches/dark-mode/Source/Framework/GX_SynMemoUtils.pas Modified: branches/dark-mode/ExternalSource/UniSynEdit/SynHighlighterPas.pas =================================================================== --- branches/dark-mode/ExternalSource/UniSynEdit/SynHighlighterPas.pas 2024-06-09 16:12:45 UTC (rev 4266) +++ branches/dark-mode/ExternalSource/UniSynEdit/SynHighlighterPas.pas 2024-06-09 16:13:41 UTC (rev 4267) @@ -1463,6 +1463,7 @@ var tmpAsmAttri, tmpCommentAttri, tmpIdentAttri, tmpKeyAttri, tmpNumberAttri, + tmpFloatAttri, tmpSpaceAttri, tmpStringAttri, tmpSymbolAttri: TSynHighlighterAttributes; iVersions: TStringList; iVersionTag: string; @@ -1489,6 +1490,7 @@ tmpIdentAttri := TSynHighlighterAttributes.Create('', ''); tmpKeyAttri := TSynHighlighterAttributes.Create('', ''); tmpNumberAttri := TSynHighlighterAttributes.Create('', ''); + tmpFloatAttri := TSynHighlighterAttributes.Create('', ''); tmpSpaceAttri := TSynHighlighterAttributes.Create('', ''); tmpStringAttri := TSynHighlighterAttributes.Create('', ''); tmpSymbolAttri := TSynHighlighterAttributes.Create('', ''); @@ -1508,7 +1510,6 @@ FCharAttri.AssignColorAndStyle(tmpStringAttri); { Delphi lacks Char attribute } FCommentAttri.AssignColorAndStyle(tmpCommentAttri); FDirecAttri.AssignColorAndStyle(tmpCommentAttri); { Delphi lacks Directive attribute } - FFloatAttri.AssignColorAndStyle(tmpNumberAttri); { Delphi lacks Float attribute } FHexAttri.AssignColorAndStyle(tmpNumberAttri); { Delphi lacks Hex attribute } FIdentifierAttri.AssignColorAndStyle(tmpIdentAttri); FKeyAttri.AssignColorAndStyle(tmpKeyAttri); @@ -1516,12 +1517,19 @@ FSpaceAttri.AssignColorAndStyle(tmpSpaceAttri); FStringAttri.AssignColorAndStyle(tmpStringAttri); FSymbolAttri.AssignColorAndStyle(tmpSymbolAttri); + + FFloatAttri.Assign(FNumberAttri); // use Number as fallback for Float end; + + if Result and ReadDelphiSetting(iVersionTag, tmpFloatAttri, 'Float') then + FFloatAttri.AssignColorAndStyle(tmpFloatAttri); + tmpAsmAttri.Free; tmpCommentAttri.Free; tmpIdentAttri.Free; tmpKeyAttri.Free; tmpNumberAttri.Free; + tmpFloatAttri.Free; tmpSpaceAttri.Free; tmpStringAttri.Free; tmpSymbolAttri.Free; Modified: branches/dark-mode/Source/Framework/GX_SynMemoUtils.pas =================================================================== --- branches/dark-mode/Source/Framework/GX_SynMemoUtils.pas 2024-06-09 16:12:45 UTC (rev 4266) +++ branches/dark-mode/Source/Framework/GX_SynMemoUtils.pas 2024-06-09 16:13:41 UTC (rev 4267) @@ -15,9 +15,10 @@ implementation uses - SysUtils, Classes, Graphics, ToolsAPI, + Windows, SysUtils, Classes, Graphics, ToolsAPI, SynEditHighlighter, SynHighlighterPas, SynHighlighterCpp, SynHighlighterHtml, - SynHighlighterSql, SynHighlighterCS, SynHighlighterXML, SynHighlighterGeneral, GX_OtaUtils; + SynHighlighterSql, SynHighlighterCS, SynHighlighterXML, SynHighlighterGeneral, + GX_OtaUtils; procedure GxGetIDEHighLigherSettings(Highlighter: TSynCustomHighlighter; const Prefer: string); var @@ -71,7 +72,34 @@ SynEdit.Highlighter := TSynGeneralSyn.Create(SynEdit); end; if Highlighter in [gxpPAS, gxpCPP, gxpSQL, gxpCS] then + begin GxGetIDEHighLigherSettings(SynEdit.Highlighter, GetIDEVersionID); +{$IFDEF GX_SUPPORTS_THEMING} + var Key: string; + if GxOtaThemingEnabled + and IdeStyleIsDark // ColorToGrayscale(GxOtaGetThemedColor(clWindow)) < 127) + then begin + // Dark Mode + Key := GxOtaGetIdeBaseRegistryKey + '\Editor\Highlight'; + for i := 0 to SynEdit.Highlighter.AttrCount-1 do + begin + SynEdit.Highlighter.Attribute[i].LoadFromBorlandRegistry( + HKEY_CURRENT_USER, + Key, + SynEdit.Highlighter.Attribute[i].FriendlyName, + False + ); + end; + SynEdit.Highlighter.WhitespaceAttribute.LoadFromBorlandRegistry( + HKEY_CURRENT_USER, + Key, + 'Whitespace', + False + ); + SynEdit.Color := SynEdit.Highlighter.WhitespaceAttribute.Background; + end; +{$ENDIF} + end; end; function GetGXHighlighterForCurrentSourceEditor: TGXSyntaxHighlighter; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aka...@us...> - 2024-06-09 16:19:17
|
Revision: 4270 http://sourceforge.net/p/gexperts/code/4270 Author: akalwahome Date: 2024-06-09 16:19:15 +0000 (Sun, 09 Jun 2024) Log Message: ----------- added GX_SUPPORTS_THEMING Added GX_HotKeyDrawFix fur Delphi 11 and 12 Modified Paths: -------------- branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dpr branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dproj branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dpr branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dproj branches/dark-mode/Source/Goto/GX_Goto.dfm branches/dark-mode/Source/Include/GX_CondDefine.inc Modified: branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dpr =================================================================== --- branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dpr 2024-06-09 16:17:37 UTC (rev 4269) +++ branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dpr 2024-06-09 16:19:15 UTC (rev 4270) @@ -141,6 +141,7 @@ GX_GxUtils in '..\..\source\Utils\GX_GxUtils.pas', GX_HideNavbar in '..\..\source\Experts\EditorEnhancements\GX_HideNavbar.pas', GX_HideNonVisualComps in '..\..\source\HideNonvisualComponents\GX_HideNonVisualComps.pas', + GX_HotkeyDrawFix in '..\..\source\utils\GX_HotkeyDrawFix.pas', GX_IconMessageBox in '..\..\source\Framework\GX_IconMessageBox.pas', GX_IdeApplicationSettingsEnhancer in '..\..\Source\IDE\GX_IdeApplicationSettingsEnhancer.pas', GX_IdeBuildEventFavoriteEdit in '..\..\Source\IDE\GX_IdeBuildEventFavoriteEdit.pas' {f_IdeBuildEventFavoriteEdit}, Modified: branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dproj =================================================================== --- branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dproj 2024-06-09 16:17:37 UTC (rev 4269) +++ branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dproj 2024-06-09 16:19:15 UTC (rev 4270) @@ -49,13 +49,11 @@ <DCC_UsePackage>rtl;vcl;designide;$(DCC_UsePackage)</DCC_UsePackage> <GenDll>true</GenDll> <Manifest_File>(None)</Manifest_File> - <PreBuildEvent> - <![CDATA[call ..\..\source\_CreateGExpertsManifest.cmd + <PreBuildEvent><![CDATA[call ..\..\source\_CreateGExpertsManifest.cmd call ..\..\images\_CreateGXIconsRc.cmd call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)" call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)" -$(PreBuildEvent)]]> - </PreBuildEvent> +$(PreBuildEvent)]]></PreBuildEvent> <UsePackages>True</UsePackages> <VerInfo_Keys>FileVersion=1.0.0.0</VerInfo_Keys> <VerInfo_Locale>2057</VerInfo_Locale> @@ -80,7 +78,7 @@ </PropertyGroup> <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> <Debugger_HostApplication>$(BDS)\bin\bds.exe</Debugger_HostApplication> - <Debugger_RunParams>-ns -np</Debugger_RunParams> + <Debugger_RunParams>-rBDSPlain</Debugger_RunParams> </PropertyGroup> <ItemGroup> <DelphiCompile Include="$(MainSource)"> @@ -441,6 +439,7 @@ <DCCReference Include="..\..\source\Utils\GX_GxUtils.pas"/> <DCCReference Include="..\..\source\Experts\EditorEnhancements\GX_HideNavbar.pas"/> <DCCReference Include="..\..\source\HideNonvisualComponents\GX_HideNonVisualComps.pas"/> + <DCCReference Include="..\..\source\utils\GX_HotkeyDrawFix.pas"/> <DCCReference Include="..\..\source\Framework\GX_IconMessageBox.pas"/> <DCCReference Include="..\..\Source\IDE\GX_IdeApplicationSettingsEnhancer.pas"/> <DCCReference Include="..\..\Source\IDE\GX_IdeBuildEventFavoriteEdit.pas"> @@ -752,6 +751,14 @@ <PostBuildEvent/> <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' And '$(Platform)'=='Win64'"> + <PreBuildEvent>call ..\..\source\_CreateGExpertsManifest.cmd&&call ..\..\images\_CreateGXIconsRc.cmd&&call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)"&&call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)"</PreBuildEvent> + <PreBuildEventIgnoreExitCode>False</PreBuildEventIgnoreExitCode> + <PreLinkEvent/> + <PreLinkEventIgnoreExitCode>False</PreLinkEventIgnoreExitCode> + <PostBuildEvent/> + <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> + </PropertyGroup> <PropertyGroup Condition="'$(Config)'=='Debug' And '$(Platform)'=='Win32'"> <PreBuildEvent>call ..\..\source\_CreateGExpertsManifest.cmd&&call ..\..\images\_CreateGXIconsRc.cmd&&call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)"&&call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)"</PreBuildEvent> <PreBuildEventIgnoreExitCode>False</PreBuildEventIgnoreExitCode> @@ -760,4 +767,12 @@ <PostBuildEvent/> <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' And '$(Platform)'=='Win64'"> + <PreBuildEvent>call ..\..\source\_CreateGExpertsManifest.cmd&&call ..\..\images\_CreateGXIconsRc.cmd&&call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)"&&call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)"</PreBuildEvent> + <PreBuildEventIgnoreExitCode>False</PreBuildEventIgnoreExitCode> + <PreLinkEvent/> + <PreLinkEventIgnoreExitCode>False</PreLinkEventIgnoreExitCode> + <PostBuildEvent/> + <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> + </PropertyGroup> </Project> Modified: branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dpr =================================================================== --- branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dpr 2024-06-09 16:17:37 UTC (rev 4269) +++ branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dpr 2024-06-09 16:19:15 UTC (rev 4270) @@ -184,6 +184,7 @@ GX_MacroTemplates in '..\..\source\MacroTemplates\GX_MacroTemplates.pas' {fmMacroTemplates}, GX_MacroTemplatesExpert in '..\..\source\MacroTemplates\GX_MacroTemplatesExpert.pas', GX_MemoEscFix in '..\..\Source\Utils\GX_MemoEscFix.pas', + GX_HotkeyDrawFix in '..\..\Source\Utils\GX_HotkeyDrawFix.pas', GX_MenuActions in '..\..\source\Framework\GX_MenuActions.pas', GX_MenusForEditorExpert in '..\..\source\Editor\GX_MenusForEditorExpert.pas', GX_MessageBox in '..\..\source\Framework\GX_MessageBox.pas' {fmGxMessageBox}, Modified: branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dproj =================================================================== --- branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dproj 2024-06-09 16:17:37 UTC (rev 4269) +++ branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dproj 2024-06-09 16:19:15 UTC (rev 4270) @@ -9,6 +9,7 @@ <ProjectGuid>{BB29661E-3FA2-4EA6-96EB-0768940BAAB6}</ProjectGuid> <ProjectVersion>20.1</ProjectVersion> <TargetedPlatforms>1</TargetedPlatforms> + <ProjectName Condition="'$(ProjectName)'==''">GExpertsRS120</ProjectName> </PropertyGroup> <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> <Base>true</Base> @@ -56,13 +57,11 @@ <DCC_UsePackage>rtl;vcl;designide;$(DCC_UsePackage)</DCC_UsePackage> <GenDll>true</GenDll> <Manifest_File>(None)</Manifest_File> - <PreBuildEvent> - <![CDATA[call ..\..\images\_CreateGXIconsRc.cmd + <PreBuildEvent><![CDATA[call ..\..\images\_CreateGXIconsRc.cmd call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)" call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)" call ..\..\source\_CreateGExpertsManifest.cmd -$(PreBuildEvent)]]> - </PreBuildEvent> +$(PreBuildEvent)]]></PreBuildEvent> <UsePackages>True</UsePackages> <VerInfo_Keys>FileVersion=1.0.0.0</VerInfo_Keys> <VerInfo_Locale>2057</VerInfo_Locale> @@ -91,6 +90,7 @@ <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> <DCC_DebugDCUs>true</DCC_DebugDCUs> <Debugger_HostApplication>$(BDS)\bin\bds.exe</Debugger_HostApplication> + <Debugger_RunParams>-rBDSPlain -pDelphi</Debugger_RunParams> </PropertyGroup> <ItemGroup> <DelphiCompile Include="$(MainSource)"> @@ -539,6 +539,7 @@ </DCCReference> <DCCReference Include="..\..\source\MacroTemplates\GX_MacroTemplatesExpert.pas"/> <DCCReference Include="..\..\Source\Utils\GX_MemoEscFix.pas"/> + <DCCReference Include="..\..\Source\Utils\GX_HotkeyDrawFix.pas"/> <DCCReference Include="..\..\source\Framework\GX_MenuActions.pas"/> <DCCReference Include="..\..\source\Editor\GX_MenusForEditorExpert.pas"/> <DCCReference Include="..\..\source\Framework\GX_MessageBox.pas"> @@ -763,6 +764,14 @@ <PostBuildEvent/> <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Release' And '$(Platform)'=='Win64'"> + <PreBuildEvent>call ..\..\images\_CreateGXIconsRc.cmd&&call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)"&&call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)"&&call ..\..\source\_CreateGExpertsManifest.cmd</PreBuildEvent> + <PreBuildEventIgnoreExitCode>False</PreBuildEventIgnoreExitCode> + <PreLinkEvent/> + <PreLinkEventIgnoreExitCode>False</PreLinkEventIgnoreExitCode> + <PostBuildEvent/> + <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> + </PropertyGroup> <PropertyGroup Condition="'$(Config)'=='Debug' And '$(Platform)'=='Win32'"> <PreBuildEvent>call ..\..\images\_CreateGXIconsRc.cmd&&call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)"&&call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)"&&call ..\..\source\_CreateGExpertsManifest.cmd</PreBuildEvent> <PreBuildEventIgnoreExitCode>False</PreBuildEventIgnoreExitCode> @@ -771,4 +780,12 @@ <PostBuildEvent/> <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> </PropertyGroup> + <PropertyGroup Condition="'$(Config)'=='Debug' And '$(Platform)'=='Win64'"> + <PreBuildEvent>call ..\..\images\_CreateGXIconsRc.cmd&&call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)"&&call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)"&&call ..\..\source\_CreateGExpertsManifest.cmd</PreBuildEvent> + <PreBuildEventIgnoreExitCode>False</PreBuildEventIgnoreExitCode> + <PreLinkEvent/> + <PreLinkEventIgnoreExitCode>False</PreLinkEventIgnoreExitCode> + <PostBuildEvent/> + <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> + </PropertyGroup> </Project> Modified: branches/dark-mode/Source/Goto/GX_Goto.dfm =================================================================== --- branches/dark-mode/Source/Goto/GX_Goto.dfm 2024-06-09 16:17:37 UTC (rev 4269) +++ branches/dark-mode/Source/Goto/GX_Goto.dfm 2024-06-09 16:19:15 UTC (rev 4270) @@ -4,22 +4,24 @@ Caption = 'Go to' ClientHeight = 219 ClientWidth = 217 + ParentFont = False + Font.Height = -13 + Font.Name = 'MS Shell Dlg 2' Position = poMainFormCenter - PixelsPerInch = 96 - TextHeight = 13 + PixelsPerInch = 96 + TextHeight = 16 object l_LineNumber: TLabel Left = 8 Top = 8 - Width = 59 - Height = 13 + Width = 72 + Height = 16 Caption = 'Line Number' end object cmb_LineNumber: TComboBox Left = 8 - Top = 24 + Top = 27 Width = 201 - Height = 21 - ItemHeight = 13 + Height = 24 TabOrder = 0 OnChange = cmb_LineNumberChange OnKeyDown = cmb_LineNumberKeyDown @@ -26,19 +28,20 @@ end object lb_UnitPositions: TListBox Left = 8 - Top = 56 + Top = 57 Width = 201 - Height = 33 - ItemHeight = 13 + Height = 123 + Anchors = [akLeft, akTop, akRight, akBottom] TabOrder = 1 OnClick = lb_UnitPositionsClick OnDblClick = lb_UnitPositionsDblClick end object b_OK: TButton - Left = 56 - Top = 184 + Left = 53 + Top = 186 Width = 75 Height = 25 + Anchors = [akRight, akBottom] Caption = 'OK' Default = True ModalResult = 1 @@ -45,10 +48,11 @@ TabOrder = 2 end object b_Cancel: TButton - Left = 136 - Top = 184 + Left = 134 + Top = 186 Width = 75 Height = 25 + Anchors = [akRight, akBottom] Cancel = True Caption = 'Cancel' ModalResult = 2 Modified: branches/dark-mode/Source/Include/GX_CondDefine.inc =================================================================== --- branches/dark-mode/Source/Include/GX_CondDefine.inc 2024-06-09 16:17:37 UTC (rev 4269) +++ branches/dark-mode/Source/Include/GX_CondDefine.inc 2024-06-09 16:19:15 UTC (rev 4270) @@ -254,6 +254,10 @@ {$ENDIF} {.$DEFINE GX_IDE_IS_HIDPI_AWARE} +{$IFDEF GX_DELPHI11_UP} + {$DEFINE GX_SUPPORTS_THEMING} +{$ENDIF} + // Define UniSynEdit if SynEdit is available {$IFDEF SYNEDIT} {$DEFINE UniSynEdit} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aka...@us...> - 2024-06-11 11:10:28
|
Revision: 4272 http://sourceforge.net/p/gexperts/code/4272 Author: akalwahome Date: 2024-06-11 11:10:26 +0000 (Tue, 11 Jun 2024) Log Message: ----------- FIX Bug #360: "About" window is now scaled to DPI. Modified Paths: -------------- branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dproj branches/dark-mode/Source/Framework/GX_About.pas branches/dark-mode/Source/Utils/GX_OtaUtils.pas Property Changed: ---------------- branches/dark-mode/ Index: branches/dark-mode =================================================================== --- branches/dark-mode 2024-06-10 18:06:25 UTC (rev 4271) +++ branches/dark-mode 2024-06-11 11:10:26 UTC (rev 4272) Property changes on: branches/dark-mode ___________________________________________________________________ Modified: svn:mergeinfo ## -1 +1 ## -/trunk:4085-4262 \ No newline at end of property +/trunk:4085-4271 \ No newline at end of property Modified: branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dproj =================================================================== --- branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dproj 2024-06-10 18:06:25 UTC (rev 4271) +++ branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dproj 2024-06-11 11:10:26 UTC (rev 4272) @@ -78,7 +78,7 @@ </PropertyGroup> <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> <Debugger_HostApplication>$(BDS)\bin\bds.exe</Debugger_HostApplication> - <Debugger_RunParams>-rBDSPlain</Debugger_RunParams> + <Debugger_RunParams>-rBDSPlain -pDelphi</Debugger_RunParams> </PropertyGroup> <ItemGroup> <DelphiCompile Include="$(MainSource)"> Modified: branches/dark-mode/Source/Framework/GX_About.pas =================================================================== --- branches/dark-mode/Source/Framework/GX_About.pas 2024-06-10 18:06:25 UTC (rev 4271) +++ branches/dark-mode/Source/Framework/GX_About.pas 2024-06-11 11:10:26 UTC (rev 4272) @@ -91,6 +91,7 @@ constructor TfmAbout.Create(AOwner: TComponent); begin inherited; + TControl_SetMinConstraints(Self); GxSetDefaultFont(Self); TLabel_MakeUrlLabel(lblWebPage); Modified: branches/dark-mode/Source/Utils/GX_OtaUtils.pas =================================================================== --- branches/dark-mode/Source/Utils/GX_OtaUtils.pas 2024-06-10 18:06:25 UTC (rev 4271) +++ branches/dark-mode/Source/Utils/GX_OtaUtils.pas 2024-06-11 11:10:26 UTC (rev 4272) @@ -70,7 +70,8 @@ {$IFDEF GX_SUPPORTS_THEMING} function IdeStyleIsDark: Boolean; function IdeStyleService: TCustomStyleServices; -function GxOtaActiveTheme: string; +function GxOtaGetIDEThemingServices: IOTAIDEThemingServices; +function GxOtaActiveThemeName: string; function GxOtaGetStyleColor(AColor: TStyleColor; ADefault: TColor): TColor; function GxOtaGetStyleFontColor(AFontStyle: TStyleFont; ADefault: TColor = clNone): TColor; {$ENDIF} @@ -4024,29 +4025,36 @@ var LService: IOTAIDEThemingServices; begin + LService := GxOtaGetIDEThemingServices; + if Assigned(LService) then + Result := LService.StyleServices + else + Result := nil; +end; + +function GxOtaGetIDEThemingServices: IOTAIDEThemingServices; +var + LService: IOTAIDEThemingServices; +begin Result := nil; if Supports(BorlandIDEServices, IOTAIDEThemingServices, LService) then - begin - Result := LService.StyleServices; - end; + Result := LService; end; -function GxOtaActiveTheme: string; +function GxOtaActiveThemeName: string; var LService: IOTAIDEThemingServices; begin Result := ''; - if Supports(BorlandIDEServices, IOTAIDEThemingServices, LService) then - begin + LService := GxOtaGetIDEThemingServices; + if Assigned(LService) then Result := LService.ActiveTheme; - end; end; function IdeStyleIsDark: Boolean; begin - Result := SameText(GxOtaActiveTheme, 'Dark'); + Result := SameText(GxOtaActiveThemeName, 'Dark'); end; - {$ENDIF} function GxOtaThemingEnabled: Boolean; @@ -4055,10 +4063,9 @@ LService: IOTAIDEThemingServices; begin Result := False; - if Supports(BorlandIDEServices, IOTAIDEThemingServices, LService) then - begin + LService := GxOtaGetIDEThemingServices; + if Assigned(LService) then Result := LService.IDEThemingEnabled; - end; end; {$ELSE} begin @@ -4072,14 +4079,11 @@ LService: IOTAIDEThemingServices; begin Result := False; - if Assigned(AForm) - and Supports(BorlandIDEServices, IOTAIDEThemingServices, LService) + LService := GxOtaGetIDEThemingServices; + if Assigned(AForm) and Assigned(LService) and (LService.IDEThemingEnabled) then begin - if LService.IDEThemingEnabled then - begin - LService.ApplyTheme(AForm); - Result := True; - end; + LService.ApplyTheme(AForm); + Result := True; end; end; {$ELSE} @@ -4091,18 +4095,15 @@ function GxOtaInitTheming(AForm: TCustomForm): Boolean; {$IFDEF GX_SUPPORTS_THEMING} var - LService: IOTAIDEThemingServices; + LService : IOTAIDEThemingServices; begin Result := False; - if Assigned(AForm) - and Supports(BorlandIDEServices, IOTAIDEThemingServices, LService) - then begin - if LService.IDEThemingEnabled then - begin - LService.RegisterFormClass(TCustomFormClass(AForm.ClassType)); - LService.ApplyTheme(AForm); - Result := True; - end; + LService := GxOtaGetIDEThemingServices; + if Assigned(AForm) and Assigned(LService) and (LService.IDEThemingEnabled) then + begin + LService.RegisterFormClass(TCustomFormClass(AForm.ClassType)); + LService.ApplyTheme(AForm); + Result := True; end; end; {$ELSE} @@ -4117,12 +4118,10 @@ LService: IOTAIDEThemingServices; begin Result := AColor; - if Supports(BorlandIDEServices, IOTAIDEThemingServices, LService) then + LService := GxOtaGetIDEThemingServices; + if Assigned(LService) and LService.IDEThemingEnabled then begin - if LService.IDEThemingEnabled then - begin - Result := LService.StyleServices.GetSystemColor(AColor); - end; + Result := LService.StyleServices.GetSystemColor(AColor); end; {$ELSE} begin @@ -4136,12 +4135,10 @@ LService: IOTAIDEThemingServices; begin Result := ADefault; - if Supports(BorlandIDEServices, IOTAIDEThemingServices, LService) then + LService := GxOtaGetIDEThemingServices; + if Assigned(LService) and LService.IDEThemingEnabled then begin - if LService.IDEThemingEnabled then - begin - Result := LService.StyleServices.GetStyleColor(AColor); - end; + Result := LService.StyleServices.GetStyleColor(AColor); end; end; {$ENDIF} @@ -4152,12 +4149,10 @@ LService: IOTAIDEThemingServices; begin Result := ADefault; - if Supports(BorlandIDEServices, IOTAIDEThemingServices, LService) then + LService := GxOtaGetIDEThemingServices; + if Assigned(LService) and LService.IDEThemingEnabled then begin - if LService.IDEThemingEnabled then - begin - Result := LService.StyleServices.GetStyleFontColor(AFontStyle); - end; + Result := LService.StyleServices.GetStyleFontColor(AFontStyle); end; end; {$ENDIF} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aka...@us...> - 2024-06-23 13:09:07
|
Revision: 4274 http://sourceforge.net/p/gexperts/code/4274 Author: akalwahome Date: 2024-06-23 13:09:05 +0000 (Sun, 23 Jun 2024) Log Message: ----------- Merged from trunk Modified Paths: -------------- branches/dark-mode/Source/Framework/GX_About.pas branches/dark-mode/Source/Utils/GX_GenericUtils.pas Property Changed: ---------------- branches/dark-mode/ Index: branches/dark-mode =================================================================== --- branches/dark-mode 2024-06-16 16:39:06 UTC (rev 4273) +++ branches/dark-mode 2024-06-23 13:09:05 UTC (rev 4274) Property changes on: branches/dark-mode ___________________________________________________________________ Modified: svn:mergeinfo ## -1 +1 ## -/trunk:4085-4271 \ No newline at end of property +/trunk:4085-4273 \ No newline at end of property Modified: branches/dark-mode/Source/Framework/GX_About.pas =================================================================== --- branches/dark-mode/Source/Framework/GX_About.pas 2024-06-16 16:39:06 UTC (rev 4273) +++ branches/dark-mode/Source/Framework/GX_About.pas 2024-06-23 13:09:05 UTC (rev 4274) @@ -93,7 +93,7 @@ inherited; TControl_SetMinConstraints(Self); GxSetDefaultFont(Self); - + TControl_SetMinConstraints(Self); TLabel_MakeUrlLabel(lblWebPage); {$IF DECLARED(TfmFeedbackWizard)} Modified: branches/dark-mode/Source/Utils/GX_GenericUtils.pas =================================================================== --- branches/dark-mode/Source/Utils/GX_GenericUtils.pas 2024-06-16 16:39:06 UTC (rev 4273) +++ branches/dark-mode/Source/Utils/GX_GenericUtils.pas 2024-06-23 13:09:05 UTC (rev 4274) @@ -3602,12 +3602,19 @@ end; function GetUserLocalApplicationDataFolder: string; -{$if not defined(CSIDL_LOCAL_APPDATA)} +{$IF NOT defined(CSIDL_LOCAL_APPDATA)} const - CSIDL_LOCAL_APPDATA = $001c; { <user name>\Local Settings\Application Data (non roaming) } -{$ifend} + // <user name>\Local Settings\Application Data (non roaming), available only for Windows 2000 and up + CSIDL_LOCAL_APPDATA = $001C; +{$IFEND} begin - Result := GetSpecialFolderPath(CSIDL_LOCAL_APPDATA) + if CheckWin32Version(5, 0) then begin + // Windows 2000 and up + Result := GetSpecialFolderPath(CSIDL_LOCAL_APPDATA); + end else begin + // Windows 9x or Windows NT (Yes, there are people using this version even in 2024) + Result := GetUserApplicationDataFolder; + end; end; function RunningWindows: Boolean; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aka...@us...> - 2024-07-06 20:25:02
|
Revision: 4283 http://sourceforge.net/p/gexperts/code/4283 Author: akalwahome Date: 2024-07-06 20:24:59 +0000 (Sat, 06 Jul 2024) Log Message: ----------- Merged changes from trunk. Some more changes to support dark mode. Modified Paths: -------------- branches/dark-mode/ExternalSource/FileView.pas branches/dark-mode/Source/Editor/GX_eAlign.pas branches/dark-mode/Source/Editor/GX_eConvertStrings.pas branches/dark-mode/Source/Editor/GX_eDate.dfm branches/dark-mode/Source/Editor/GX_eSort.pas branches/dark-mode/Source/Editor/GX_eSortOptions.dfm branches/dark-mode/Source/Editor/GX_eSortOptions.pas branches/dark-mode/Source/FavoriteFiles/GX_FavFileProp.dfm branches/dark-mode/Source/FavoriteFiles/GX_FavFileProp.pas branches/dark-mode/Source/FavoriteFiles/GX_FavFiles.dfm branches/dark-mode/Source/FavoriteFiles/GX_FavFiles.pas branches/dark-mode/Source/FavoriteFiles/GX_FavFolderProp.dfm branches/dark-mode/Source/FavoriteFiles/GX_FavNewFolder.pas branches/dark-mode/Source/FilterExceptions/GX_FilterExceptionsNotification.pas branches/dark-mode/Source/Framework/GX_BaseForm.pas branches/dark-mode/Source/Framework/GX_ConfigurationInfo.pas branches/dark-mode/Source/Grep/GX_GrepSearch.dfm branches/dark-mode/Source/Grep/GX_GrepSearch.pas branches/dark-mode/Source/IDE/GX_IdeSearchPathEnhancer.pas branches/dark-mode/Source/Include/GX_CondDefine.inc branches/dark-mode/Source/MacroLibrary/GX_MacroLibrary.dfm branches/dark-mode/Source/MacroLibrary/GX_MacroLibrary.pas branches/dark-mode/Source/ReplaceComponents/GX_ReplaceComp.dfm branches/dark-mode/Source/ReplaceComponents/GX_ReplaceComp.pas branches/dark-mode/Source/Utils/GX_OtaUtils.pas Property Changed: ---------------- branches/dark-mode/ Index: branches/dark-mode =================================================================== --- branches/dark-mode 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode 2024-07-06 20:24:59 UTC (rev 4283) Property changes on: branches/dark-mode ___________________________________________________________________ Modified: svn:mergeinfo ## -1 +1 ## -/trunk:4085-4273 \ No newline at end of property +/trunk:4085-4282 \ No newline at end of property Modified: branches/dark-mode/ExternalSource/FileView.pas =================================================================== --- branches/dark-mode/ExternalSource/FileView.pas 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/ExternalSource/FileView.pas 2024-07-06 20:24:59 UTC (rev 4283) @@ -36,7 +36,8 @@ implementation uses - Controls, Forms, Graphics, StdCtrls, SysUtils, GX_OtaUtils, GX_StringList; + Controls, Forms, Graphics, StdCtrls, SysUtils, + GX_OtaUtils, GX_StringList; constructor TFileViewer.Create(AOwner: TComponent); begin @@ -77,6 +78,7 @@ Gutter.Width := 0; Visible := False; end; + GxOtaGetEditorFont(FEditor.Font, -1); {$ENDIF SYNEDIT} end; end; @@ -124,10 +126,11 @@ finally FreeAndNil(Strings); end; - begin - SetSynEditHighlighter(FEditor, Parser); - FGXSyntaxParser := Parser; - end; + if Parser > gxpNone then + GxOtaGetEditorFont(FEditor.Font, -1); + + SetSynEditHighlighter(FEditor, Parser); + FGXSyntaxParser := Parser; FEditor.Visible := True; end; {$ENDIF SYNEDIT} @@ -174,6 +177,9 @@ {$IFDEF SYNEDIT} FEditor.Visible := False; {$ENDIF SYNEDIT} +// TODO: Use IDE's editor font? +// FRichEdit.Font.Name := ''; +// FRichEdit.DefAttributes.Name := ''; FRichEdit.Lines.LoadFromFile(FileName); FRichEdit.Visible := True; end Modified: branches/dark-mode/Source/Editor/GX_eAlign.pas =================================================================== --- branches/dark-mode/Source/Editor/GX_eAlign.pas 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/Editor/GX_eAlign.pas 2024-07-06 20:24:59 UTC (rev 4283) @@ -19,6 +19,7 @@ cbxMode: TComboBox; procedure lstTokensDblClick(Sender: TObject); procedure btnConfigClick(Sender: TObject); + procedure FormCreate(Sender: TObject); public constructor Create(_Owner: TComponent); override; end; @@ -269,6 +270,12 @@ InitDpiScaler; end; +procedure TfmAlign.FormCreate(Sender: TObject); +begin + inherited; + SetDefaultFont(Self); +end; + procedure TfmAlign.lstTokensDblClick(Sender: TObject); begin ModalResult := mrOk; @@ -283,6 +290,9 @@ frm := TfmAlign.Create(nil); try + if frm.lstTokens.Count > 0 then + frm.ActiveControl := frm.lstTokens; + frm.btnOK.Default := True; LoadConfiguration(frm); if frm.lstTokens.Items.Count > 0 then frm.ActiveControl := frm.lstTokens; Modified: branches/dark-mode/Source/Editor/GX_eConvertStrings.pas =================================================================== --- branches/dark-mode/Source/Editor/GX_eConvertStrings.pas 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/Editor/GX_eConvertStrings.pas 2024-07-06 20:24:59 UTC (rev 4283) @@ -149,10 +149,10 @@ inherited; TControl_SetMinConstraints(Self); + InitDpiScaler; + GxOtaGetEditorFont(m_Input.Font, 0); GxOtaGetEditorFont(m_Output.Font, 0); - - InitDpiScaler; end; destructor TfmEConvertStrings.Destroy; Modified: branches/dark-mode/Source/Editor/GX_eDate.dfm =================================================================== --- branches/dark-mode/Source/Editor/GX_eDate.dfm 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/Editor/GX_eDate.dfm 2024-07-06 20:24:59 UTC (rev 4283) @@ -1,4 +1,4 @@ -object fmDateFormat: TfmDateFormat +inherited fmDateFormat: TfmDateFormat Left = 285 Top = 201 BorderStyle = bsDialog @@ -5,21 +5,15 @@ Caption = 'Insert Date/Time Configuration' ClientHeight = 74 ClientWidth = 337 - Color = clBtnFace - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [] - Position = poScreenCenter - Scaled = False + Position = poOwnerFormCenter + StyleElements = [seFont, seClient, seBorder] PixelsPerInch = 96 - TextHeight = 14 + TextHeight = 15 object lblFormat: TLabel - Left = 17 + Left = 20 Top = 13 - Width = 95 - Height = 14 + Width = 92 + Height = 15 Alignment = taRightJustify Caption = 'Date/time &format' FocusControl = cbFormat @@ -26,11 +20,10 @@ end object cbFormat: TComboBox Left = 120 - Top = 9 + Top = 10 Width = 209 - Height = 22 + Height = 23 DropDownCount = 18 - ItemHeight = 14 TabOrder = 0 Text = 'cbFormat' Items.Strings = ( Modified: branches/dark-mode/Source/Editor/GX_eSort.pas =================================================================== --- branches/dark-mode/Source/Editor/GX_eSort.pas 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/Editor/GX_eSort.pas 2024-07-06 20:24:59 UTC (rev 4283) @@ -65,8 +65,13 @@ end; constructor TfmeSortConfig.Create(_Owner: TComponent); +var + LSpacer : Integer; begin inherited; + LSpacer := grpSort.Left; + Self.ClientWidth := grpSort.Width + (2 * LSpacer); + Self.ClientHeight := btnCancel.Top + btnCancel.Height + LSpacer; TControl_SetMinConstraints(Self); InitDpiScaler; Modified: branches/dark-mode/Source/Editor/GX_eSortOptions.dfm =================================================================== --- branches/dark-mode/Source/Editor/GX_eSortOptions.dfm 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/Editor/GX_eSortOptions.dfm 2024-07-06 20:24:59 UTC (rev 4283) @@ -20,6 +20,7 @@ ItemHeight = 13 TabOrder = 0 OnClick = lbxGroupOrderClick + OnKeyDown = lbxGroupOrderKeyDown end object btnUp: TBitBtn Left = 168 Modified: branches/dark-mode/Source/Editor/GX_eSortOptions.pas =================================================================== --- branches/dark-mode/Source/Editor/GX_eSortOptions.pas 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/Editor/GX_eSortOptions.pas 2024-07-06 20:24:59 UTC (rev 4283) @@ -27,6 +27,7 @@ procedure btnUpClick(Sender: TObject); procedure btnDownClick(Sender: TObject); procedure lbxGroupOrderClick(Sender: TObject); + procedure lbxGroupOrderKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private procedure GetData(_CustomPrefixOrder: TGXUnicodeStringList); procedure SetData(_CustomPrefixOrder: TGXUnicodeStringList); @@ -84,10 +85,16 @@ end; constructor TfrmSortOptions.Create(_Owner: TComponent); +var + LSpacer : Integer; begin inherited; TControl_SetMinConstraints(Self); + LSpacer := grpSortOrder.Left; + Self.ClientWidth := grpSortOrder.Width + (2 * LSpacer); + Self.ClientHeight := btnCancel.Top + btnCancel.Height + LSpacer; + InitDpiScaler; end; @@ -114,5 +121,17 @@ EnableButtons; end; +procedure TfrmSortOptions.lbxGroupOrderKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + inherited; + if Shift = [ssCtrl] then begin + case Key of + VK_UP : begin btnUpClick(nil); Key := 0; end; + VK_DOWN : begin btnDownClick(nil); Key := 0; end; + end; + end; +end; + end. Modified: branches/dark-mode/Source/FavoriteFiles/GX_FavFileProp.dfm =================================================================== --- branches/dark-mode/Source/FavoriteFiles/GX_FavFileProp.dfm 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/FavoriteFiles/GX_FavFileProp.dfm 2024-07-06 20:24:59 UTC (rev 4283) @@ -3,54 +3,47 @@ Top = 192 BorderStyle = bsDialog Caption = 'File Properties' - ClientHeight = 249 + ClientHeight = 272 ClientWidth = 464 Color = clBtnFace - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Tahoma' - Font.Style = [] + ParentFont = True KeyPreview = True - OldCreateOrder = False Position = poScreenCenter Scaled = False OnActivate = FormActivate DesignSize = ( 464 - 249) - PixelsPerInch = 96 - TextHeight = 14 + 272) + TextHeight = 15 object pgeProperties: TPageControl Left = 8 Top = 8 - Width = 447 - Height = 201 + Width = 443 + Height = 225 ActivePage = tabProperties Anchors = [akLeft, akTop, akRight] MultiLine = True - TabIndex = 0 TabOrder = 0 TabStop = False object tabProperties: TTabSheet Caption = 'Properties' DesignSize = ( - 439 - 172) + 435 + 195) object lblFile: TLabel - Left = 71 - Top = 12 - Width = 17 - Height = 14 + Left = 70 + Top = 13 + Width = 18 + Height = 15 Alignment = taRightJustify Caption = '&File' FocusControl = edtFilename end object lblName: TLabel - Left = 57 - Top = 76 - Width = 31 - Height = 14 + Left = 56 + Top = 78 + Width = 32 + Height = 15 Alignment = taRightJustify Caption = '&Name' FocusControl = edtName @@ -57,9 +50,9 @@ end object lblDescription: TLabel Left = 28 - Top = 100 + Top = 107 Width = 60 - Height = 14 + Height = 15 Alignment = taRightJustify Caption = '&Description' FocusControl = edtDescription @@ -66,7 +59,7 @@ end object imgFileIcon: TImage Left = 96 - Top = 34 + Top = 37 Width = 32 Height = 32 Center = True @@ -73,34 +66,34 @@ Transparent = True end object lblIcon: TLabel - Left = 64 - Top = 44 - Width = 24 - Height = 14 + Left = 65 + Top = 45 + Width = 23 + Height = 15 Alignment = taRightJustify Caption = 'Icon' end object lblExecuteType: TLabel - Left = 14 - Top = 124 - Width = 74 - Height = 14 + Left = 21 + Top = 136 + Width = 67 + Height = 15 Alignment = taRightJustify Caption = 'Execute &type' FocusControl = cbxExecuteType end object lblExecuteUsing: TLabel - Left = 11 - Top = 148 - Width = 77 - Height = 14 + Left = 15 + Top = 165 + Width = 73 + Height = 15 Alignment = taRightJustify Caption = 'Execute &using' FocusControl = edtExecuteUsing end object sbnFile: TButton - Left = 412 - Top = 8 + Left = 408 + Top = 7 Width = 20 Height = 20 Anchors = [akTop, akRight] @@ -109,8 +102,8 @@ OnClick = sbnFileClick end object sbnExecute: TButton - Left = 412 - Top = 144 + Left = 408 + Top = 161 Width = 20 Height = 20 Anchors = [akTop, akRight] @@ -120,27 +113,26 @@ end object edtName: TEdit Left = 96 - Top = 72 - Width = 316 - Height = 22 + Top = 75 + Width = 312 + Height = 23 Anchors = [akLeft, akTop, akRight] TabOrder = 2 end object edtDescription: TEdit Left = 96 - Top = 96 - Width = 316 - Height = 22 + Top = 104 + Width = 312 + Height = 23 Anchors = [akLeft, akTop, akRight] TabOrder = 3 end object cbxExecuteType: TComboBox Left = 96 - Top = 120 + Top = 133 Width = 145 - Height = 22 + Height = 23 Style = csDropDownList - ItemHeight = 14 TabOrder = 4 OnClick = cbxExecuteTypeClick Items.Strings = ( @@ -152,8 +144,8 @@ object edtFilename: TEdit Left = 96 Top = 8 - Width = 316 - Height = 22 + Width = 312 + Height = 23 Anchors = [akLeft, akTop, akRight] TabOrder = 0 OnExit = edtFilenameExit @@ -160,9 +152,9 @@ end object edtExecuteUsing: TEdit Left = 96 - Top = 144 - Width = 316 - Height = 22 + Top = 162 + Width = 312 + Height = 23 Anchors = [akLeft, akTop, akRight] Enabled = False TabOrder = 5 @@ -170,8 +162,8 @@ end end object btnCancel: TButton - Left = 380 - Top = 216 + Left = 376 + Top = 239 Width = 75 Height = 26 Anchors = [akRight, akBottom] @@ -181,8 +173,8 @@ TabOrder = 2 end object btnOK: TButton - Left = 299 - Top = 216 + Left = 295 + Top = 239 Width = 75 Height = 26 Anchors = [akRight, akBottom] Modified: branches/dark-mode/Source/FavoriteFiles/GX_FavFileProp.pas =================================================================== --- branches/dark-mode/Source/FavoriteFiles/GX_FavFileProp.pas 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/FavoriteFiles/GX_FavFileProp.pas 2024-07-06 20:24:59 UTC (rev 4283) @@ -55,7 +55,11 @@ {$R *.dfm} uses - GX_FavFiles, GX_GenericUtils, GX_IdeUtils, u_dzVclUtils; + GX_FavFiles, + GX_GenericUtils, + GX_GxUtils, + GX_IdeUtils, + u_dzVclUtils; { TfmFavFileProp } @@ -79,9 +83,10 @@ constructor TfmFavFileProp.Create(_Owner: TComponent); begin inherited; - TControl_SetMinConstraints(Self); InitDpiScaler; + GxSetDefaultFont(Self); + InitializeForm; end; @@ -198,6 +203,9 @@ cbxExecuteType.Items.Clear; for ExecType := Low(TExecType) to High(TExecType) do cbxExecuteType.Items.AddObject(ExecTypeNames[ExecType], TObject(Ord(ExecType))); + + TButton_AlignVerticallyTo(sbnFile, edtFilename); + TButton_AlignVerticallyTo(sbnExecute, edtExecuteUsing); end; end. Modified: branches/dark-mode/Source/FavoriteFiles/GX_FavFiles.dfm =================================================================== --- branches/dark-mode/Source/FavoriteFiles/GX_FavFiles.dfm 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/FavoriteFiles/GX_FavFiles.dfm 2024-07-06 20:24:59 UTC (rev 4283) @@ -2,18 +2,17 @@ Left = 402 Top = 273 Caption = 'Favorite Files' - ClientHeight = 342 - ClientWidth = 495 + ClientHeight = 334 + ClientWidth = 493 Color = clBtnFace DefaultMonitor = dmDesktop Font.Charset = ANSI_CHARSET Font.Color = clWindowText - Font.Height = -12 + Font.Height = -15 Font.Name = 'Tahoma' Font.Style = [] KeyPreview = True Menu = MainMenu - OldCreateOrder = False Position = poDesigned Scaled = False OnClose = FormClose @@ -20,20 +19,17 @@ OnHide = FormHide OnKeyPress = FormKeyPress OnShow = FormShow - PixelsPerInch = 96 - TextHeight = 14 + TextHeight = 18 object splTreeView: TSplitter Left = 121 Top = 22 - Width = 3 - Height = 301 - Cursor = crHSplit + Height = 293 end object tvFolders: TTreeView Left = 0 Top = 22 Width = 121 - Height = 301 + Height = 293 Align = alLeft DragMode = dmAutomatic HideSelection = False @@ -53,8 +49,8 @@ end object StatusBar: TStatusBar Left = 0 - Top = 323 - Width = 495 + Top = 315 + Width = 493 Height = 19 Panels = <> ParentFont = True @@ -64,15 +60,15 @@ object pnlFiles: TPanel Left = 124 Top = 22 - Width = 371 - Height = 301 + Width = 369 + Height = 293 Align = alClient BevelOuter = bvNone TabOrder = 2 object splFileView: TSplitter Left = 0 - Top = 151 - Width = 371 + Top = 143 + Width = 369 Height = 3 Cursor = crVSplit Align = alBottom @@ -80,8 +76,8 @@ object ListView: TListView Left = 0 Top = 0 - Width = 371 - Height = 151 + Width = 369 + Height = 143 Align = alClient Columns = < item @@ -118,8 +114,8 @@ end object pnlFileView: TPanel Left = 0 - Top = 154 - Width = 371 + Top = 146 + Width = 369 Height = 147 Align = alBottom BevelOuter = bvNone @@ -131,12 +127,10 @@ object ToolBar: TToolBar Left = 0 Top = 0 - Width = 495 + Width = 493 Height = 22 AutoSize = True DisabledImages = dmSharedImages.DisabledImages - EdgeBorders = [] - Flat = True Images = dmSharedImages.Images ParentShowHint = False ShowHint = True Modified: branches/dark-mode/Source/FavoriteFiles/GX_FavFiles.pas =================================================================== --- branches/dark-mode/Source/FavoriteFiles/GX_FavFiles.pas 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/FavoriteFiles/GX_FavFiles.pas 2024-07-06 20:24:59 UTC (rev 4283) @@ -1763,12 +1763,11 @@ FRootFolder := TGXFolder.Create(nil); FOptions := _Options; + TControl_SetMinConstraints(Self); + InitDpiScaler; SetupSystemImageLists; - InitDpiScaler; GxSetDefaultFont(Self); - TControl_SetMinConstraints(Self); - SetToolbarGradient(ToolBar); pnlFileView.Caption := ''; SetNonModalFormPopupMode(Self); Modified: branches/dark-mode/Source/FavoriteFiles/GX_FavFolderProp.dfm =================================================================== --- branches/dark-mode/Source/FavoriteFiles/GX_FavFolderProp.dfm 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/FavoriteFiles/GX_FavFolderProp.dfm 2024-07-06 20:24:59 UTC (rev 4283) @@ -1,8 +1,42 @@ inherited fmFavFolderProperties: TfmFavFolderProperties Caption = 'Folder Properties' PixelsPerInch = 96 - TextHeight = 13 + ClientHeight = 135 + ClientWidth = 295 + ParentFont = True + TextHeight = 15 inherited gbxNewFolder: TGroupBox + Height = 88 Caption = ' Folder Properties ' + inherited lblFolderName: TLabel + Left = 15 + Top = 23 + Width = 66 + Height = 15 + StyleElements = [seFont, seClient, seBorder] + end + inherited lblFolderType: TLabel + Left = 22 + Top = 55 + Width = 59 + Height = 15 + StyleElements = [seFont, seClient, seBorder] + end + inherited edtFolderName: TEdit + Height = 23 + StyleElements = [seFont, seClient, seBorder] + end + inherited cbxFolderType: TComboBox + Top = 51 + StyleElements = [seFont, seClient, seBorder] + end end + inherited btnCancel: TButton + Left = 212 + Top = 102 + end + inherited btnOK: TButton + Left = 132 + Top = 102 + end end Modified: branches/dark-mode/Source/FavoriteFiles/GX_FavNewFolder.pas =================================================================== --- branches/dark-mode/Source/FavoriteFiles/GX_FavNewFolder.pas 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/FavoriteFiles/GX_FavNewFolder.pas 2024-07-06 20:24:59 UTC (rev 4283) @@ -44,6 +44,7 @@ u_dzDpiScaleUtils, {$ENDIF} u_dzVclUtils, + GX_GxUtils, GX_IdeUtils, GX_FavFiles; @@ -68,7 +69,7 @@ constructor TfmFavNewFolder.Create(_Owner: TComponent); begin inherited; - + TControl_SetMinConstraints(Self); InitDpiScaler; InitializeForm; @@ -83,6 +84,7 @@ var i: TFolderType; begin + GxSetDefaultFont(Self); for i := Low(TFolderType) to High(TFolderType) do cbxFolderType.Items.AddObject(FolderNames[i], Pointer(i)); cbxFolderType.ItemIndex := 0; Modified: branches/dark-mode/Source/FilterExceptions/GX_FilterExceptionsNotification.pas =================================================================== --- branches/dark-mode/Source/FilterExceptions/GX_FilterExceptionsNotification.pas 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/FilterExceptions/GX_FilterExceptionsNotification.pas 2024-07-06 20:24:59 UTC (rev 4283) @@ -109,6 +109,7 @@ frm := TfmExceptionNotification.Create(_Owner); {$IFEND} try + GxSetDefaultFont(frm); TForm_CenterOn(frm, _Owner); frm.SetData(_OnAddException, _Project, _Exception, _Message, _AdditionalData, _ConfigurationKey); Result := (frm.ShowModal = mrOk); @@ -122,7 +123,6 @@ inherited Create(_Owner); TControl_SetMinConstraints(Self); InitDpiScaler; - GxSetDefaultFont(Self); end; destructor TfmExceptionNotification.Destroy; Modified: branches/dark-mode/Source/Framework/GX_BaseForm.pas =================================================================== --- branches/dark-mode/Source/Framework/GX_BaseForm.pas 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/Framework/GX_BaseForm.pas 2024-07-06 20:24:59 UTC (rev 4283) @@ -32,11 +32,16 @@ FGxHintCustomDataRec: TGxHintCustomDataRec; FScaler: TFormDpiScaler; FApplicationEvents: TApplicationEvents; + {$IFDEF GX_SUPPORTS_THEMING} + //FThemeChangedNotifier: TThemeChangedNotifier; + procedure InitTheming; virtual; + {$ENDIF} procedure HandleApplicationEventsShowHint(var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo); procedure WMDpiChanged(var _Msg: TWMDpi); message WM_DPICHANGED; procedure ApplyDpi(_NewDpi: Integer; _NewBounds: PRect); virtual; procedure ArrangeControls; virtual; + protected procedure InitDpiScaler; public @@ -91,6 +96,12 @@ _Msg.Result := 0; end; +{$IFDEF GX_SUPPORTS_THEMING} +procedure TfmBaseForm.InitTheming; +begin +end; +{$ENDIF} + procedure TfmBaseForm.HandleApplicationEventsShowHint(var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo); begin @@ -127,7 +138,7 @@ constructor TfmBaseForm.Create(AOwner: TComponent); begin inherited; - + //FThemeChangedNotifier := nil; FApplicationEvents := TApplicationEvents.Create(Self); FApplicationEvents.OnShowHint := HandleApplicationEventsShowHint; Modified: branches/dark-mode/Source/Framework/GX_ConfigurationInfo.pas =================================================================== --- branches/dark-mode/Source/Framework/GX_ConfigurationInfo.pas 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/Framework/GX_ConfigurationInfo.pas 2024-07-06 20:24:59 UTC (rev 4283) @@ -1018,10 +1018,12 @@ OrigTop: Integer; OrigWidth: Integer; OrigHeight: Integer; + OrigDpi: Integer; NewLeft: Integer; NewTop: Integer; NewWidth: Integer; NewHeight: Integer; + NewDpi: Integer; begin if Section = '' then StorageSection := Form.ClassName @@ -1028,11 +1030,19 @@ else StorageSection := Section; +{$IFDEF GX_IDE_IS_HIDPI_AWARE} + OrigDpi := TScreen_GetDpiForForm(Form); +{$ELSE} + OrigDpi := USER_DEFAULT_SCREEN_DPI; // 96 +{$ENDIF} + NewDPI := OrigDPI; + R := Form.BoundsRect; OrigLeft := R.Left; OrigTop := R.Top; OrigWidth := R.Right - OrigLeft; OrigHeight := R.Bottom - OrigTop; + // we assign NewXxx to OrigXxx which will 1. prevent a compiler warning and 2. save some checks // below NewLeft := OrigLeft; @@ -1043,6 +1053,11 @@ PosChanged := False; SizeChanged := False; +{$IFDEF GX_IDE_IS_HIDPI_AWARE} + if (FormSaveFlags <> []) and ValueExists(StorageSection, 'DPi') then + NewDpi := ReadInteger(StorageSection, 'Dpi', OrigDpi); +{$ENDIF} + if (fsPosition in FormSaveFlags) and ValueExists(StorageSection, 'Left') then begin NewLeft := ReadInteger(StorageSection, 'Left', OrigLeft); @@ -1057,6 +1072,15 @@ SizeChanged := True; end; +{$IFDEF GX_IDE_IS_HIDPI_AWARE} + if (NewDpi > 0) and (OrigDpi > 0) and (NewDpi<> OrigDpi) then begin + NewLeft := MulDiv(NewLeft, NewDpi, OrigDpi); + NewTop := MulDiv(NewTop, NewDpi, OrigDpi); + NewWidth := MulDiv(NewWidth, NewDpi, OrigDpi); + NewHeight := MulDiv(NewHeight, NewDpi, OrigDpi); + end; +{$ENDIF} + if PosChanged then begin R.Left := NewLeft; R.Top := NewTop; @@ -1095,6 +1119,12 @@ StorageSection := Form.ClassName else StorageSection := Section; +{$IFDEF GX_IDE_IS_HIDPI_AWARE} + if FormSaveFlags <> [] then + begin + WriteInteger(StorageSection, 'Dpi', TScreen_GetDpiForForm(Form)); + end; +{$ENDIF} if fsPosition in FormSaveFlags then begin WriteInteger(StorageSection, 'Left', Form.Left); Modified: branches/dark-mode/Source/Grep/GX_GrepSearch.dfm =================================================================== --- branches/dark-mode/Source/Grep/GX_GrepSearch.dfm 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/Grep/GX_GrepSearch.dfm 2024-07-06 20:24:59 UTC (rev 4283) @@ -18,15 +18,15 @@ ShowHint = True OnClose = FormClose DesignSize = ( - 681 - 588) + 679 + 580) PixelsPerInch = 96 - TextHeight = 15 + TextHeight = 14 object lblFind: TLabel - Left = 21 + Left = 14 Top = 12 - Width = 59 - Height = 15 + Width = 66 + Height = 14 Alignment = taRightJustify Caption = '&Text to find' FocusControl = cbText @@ -34,11 +34,10 @@ object cbText: TComboBox Left = 85 Top = 8 - Width = 589 + Width = 585 Height = 22 Anchors = [akLeft, akTop, akRight] DropDownCount = 15 - ItemHeight = 0 TabOrder = 0 OnKeyDown = ComboKeyDown end @@ -216,8 +215,8 @@ object txt_NoMapFile: TStaticText Left = 43 Top = 79 - Width = 117 - Height = 19 + Width = 116 + Height = 18 Hint = 'Parses the .map file to get the unit names of all units used in ' + 'the project.'#13#10'You must enable generating a map file with publics' + @@ -230,18 +229,18 @@ object gbxContentTypes: TGroupBox Left = 488 Top = 40 - Width = 185 + Width = 181 Height = 81 Anchors = [akLeft, akTop, akRight] Caption = 'Delphi Code Content Types' TabOrder = 3 DesignSize = ( - 185 + 181 81) object cbGrepCode: TCheckBox Left = 10 Top = 18 - Width = 168 + Width = 164 Height = 17 Anchors = [akLeft, akTop, akRight] Caption = 'Code' @@ -251,7 +250,7 @@ object cbGrepStrings: TCheckBox Left = 10 Top = 38 - Width = 168 + Width = 164 Height = 17 Anchors = [akLeft, akTop, akRight] Caption = 'Strings' @@ -261,7 +260,7 @@ object cbGrepComments: TCheckBox Left = 10 Top = 58 - Width = 168 + Width = 164 Height = 17 Anchors = [akLeft, akTop, akRight] Caption = 'Comments' @@ -269,7 +268,7 @@ OnClick = cbGrepCommentsClick end object btnGrepAll: TButton - Left = 134 + Left = 130 Top = 48 Width = 43 Height = 25 @@ -282,18 +281,18 @@ object gbxUnitSections: TGroupBox Left = 488 Top = 128 - Width = 185 + Width = 181 Height = 105 Anchors = [akLeft, akTop, akRight] Caption = 'Delphi Code Sections' TabOrder = 4 DesignSize = ( - 185 + 181 105) object cbSectionInterface: TCheckBox Left = 10 Top = 18 - Width = 168 + Width = 164 Height = 17 Anchors = [akLeft, akTop, akRight] Caption = 'Interface' @@ -303,7 +302,7 @@ object cbSectionImplementation: TCheckBox Left = 10 Top = 38 - Width = 168 + Width = 164 Height = 17 Anchors = [akLeft, akTop, akRight] Caption = 'Implementation' @@ -313,7 +312,7 @@ object cbSectionInitialization: TCheckBox Left = 10 Top = 58 - Width = 168 + Width = 164 Height = 17 Anchors = [akLeft, akTop, akRight] Caption = 'Initialization' @@ -323,7 +322,7 @@ object cbSectionFinalization: TCheckBox Left = 10 Top = 78 - Width = 168 + Width = 164 Height = 17 Anchors = [akLeft, akTop, akRight] Caption = 'Finalization' @@ -331,7 +330,7 @@ OnClick = cbSectionFinalizationClick end object btnSectionAll: TButton - Left = 134 + Left = 130 Top = 72 Width = 43 Height = 25 @@ -344,19 +343,19 @@ object gbxDirectories: TGroupBox Left = 8 Top = 240 - Width = 666 + Width = 662 Height = 217 Anchors = [akLeft, akTop, akRight] Caption = 'Directory Search' TabOrder = 5 DesignSize = ( - 666 + 662 217) object lblMasks: TLabel Left = 8 Top = 72 - Width = 183 - Height = 15 + Width = 188 + Height = 14 Caption = 'File mas&ks (separate by semicolon)' FocusControl = cbMasks end @@ -363,8 +362,8 @@ object lblDirectory: TLabel Left = 8 Top = 24 - Width = 185 - Height = 15 + Width = 192 + Height = 14 Caption = 'Di&rectories (separate by semicolon)' FocusControl = cbDirectory end @@ -371,8 +370,8 @@ object lblExcludeDirs: TLabel Left = 24 Top = 168 - Width = 192 - Height = 15 + Width = 200 + Height = 14 Caption = 'Exclude Dirs (separate by semicolon)' FocusControl = cbExcludedDirs end @@ -379,18 +378,17 @@ object l_MinMaxDepth: TLabel Left = 176 Top = 121 - Width = 89 - Height = 15 + Width = 90 + Height = 14 Caption = 'Min / Max Depth' end object cbMasks: TComboBox Left = 8 Top = 88 - Width = 617 + Width = 613 Height = 22 Anchors = [akLeft, akTop, akRight] DropDownCount = 15 - ItemHeight = 0 TabOrder = 2 OnKeyDown = ComboKeyDown end @@ -406,7 +404,7 @@ object cbInclude: TCheckBox Left = 8 Top = 128 - Width = 149 + Width = 145 Height = 17 Anchors = [akLeft, akTop, akRight] Caption = 'Search su&bdirectories' @@ -416,18 +414,17 @@ object cbDirectory: TComboBox Left = 8 Top = 40 - Width = 617 + Width = 613 Height = 22 Hint = 'Separate multiple directories by semicolon' Anchors = [akLeft, akTop, akRight] DropDownCount = 15 - ItemHeight = 14 TabOrder = 0 OnDropDown = cbDirectoryDropDown OnKeyDown = ComboKeyDown end object btnBrowse: TButton - Left = 632 + Left = 628 Top = 39 Width = 25 Height = 25 @@ -442,11 +439,10 @@ object cbExcludedDirs: TComboBox Left = 24 Top = 184 - Width = 601 + Width = 597 Height = 22 Anchors = [akLeft, akTop, akRight] DropDownCount = 15 - ItemHeight = 14 TabOrder = 6 OnDropDown = cbExcludedDirsDropDown OnKeyDown = ComboKeyDown @@ -474,16 +470,16 @@ end object pnlBottom: TPanel Left = 0 - Top = 553 - Width = 681 + Top = 545 + Width = 679 Height = 35 Align = alBottom TabOrder = 7 DesignSize = ( - 681 + 679 35) object btnOK: TButton - Left = 436 + Left = 432 Top = 2 Width = 75 Height = 25 @@ -494,7 +490,7 @@ OnClick = btnOKClick end object btnCancel: TButton - Left = 516 + Left = 512 Top = 2 Width = 75 Height = 25 @@ -505,7 +501,7 @@ TabOrder = 3 end object btnHelp: TButton - Left = 596 + Left = 592 Top = 2 Width = 75 Height = 25 @@ -537,7 +533,7 @@ object rgSaveOption: TRadioGroup Left = 8 Top = 464 - Width = 666 + Width = 662 Height = 81 Anchors = [akLeft, akTop, akRight] Caption = 'Save Search History' Modified: branches/dark-mode/Source/Grep/GX_GrepSearch.pas =================================================================== --- branches/dark-mode/Source/Grep/GX_GrepSearch.pas 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/Grep/GX_GrepSearch.pas 2024-07-06 20:24:59 UTC (rev 4283) @@ -809,14 +809,10 @@ procedure TfmGrepSearch.FormShow(Sender: TObject); begin inherited; - {$IFDEF GX_IDE_IS_HIDPI_AWARE} - if IsThemesEnabled and (Self.CurrentPPI > 110) then - Self.Font.Height := Self.Font.Height + 1; - {$ENDIF} TControl_SetConstraints(Self, [ccMinWidth, ccMinHeight, ccMaxHeight]); if not IsStandAlone then - InitTheming(Self); + InitTheming; FixComboBoxSelections(Self); end; Modified: branches/dark-mode/Source/IDE/GX_IdeSearchPathEnhancer.pas =================================================================== --- branches/dark-mode/Source/IDE/GX_IdeSearchPathEnhancer.pas 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/IDE/GX_IdeSearchPathEnhancer.pas 2024-07-06 20:24:59 UTC (rev 4283) @@ -814,7 +814,9 @@ var LineIdx: Integer; YPos: Integer; +{$IFNDEF GX_VER350_up} LSelected: Boolean; +{$ENDIF} begin if FPageControl.ActivePage = FTabSheetMemo then begin FMemo.BeginUpdate; @@ -835,9 +837,14 @@ end; SetFocusTo(FMemo); end else begin +{$IFDEF GX_VER350_up} + FUpClick(FUpBtn); +{$ELSE} + // FIX RSP-32650: LSelected := FListbox.Selected[FListbox.ItemIndex]; FUpClick(FUpBtn); FListbox.Selected[FListbox.ItemIndex] := LSelected; +{$ENDIF} end; end; @@ -845,7 +852,9 @@ var LineCnt: Integer; YPos: Integer; +{$IFNDEF GX_VER350_up} LSelected: Boolean; +{$ENDIF} begin if FPageControl.ActivePage = FTabSheetMemo then begin FMemo.BeginUpdate; @@ -867,9 +876,14 @@ end; SetFocusTo(FMemo); end else begin +{$IFDEF GX_VER350_up} + FDownClick(FDownBtn); +{$ELSE} + // FIX RSP-32650: LSelected := FListbox.Selected[FListbox.ItemIndex]; FDownClick(FDownBtn); FListbox.Selected[FListbox.ItemIndex] := LSelected; +{$ENDIF} end; end; Modified: branches/dark-mode/Source/Include/GX_CondDefine.inc =================================================================== --- branches/dark-mode/Source/Include/GX_CondDefine.inc 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/Include/GX_CondDefine.inc 2024-07-06 20:24:59 UTC (rev 4283) @@ -261,6 +261,7 @@ // Define UniSynEdit if SynEdit is available {$IFDEF SYNEDIT} {$DEFINE UniSynEdit} + {$DEFINE GX_ENHANCED_EDITOR} {$ELSE} GExperts now requires SynEdit. {$ENDIF SYNEDIT} Modified: branches/dark-mode/Source/MacroLibrary/GX_MacroLibrary.dfm =================================================================== --- branches/dark-mode/Source/MacroLibrary/GX_MacroLibrary.dfm 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/MacroLibrary/GX_MacroLibrary.dfm 2024-07-06 20:24:59 UTC (rev 4283) @@ -2,7 +2,6 @@ Left = 326 Top = 252 ActiveControl = lvMacros - AutoScroll = False Caption = 'Keyboard Macro Library' ClientHeight = 218 ClientWidth = 314 @@ -12,12 +11,10 @@ Font.Height = -12 Font.Name = 'Tahoma' Font.Style = [] - OldCreateOrder = False Position = poScreenCenter Scaled = False OnClose = FormClose OnResize = FormResize - PixelsPerInch = 96 TextHeight = 14 object Splitter: TSplitter Left = 0 @@ -69,8 +66,6 @@ Width = 314 Height = 22 AutoSize = True - EdgeBorders = [] - Flat = True Images = dmSharedImages.Images ParentShowHint = False ShowHint = True Modified: branches/dark-mode/Source/MacroLibrary/GX_MacroLibrary.pas =================================================================== --- branches/dark-mode/Source/MacroLibrary/GX_MacroLibrary.pas 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/MacroLibrary/GX_MacroLibrary.pas 2024-07-06 20:24:59 UTC (rev 4283) @@ -201,6 +201,7 @@ procedure ApplyDpi(_NewDpi: Integer; _NewBounds: PRect); override; {$ENDIF} procedure AddToMacroLibrary(CR: IOTARecord); + procedure FormShow(Sender: TObject); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; @@ -680,6 +681,8 @@ procedure TfmMacroLibrary.FormClose(Sender: TObject; var Action: TCloseAction); begin + if Self.Floating then + SaveSettings; Action := caHide; end; @@ -758,6 +761,7 @@ FDataList := TList.Create; LoadSettings; FSBWidth := GetSystemMetrics(SM_CXVSCROLL); + OnShow := FormShow; ResizeColumns; InitializeForm; @@ -1032,9 +1036,16 @@ procedure TfmMacroLibrary.ResizeColumns; var + DummyTimeStamp : TDateTime; ColWidth: Integer; begin - ColWidth := Max(lvMacros.Width - fSBWidth - 6 - lvMacros.Columns[1].MinWidth, NameColMinMidth); + // calculate needed with for the timestamp + DummyTimeStamp := EncodeDate(2000, 12, 31) + EncodeTime(23, 53, 55, 0); + ColWidth := lvMacros.Canvas.TextWidth(DateTimeToStr(DummyTimeStamp)) + FSBWidth; + lvMacros.Columns[1].MinWidth := ColWidth; + lvMacros.Columns[1].Width := ColWidth; + + ColWidth := Max(lvMacros.Width - FSBWidth - 6 - lvMacros.Columns[1].MinWidth, NameColMinMidth); lvMacros.Columns[0].MaxWidth := ColWidth; lvMacros.Columns[0].MinWidth := ColWidth; lvMacros.Columns[0].Width := ColWidth; @@ -1228,6 +1239,12 @@ Result := pnlDescription.Visible; end; +procedure TfmMacroLibrary.FormShow(Sender: TObject); +begin + if Self.Floating then + LoadSettings; +end; + { TMacroLibraryExpert } constructor TMacroLibraryExpert.Create; Modified: branches/dark-mode/Source/ReplaceComponents/GX_ReplaceComp.dfm =================================================================== --- branches/dark-mode/Source/ReplaceComponents/GX_ReplaceComp.dfm 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/ReplaceComponents/GX_ReplaceComp.dfm 2024-07-06 20:24:59 UTC (rev 4283) @@ -38,7 +38,7 @@ FocusControl = cbReplace end object btnOK: TButton - Left = 150 + Left = 144 Top = 190 Width = 75 Height = 25 @@ -50,7 +50,7 @@ OnClick = btnOKClick end object btnCancel: TButton - Left = 233 + Left = 227 Top = 190 Width = 75 Height = 25 @@ -61,7 +61,7 @@ TabOrder = 5 end object btnHelp: TButton - Left = 398 + Left = 392 Top = 190 Width = 75 Height = 25 @@ -73,11 +73,10 @@ object cbSearch: TComboBox Left = 111 Top = 12 - Width = 314 + Width = 308 Height = 22 Anchors = [akLeft, akTop, akRight] DropDownCount = 18 - ItemHeight = 14 Sorted = True TabOrder = 0 OnChange = cbSearchChange @@ -85,12 +84,11 @@ end object cbReplace: TComboBox Left = 111 - Top = 36 - Width = 314 + Top = 37 + Width = 308 Height = 22 Anchors = [akLeft, akTop, akRight] DropDownCount = 18 - ItemHeight = 14 Sorted = True TabOrder = 1 OnChange = cbSearchChange @@ -97,7 +95,7 @@ OnKeyDown = cbSearchKeyDown end object gbxScope: TGroupBox - Left = 188 + Left = 182 Top = 70 Width = 285 Height = 108 @@ -186,7 +184,7 @@ end end object btnSettings: TButton - Left = 316 + Left = 310 Top = 190 Width = 75 Height = 25 Modified: branches/dark-mode/Source/ReplaceComponents/GX_ReplaceComp.pas =================================================================== --- branches/dark-mode/Source/ReplaceComponents/GX_ReplaceComp.pas 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/ReplaceComponents/GX_ReplaceComp.pas 2024-07-06 20:24:59 UTC (rev 4283) @@ -447,6 +447,7 @@ constructor TfmReplaceComp.Create(AOwner: TComponent); begin inherited Create(AOwner); + TControl_SetMinConstraints(Self); LoadFormSettings; SetupControls; Modified: branches/dark-mode/Source/Utils/GX_OtaUtils.pas =================================================================== --- branches/dark-mode/Source/Utils/GX_OtaUtils.pas 2024-07-06 20:01:13 UTC (rev 4282) +++ branches/dark-mode/Source/Utils/GX_OtaUtils.pas 2024-07-06 20:24:59 UTC (rev 4283) @@ -834,7 +834,19 @@ const FileName: string; var Cancel: Boolean); override; end; +(* type + TThemeChangedNotifier = class(TBaseIdeNotifier, INTAIDEThemingServicesNotifier) + private + FOnThemeChanged : TNotifyEvent; + public + constructor Create(_OnThemeChanged: TNotifyEvent); + procedure ChangingTheme; + procedure ChangedTheme; + end; +*) + +type EStandAloneUsage = class(Exception); const @@ -4096,6 +4108,7 @@ {$IFDEF GX_SUPPORTS_THEMING} var LService : IOTAIDEThemingServices; +// LNotifier : TThemeChangedNotifier; begin Result := False; LService := GxOtaGetIDEThemingServices; @@ -4103,6 +4116,10 @@ begin LService.RegisterFormClass(TCustomFormClass(AForm.ClassType)); LService.ApplyTheme(AForm); + +// LNotifier := TThemeChangedNotifier.Create(AForm); +// LNotifier.AddNotifierToIDE; + Result := True; end; end; @@ -5996,6 +6013,41 @@ end; end; +{ TThemeChangedNotifier } + +(* +function TThemeChangedNotifier.AddNotifierToIDE: Boolean; +var + LService: IOTAIDEThemingServices; +begin + Result := False; + LService := GxOtaGetIDEThemingServices; + if Assigned(LService) and (LService.IDEThemingEnabled) then + begin + FNotifierIndex := LService.AddNotifier(Self); + Result := (FNotifierIndex <> InvalidNotifierIndex); + end; +end; + +procedure TThemeChangedNotifier.ChangedTheme; +begin + if Assigned(FOnThemeChanged) then + FOnThemeChanged(Self); +end; + +procedure TThemeChangedNotifier.ChangingTheme; +begin + // not implemented. +end; + +constructor TThemeChangedNotifier.Create(_OnThemeChanged: TNotifyEvent); +begin + inherited Create; + Assert(Assigned(_OnThemeChanged); + FOnThemeChanged := _OnThemeChanged; +end; +*) + initialization finalization This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aka...@us...> - 2024-08-10 16:21:41
|
Revision: 4292 http://sourceforge.net/p/gexperts/code/4292 Author: akalwahome Date: 2024-08-10 16:21:38 +0000 (Sat, 10 Aug 2024) Log Message: ----------- Merged revision(s) from trunk: Modified Paths: -------------- branches/dark-mode/ExternalSource/dzlib/dzlib.inc branches/dark-mode/ExternalSource/dzlib/u_dzConvertUtils.pas branches/dark-mode/ExternalSource/dzlib/u_dzFileStreams.pas branches/dark-mode/ExternalSource/dzlib/u_dzFileUtils.pas branches/dark-mode/ExternalSource/dzlib/u_dzGraphicsUtils.pas branches/dark-mode/ExternalSource/dzlib/u_dzNullableTimespan.pas branches/dark-mode/ExternalSource/dzlib/u_dzTypInfo.pas branches/dark-mode/ExternalSource/dzlib/u_dzTypes.pas branches/dark-mode/ExternalSource/dzlib/u_dzVclUtils.pas branches/dark-mode/Source/CodeProofreader/GX_ProofreaderConfig.pas branches/dark-mode/Source/Editor/GX_eAlign.pas branches/dark-mode/Source/Editor/GX_eDate.dfm Added Paths: ----------- branches/dark-mode/ExternalSource/dzlib/u_dzTypeInfoUtils.pas Property Changed: ---------------- branches/dark-mode/ Index: branches/dark-mode =================================================================== --- branches/dark-mode 2024-08-10 15:37:29 UTC (rev 4291) +++ branches/dark-mode 2024-08-10 16:21:38 UTC (rev 4292) Property changes on: branches/dark-mode ___________________________________________________________________ Modified: svn:mergeinfo ## -1 +1 ## -/trunk:4085-4282 \ No newline at end of property +/trunk:4085-4291 \ No newline at end of property Modified: branches/dark-mode/ExternalSource/dzlib/dzlib.inc =================================================================== --- branches/dark-mode/ExternalSource/dzlib/dzlib.inc 2024-08-10 15:37:29 UTC (rev 4291) +++ branches/dark-mode/ExternalSource/dzlib/dzlib.inc 2024-08-10 16:21:38 UTC (rev 4292) @@ -25,6 +25,7 @@ {$DEFINE SUPPORTS_DEPRECATED_TYPES} {$DEFINE HAS_UNIT_WIDESTRINGS} {$DEFINE OPENDIALOG_EXCUTE_HAS_HANDLE} + {$DEFINE ENUM_NAMES_ARE_UTF8} {$ENDIF} {$IFDEF DELPHI2006_UP} @@ -55,6 +56,7 @@ // THandleStream.FHandle is declared as THandle (before that it's an Integer) {$DEFINE THANDLESTREAM_HANDLE_IS_THANDLE} {$DEFINE HAS_TOBJECT_TOSTRING} + {$DEFINE HAS_UTF8TOWIDESTRING} {$ENDIF} {$IFDEF DELPHI2010_UP} Modified: branches/dark-mode/ExternalSource/dzlib/u_dzConvertUtils.pas =================================================================== --- branches/dark-mode/ExternalSource/dzlib/u_dzConvertUtils.pas 2024-08-10 15:37:29 UTC (rev 4291) +++ branches/dark-mode/ExternalSource/dzlib/u_dzConvertUtils.pas 2024-08-10 16:21:38 UTC (rev 4292) @@ -47,7 +47,8 @@ TBaseN = 2..36; const - MaxLongWord = $FFFFFFFF; + MaxLongWord = $FFFFFFFF deprecated; // use u_dzTypes MaxUInt32 + MaxInt64 = $7FFFFFFFFFFFFFFF deprecated; // use u_dzTypes MaxInt64 const /// <summary> @@ -254,6 +255,11 @@ /// @raises EStringConvertError if s can not be converted </summary> function Str2Int64(const _s: string; const _Source: string): Int64; overload; +function TryStr2Int64(const _s: string; var _Value: Int64): Boolean; overload; +{$IFDEF SUPPORTS_UNICODE} +function TryStr2Int64(const _s: AnsiString; var _Value: Int64): Boolean; overload; +{$ENDIF SUPPORTS_UNICODE} + ///<summary> /// tries to guess the decimal separator </summary> function GuessDecimalSeparator(const _s: string): Char; @@ -1177,6 +1183,24 @@ end; {$ENDIF SUPPORTS_UNICODE} +function TryStr2Int64(const _s: string; var _Value: Int64): Boolean; overload; +var + e: Integer; + v: Integer; +begin + Val(_s, v, e); + Result := (e = 0); + if Result then + _Value := v; +end; + +{$IFDEF SUPPORTS_UNICODE} +function TryStr2Int64(const _s: AnsiString; var _Value: Int64): Boolean; overload; +begin + Result := TryStr2Int64(string(_s), _Value); +end; +{$ENDIF SUPPORTS_UNICODE} + function Str2Int64(const _s: string; _Default: Int64): Int64; var e: Integer; Modified: branches/dark-mode/ExternalSource/dzlib/u_dzFileStreams.pas =================================================================== --- branches/dark-mode/ExternalSource/dzlib/u_dzFileStreams.pas 2024-08-10 15:37:29 UTC (rev 4291) +++ branches/dark-mode/ExternalSource/dzlib/u_dzFileStreams.pas 2024-08-10 16:21:38 UTC (rev 4292) @@ -126,6 +126,13 @@ /// * CreateDisposition := fcCreateTruncateIfExists; /// raises an exception on error </summary> procedure OpenCreateWriteNoSharing; + ///<summary> + /// Opens a new file for writing only (or truncates an existing file): + /// * AccessMode := [faWrite]; + /// * ShareMode := fsShareRead; + /// * CreateDisposition := fcCreateTruncateIfExists; + /// raises an exception on error </summary> + procedure OpenCreateWriteShareRead; ///<summary> Opens the file and seeks to the end. Returns the new position (that is: The file length). </summary> function Append: LongInt; ///<summary> @@ -346,6 +353,14 @@ Open; end; +procedure TdzFile.OpenCreateWriteShareRead; +begin + CreateDisposition := fcCreateTruncateIfExists; + ShareMode := [fsRead]; + AccessMode := [faWrite]; + Open; +end; + procedure TdzFile.Open; var LastError: Cardinal; Modified: branches/dark-mode/ExternalSource/dzlib/u_dzFileUtils.pas =================================================================== --- branches/dark-mode/ExternalSource/dzlib/u_dzFileUtils.pas 2024-08-10 15:37:29 UTC (rev 4291) +++ branches/dark-mode/ExternalSource/dzlib/u_dzFileUtils.pas 2024-08-10 16:21:38 UTC (rev 4292) @@ -935,7 +935,7 @@ /// Uses kernel32.GetFullPathName and then compares the result using SameText. /// Note that this does not handle all possible cases, e.g. two files with totally different /// names could be the same due to hard links, soft links or multiple UNC paths pointing to - // the same directory. </summary> + /// the same directory. </summary> class function IsSameFilename(const _fn1, _fn2: string): Boolean; ///<summary> Modified: branches/dark-mode/ExternalSource/dzlib/u_dzGraphicsUtils.pas =================================================================== --- branches/dark-mode/ExternalSource/dzlib/u_dzGraphicsUtils.pas 2024-08-10 15:37:29 UTC (rev 4291) +++ branches/dark-mode/ExternalSource/dzlib/u_dzGraphicsUtils.pas 2024-08-10 16:21:38 UTC (rev 4292) @@ -772,6 +772,7 @@ pngimage, // support for TImage.LoadGraphics for PNG files {$ENDIF} GraphUtil, + u_dzTypeInfoUtils, u_dzFileUtils; function _(const _s: string): string; @@ -1708,8 +1709,8 @@ Assert(Assigned(_bmp), 'bitmap is not assigned'); Result := (_bmp.PixelFormat = _Expected); if not Result then begin - ActualName := GetEnumName(TypeInfo(TPixelFormat), Ord(_bmp.PixelFormat)); - ExpectedName := GetEnumName(TypeInfo(TPixelFormat), Ord(_Expected)); + ActualName := SafeGetEnumName(TypeInfo(TPixelFormat), Ord(_bmp.PixelFormat)); + ExpectedName := SafeGetEnumName(TypeInfo(TPixelFormat), Ord(_Expected)); Assert(False, 'unexpected PixelFormat ' + ActualName + ' (expected ' + ExpectedName + ')'); end; end; Modified: branches/dark-mode/ExternalSource/dzlib/u_dzNullableTimespan.pas =================================================================== --- branches/dark-mode/ExternalSource/dzlib/u_dzNullableTimespan.pas 2024-08-10 15:37:29 UTC (rev 4291) +++ branches/dark-mode/ExternalSource/dzlib/u_dzNullableTimespan.pas 2024-08-10 16:21:38 UTC (rev 4292) @@ -142,6 +142,7 @@ class operator Multiply(_a: TNullableTimespan; _b: Extended): TNullableTimespan; class function Zero: TNullableTimespan; static; + class function OneDay: TNullableTimespan; static; class function FromDays(_Days: Double): TNullableTimespan; static; class function FromHours(_Hours: Extended): TNullableTimespan; overload; static; class function FromHours(_Hours: TNullableExtended): TNullableTimespan; overload; static; @@ -640,6 +641,11 @@ Result.AssignZero; end; +class function TNullableTimespan.OneDay: TNullableTimespan; +begin + Result.AssignDays(1); +end; + class operator TNullableTimespan.GreaterThanOrEqual(_a, _b: TNullableTimespan): Boolean; begin Result := not (_a < _b); Modified: branches/dark-mode/ExternalSource/dzlib/u_dzTypInfo.pas =================================================================== --- branches/dark-mode/ExternalSource/dzlib/u_dzTypInfo.pas 2024-08-10 15:37:29 UTC (rev 4291) +++ branches/dark-mode/ExternalSource/dzlib/u_dzTypInfo.pas 2024-08-10 16:21:38 UTC (rev 4292) @@ -16,7 +16,7 @@ TypInfo, u_dzTranslator; - // I am not going to proved support for Variant properties here. I hate Variants. +// I am not going to provide support for Variant properties here. I hate Variants. const ///<summary> property types that can be converted to string </summary> @@ -88,6 +88,9 @@ {$IFDEF DELPHI2007_UP} +uses + u_dzTypes; + function _(const _s: string): string; inline; begin Result := dzlibGetText(_s); @@ -353,3 +356,4 @@ {$ENDIF DELPHI2007_UP} end. + Copied: branches/dark-mode/ExternalSource/dzlib/u_dzTypeInfoUtils.pas (from rev 4291, trunk/ExternalSource/dzlib/u_dzTypeInfoUtils.pas) =================================================================== --- branches/dark-mode/ExternalSource/dzlib/u_dzTypeInfoUtils.pas (rev 0) +++ branches/dark-mode/ExternalSource/dzlib/u_dzTypeInfoUtils.pas 2024-08-10 16:21:38 UTC (rev 4292) @@ -0,0 +1,92 @@ +unit u_dzTypeInfoUtils; + +{$INCLUDE 'dzlib.inc'} + +interface + +uses + SysUtils, + TypInfo; + +function SafeGetEnumName(TypeInfo: PTypeInfo; Value: Integer): string; + +implementation + +uses + u_dzTypes; + +function SafeGetEnumName(TypeInfo: PTypeInfo; Value: Integer): string; + + procedure IncPtr(var _p: Pointer); + begin + _p := Pointer(Intptr(_p) + 1); + end; + + // P must point to the length field (that is the first byte) of a ShortString + function AfterShortString(const P: Pointer): Pointer; + begin + Result := Pointer(Intptr(P) + PByte(P)^ + 1); + end; + +{$IFDEF ENUM_NAMES_ARE_UTF8} + +{$IFNDEF HAS_UTF8TOWIDESTRING} + function UTF8ToWideString(const _Utf8: RawByteString): WideString; + begin + Result := UTF8Decode(_Utf8); + end; +{$ENDIF} + +// Older Unicode Delphi versions did not have a UTF8ToString overload for a pointer parameter +{$IFNDEF DELPHIX_ATHENS_UP} + function _UTF8ToString(P: Pointer): WideString; + var + Len: Byte; + Buf: UTF8String; + begin + Result := ''; + Len := PByte(P)^; + if Len <> 0 then begin + SetLength(Buf, Len); + IncPtr(P); + Move(PByte(P)^, Buf[1], Len); + Result := UTF8ToWideString(Buf); + end; + end; +{$ENDIF} +{$ENDIF} + +var + P: Pointer; + T: PTypeData; +begin + if TypeInfo^.Kind = tkInteger then begin + Result := IntToStr(Value); + Exit; + end; + T := GetTypeData(GetTypeData(TypeInfo)^.BaseType^); + if (TypeInfo = System.TypeInfo(Boolean)) or (T^.MinValue < 0) then begin + { LongBool/WordBool/ByteBool have MinValue < 0 and arbitrary + content in Value; Boolean has Value in [0, 1] } + Result := BooleanIdents[Value <> 0]; + if SameText(HexDisplayPrefix, '0x') then + Result := LowerCase(Result); + end else begin + if (Value < T.MinValue) or (Value > T.MaxValue) then + Result := Format('OutOfBounds(%d)', [Value]) + else begin + P := @T^.NameList; + while Value <> 0 do begin + P := AfterShortString(P); + Dec(Value); + end; +{$IFDEF ENUM_NAMES_ARE_UTF8} + Result := _UTF8ToString(P); +{$ELSE} + Result := PShortString(P)^; +{$ENDIF} + end; + end; +end; + +end. Modified: branches/dark-mode/ExternalSource/dzlib/u_dzTypes.pas =================================================================== --- branches/dark-mode/ExternalSource/dzlib/u_dzTypes.pas 2024-08-10 15:37:29 UTC (rev 4291) +++ branches/dark-mode/ExternalSource/dzlib/u_dzTypes.pas 2024-08-10 16:21:38 UTC (rev 4292) @@ -169,16 +169,59 @@ {$IFEND} TStringArray = TStringDynArray; TRawByteStringArray = array of RawByteString; - TIntegerArray = array of Integer; - PIntegerArray = ^TIntegerArray; - TSingleArray = array of Single; - PSingleArray = ^TSingleArray; - TDoubleArray = array of Double; - PDoubleArray = ^TDoubleArray; - TExtendedArray = array of Extended; - PExtendedArray = ^TExtendedArray; - TExtendedDynArray = TExtendedArray; + +{$IF not declared(TInt32DynArray)} + TInt32DynArray = array of Int32; +{$IFEND} +{$IF not declared(PInt32DynArray)} + PInt32DynArray = ^TInt32DynArray; +{$IFEND} +{$IF not declared(TIntegerDynArray)} + TIntegerDynArray = TInt32DynArray + {$IFDEF SUPPORTS_DEPRECATED_TYPES} deprecated {$ENDIF}; // use TInt32DynArray instead +{$IFEND} +{$IF not declared(PIntegerDynArray)} + PIntegerDynArray = PInt32DynArray + {$IFDEF SUPPORTS_DEPRECATED_TYPES} deprecated {$ENDIF}; // use PInt32DynArray instead +{$IFEND} + TIntegerArray = TInt32DynArray + {$IFDEF SUPPORTS_DEPRECATED_TYPES} deprecated {$ENDIF}; // use TInt32DynArray or TIntegerDynArray instead + PIntegerArray = PInt32DynArray + {$IFDEF SUPPORTS_DEPRECATED_TYPES} deprecated {$ENDIF}; // use PInt32DynArray or PIntegerDynArray instead + +{$IF not declared(TSingleDynArray)} + TSingleDynArray = array of Single; +{$IFEND} +{$IF not declared(PSingleDynArray)} + PSingleDynArray = ^TSingleDynArray; +{$IFEND} + TSingleArray = TSingleDynArray + {$IFDEF SUPPORTS_DEPRECATED_TYPES} deprecated {$ENDIF}; // use TSingleDynArray instead + PSingleArray = PSingleDynArray + {$IFDEF SUPPORTS_DEPRECATED_TYPES} deprecated {$ENDIF}; // use PSingleDynArray instead + +{$IF not declared(TDoubleDynArray)} + TDoubleDynArray = array of Double; +{$IFEND} +{$IF not declared(PDoubleDynArray)} + PDoubleDynArray = ^TDoubleDynArray; +{$IFEND} + TDoubleArray = TDoubleDynArray + {$IFDEF SUPPORTS_DEPRECATED_TYPES} deprecated {$ENDIF}; // use TDoubleDynArray instead + PDoubleArray = PDoubleDynArray + {$IFDEF SUPPORTS_DEPRECATED_TYPES} deprecated {$ENDIF}; // use PDoubleDynArray instead + +{$IF not declared(TExtendedDynArray)} + TExtendedDynArray = array of Extended; +{$IFEND} +{$IF not declared(PExtendedDynArray)} PExtendedDynArray = ^TExtendedDynArray; +{$IFEND} + TExtendedArray = TExtendedDynArray + {$IFDEF SUPPORTS_DEPRECATED_TYPES} deprecated {$ENDIF}; // use TExtendedDynArray instead + PExtendedArray = PExtendedDynArray + {$IFDEF SUPPORTS_DEPRECATED_TYPES} deprecated {$ENDIF}; // use PExtendedDynArray instead + {$IF not Declared(TBytes)} TBytes = array of Byte; {$IFEND} Modified: branches/dark-mode/ExternalSource/dzlib/u_dzVclUtils.pas =================================================================== --- branches/dark-mode/ExternalSource/dzlib/u_dzVclUtils.pas 2024-08-10 15:37:29 UTC (rev 4291) +++ branches/dark-mode/ExternalSource/dzlib/u_dzVclUtils.pas 2024-08-10 16:21:38 UTC (rev 4292) @@ -1163,6 +1163,20 @@ function TRadioGroup_GetSelectedObject(_rg: TCustomRadioGroup; out _Obj: Pointer): Boolean; overload; function TRadioGroup_GetSelectedObject(_rg: TCustomRadioGroup; out _ObjAsInt: Integer): Boolean; overload; +///<summary> +/// If Highlighted is True, highlights the RadioGroup's Idx'th button, otherwise it un-highlights it, +/// Highlighting the button means setting its Font.Color to the given Color, and un-higlighting +/// means to set its ParentFont property to True </summary> +procedure TRadioGroup_HighlightButton(_rg: TRadioGroup; _Idx: Integer; _Highlighted: Boolean; + _Color: TColor = clRed); + +///<summary> +/// Highlights the currently selected button of the ReadioGroup if it is not the given DefaultIdx. +/// Highlighting the button means setting its Font.Color to the given Color, and un-higlighting +/// means to set its ParentFont property to True </summary> +procedure TRadioGroup_HighlightIfNotDefault(_rg: TRadioGroup; _DefaultIdx: Integer; + _Color: TColor = clRed); + ///<summary> Writes a TPicture object to a String. The Format is /// <pictureformat>#26<picturedata> </summary> function TPicture_WriteToString(_Pic: TPicture): string; @@ -1635,6 +1649,34 @@ ///<summary> Sets the Caption value of a TCheckbox or TRadioButton (which both descend from TButtonControl) </summary> procedure TButtonControl_SetCaption(_bctrl: TButtonControl; const _Value: string); +///<summary> +/// If Highlight is True, hightlightes the button, ohterweise un-highlights it. +/// Highlighting the button means setting its Font.Color to the given Color, and un-higlighting +/// means to set its ParentFont property to True </summary> +procedure TButtonControl_Highlight(_bctrl: TButtonControl; _Highlighted: Boolean; _Color: TColor = clRed); + +///<summary> +/// Highlights the button if its Checked property does not have the default value. +/// Otherwise un-highlights it. +/// Highlighting the button means setting its Font.Color to the given Color, and un-higlighting +/// means to set its ParentFont property to True </summary> +procedure TButtonControl_HighlightIfNotDefault(_bctrl: TButtonControl; _Default: Boolean; + _Color: TColor = clRed); + +///<summary> +/// Highlights the button if is checked. +/// Otherwise un-highlights it. +/// Highlighting the button means setting its Font.Color to the given Color, and un-higlighting +/// means to set its ParentFont property to True </summary> +procedure TButtonControl_HighlightIfChecked(_bctrl: TButtonControl; _Color: TColor = clRed); + +///<summary> +/// Highlights the button if is no checked. +/// Otherwise un-highlights it. +/// Highlighting the button means setting its Font.Color to the given Color, and un-higlighting +/// means to set its ParentFont property to True </summary> +procedure TButtonControl_HighlightIfNotChecked(_bctrl: TButtonControl; _Color: TColor = clRed); + {$IFNDEF DELPHI2009_UP} //Delphi 2009 introduced TCustomButton as the common Ancestor of TButton and TBitBtn. type @@ -4322,6 +4364,27 @@ _ObjAsInt := Integer(Obj); //FI:W541 Casting from Integer to Pointer type (or vice versa) end; +procedure TRadioGroup_HighlightButton(_rg: TRadioGroup; _Idx: Integer; _Highlighted: Boolean; + _Color: TColor = clRed); +begin + if (_Idx < 0) or (_Idx >= _rg.Items.Count) then + Exit; //==> + + TButtonControl_Highlight(TRadioGroup_GetButton(_rg, _Idx), _Highlighted, _Color); +end; + +procedure TRadioGroup_HighlightIfNotDefault(_rg: TRadioGroup; _DefaultIdx: Integer; + _Color: TColor = clRed); +var + Idx: Integer; + i: Integer; +begin + Idx := _rg.ItemIndex; + for i := 0 to _rg.Items.Count - 1 do begin + TRadioGroup_HighlightButton(_rg, i, (i = Idx) and not (i = _DefaultIdx)); + end; +end; + function TRichEdit_WriteToString(_Re: TRichEdit): string; var st: TMemoryStream; @@ -5708,6 +5771,43 @@ THackButtonControl(_bctrl).Caption := _Value; end; +procedure TButtonControl_Highlight(_bctrl: TButtonControl; _Highlighted: Boolean; _Color: TColor = clRed); +var + bctrl: TButtonControlHack absolute _bctrl; +begin + if not Assigned(bctrl) then + Exit; //==> + + if _Highlighted then + bctrl.Font.Color := _Color + else + bctrl.ParentFont := True; +end; + +procedure TButtonControl_HighlightIfNotDefault(_bctrl: TButtonControl; _Default: Boolean; + _Color: TColor = clRed); +var + bctrl: TButtonControlHack absolute _bctrl; +begin + if not Assigned(bctrl) then + Exit; //==> + + if bctrl.Checked <> _Default then + bctrl.Font.Color := _Color + else + bctrl.ParentFont := True; +end; + +procedure TButtonControl_HighlightIfChecked(_bctrl: TButtonControl; _Color: TColor = clRed); +begin + TButtonControl_HighlightIfNotDefault(_bctrl, False, _Color); +end; + +procedure TButtonControl_HighlightIfNotChecked(_bctrl: TButtonControl; _Color: TColor = clRed); +begin + TButtonControl_HighlightIfNotDefault(_bctrl, True, _Color); +end; + type TButtonPopupMenuLink = class(TComponent) private Modified: branches/dark-mode/Source/CodeProofreader/GX_ProofreaderConfig.pas =================================================================== --- branches/dark-mode/Source/CodeProofreader/GX_ProofreaderConfig.pas 2024-08-10 15:37:29 UTC (rev 4291) +++ branches/dark-mode/Source/CodeProofreader/GX_ProofreaderConfig.pas 2024-08-10 16:21:38 UTC (rev 4292) @@ -231,8 +231,7 @@ cbLanguage.Items.Add(ReplacementSourceText[i]); // Initialize option settings - btnSelectFile.Top := eCustomBeep.Top - 1; // Ord(IsThemingEnabled); - btnSelectFile.Height := eCustomBeep.Height + 2; // * Ord(IsThemingEnabled); + TButton_AlignVerticallyTo(btnSelectFile, eCustomBeep); cbBeep.Checked := FProofreaderData.BeepOnReplace; eCustomBeep.Text := FProofreaderData.CustomBeepSound; cbReplacerActive.Checked := FProofreaderData.ReplacerActive; Modified: branches/dark-mode/Source/Editor/GX_eAlign.pas =================================================================== --- branches/dark-mode/Source/Editor/GX_eAlign.pas 2024-08-10 15:37:29 UTC (rev 4291) +++ branches/dark-mode/Source/Editor/GX_eAlign.pas 2024-08-10 16:21:38 UTC (rev 4292) @@ -19,7 +19,8 @@ cbxMode: TComboBox; procedure lstTokensDblClick(Sender: TObject); procedure btnConfigClick(Sender: TObject); - procedure FormCreate(Sender: TObject); + private + procedure InitializeForm; public constructor Create(_Owner: TComponent); override; end; @@ -268,11 +269,12 @@ TControl_SetMinConstraints(Self); InitDpiScaler; + + InitializeForm; end; -procedure TfmAlign.FormCreate(Sender: TObject); +procedure TfmAlign.InitializeForm; begin - inherited; SetDefaultFont(Self); end; Modified: branches/dark-mode/Source/Editor/GX_eDate.dfm =================================================================== --- branches/dark-mode/Source/Editor/GX_eDate.dfm 2024-08-10 15:37:29 UTC (rev 4291) +++ branches/dark-mode/Source/Editor/GX_eDate.dfm 2024-08-10 16:21:38 UTC (rev 4292) @@ -1,27 +1,27 @@ inherited fmDateFormat: TfmDateFormat - Left = 285 - Top = 201 + Left = 606 + Top = 312 + BorderIcons = [biSystemMenu] BorderStyle = bsDialog Caption = 'Insert Date/Time Configuration' - ClientHeight = 74 - ClientWidth = 337 + ClientHeight = 90 + ClientWidth = 226 Position = poOwnerFormCenter PixelsPerInch = 96 - TextHeight = 15 + TextHeight = 13 object lblFormat: TLabel - Left = 20 - Top = 13 - Width = 92 - Height = 15 - Alignment = taRightJustify + Left = 8 + Top = 8 + Width = 82 + Height = 13 Caption = 'Date/time &format' FocusControl = cbFormat end object cbFormat: TComboBox - Left = 120 - Top = 10 + Left = 8 + Top = 24 Width = 209 - Height = 23 + Height = 21 DropDownCount = 18 TabOrder = 0 Text = 'cbFormat' @@ -52,8 +52,8 @@ 'mm-dd-yy h:mm') end object btnOK: TButton - Left = 168 - Top = 41 + Left = 64 + Top = 56 Width = 75 Height = 25 Caption = 'OK' @@ -62,8 +62,8 @@ TabOrder = 1 end object btnCancel: TButton - Left = 252 - Top = 41 + Left = 144 + Top = 56 Width = 75 Height = 25 Cancel = True This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aka...@us...> - 2024-08-14 20:53:12
|
Revision: 4293 http://sourceforge.net/p/gexperts/code/4293 Author: akalwahome Date: 2024-08-14 20:53:09 +0000 (Wed, 14 Aug 2024) Log Message: ----------- Fixed more dark mode issues. NEW: TGX_CheckButton and TGXCheckButtonGroup with theme support; replaces TdzSpeedBitBtn Added Image for TGxFilterExceptionsExpert. Modified Paths: -------------- branches/dark-mode/ExternalSource/dzlib/u_dzSpeedBitBtn.pas branches/dark-mode/ExternalSource/dzlib/u_dzVclUtils.pas branches/dark-mode/Images/GXIcons.rc branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dpr branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dproj branches/dark-mode/Source/CodeProofreader/GX_ProofreaderConfig.dfm branches/dark-mode/Source/CodeProofreader/GX_ProofreaderConfig.pas branches/dark-mode/Source/Framework/GX_About.dfm branches/dark-mode/Source/Framework/GX_FeedbackWizard.pas branches/dark-mode/Source/Framework/GX_GExperts.pas branches/dark-mode/Source/Grep/GX_GrepSearch.pas branches/dark-mode/Source/ProjectDependencies/GX_ProjDepend.pas branches/dark-mode/Source/RenameComponents/GX_CompRename.dfm branches/dark-mode/Source/RenameComponents/GX_CompRename.pas branches/dark-mode/Source/UsesExpert/GX_UsesExpert.dfm branches/dark-mode/Source/UsesExpert/GX_UsesExpert.pas Added Paths: ----------- branches/dark-mode/Source/Utils/GX_CheckButton.pas Modified: branches/dark-mode/ExternalSource/dzlib/u_dzSpeedBitBtn.pas =================================================================== --- branches/dark-mode/ExternalSource/dzlib/u_dzSpeedBitBtn.pas 2024-08-10 16:21:38 UTC (rev 4292) +++ branches/dark-mode/ExternalSource/dzlib/u_dzSpeedBitBtn.pas 2024-08-14 20:53:09 UTC (rev 4293) @@ -38,9 +38,6 @@ /// Note: Actions do not work.</summary> TdzSpeedBitBtn = class(TWindowProcHook) private - FColorRaised: TColor; - FColorSunken: TColor; - FColorText: TColor; FCaption: string; FUpGlyph: TBitmap; FDownGlyph: TBitmap; @@ -57,7 +54,8 @@ procedure SetDown(const Value: Boolean); procedure UpdateGlyph; function GetBitBtn: TBitBtn; - procedure PrepareBmp(_w, _h: Integer; _Color: TColor; _Edge: UINT; _Glyph: TBitmap; _bmp: TBitmap); + procedure PrepareBmp(_w, _h: Integer; _Color: TColor; _Edge: UINT; _Glyph: TBitmap; + _bmp: TBitmap); procedure PrepareBmps(_UpBmp, _DownBmp: TBitmap); protected procedure NewWindowProc(var _Msg: TMessage); override; @@ -65,7 +63,6 @@ constructor Create(_btn: TBitBtn); reintroduce; overload; constructor Create(_btn: TBitBtn; _UpGlyph, _DownGlyph: TBitmap); overload; constructor Create(_btn: TBitBtn; _ImageList: TImageList; _UpGlyphIdx, _DownGlyphIdx: Integer); overload; - constructor Create(_btn: TWinControl; AColorText: TColor = clNone; AColorRaised: TColor = clNone; AColorSunken: TColor = clNone); overload; destructor Destroy; override; property Down: Boolean read GetDown write SetDown; property BitBtn: TBitBtn read GetBitBtn; @@ -82,9 +79,6 @@ FOnClick: TNotifyEvent; FList: TList; FAllowAllUp: Boolean; - FColorRaised: TColor; - FColorSunken: TColor; - FColorText: TColor; procedure HandleClick(_Sender: TObject); procedure doOnClick; function TryGetSelectedSb(out _Idx: Integer; out _sb: TdzSpeedBitBtn): Boolean; @@ -121,26 +115,13 @@ function TryGetSelected(out _Data: Pointer): Boolean; overload; property AllowAllUp: Boolean read FAllowAllUp write FAllowAllUp; property OnClick: TNotifyEvent read FOnClick write FOnClick; - property ColorRaised: TColor read FColorRaised write FColorRaised default clNone; - property ColorSunken: TColor read FColorSunken write FColorSunken default clNone; - property ColorText: TColor read FColorText write FColorText default clNone; end; + end; implementation -{$IF CompilerVersion >= 35} // Delphi 11 and up. - {$DEFINE USE_THEMING} -{$IFEND} - uses Math, Forms, -{$IFDEF USE_THEMING} - UxTheme, - Themes, - {$IFDEF USE_IDE_THEMING} - GX_OtaUtils, - {$ENDIF} -{$ENDIF} u_dzGraphicsUtils, u_dzMiscUtils; @@ -190,20 +171,6 @@ UpdateGlyph; end; -constructor TdzSpeedBitBtn.Create(_btn: TWinControl; - AColorText, AColorRaised, AColorSunken: TColor); -begin - inherited Create(_btn); - - FColorRaised := AColorRaised; - FColorSunken := AColorSunken; - FColorText := AColorText; - - if FColorRaised = clNone then FColorRaised := RGB(240, 240, 240); // clBtnFace; - if FColorSunken = clNone then FColorSunken := RGB(245, 245, 245); // a bit lighter than clBtnFace; - if FColorText = clNone then FColorText := RGB(0, 0, 0); // Black -end; - constructor TdzSpeedBitBtn.Create(_btn: TBitBtn; _ImageList: TImageList; _UpGlyphIdx, _DownGlyphIdx: Integer); var @@ -242,14 +209,10 @@ begin w := BitBtn.ClientWidth; h := BitBtn.ClientHeight; - BitBtn.Spacing := 0; ColBack1 := RGB(240, 240, 240); // clBtnFace; ColBack2 := RGB(245, 245, 245); // a bit lighter than clBtnFace; - if FColorRaised <> clNone then ColBack1 := FColorRaised; - if FColorSunken <> clNone then ColBack2 := FColorSunken; - PrepareBmp(w, h, ColBack1, EDGE_RAISED, FUpGlyph, FUpBmp); PrepareBmp(w, h, ColBack2, EDGE_SUNKEN, FDownGlyph, FDownBmp); end; @@ -258,11 +221,6 @@ _bmp: TBitmap); var cnv: TCanvas; -{$IFDEF USE_THEMING} - LStyleService : TCustomStyleServices; - LDetails : TThemedElementDetails; - DC : HDC; -{$ENDIF} procedure HandleBmpOnly; var @@ -294,21 +252,7 @@ HorizontalAlignment := dthaLeft; r := Rect(X + 2, 0, _w - 3, _h); end; -{$IFDEF USE_THEMING} - if Assigned(LStyleService) and (LStyleService.Enabled) then - begin - LStyleService.DrawText( - DC, - LDetails, - FCaption, - R, - [tfCenter, tfVerticalCenter, tfSingleLine], - FColorText - ); - end - else -{$ENDIF} - TCanvas_DrawTextSingleLine(cnv, FCaption, r, HorizontalAlignment, dtvaCenter, []); + TCanvas_DrawTextSingleLine(cnv, FCaption, r, HorizontalAlignment, dtvaCenter, []); end; procedure HandleTextOnlyMultiLine; @@ -447,40 +391,14 @@ _bmp.Height := _h; _bmp.TransparentColor := clFuchsia; -{$IFDEF USE_THEMING} - _bmp.PixelFormat := pfDevice; cnv := _bmp.Canvas; - {$IFDEF USE_IDE_THEMING} - LStyleService := IdeStyleService; - {$ELSE} - LStyleService := Themes.StyleServices; - {$ENDIF} - if Assigned(LStyleService) and LStyleService.Enabled then - begin - R := Rect(0, 0, _w, _h); - if _Edge = EDGE_SUNKEN then // "down" - begin - LDetails := LStyleService.GetElementDetails(TThemedButton.tbPushButtonPressed); - FColorText := LStyleService.GetStyleFontColor(TStyleFont.sfButtonTextPressed); - end - else begin // "up" - LDetails := LStyleService.GetElementDetails(TThemedButton.tbPushButtonNormal); - FColorText := LStyleService.GetStyleFontColor(TStyleFont.sfButtonTextNormal); - end; - LStyleService.DrawElement(DC, LDetails, R, nil, 0); -// _bmp.Canvas.Pixels[0, 0] := clFuchsia; - end - else -{$ENDIF USE_THEMING} - begin - cnv := _bmp.Canvas; - cnv.Brush.Color := _Color; - cnv.Brush.Style := bsSolid; - cnv.FillRect(Rect(0, 0, _w, _h)); + cnv.Brush.Color := _Color; + cnv.Brush.Style := bsSolid; + cnv.FillRect(Rect(0, 0, _w, _h)); - r := Rect(0, 0, _w - 1, _h - 2); - DrawEdge(cnv.Handle, r, _Edge, BF_RECT); - end; + r := Rect(0, 0, _w - 1, _h - 2); + DrawEdge(cnv.Handle, r, _Edge, BF_RECT); + cnv.Brush.Style := bsClear; cnv.Font := BitBtn.Font; @@ -572,9 +490,6 @@ begin inherited Create; FList := TList.Create; - FColorRaised := clNone; - FColorSunken := clNone; - FColorText := clNone; end; destructor TdzSpeedBitBtnGroup.Destroy; @@ -586,10 +501,7 @@ function TdzSpeedBitBtnGroup.Add(_btn: TBitBtn; _Data: Pointer): TdzSpeedBitBtn; begin _btn.OnClick := Self.HandleClick; -{$IFDEF USE_THEMING} - _btn.StyleElements := []; -{$ENDIF} - Result := TdzSpeedBitBtn.Create(_btn, FColorText, FColorRaised, FColorSunken); + Result := TdzSpeedBitBtn.Create(_btn); Result.Data := _Data; FList.Add(Result); end; @@ -599,7 +511,7 @@ Result := Add(_btn, nil); end; -function TdzSpeedBitBtnGroup.Add(_btn: TBitBtn; _Data: NativeInt): TdzSpeedBitBtn; +function TdzSpeedBitBtnGroup.Add(_btn: TBitBtn; _Data: Integer): TdzSpeedBitBtn; begin Result := Add(_btn, Pointer(_Data)); //FI:W541 Casting from Integer to Pointer type (or vice versa) end; Modified: branches/dark-mode/ExternalSource/dzlib/u_dzVclUtils.pas =================================================================== --- branches/dark-mode/ExternalSource/dzlib/u_dzVclUtils.pas 2024-08-10 16:21:38 UTC (rev 4292) +++ branches/dark-mode/ExternalSource/dzlib/u_dzVclUtils.pas 2024-08-14 20:53:09 UTC (rev 4293) @@ -32,7 +32,7 @@ Themes, MultiMon, // this unit doesn't exist in older Delphi versions, use a unit alias like Multimon=Windows in that case {$IFDEF HAS_UNIT_SYSTEM_ACTIONS} - Actions, + System.Actions, {$ENDIF} {$IFDEF HAS_UNIT_SYSTEM_UITYPES} UITypes, Modified: branches/dark-mode/Images/GXIcons.rc =================================================================== --- branches/dark-mode/Images/GXIcons.rc 2024-08-10 16:21:38 UTC (rev 4292) +++ branches/dark-mode/Images/GXIcons.rc 2024-08-14 20:53:09 UTC (rev 4293) @@ -49,6 +49,7 @@ TGrepNextItemExpert BITMAP "TGrepNextItemExpert.bmp" TGrepPrevItemExpert BITMAP "TGrepPrevItemExpert.bmp" TGrepSearchExpert BITMAP "TGrepSearchExpert.bmp" +TGxFilterExceptionsExpert BITMAP "TGxFilterExceptionsExpert.bmp" THideNonVisualCompsExpert BITMAP "THideNonVisualCompsExpert.bmp" TIDEMenuShortCutsExpert BITMAP "TIDEMenuShortCutsExpert.bmp" TIfDefExpert BITMAP "TIfDefExpert.bmp" Modified: branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dpr =================================================================== --- branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dpr 2024-08-10 16:21:38 UTC (rev 4292) +++ branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dpr 2024-08-14 20:53:09 UTC (rev 4293) @@ -18,6 +18,7 @@ GX_BaseForm in '..\..\source\Framework\GX_BaseForm.pas' {fmBaseForm}, GX_BookmarkList in '..\..\source\Utils\GX_BookmarkList.pas', GX_Bookmarks in '..\..\source\Bookmarks\GX_Bookmarks.pas' {fmGxBookmarksForm}, + GX_CheckButton in '..\..\Source\Utils\GX_CheckButton.pas', GX_CheckListBoxWithHints in '..\..\Source\ProjectOptionSets\GX_CheckListBoxWithHints.pas', GX_ClassBrowser in '..\..\source\ClassBrowser\GX_ClassBrowser.pas' {fmClassBrowser}, GX_ClassHacks in '..\..\source\Framework\GX_ClassHacks.pas', Modified: branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dproj =================================================================== --- branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dproj 2024-08-10 16:21:38 UTC (rev 4292) +++ branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dproj 2024-08-14 20:53:09 UTC (rev 4293) @@ -88,7 +88,6 @@ <Manifest_File>None</Manifest_File> </PropertyGroup> <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''"> - <DCC_DebugDCUs>true</DCC_DebugDCUs> <Debugger_HostApplication>$(BDS)\bin\bds.exe</Debugger_HostApplication> <Debugger_RunParams>-rBDSPlain -pDelphi</Debugger_RunParams> </PropertyGroup> @@ -144,6 +143,7 @@ <Form>fmGxBookmarksForm</Form> <FormType>dfm</FormType> </DCCReference> + <DCCReference Include="..\..\Source\Utils\GX_CheckButton.pas"/> <DCCReference Include="..\..\Source\ProjectOptionSets\GX_CheckListBoxWithHints.pas"/> <DCCReference Include="..\..\source\ClassBrowser\GX_ClassBrowser.pas"> <Form>fmClassBrowser</Form> Modified: branches/dark-mode/Source/CodeProofreader/GX_ProofreaderConfig.dfm =================================================================== --- branches/dark-mode/Source/CodeProofreader/GX_ProofreaderConfig.dfm 2024-08-10 16:21:38 UTC (rev 4292) +++ branches/dark-mode/Source/CodeProofreader/GX_ProofreaderConfig.dfm 2024-08-14 20:53:09 UTC (rev 4293) @@ -112,7 +112,7 @@ end object eCustomBeep: TEdit Left = 22 - Top = 48 + Top = 52 Width = 395 Height = 22 Anchors = [akLeft, akTop, akRight] @@ -121,7 +121,7 @@ end object btnSelectFile: TButton Left = 423 - Top = 48 + Top = 52 Width = 75 Height = 22 Anchors = [akTop, akRight] Modified: branches/dark-mode/Source/CodeProofreader/GX_ProofreaderConfig.pas =================================================================== --- branches/dark-mode/Source/CodeProofreader/GX_ProofreaderConfig.pas 2024-08-10 16:21:38 UTC (rev 4292) +++ branches/dark-mode/Source/CodeProofreader/GX_ProofreaderConfig.pas 2024-08-14 20:53:09 UTC (rev 4293) @@ -132,6 +132,7 @@ SysUtils, MMSystem, GX_ProofreaderAutoCorrectEntry, GX_KibitzComp, GX_GxUtils, GX_GenericUtils, GX_OtaUtils, u_dzVclUtils, GX_ConfigurationInfo, + GX_IdeUtils, GX_GExperts; {$R *.dfm} @@ -152,6 +153,10 @@ Assert(Assigned(ProofreaderData)); FProofreaderData := ProofreaderData; + if IsThemingEnabled + then Pages.Style := tsButtons + else Pages.Style := tsTabs; + TabIndex := FProofreaderData.ActiveTab; if (TabIndex > -1) and (TabIndex < Pages.PageCount) then Pages.ActivePageIndex := TabIndex; Modified: branches/dark-mode/Source/Framework/GX_About.dfm =================================================================== --- branches/dark-mode/Source/Framework/GX_About.dfm 2024-08-10 16:21:38 UTC (rev 4292) +++ branches/dark-mode/Source/Framework/GX_About.dfm 2024-08-14 20:53:09 UTC (rev 4293) @@ -38,7 +38,7 @@ Left = 368 Top = 72 Width = 147 - Height = 20 + Height = 14 Alignment = taCenter Caption = 'http://www.gexperts.org/' end @@ -46,7 +46,7 @@ Left = 275 Top = 91 Width = 84 - Height = 20 + Height = 14 Alignment = taRightJustify Caption = 'Project Leader:' end @@ -54,7 +54,7 @@ Left = 255 Top = 112 Width = 104 - Height = 20 + Height = 14 Alignment = taRightJustify Caption = 'Major Contributors:' end @@ -62,7 +62,7 @@ Left = 368 Top = 91 Width = 85 - Height = 20 + Height = 14 Cursor = crHandPoint Caption = 'Thomas Mueller' OnClick = btnEmailClick @@ -71,7 +71,7 @@ Left = 304 Top = 72 Width = 55 - Height = 20 + Height = 14 Alignment = taRightJustify Caption = 'Web Site:' end @@ -177,7 +177,9 @@ 'Alex Petrov' 'Puthoon' 'Mahdi Safsafi' - 'Martin Waldenburg') + 'Martin Waldenburg' + 'Thomas M'#252'ller' + 'Achim Kalwa') ParentCtl3D = False ReadOnly = True ScrollBars = ssVertical Modified: branches/dark-mode/Source/Framework/GX_FeedbackWizard.pas =================================================================== --- branches/dark-mode/Source/Framework/GX_FeedbackWizard.pas 2024-08-10 16:21:38 UTC (rev 4292) +++ branches/dark-mode/Source/Framework/GX_FeedbackWizard.pas 2024-08-14 20:53:09 UTC (rev 4293) @@ -166,6 +166,10 @@ procedure TfmFeedbackWizard.Init(const ABugEmail, AFeatureEmail: string); begin + if IsThemingEnabled + then pgeMain.Style := tsButtons + else pgeMain.Style := tsTabs; + FBugEmail := ABugEmail; FFeatureEmail := AFeatureEmail; TLabel_MakeUrlLabel(l_BugReportUrl, FBugEmail, True); Modified: branches/dark-mode/Source/Framework/GX_GExperts.pas =================================================================== --- branches/dark-mode/Source/Framework/GX_GExperts.pas 2024-08-10 16:21:38 UTC (rev 4292) +++ branches/dark-mode/Source/Framework/GX_GExperts.pas 2024-08-14 20:53:09 UTC (rev 4293) @@ -96,6 +96,7 @@ procedure ShowGXAboutForm; begin + gblAboutFormClass.SetCustomBuildDetails('Dark mode'); gblAboutFormClass.Execute(nil); end; Modified: branches/dark-mode/Source/Grep/GX_GrepSearch.pas =================================================================== --- branches/dark-mode/Source/Grep/GX_GrepSearch.pas 2024-08-10 16:21:38 UTC (rev 4292) +++ branches/dark-mode/Source/Grep/GX_GrepSearch.pas 2024-08-14 20:53:09 UTC (rev 4293) @@ -812,7 +812,7 @@ TControl_SetConstraints(Self, [ccMinWidth, ccMinHeight, ccMaxHeight]); if not IsStandAlone then - InitTheming(Self); + InitTheming; FixComboBoxSelections(Self); end; Modified: branches/dark-mode/Source/ProjectDependencies/GX_ProjDepend.pas =================================================================== --- branches/dark-mode/Source/ProjectDependencies/GX_ProjDepend.pas 2024-08-10 16:21:38 UTC (rev 4292) +++ branches/dark-mode/Source/ProjectDependencies/GX_ProjDepend.pas 2024-08-14 20:53:09 UTC (rev 4293) @@ -785,6 +785,10 @@ InitDpiScaler; + if IsThemingEnabled + then pcData.Style := tsButtons + else pcData.Style := tsTabs; + LoadSettings; ProjectNotifier := TProjectNotifier.Create(Self); Modified: branches/dark-mode/Source/RenameComponents/GX_CompRename.dfm =================================================================== --- branches/dark-mode/Source/RenameComponents/GX_CompRename.dfm 2024-08-10 16:21:38 UTC (rev 4292) +++ branches/dark-mode/Source/RenameComponents/GX_CompRename.dfm 2024-08-14 20:53:09 UTC (rev 4293) @@ -4,7 +4,7 @@ ActiveControl = edtNewName BorderStyle = bsDialog Caption = 'GExperts Rename Component' - ClientHeight = 330 + ClientHeight = 350 ClientWidth = 321 Color = clBtnFace Font.Charset = ANSI_CHARSET @@ -36,9 +36,9 @@ end object p_Buttons: TPanel Left = 0 - Top = 99 + Top = 100 Width = 321 - Height = 231 + Height = 250 Align = alBottom TabOrder = 2 object lblReason: TLabel @@ -80,9 +80,9 @@ end object pc_Additional: TPageControl Left = 1 - Top = 53 + Top = 55 Width = 319 - Height = 177 + Height = 194 ActivePage = ts_Align Align = alBottom TabIndex = 0 @@ -90,9 +90,6 @@ OnChange = pc_AdditionalChange object ts_Align: TTabSheet Caption = '&Align' - DesignSize = ( - 311 - 148) object grp_Margins: TGroupBox Left = 176 Top = 0 @@ -274,9 +271,6 @@ object ts_Anchors: TTabSheet Caption = 'An&chors' ImageIndex = 1 - DesignSize = ( - 311 - 148) object b_AnchorLeft: TBitBtn Left = 80 Top = 46 Modified: branches/dark-mode/Source/RenameComponents/GX_CompRename.pas =================================================================== --- branches/dark-mode/Source/RenameComponents/GX_CompRename.pas 2024-08-10 16:21:38 UTC (rev 4292) +++ branches/dark-mode/Source/RenameComponents/GX_CompRename.pas 2024-08-14 20:53:09 UTC (rev 4293) @@ -12,7 +12,8 @@ uses Classes, Controls, Forms, StdCtrls, ExtCtrls, ToolsAPI, ComCtrls, Buttons, - GX_Experts, GX_ConfigurationInfo, GX_EditorChangeServices, Contnrs, Messages, + GX_Experts, GX_ConfigurationInfo, GX_EditorChangeServices, GX_CheckButton, + Contnrs, Messages, Types, GX_BaseForm, u_dzSpeedBitBtn; type @@ -75,8 +76,8 @@ private FIsValidComponentName: TIsValidComponentName; FProperties: TObjectList; - FAnchorButtons: array[TAnchorKind] of TdzSpeedBitBtn; - FAlignButtons: array[TAlign] of TdzSpeedBitBtn; + FAnchorButtons: array[TAnchorKind] of TGXCheckButton; + FAlignButtons: array[TAlign] of TGXCheckButton; FComponentClassName: WideString; procedure InitializeForm; function GetNewName: WideString; @@ -83,7 +84,7 @@ function GetOldName: WideString; procedure SetNewName(const Value: WideString); procedure SetOldName(const Value: WideString); - procedure AddComponentProperty(PropertyName: WideString; const Value: WideString); + procedure AddComponentProperty(Index: Integer; PropertyName: WideString; const Value: WideString); function GetComponentProperty(Index: Integer): WideString; procedure SetComponent(const _Component: IOTAComponent); procedure SetAlign(const _Component: IOTAComponent); @@ -93,6 +94,8 @@ procedure HandleAlignButtons(_Align: TAlign); procedure SetMargins(_Value: integer); procedure DialogKey(var Msg: TWMKey); message CM_DIALOGKEY; + protected + procedure ArrangeControls; override; public constructor Create(Owner: TComponent); override; destructor Destroy; override; @@ -99,7 +102,6 @@ property OldName: WideString read GetOldName write SetOldName; property NewName: WideString read GetNewName write SetNewName; function Execute: TModalResult; - procedure FixTabOrder; procedure SetRuleSelection(SelStart, SelEnd: Integer); property OnIsValidComponentName: TIsValidComponentName read FIsValidComponentName write FIsValidComponentName; end; @@ -111,6 +113,7 @@ uses SysUtils, Windows, Menus, StrUtils, IniFiles, Graphics, TypInfo, u_dzClassUtils, u_dzVclUtils, u_dzStringUtils, + Themes, {$IFOPT D+}GX_DbugIntf, {$ENDIF} GX_CompRenameConfig, GX_OtaUtils, GX_GenericUtils, GX_IdeUtils; @@ -201,39 +204,14 @@ begin ActiveControl := edtNewName; // lblReason.Top := btnOK.Top + Round((btnOK.Height / 2) - (lblReason.Height / 2)); - FixTabOrder; Result := ShowModal; end; -procedure TfmCompRename.FixTabOrder; -var - i : Integer; - C : TWinControl; -begin - edtOldName.TabOrder := 0; - edtNewName.TabOrder := 1; - for i := 0 to FProperties.Count-1 do - begin - if FProperties[i] is TWinControl then begin - C := TWinControl(FProperties[i]); - TWinControl(C).TabOrder := 2 + i; - end; - end; - btnOK.TabOrder := FProperties.Count + 2; - btnCancel.TabOrder := FProperties.Count + 3; - btnSettings.TabOrder := FProperties.Count + 4; - pc_Additional.TabOrder := FProperties.Count + 5; -end; - procedure TfmCompRename.FormShow(Sender: TObject); begin inherited; // Adjust some button positons and size after scaling - // DisableAlign; - b_AlignRight.Left := b_AlignTop.Left + b_AlignTop.Width - b_AlignRight.Width; - b_AlignClient.Left := b_AlignLeft.Left + b_AlignLeft.Width + 1; - b_AlignClient.Width := b_AlignRight.Left - b_AlignClient.Left - 2; - // EnableAlign; +// ArrangeControls; end; function TfmCompRename.GetNewName: WideString; @@ -250,9 +228,9 @@ begin inherited; if pc_Additional.ActivePage = ts_Align then - TWinControl_SetFocus(b_AlignClient) + TWinControl_SetFocus(FAlignButtons[alClient]) else if pc_Additional.ActivePage = ts_Anchors then - TWinControl_SetFocus(b_AnchorTop); + TWinControl_SetFocus(FAnchorButtons[akTop]); end; procedure TfmCompRename.GetAlign(const _Component: IOTAComponent); @@ -431,7 +409,7 @@ edtNewName.SelLength := SelEnd - SelStart; end; -procedure TfmCompRename.AddComponentProperty(PropertyName: WideString; const Value: WideString); +procedure TfmCompRename.AddComponentProperty(Index: Integer; PropertyName: WideString; const Value: WideString); var Lbl: TLabel; Edit: TEdit; @@ -456,7 +434,7 @@ Edit.Left := edtNewName.Left; Edit.Width := edtNewName.Width; Edit.Text := Value; - Edit.TabOrder := FProperties.Count + 1 + edtNewName.TabOrder; + Edit.TabOrder := edtNewName.TabOrder + Index; FProperties.Add(Edit); if Edit.Text = SPropertyNotFound then begin @@ -467,7 +445,7 @@ end; diff := edtNewName.Top - edtOldName.Top; - Height := Height + diff; + ClientHeight := ClientHeight + diff; end; function TfmCompRename.GetComponentProperty(Index: Integer): WideString; @@ -484,19 +462,18 @@ TControl_SetMinConstraints(Self); FProperties := TObjectList.Create(False); + FAlignButtons[alTop] := TGXCheckButton.Clone(b_AlignTop); + FAlignButtons[alLeft] := TGXCheckButton.Clone(b_AlignLeft); + FAlignButtons[alClient] := TGXCheckButton.Clone(b_AlignClient); + FAlignButtons[alRight] := TGXCheckButton.Clone(b_AlignRight); + FAlignButtons[alBottom] := TGXCheckButton.Clone(b_AlignBottom); + FAlignButtons[alNone] := TGXCheckButton.Clone(b_AlignNone); + FAlignButtons[alCustom] := TGXCheckButton.Clone(b_AlignCustom); - FAlignButtons[alTop] := TdzSpeedBitBtn.Create(b_AlignTop); - FAlignButtons[alLeft] := TdzSpeedBitBtn.Create(b_AlignLeft); - FAlignButtons[alClient] := TdzSpeedBitBtn.Create(b_AlignClient); - FAlignButtons[alRight] := TdzSpeedBitBtn.Create(b_AlignRight); - FAlignButtons[alBottom] := TdzSpeedBitBtn.Create(b_AlignBottom); - FAlignButtons[alNone] := TdzSpeedBitBtn.Create(b_AlignNone); - FAlignButtons[alCustom] := TdzSpeedBitBtn.Create(b_AlignCustom); - - FAnchorButtons[akTop] := TdzSpeedBitBtn.Create(b_AnchorTop); - FAnchorButtons[akLeft] := TdzSpeedBitBtn.Create(b_AnchorLeft); - FAnchorButtons[akRight] := TdzSpeedBitBtn.Create(b_AnchorRight); - FAnchorButtons[akBottom] := TdzSpeedBitBtn.Create(b_AnchorBottom); + FAnchorButtons[akTop] := TGXCheckButton.Clone(b_AnchorTop); + FAnchorButtons[akLeft] := TGXCheckButton.Clone(b_AnchorLeft); + FAnchorButtons[akRight] := TGXCheckButton.Clone(b_AnchorRight); + FAnchorButtons[akBottom] := TGXCheckButton.Clone(b_AnchorBottom); p_Buttons.BevelOuter := bvNone; InitializeForm; @@ -513,44 +490,63 @@ // make the selection of alignment and anchors via arrow keys more intuitive case Msg.CharCode of VK_DOWN: begin - if ActiveControl = b_AlignTop then - b_AlignClient.SetFocus - else if (ActiveControl = b_AlignClient) or (ActiveControl = b_AlignLeft) or (ActiveControl = b_AlignRight) then - b_AlignBottom.SetFocus - else if (ActiveControl = b_AnchorTop) or (ActiveControl = b_AnchorLeft) or (ActiveControl = b_AnchorRight) then - b_AnchorBottom.SetFocus + if ActiveControl = FAlignButtons[alTop] then + FAlignButtons[alClient].SetFocus + else if (ActiveControl = FAlignButtons[alClient]) + or (ActiveControl = FAlignButtons[alLeft]) + or (ActiveControl = FAlignButtons[alRight]) + then + FAlignButtons[alBottom].SetFocus + else if (ActiveControl = FAnchorButtons[akTop]) + or (ActiveControl = FAnchorButtons[akLeft]) + or (ActiveControl = FAnchorButtons[akRight]) + then + FAnchorButtons[akBottom].SetFocus else inherited; end; VK_UP: begin - if ActiveControl = b_AlignBottom then - b_AlignClient.SetFocus - else if (ActiveControl = b_AlignClient) or (ActiveControl = b_AlignLeft) or (ActiveControl = b_AlignRight) then - b_AlignTop.SetFocus - else if (ActiveControl = b_AlignNone) or (ActiveControl = b_AlignCustom)then - b_AlignBottom.SetFocus - else if (ActiveControl = b_AnchorBottom) or (ActiveControl = b_AnchorLeft) or (ActiveControl = b_AnchorRight) then - b_AnchorTop.SetFocus + if ActiveControl = FAlignButtons[alBottom] then + FAlignButtons[alClient].SetFocus + else if (ActiveControl = FAlignButtons[alClient]) + or (ActiveControl = FAlignButtons[alLeft]) + or (ActiveControl = FAlignButtons[alRight]) + then + FAlignButtons[alTop].SetFocus + else if (ActiveControl = FAlignButtons[alNone]) + or (ActiveControl = FAlignButtons[alCustom]) + then + FAlignButtons[alBottom].SetFocus + else if (ActiveControl = FAnchorButtons[akBottom]) + or (ActiveControl = FAnchorButtons[akLeft]) + or (ActiveControl = FAnchorButtons[akRight]) + then + FAnchorButtons[akTop].SetFocus else inherited; end; VK_RIGHT: begin - if ActiveControl = b_AlignLeft then - b_AlignClient.SetFocus - else if ActiveControl = b_AlignClient then - b_AlignRight.SetFocus - else if (ActiveControl = b_AnchorTop) or (ActiveControl = b_AnchorBottom) or (ActiveControl = b_AnchorLeft) then - b_AnchorRight.SetFocus + if ActiveControl = FAlignButtons[alLeft] then + FAlignButtons[alClient].SetFocus + else if ActiveControl = FAlignButtons[alClient] then + FAlignButtons[alRight].SetFocus + else if (ActiveControl = FAnchorButtons[akTop]) + or (ActiveControl = FAnchorButtons[akBottom]) + or (ActiveControl = FAnchorButtons[akLeft]) + then + FAnchorButtons[akRight].SetFocus else inherited; end; VK_LEFT: begin - if ActiveControl = b_AlignRight then - b_AlignClient.SetFocus - else if ActiveControl = b_AlignClient then - b_AlignLeft.SetFocus - else if (ActiveControl = b_AnchorTop) or (ActiveControl = b_AnchorBottom) or (ActiveControl = b_AnchorRight) then - b_AnchorLeft.SetFocus + if ActiveControl = FAlignButtons[alRight] then + FAlignButtons[alClient].SetFocus + else if ActiveControl = FAlignButtons[alClient] then + FAlignButtons[alLeft].SetFocus + else if (ActiveControl = FAnchorButtons[akTop]) + or (ActiveControl = FAnchorButtons[akBottom]) + or (ActiveControl = FAnchorButtons[akRight]) then + FAnchorButtons[akLeft].SetFocus else inherited; end; @@ -915,13 +911,13 @@ end; end; if UsePropValue then - frm.AddComponentProperty(PropName, PropValue) + frm.AddComponentProperty(i, PropName, PropValue) else - frm.AddComponentProperty(PropName, + frm.AddComponentProperty(i, PropName, GxOtaGetComponentPropertyAsString(Component, PropName, True)); end else - frm.AddComponentProperty(PropName, SPropertyNotFound); + frm.AddComponentProperty(i, PropName, SPropertyNotFound); end; end end @@ -1302,8 +1298,53 @@ begin SetModalFormPopupMode(Self); lblReason.Font.Color := clRed; + if IsThemingEnabled + then pc_Additional.Style := tsButtons + else pc_Additional.Style := tsTabs; end; +procedure TfmCompRename.ArrangeControls; +var + Spacer : Integer; + H, W : Integer; +begin + inherited; + Spacer := FScaler.Calc(2); + FAlignButtons[alTop].Anchors := [akLeft, akTop]; + + FAlignButtons[alLeft].Anchors := [akLeft, akTop]; + FAlignButtons[alLeft].Left := FAlignButtons[alTop].Left; + FAlignButtons[alLeft].Top := FAlignButtons[alTop].Height + Spacer; + + W := FAlignButtons[alTop].Width - (2 * FAlignButtons[alLeft].Width) - (2 * Spacer); + H := FAlignButtons[alLeft].Height; + + FAlignButtons[alClient].Anchors := [akLeft, akTop]; + FAlignButtons[alClient].Top := FAlignButtons[alLeft].Top; + FAlignButtons[alClient].Width := W; + FAlignButtons[alClient].Left := FAlignButtons[alLeft].Left + FAlignButtons[alLeft].Width + Spacer; + FAlignButtons[alClient].Height := H; + + FAlignButtons[alRight].Anchors := [akLeft, akTop]; + FAlignButtons[alRight].Left := FAlignButtons[alClient].Left + FAlignButtons[alClient].Width + Spacer; + FAlignButtons[alRight].Top := FAlignButtons[alLeft].Top; + FAlignButtons[alRight].Width := FAlignButtons[alLeft].Width; + + FAlignButtons[alBottom].Anchors := [akLeft, akTop]; + FAlignButtons[alBottom].Top := FAlignButtons[alClient].Top + FAlignButtons[alClient].Height + Spacer; + FAlignButtons[alBottom].Left := FAlignButtons[alTop].Left; + FAlignButtons[alBottom].Width := FAlignButtons[alTop].Width; + + FAlignButtons[alNone].Anchors := [akLeft, akTop]; + FAlignButtons[alNone].Left := FAlignButtons[alLeft].Left; + FAlignButtons[alNone].Top := FAlignButtons[alBottom].Top + FAlignButtons[alBottom].Height + (2 * Spacer); + + FAlignButtons[alCustom].Anchors := [akLeft, akTop]; + FAlignButtons[alCustom].Top := FAlignButtons[alNone].Top; + FAlignButtons[alCustom].Width := FAlignButtons[alNone].Width; + FAlignButtons[alCustom].Left := FAlignButtons[alTop].Left + FAlignButtons[alTop].Width - FAlignButtons[alCustom].Width; +end; + procedure TfmCompRename.btnSettingsClick(Sender: TObject); begin Assert(Assigned(PrivateCompRenameExpert)); Modified: branches/dark-mode/Source/UsesExpert/GX_UsesExpert.dfm =================================================================== --- branches/dark-mode/Source/UsesExpert/GX_UsesExpert.dfm 2024-08-10 16:21:38 UTC (rev 4292) +++ branches/dark-mode/Source/UsesExpert/GX_UsesExpert.dfm 2024-08-14 20:53:09 UTC (rev 4293) @@ -45,7 +45,7 @@ ImageIndex = 3 object pnlSearchPathFooter: TPanel Left = 0 - Top = 296 + Top = 295 Width = 654 Height = 48 Align = alBottom @@ -88,7 +88,7 @@ Left = 0 Top = 0 Width = 654 - Height = 296 + Height = 295 Align = alClient BevelOuter = bvNone BorderWidth = 3 @@ -98,7 +98,7 @@ Left = 3 Top = 3 Width = 648 - Height = 290 + Height = 289 Align = alClient ColCount = 1 DefaultColWidth = 100 @@ -125,7 +125,7 @@ Left = 0 Top = 0 Width = 654 - Height = 296 + Height = 295 Align = alClient BevelOuter = bvNone BorderWidth = 3 @@ -135,7 +135,7 @@ Left = 3 Top = 3 Width = 648 - Height = 257 + Height = 256 Align = alClient ColCount = 1 DefaultColWidth = 100 @@ -155,7 +155,7 @@ end object p_NoMapFile: TPanel Left = 3 - Top = 260 + Top = 259 Width = 648 Height = 33 Align = alBottom @@ -178,7 +178,7 @@ WordWrap = True end object b_NoMapFileClose: TButton - Left = 619 + Left = 611 Top = 0 Width = 25 Height = 33 @@ -191,7 +191,7 @@ end object pnlProjFooter: TPanel Left = 0 - Top = 297 + Top = 295 Width = 654 Height = 48 Align = alBottom @@ -265,7 +265,7 @@ Left = 0 Top = 0 Width = 654 - Height = 296 + Height = 295 Align = alClient BevelOuter = bvNone BorderWidth = 3 @@ -275,7 +275,7 @@ Left = 3 Top = 3 Width = 648 - Height = 290 + Height = 289 Align = alClient ColCount = 1 DefaultColWidth = 100 @@ -296,7 +296,7 @@ end object pnlCommonFooter: TPanel Left = 0 - Top = 296 + Top = 295 Width = 654 Height = 48 Align = alBottom @@ -342,8 +342,8 @@ object pnlFavorite: TPanel Left = 0 Top = 0 - Width = 656 - Height = 304 + Width = 654 + Height = 295 Align = alClient BevelOuter = bvNone BorderWidth = 3 @@ -352,8 +352,8 @@ object sg_Favorite: TStringGrid Left = 3 Top = 3 - Width = 650 - Height = 298 + Width = 648 + Height = 289 Align = alClient ColCount = 1 DefaultColWidth = 100 @@ -374,8 +374,8 @@ end object pnlFavFooter: TPanel Left = 0 - Top = 304 - Width = 656 + Top = 295 + Width = 654 Height = 48 Align = alBottom BevelOuter = bvNone @@ -429,7 +429,7 @@ Left = 0 Top = 0 Width = 654 - Height = 296 + Height = 295 Align = alClient BevelOuter = bvNone BorderWidth = 3 @@ -439,7 +439,7 @@ Left = 3 Top = 3 Width = 648 - Height = 290 + Height = 289 Align = alClient ColCount = 2 DefaultColWidth = 150 @@ -457,7 +457,7 @@ end object pnlIdentifiersFooter: TPanel Left = 0 - Top = 296 + Top = 295 Width = 654 Height = 48 Align = alBottom @@ -534,29 +534,29 @@ object lblIdentifiers: TLabel Left = 16 Top = 88 - Width = 104 - Height = 13 + Width = 110 + Height = 15 Caption = 'Identifiers found: %d' end object lblUnitsParsed: TLabel Left = 16 Top = 40 - Width = 84 - Height = 13 + Width = 88 + Height = 15 Caption = 'Units parsed: %d' end object lblUnitsLoaded: TLabel Left = 16 Top = 64 - Width = 83 - Height = 13 + Width = 89 + Height = 15 Caption = 'Units loaded: %d' end object lblUnitsFound: TLabel Left = 16 Top = 16 - Width = 79 - Height = 13 + Width = 85 + Height = 15 Caption = 'Units found: %d' end end @@ -579,7 +579,7 @@ Left = 200 Top = 16 Width = 462 - Height = 22 + Height = 23 Anchors = [akLeft, akTop, akRight] TabOrder = 1 OnChange = edtUnitFilterChange @@ -600,8 +600,8 @@ object lblFilter: TLabel Left = 1 Top = 0 - Width = 24 - Height = 13 + Width = 26 + Height = 15 Caption = 'Filte&r' FocusControl = edtUnitFilter end @@ -610,7 +610,7 @@ Left = 0 Top = 16 Width = 421 - Height = 22 + Height = 23 Anchors = [akLeft, akTop, akRight] TabOrder = 2 Visible = False @@ -636,7 +636,7 @@ Left = 6 Top = 21 Width = 159 - Height = 363 + Height = 358 Align = alLeft BevelOuter = bvNone TabOrder = 2 @@ -645,7 +645,7 @@ Left = 0 Top = 0 Width = 159 - Height = 15 + Height = 18 Align = alTop BevelOuter = bvNone Caption = 'I&nterface' @@ -654,9 +654,9 @@ end object sg_Interface: TStringGrid Left = 0 - Top = 15 + Top = 18 Width = 159 - Height = 348 + Height = 340 Align = alClient ColCount = 1 DefaultColWidth = 100 @@ -678,7 +678,7 @@ Left = 165 Top = 21 Width = 158 - Height = 363 + Height = 358 Align = alClient BevelOuter = bvNone TabOrder = 3 @@ -685,9 +685,9 @@ OnResize = pcUsesResize object lblDprWarning: TLabel Left = 0 - Top = 288 + Top = 289 Width = 158 - Height = 75 + Height = 69 Align = alBottom AutoSize = False Caption = @@ -706,7 +706,7 @@ Left = 0 Top = 0 Width = 158 - Height = 15 + Height = 18 Align = alTop BevelOuter = bvNone Caption = 'I&mplementation' @@ -715,9 +715,9 @@ end object sg_Implementation: TStringGrid Left = 0 - Top = 15 + Top = 18 Width = 158 - Height = 273 + Height = 271 Align = alClient ColCount = 1 DefaultColWidth = 100 @@ -748,9 +748,9 @@ end object pnlUsesBottom: TPanel Left = 6 - Top = 384 + Top = 379 Width = 317 - Height = 44 + Height = 41 Align = alBottom BevelOuter = bvNone TabOrder = 1 @@ -757,7 +757,7 @@ OnResize = pnlUsesBottomResize object b_DeleteFromIntf: TButton Left = 0 - Top = 12 + Top = 9 Width = 73 Height = 25 Action = actIntfDelete @@ -767,7 +767,7 @@ end object b_DeleteFromImpl: TButton Left = 240 - Top = 12 + Top = 9 Width = 73 Height = 25 Action = actImplDelete @@ -777,7 +777,7 @@ end object b_MoveToImpl: TButton Left = 80 - Top = 12 + Top = 9 Width = 73 Height = 25 Action = actIntfMove @@ -787,7 +787,7 @@ end object b_MoveToIntf: TButton Left = 160 - Top = 12 + Top = 9 Width = 73 Height = 25 Action = actImplMove @@ -1185,7 +1185,7 @@ Left = 600 Top = 240 Bitmap = { - 494C010109003800080010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 494C010109003800040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 0000000000003600000028000000400000003000000001002000000000000030 000000000000000000000000000000000000D1B08E00C69E7400000000FF0000 00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 Modified: branches/dark-mode/Source/UsesExpert/GX_UsesExpert.pas =================================================================== --- branches/dark-mode/Source/UsesExpert/GX_UsesExpert.pas 2024-08-10 16:21:38 UTC (rev 4292) +++ branches/dark-mode/Source/UsesExpert/GX_UsesExpert.pas 2024-08-14 20:53:09 UTC (rev 4293) @@ -13,11 +13,9 @@ uses Windows, SysUtils, Classes, Controls, Forms, Menus, ComCtrls, Buttons, ImgList, ImageList, - ExtCtrls, ActnList, Actions, Dialogs, StdCtrls, Grids, Types, -{$IFDEF GX_SUPPORTS_THEMING} - Themes, -{$ENDIF} - u_dzSpeedBitBtn, u_dzStopwatch, + ExtCtrls, ActnList, Actions, Dialogs, StdCtrls, Grids, Types, Themes, + GX_CheckButton, + u_dzStopwatch, u_dzDpiScaleUtils, GX_ConfigurationInfo, GX_Experts, GX_GenericUtils, GX_BaseForm, GX_UnitExportsParser, GX_UsesExpertOptions, GX_UnitExportList, @@ -315,7 +313,7 @@ FOldToNewUnitNameMap: TStringList; FCaption_lblFilter: string; FForceFocusToIdentifierFilter: Boolean; - FIdentifierMatchGrp: TdzSpeedBitBtnGroup; + FIdentifierMatchGrp: TGXCheckButtonGroup; FSelectedUnitLineNo: Integer; FSelectedUnitFn: string; FDefaultToInterfaceList: Boolean; @@ -371,6 +369,12 @@ procedure FinalizeForm; procedure SetSelectedFile(const _fn: string; _LineNo: Integer = -1); procedure UpdateDefaultButton; + + private + ckbIdentifierMatchStart : TGXCheckButton; + ckbIdentifierMatchAnywhere : TGXCheckButton; + ckbIdentifierMatchSort : TGXCheckButton; + protected FProjectUnits: TStringList; FCommonUnits: TStringList; @@ -900,34 +904,18 @@ pnlUnits.DoubleBuffered := True; pnlUses.DoubleBuffered := True; - FIdentifierMatchGrp := TdzSpeedBitBtnGroup.Create; -{$IFDEF SUPPORTS_THEMING} - // consider using a RadioGroup, or TSpeedButtons... - if IsThemingEnabled then - begin - FIdentifierMatchGrp.ColorText := ColorToRGB(GetThemedColor(clWindowText)); - // if FIdentifierMatchGrp.ColorText >= $800000 then - if IdeStyleIsDark then - begin - // dark background - FIdentifierMatchGrp.ColorRaised := GxOtaGetStyleColor(scButtonNormal, clBtnFace); - FIdentifierMatchGrp.ColorSunken := GxOtaGetStyleColor(scButtonPressed, clAppWorkSpace); - end - else begin - // light background - FIdentifierMatchGrp.ColorRaised := GetThemedColor(clBtnFace); - FIdentifierMatchGrp.ColorSunken := FIdentifierMatchGrp.ColorRaised + $00070707; // lighter - end; - end; -{$ENDIF} + FIdentifierMatchGrp := TGXCheckButtonGroup.Create(Self); FIdentifierMatchGrp.AllowAllUp := False; - FIdentifierMatchGrp.Add(b_IdentifierMatchStart, Ord(fieStartOnly)); - FIdentifierMatchGrp.Add(b_IdentifierMatchAnywhere, Ord(fieAnywhere)); - FIdentifierMatchGrp.Add(b_IdentifierMatchSort, Ord(fieStartFirst)); - // this only works if the order the buttons are added is the same as the order of the enums + ckbIdentifierMatchStart := FIdentifierMatchGrp.Add(b_IdentifierMatchStart, Ord(fieStartOnly)); + ckbIdentifierMatchAnywhere := FIdentifierMatchGrp.Add(b_IdentifierMatchAnywhere, Ord(fieAnywhere)); + ckbIdentifierMatchSort := FIdentifierMatchGrp.Add(b_IdentifierMatchSort, Ord(fieStartFirst)); FIdentifierMatchGrp.SetDown(Ord(FUsesExpert.FFilterIdentifiers)); FIdentifierMatchGrp.OnClick := sb_MatchWhereClick; + FIdentifierMatchGrp.AllowAllUp := False; + // this only works if the order the buttons are added is the same as the order of the enums + FIdentifierMatchGrp.SetDown(Ord(FUsesExpert.FFilterIdentifiers)); + chk_FastAdd.Checked := _UsesExpert.FFastAdd; FLeftRatio := pnlUses.Width / ClientWidth; @@ -1131,6 +1119,14 @@ FSearchPathUnits := TStringList.Create; sg_SearchPath.AssociatedList := FSearchPathUnits; + sg_Interface.Color := GetThemedColor(clWindow); + sg_Implementation.Color := GetThemedColor(clWindow); + sg_Project.Color := GetThemedColor(clWindow); + sg_Common.Color := GetThemedColor(clWindow); + sg_Favorite.Color := GetThemedColor(clWindow); + sg_SearchPath.Color := GetThemedColor(clWindow); + sg_Identifiers.Color := GetThemedColor(clWindow); + FIdentifiers := TUnitExportlist.Create(0); FAliases := TStringList.Create; FOldToNewUnitNameMap := TStringList.Create; @@ -1155,6 +1151,10 @@ SendDebug('Started SearchPath FindThread'); {$ENDIF D+} + if IsThemingEnabled + then pcUnits.Style := tsButtons + else pcUnits.Style := tsTabs; + pcUnits.ActivePage := tabSearchPath; GxOtaGetUnitAliases(FAliases); @@ -1675,16 +1675,18 @@ {$IFDEF GX_IDE_IS_HIDPI_AWARE} procedure TfmUsesManager.ApplyDpi(_NewDpi: Integer; _NewBounds: PRect); - procedure AdjustTop(_ctrl: TControl); + procedure AdjustTop(_Ctrl: TControl); begin // todo: Is this still necessary? - _Ctrl.Top := MulDiv(_Ctrl.Top, _NewDPI, FOldDPI); + if Assigned(_Ctrl) then + _Ctrl.Top := MulDiv(_Ctrl.Top, _NewDPI, FOldDPI); end; - procedure AdjustHeight(_ctrl: TControl); + procedure AdjustHeight(_Ctrl: TControl); begin // todo: Is this still necessary? - _Ctrl.Height := MulDiv(_Ctrl.Height, _NewDPI, FOldDPI); + if Assigned(_Ctrl) then + _Ctrl.Height := MulDiv(_Ctrl.Height, _NewDPI, FOldDPI); end; procedure ArrangeButtonsInGroup(const _Buttons: array of TWinControl; _grp: TGroupBox); @@ -1695,6 +1697,8 @@ begin Assert(Length(_Buttons) > 1); btn := _Buttons[0]; + if not Assigned(btn) then Exit; + Offset := _grp.ClientHeight - btn.Top - btn.Height; for i := 0 to Length(_Buttons) - 1 do AdjustTop(_Buttons[i]); @@ -2320,11 +2324,11 @@ TWinControl_Lock(pnlIdentifiers); Filter := Trim(edtIdentifierFilter.Text); + if not Assigned(FIdentifierMatchGrp) then Exit; if FIdentifierMatchGrp.TryGetSelected(Idx) then - FilterType := TFilterIdentifiersEnum(Idx) + FilterType := TFilterIdentifiersEnum(FIdentifierMatchGrp.GetButtonData(Idx)) else FilterType := FUsesExpert.FFilterIdentifiers; - FilterList := TList.Create; try MultiFilter := TStringList.Create; Added: branches/dark-mode/Source/Utils/GX_CheckButton.pas =================================================================== --- branches/dark-mode/Source/Utils/GX_CheckButton.pas (rev 0) +++ branches/dark-mode/Source/Utils/GX_CheckButton.pas 2024-08-14 20:53:09 UTC (rev 4293) @@ -0,0 +1,361 @@ +unit GX_CheckButton; + +interface + +uses + Classes, + Controls, + StdCtrls, + Themes; + +type + TGXCheckButton = class(TCustomCheckBox) + private + FSavedOnClick: TNotifyEvent; + FData: Pointer; + class constructor Create; + class destructor Destroy; + function GetDownState: Boolean; + procedure SetDownState(const Value: Boolean); + protected + procedure CreateParams(var Params: TCreateParams); override; + public + property Caption; + property Data: Pointer read FData write FData; + property Down: Boolean read GetDownState write SetDownState; + property SavedOnClick: TNotifyEvent read FSavedOnClick write FSavedOnClick; + constructor Clone(var AControl); + end; + + TGXCheckButtonGroup = class(TComponent) + private + FButtonList : TList; + FAllowAllUp : Boolean; + FOnClick : TNotifyEvent; + protected + procedure AnyButtonClicked(Sender: TObject); + procedure Notification(AComponent: TComponent; Operation: TOperation); override; + public + property OnClick: TNotifyEvent read FOnClick write FOnClick; + property AllowAllUp: Boolean read FAllowAllUp write FAllowAllUp; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + function Add(var AControl): TGXCheckButton; overload; + function Add(var AControl; AData: Integer): TGXCheckButton; overload; + function Add(var AControl; AData: Pointer): TGXCheckButton; overload; + function GetButtonData(ndx: Integer): Pointer; + function IsDown(ndx: Integer): Boolean; overload; + function IsDown(ABtn: TGXCheckButton): Boolean; overload; + function TryGetSelected(var Index: Integer): Boolean; + procedure SetButtonState(ndx: Integer; ADown: Boolean); overload; + procedure SetButtonState(ABtn: TGXCheckButton; ADown: Boolean); overload; + procedure SetDown(AData: Integer); + end; + +implementation + +uses + Types, + Windows, + SysUtils, + Graphics; + +type + TGXCheckButtonStyleHook = class(TButtonStyleHook) + protected + procedure DrawButton(ACanvas: TCanvas; AMouseInControl: Boolean); override; + end; + +{ TGXCheckButtonStyleHook } + +procedure TGXCheckButtonStyleHook.DrawButton(ACanvas: TCanvas; AMouseInControl: Boolean); +var + LStyle : TCustomStyleServices; + Details : TThemedElementDetails; + LControl: TGXCheckButton; + R : TRect; +begin + LStyle := StyleServices; + if not LStyle.Available then + begin + inherited; + Exit; + end; + + if Control is TGXCheckButton then + begin + LControl := TGXCheckButton(Control); + if LControl.Checked + then Details := LStyle.GetElementDetails(tbPushButtonPressed) + else Details := LStyle.GetElementDetails(tbPushButtonNormal); + + R := LControl.ClientRect; + LStyle.DrawElement(ACanvas.Handle, Details, R, nil); + LStyle.DrawText(ACanvas.Handle, Details, LControl.Caption, R, [tfCenter, tfVerticalCenter]); + if Focused then + begin + R.Inflate(-2, -2); + DrawFocusRect(ACanvas.Handle, R); + end; + end; +end; + +{ TGXCheckButton } + +type + TWinControlAccess = class(TWinControl); + +class constructor TGXCheckButton.Create; +begin + TCustomStyleEngine.UnRegisterStyleHook(TGXCheckButton, TCheckBoxStyleHook); + TCustomStyleEngine.RegisterStyleHook(TGXCheckButton, TGXCheckButtonStyleHook); +end; + +class destructor TGXCheckButton.Destroy; +begin + TCustomStyleEngine.UnRegisterStyleHook(TGXCheckButton, TGXCheckButtonStyleHook); +end; + +constructor TGXCheckButton.Clone(var AControl); +var + ASource: TWinControl; +begin + if not (TObject(Pointer(AControl)) is TWinControl) then + raise EComponentError.Create('Invalid source control'); + + FSavedOnClick := nil; + ASource := TWinControl(AControl); + + Create(ASource.Owner); + Parent := ASource.Parent; + BoundsRect := ASource.BoundsRect; + Anchors := ASource.Anchors; + Margins := ASource.Margins; + AlignWithMargins := ASource.AlignWithMargins; + Caption := TWinControlAccess(ASource).Caption; + Enabled := ASource.Enabled; + Visible := ASource.Visible; + TabStop := ASource.TabStop; + TabOrder := ASource.TabOrder; + Name := ASource.Name + '_GX'; + OnClick := TWinControlAccess(ASource).OnClick; + + FreeAndNil(ASource); + Pointer(AControl) := nil; +end; + +function TGXCheckButton.GetDownState: Boolean; +begin + Result := Checked; +end; + +procedure TGXCheckButton.SetDownState(const Value: Boolean); +var + SavedClicksDisabled : Boolean; +begin + SavedClicksDisabled := ClicksDisabled; + ClicksDisabled := True; + + SetChecked(Value); + + ClicksDisabled := SavedClicksDisabled; +end; + +procedure TGXCheckButton.CreateParams(var Params: TCreateParams); +// Make the checkbox look like a button. +begin + inherited; + Params.Style := Params.Style + BS_PUSHLIKE; +end; + +{ TGXCheckButtonGroup } + +procedure TGXCheckButtonGroup.AnyButtonClicked(Sender: TObject); +var + AButton : TGXCheckButton; + LButton : TGXCheckButton; + i : Integer; +begin + if Sender is TGXCheckButton then + begin + AButton := TGXCheckButton(Sender); + + // set all other button to "up" + for i := 0 to FButtonList.Count-1 do + begin + LButton := TGXCheckButton(FButtonList.Items[i]); + if LButton <> AButton then + begin + LButton.Down := False; + end; + end; + if (not AButton.Down) and (not FAllowAllUp) then + begin + AButton.Down := True; + end; + + if AButton.Down then + begin + if Assigned(AButton.FSavedOnClick) then + AButton.FSavedOnClick(AButton) + else + if Assigned(FOnClick) then + FOnClick(AButton); + end; + end; // if Sender is TGXCheckButton +end; + +constructor TGXCheckButtonGroup.Create(AOwner: TComponent); +begin + inherited Create(AOwner); + FButtonList := TList.Create; + FAllowAllUp := True; +end; + +destructor TGXCheckButtonGroup.Destroy; +begin + FButtonList.Free; + inherited; +end; + +function TGXCheckButtonGroup.GetButtonData(ndx: Integer): Pointer; +begin + Result := nil; + if ndx >= 0 then + Result := TGXCheckButton(FButtonList.Items[ndx]).Data; +end; + +function TGXCheckButtonGroup.IsDown(ndx: Integer): Boolean; +var + LButton : TGXCheckButton; +begin + LButton := TGXCheckButton(FButtonList[ndx]); + Result := LButton.Down; +end; + +function TGXCheckButtonGroup.IsDown(ABtn: TGXCheckButton): Boolean; +var + ndx : Integer; +begin + Result := False; + ndx := FButtonList.IndexOf(ABtn); + if ndx >= 0 then + Result := ABtn.Down; +end; + +procedure TGXCheckButtonGroup.Notification(AComponent: TComponent; Operation: TOperation); +var + ndx : Integer; +begin + if (AComponent is TGXCheckButton) and (Operation = opRemove) then + begin + ndx := FButtonList.IndexOf(AComponent); + if ndx >= 0 then + begin + FButtonList.Items[ndx] := nil; + FButtonList.Delete(ndx); + end; + end; + inherited; +end; + +procedure TGXCheckButtonGroup.SetButtonState(ndx: Integer; ADown: Boolean); +var + LButton : TGXCheckButton; + i : Integer; +begin + LButton := TGXCheckButton(FButtonList.Items[ndx]); + if Assigned(LButton) then + begin + if ADown then + begin + for i := 0 to FButtonList.Count-1 do + TGXCheckButton(FButtonList.Items[i]).Down := False; + TGXCheckButton(FButtonList.Items[ndx]).Down := True; + end + else begin + for i := 0 to FButtonList.Count-1 do + TGXCheckButton(FButtonList.Items[i]).Down := False; + if FAllowAllUp then + TGXCheckButton(FButtonList.Items[ndx]).Down := True + else + TGXCheckButton(FButtonList.Items[ndx]).Down := True; + end; + LButton.Down := ADown; + end; +end; + +procedure TGXCheckButtonGroup.SetButtonState(ABtn: TGXCheckButton; ADown: Boolean); +var + ndx : Integer; +begin + ndx := FButtonList.IndexOf(ABtn); + if ndx >= 0 then + SetButtonState(ndx, ADown); +end; + +procedure TGXCheckButtonGroup.SetDown(AData: Integer); +var + i : Integer; + LButton : TGXCheckButton; +begin + for i := 0 to FButtonList.Count-1 do + begin + LButton := TGXCheckButton(FButtonList.Items[i]); + if LButton.Data = Pointer(AData) then + LButton.Down := True + else + LButton.Down := False; + end; +end; + +function TGXCheckButtonGroup.TryGetSelected(var Index: Integer): Boolean; +var + i : Integer; + LButton : TGXCheckButton; +begin + Result := False; + for i := 0 to FButtonList.Count-1 do + begin + LButton := TGXCheckButton(FButtonList.Items[i]); + if LButton.Down then + begin + Index := i; + Result := True; + Break; + end; + end; +end { TryGetSelected }; + +function TGXCheckButtonGroup.Add(var AControl; AData: Pointer): TGXCheckButton; +var + ASource : TWinControl; + AButton : TGXCheckButton; + LOnClick: TNotifyEvent; +begin + if not (TObject(Pointer(AControl)) is TWinControl) then + raise EComponentError.Create('Invalid source control'); + + ASource := TWinControl(AControl); + LOnClick := TWinControlAccess(ASource).OnClick; + + AButton := TGXCheckButton.Clone(ASource); + AButton.Data := AData; + AButton.SavedOnClick := LOnClick; + AButton.OnClick := Self.AnyButtonClicked; + + FButtonList.Add(AButton); + Result := AButton; +end; + +function TGXCheckButtonGroup.Add(var AControl; AData: Integer): TGXCheckButton; +begin + Result := Add(AControl, Pointer(AData)); +end; + +function TGXCheckButtonGroup.Add(var AControl): TGXCheckButton; +begin + Result := Add(AControl, nil); +end; + +end. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aka...@us...> - 2024-08-15 07:40:17
|
Revision: 4294 http://sourceforge.net/p/gexperts/code/4294 Author: akalwahome Date: 2024-08-15 07:40:03 +0000 (Thu, 15 Aug 2024) Log Message: ----------- Code cleanup. Modified Paths: -------------- branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dproj branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dproj branches/dark-mode/Source/Formatter/GX_CodeFormatterConfig.dfm branches/dark-mode/Source/Formatter/GX_CodeFormatterConfig.pas branches/dark-mode/Source/Framework/GX_BaseForm.pas branches/dark-mode/Source/RenameComponents/GX_CompRename.dfm branches/dark-mode/Source/RenameComponents/GX_CompRename.pas branches/dark-mode/Source/Utils/GX_CheckButton.pas Modified: branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dproj =================================================================== --- branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dproj 2024-08-14 20:53:09 UTC (rev 4293) +++ branches/dark-mode/Projects/DelphiXx110Alexandria/GExpertsRS110.dproj 2024-08-15 07:40:03 UTC (rev 4294) @@ -49,11 +49,13 @@ <DCC_UsePackage>rtl;vcl;designide;$(DCC_UsePackage)</DCC_UsePackage> <GenDll>true</GenDll> <Manifest_File>(None)</Manifest_File> - <PreBuildEvent><![CDATA[call ..\..\source\_CreateGExpertsManifest.cmd + <PreBuildEvent> + <![CDATA[call ..\..\source\_CreateGExpertsManifest.cmd call ..\..\images\_CreateGXIconsRc.cmd call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)" call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)" -$(PreBuildEvent)]]></PreBuildEvent> +$(PreBuildEvent)]]> + </PreBuildEvent> <UsePackages>True</UsePackages> <VerInfo_Keys>FileVersion=1.0.0.0</VerInfo_Keys> <VerInfo_Locale>2057</VerInfo_Locale> @@ -132,6 +134,7 @@ <Form>fmGxBookmarksForm</Form> <FormType>dfm</FormType> </DCCReference> + <DCCReference Include="..\..\source\Utils\GX_CheckButton.pas"/> <DCCReference Include="..\..\Source\ProjectOptionSets\GX_CheckListBoxWithHints.pas"/> <DCCReference Include="..\..\source\ClassBrowser\GX_ClassBrowser.pas"> <Form>fmClassBrowser</Form> @@ -751,14 +754,6 @@ <PostBuildEvent/> <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> </PropertyGroup> - <PropertyGroup Condition="'$(Config)'=='Release' And '$(Platform)'=='Win64'"> - <PreBuildEvent>call ..\..\source\_CreateGExpertsManifest.cmd&&call ..\..\images\_CreateGXIconsRc.cmd&&call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)"&&call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)"</PreBuildEvent> - <PreBuildEventIgnoreExitCode>False</PreBuildEventIgnoreExitCode> - <PreLinkEvent/> - <PreLinkEventIgnoreExitCode>False</PreLinkEventIgnoreExitCode> - <PostBuildEvent/> - <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> - </PropertyGroup> <PropertyGroup Condition="'$(Config)'=='Debug' And '$(Platform)'=='Win32'"> <PreBuildEvent>call ..\..\source\_CreateGExpertsManifest.cmd&&call ..\..\images\_CreateGXIconsRc.cmd&&call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)"&&call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)"</PreBuildEvent> <PreBuildEventIgnoreExitCode>False</PreBuildEventIgnoreExitCode> @@ -767,12 +762,4 @@ <PostBuildEvent/> <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> </PropertyGroup> - <PropertyGroup Condition="'$(Config)'=='Debug' And '$(Platform)'=='Win64'"> - <PreBuildEvent>call ..\..\source\_CreateGExpertsManifest.cmd&&call ..\..\images\_CreateGXIconsRc.cmd&&call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)"&&call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)"</PreBuildEvent> - <PreBuildEventIgnoreExitCode>False</PreBuildEventIgnoreExitCode> - <PreLinkEvent/> - <PreLinkEventIgnoreExitCode>False</PreLinkEventIgnoreExitCode> - <PostBuildEvent/> - <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> - </PropertyGroup> </Project> Modified: branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dproj =================================================================== --- branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dproj 2024-08-14 20:53:09 UTC (rev 4293) +++ branches/dark-mode/Projects/DelphiXx120/GExpertsRS120.dproj 2024-08-15 07:40:03 UTC (rev 4294) @@ -7,9 +7,9 @@ <MainSource>GExpertsRS120.dpr</MainSource> <Platform Condition="'$(Platform)'==''">Win32</Platform> <ProjectGuid>{BB29661E-3FA2-4EA6-96EB-0768940BAAB6}</ProjectGuid> + <ProjectName Condition="'$(ProjectName)'==''">GExpertsRS120</ProjectName> <ProjectVersion>20.1</ProjectVersion> <TargetedPlatforms>1</TargetedPlatforms> - <ProjectName Condition="'$(ProjectName)'==''">GExpertsRS120</ProjectName> </PropertyGroup> <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''"> <Base>true</Base> @@ -57,11 +57,13 @@ <DCC_UsePackage>rtl;vcl;designide;$(DCC_UsePackage)</DCC_UsePackage> <GenDll>true</GenDll> <Manifest_File>(None)</Manifest_File> - <PreBuildEvent><![CDATA[call ..\..\images\_CreateGXIconsRc.cmd + <PreBuildEvent> + <![CDATA[call ..\..\images\_CreateGXIconsRc.cmd call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)" call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)" call ..\..\source\_CreateGExpertsManifest.cmd -$(PreBuildEvent)]]></PreBuildEvent> +$(PreBuildEvent)]]> + </PreBuildEvent> <UsePackages>True</UsePackages> <VerInfo_Keys>FileVersion=1.0.0.0</VerInfo_Keys> <VerInfo_Locale>2057</VerInfo_Locale> @@ -764,14 +766,6 @@ <PostBuildEvent/> <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> </PropertyGroup> - <PropertyGroup Condition="'$(Config)'=='Release' And '$(Platform)'=='Win64'"> - <PreBuildEvent>call ..\..\images\_CreateGXIconsRc.cmd&&call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)"&&call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)"&&call ..\..\source\_CreateGExpertsManifest.cmd</PreBuildEvent> - <PreBuildEventIgnoreExitCode>False</PreBuildEventIgnoreExitCode> - <PreLinkEvent/> - <PreLinkEventIgnoreExitCode>False</PreLinkEventIgnoreExitCode> - <PostBuildEvent/> - <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> - </PropertyGroup> <PropertyGroup Condition="'$(Config)'=='Debug' And '$(Platform)'=='Win32'"> <PreBuildEvent>call ..\..\images\_CreateGXIconsRc.cmd&&call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)"&&call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)"&&call ..\..\source\_CreateGExpertsManifest.cmd</PreBuildEvent> <PreBuildEventIgnoreExitCode>False</PreBuildEventIgnoreExitCode> @@ -780,12 +774,4 @@ <PostBuildEvent/> <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> </PropertyGroup> - <PropertyGroup Condition="'$(Config)'=='Debug' And '$(Platform)'=='Win64'"> - <PreBuildEvent>call ..\..\images\_CreateGXIconsRc.cmd&&call ..\..\buildtools\prebuild.cmd "$(PROJECTPATH)"&&call ..\..\buildtools\movedll.cmd "$(OUTPUTPATH)"&&call ..\..\source\_CreateGExpertsManifest.cmd</PreBuildEvent> - <PreBuildEventIgnoreExitCode>False</PreBuildEventIgnoreExitCode> - <PreLinkEvent/> - <PreLinkEventIgnoreExitCode>False</PreLinkEventIgnoreExitCode> - <PostBuildEvent/> - <PostBuildEventIgnoreExitCode>False</PostBuildEventIgnoreExitCode> - </PropertyGroup> </Project> Modified: branches/dark-mode/Source/Formatter/GX_CodeFormatterConfig.dfm =================================================================== --- branches/dark-mode/Source/Formatter/GX_CodeFormatterConfig.dfm 2024-08-14 20:53:09 UTC (rev 4293) +++ branches/dark-mode/Source/Formatter/GX_CodeFormatterConfig.dfm 2024-08-15 07:40:03 UTC (rev 4294) @@ -32,8 +32,8 @@ object l_SpacesPerIndent: TLabel Left = 16 Top = 8 - Width = 88 - Height = 13 + Width = 93 + Height = 15 Caption = 'Spaces per Indent' end object ed_SpacePerIndent: TEdit @@ -179,15 +179,15 @@ object l_BeginStyle: TLabel Left = 240 Top = 96 - Width = 52 - Height = 13 + Width = 57 + Height = 15 Caption = 'Begin style' end object l_WrapAtPosition: TLabel Left = 248 Top = 216 - Width = 51 - Height = 13 + Width = 58 + Height = 15 Caption = 'At position' end object l_TryStyle: TLabel @@ -194,7 +194,7 @@ Left = 240 Top = 144 Width = 42 - Height = 13 + Height = 15 Caption = 'Try style' end object cmb_FeedRoundBegin: TComboBox @@ -201,9 +201,8 @@ Left = 240 Top = 112 Width = 185 - Height = 21 + Height = 23 Style = csDropDownList - ItemHeight = 13 TabOrder = 2 OnChange = UpdatePreview Items.Strings = ( @@ -387,9 +386,8 @@ Left = 240 Top = 160 Width = 185 - Height = 21 + Height = 23 Style = csDropDownList - ItemHeight = 13 TabOrder = 3 OnChange = UpdatePreview Items.Strings = ( @@ -402,40 +400,40 @@ Caption = 'Capitalization' DesignSize = ( 426 - 454) + 452) object l_Capitalize: TLabel Left = 16 Top = 8 - Width = 46 - Height = 13 + Width = 51 + Height = 15 Caption = 'Capitalize' end object l_ReservedWords: TLabel Left = 16 Top = 48 - Width = 78 - Height = 13 + Width = 82 + Height = 15 Caption = 'Reserved words' end object l_StandardDirectives: TLabel Left = 144 Top = 48 - Width = 93 - Height = 13 + Width = 100 + Height = 15 Caption = 'Standard directives' end object l_Identifiers: TLabel Left = 272 Top = 48 - Width = 49 - Height = 13 + Width = 52 + Height = 15 Caption = 'Identifiers' end object l_CapitalizationInFile: TLabel Left = 16 Top = 248 - Width = 126 - Height = 13 + Width = 140 + Height = 15 Caption = 'Capitalization stored in file' end object chk_UpperCompDirectives: TCheckBox @@ -460,9 +458,8 @@ Left = 16 Top = 64 Width = 118 - Height = 21 + Height = 23 Style = csDropDownList - ItemHeight = 13 TabOrder = 2 OnChange = UpdatePreview Items.Strings = ( @@ -475,9 +472,8 @@ Left = 144 Top = 64 Width = 117 - Height = 21 + Height = 23 Style = csDropDownList - ItemHeight = 13 TabOrder = 3 OnChange = UpdatePreview Items.Strings = ( @@ -534,9 +530,8 @@ Left = 272 Top = 64 Width = 118 - Height = 21 + Height = 23 Style = csDropDownList - ItemHeight = 13 TabOrder = 4 OnChange = UpdatePreview Items.Strings = ( @@ -552,15 +547,15 @@ object l_AlignComentsAtPosition: TLabel Left = 40 Top = 40 - Width = 51 - Height = 13 + Width = 58 + Height = 15 Caption = 'At position' end object l_AlignVarAtPosition: TLabel Left = 40 Top = 136 - Width = 51 - Height = 13 + Width = 58 + Height = 15 Caption = 'At position' end object chk_AlignComments: TCheckBox @@ -673,14 +668,14 @@ Left = 8 Top = 24 Width = 24 - Height = 13 + Height = 15 Caption = 'Start' end object l_MiscEnd: TLabel Left = 128 Top = 24 - Width = 18 - Height = 13 + Width = 20 + Height = 15 Caption = 'End' end object ed_StartComment: TEdit @@ -715,15 +710,15 @@ object l_Before: TLabel Left = 24 Top = 1 - Width = 32 - Height = 13 + Width = 34 + Height = 15 Caption = 'Before' end object l_After: TLabel Left = 202 Top = 1 - Width = 22 - Height = 13 + Width = 26 + Height = 15 Caption = 'After' end end Modified: branches/dark-mode/Source/Formatter/GX_CodeFormatterConfig.pas =================================================================== --- branches/dark-mode/Source/Formatter/GX_CodeFormatterConfig.pas 2024-08-14 20:53:09 UTC (rev 4293) +++ branches/dark-mode/Source/Formatter/GX_CodeFormatterConfig.pas 2024-08-15 07:40:03 UTC (rev 4294) @@ -279,7 +279,9 @@ begin inherited; h := grid_Spacing.Canvas.TextHeight('Mg') + 4; +{$IF declared(FScaler)} grid_Spacing.DefaultRowHeight := FScaler.Calc(h); +{$IFEND} end; procedure TfmCodeFormatterConfig.HandleCaptitalizationFileDropped(_Sender: TObject; _Files: TStrings); Modified: branches/dark-mode/Source/Framework/GX_BaseForm.pas =================================================================== --- branches/dark-mode/Source/Framework/GX_BaseForm.pas 2024-08-14 20:53:09 UTC (rev 4293) +++ branches/dark-mode/Source/Framework/GX_BaseForm.pas 2024-08-15 07:40:03 UTC (rev 4294) @@ -122,6 +122,7 @@ procedure TfmBaseForm.ArrangeControls; begin + // end; procedure TfmBaseForm.Loaded; Modified: branches/dark-mode/Source/RenameComponents/GX_CompRename.dfm =================================================================== --- branches/dark-mode/Source/RenameComponents/GX_CompRename.dfm 2024-08-14 20:53:09 UTC (rev 4293) +++ branches/dark-mode/Source/RenameComponents/GX_CompRename.dfm 2024-08-15 07:40:03 UTC (rev 4294) @@ -202,7 +202,6 @@ Top = 0 Width = 169 Height = 25 - Anchors = [] Caption = 'Top' TabOrder = 0 OnClick = b_AlignTopClick @@ -212,7 +211,6 @@ Top = 24 Width = 41 Height = 65 - Anchors = [] Caption = 'Left' TabOrder = 1 OnClick = b_AlignLeftClick @@ -222,7 +220,6 @@ Top = 24 Width = 89 Height = 65 - Anchors = [] Caption = 'Client' TabOrder = 2 OnClick = b_AlignClientClick @@ -232,7 +229,6 @@ Top = 120 Width = 65 Height = 25 - Anchors = [] Caption = 'None' TabOrder = 5 OnClick = b_AlignNoneClick @@ -242,7 +238,6 @@ Top = 120 Width = 65 Height = 25 - Anchors = [] Caption = 'Custom' TabOrder = 6 OnClick = b_AlignCustomClick @@ -252,7 +247,6 @@ Top = 24 Width = 41 Height = 65 - Anchors = [] Caption = 'Right' TabOrder = 3 OnClick = b_AlignRightClick @@ -262,7 +256,6 @@ Top = 88 Width = 169 Height = 25 - Anchors = [] Caption = 'Bottom' TabOrder = 4 OnClick = b_AlignBottomClick @@ -276,7 +269,6 @@ Top = 46 Width = 49 Height = 49 - Anchors = [] Caption = 'Left' TabOrder = 1 end @@ -285,7 +277,6 @@ Top = 46 Width = 49 Height = 49 - Anchors = [] Caption = 'Right' TabOrder = 2 end @@ -294,7 +285,6 @@ Top = 16 Width = 49 Height = 49 - Anchors = [] Caption = 'Top' TabOrder = 0 end @@ -303,7 +293,6 @@ Top = 71 Width = 49 Height = 49 - Anchors = [] Caption = 'Bottom' TabOrder = 3 end Modified: branches/dark-mode/Source/RenameComponents/GX_CompRename.pas =================================================================== --- branches/dark-mode/Source/RenameComponents/GX_CompRename.pas 2024-08-14 20:53:09 UTC (rev 4293) +++ branches/dark-mode/Source/RenameComponents/GX_CompRename.pas 2024-08-15 07:40:03 UTC (rev 4294) @@ -14,7 +14,7 @@ Classes, Controls, Forms, StdCtrls, ExtCtrls, ToolsAPI, ComCtrls, Buttons, GX_Experts, GX_ConfigurationInfo, GX_EditorChangeServices, GX_CheckButton, Contnrs, Messages, - Types, GX_BaseForm, u_dzSpeedBitBtn; + Types, GX_BaseForm; type TIsValidComponentName = function (const OldName, NewName: WideString; var Reason: WideString): Boolean of object; Modified: branches/dark-mode/Source/Utils/GX_CheckButton.pas =================================================================== --- branches/dark-mode/Source/Utils/GX_CheckButton.pas 2024-08-14 20:53:09 UTC (rev 4293) +++ branches/dark-mode/Source/Utils/GX_CheckButton.pas 2024-08-15 07:40:03 UTC (rev 4294) @@ -1,5 +1,14 @@ unit GX_CheckButton; +{ This unit provides: + - TGXCheckButton: A CheckBox-like component, which looks like a TButton; + similar to TSpeedButton, but with keyboard focus control. + - TGXCheckButtonGroup: Group TGXCheckButtons to behave like a RadioGroup. + - TGXCheckButtonStyleHook for themed drawing. +} + +{$I GX_CondDefine.inc} + interface uses @@ -58,7 +67,9 @@ Types, Windows, SysUtils, - Graphics; + Graphics, + GX_IdeUtils + ; type TGXCheckButtonStyleHook = class(TButtonStyleHook) @@ -68,6 +79,12 @@ { TGXCheckButtonStyleHook } +const + Pattern : array[0..7] of Word = ( + $5555, $AAAA, $5555, $AAAA + ,$5555, $AAAA, $5555, $AAAA + ); + procedure TGXCheckButtonStyleHook.DrawButton(ACanvas: TCanvas; AMouseInControl: Boolean); var LStyle : TCustomStyleServices; @@ -74,6 +91,38 @@ Details : TThemedElementDetails; LControl: TGXCheckButton; R : TRect; + + procedure GXDrawFocusRect(DC: HDC; R: TRect); + var + hbmpPattern : HBITMAP; + hbrPattern : HBRUSH; + hbrOriginal : HBRUSH; + cx, cy : Integer; + nSaved : Integer; + begin + nSaved := SaveDC(DC); + hbmpPattern := CreateBitmap(8, 8, 1, 1, @Pattern); + hbrPattern := CreatePatternBrush(hbmpPattern); + hbrOriginal := SelectObject(DC, hbrPattern); + + SetBkColor(DC, ColorToRGB(GetThemedColor(clWindow))); + SetTextColor(DC, ColorToRGB(GetThemedColor(clWindowText))); + + SystemParametersInfo(SPI_GETFOCUSBORDERWIDTH, 0, cx, 0); + SystemParametersInfo(SPI_GETFOCUSBORDERHEIGHT, 0, cy, 0); + + PatBlt(DC, R.Left , R.Top , R.Width, cy , PATINVERT); // top + PatBlt(DC, R.Left , R.Bottom - cy, R.Width, cy , PATINVERT); // bottom + PatBlt(DC, R.Left , R.Top + cy, cx , R.Height - (cy * 2), PATINVERT); // left + PatBlt(DC, R.Right - cx, R.Top + cy, cx , R.Height - (cy * 2), PATINVERT); // right + + SelectObject(DC, hbrOriginal); + DeleteObject(hbrPattern); + DeleteObject(hbmpPattern); + + RestoreDC(DC, nSaved); + end; + begin LStyle := StyleServices; if not LStyle.Available then @@ -85,17 +134,23 @@ if Control is TGXCheckButton then begin LControl := TGXCheckButton(Control); - if LControl.Checked - then Details := LStyle.GetElementDetails(tbPushButtonPressed) - else Details := LStyle.GetElementDetails(tbPushButtonNormal); + if LControl.Checked then + Details := LStyle.GetElementDetails(tbPushButtonPressed) + else + Details := LStyle.GetElementDetails(tbPushButtonNormal); + R := LControl.ClientRect; LStyle.DrawElement(ACanvas.Handle, Details, R, nil); LStyle.DrawText(ACanvas.Handle, Details, LControl.Caption, R, [tfCenter, tfVerticalCenter]); + if Focused then begin - R.Inflate(-2, -2); - DrawFocusRect(ACanvas.Handle, R); + R.Inflate(-2, -2); // for better visibility + + // DrawFocusRect(ACanvas.Handle, R); // respects SPI_GETFOCUSBORDERWIDTH/SPI_GETFOCUSBORDERHEIGHT + // DrawStyleFocusRect(ACanvas.Handle, R); // only 1 pixel; ignores system settings + GXDrawFocusRect(ACanvas.Handle, R); // own implementation end; end; end; @@ -196,7 +251,7 @@ if AButton.Down then begin - if Assigned(AButton.FSavedOnClick) then + if Assigned(AButton.FSavedOnClick) then AButton.FSavedOnClick(AButton) else if Assigned(FOnClick) then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aka...@us...> - 2024-08-18 16:38:53
|
Revision: 4296 http://sourceforge.net/p/gexperts/code/4296 Author: akalwahome Date: 2024-08-18 16:38:51 +0000 (Sun, 18 Aug 2024) Log Message: ----------- make code compile with Delphi 2007 Modified Paths: -------------- branches/dark-mode/Projects/Delphi2007/GExpertsDelphi2007.dpr branches/dark-mode/Source/Grep/GX_GrepResults.dfm branches/dark-mode/Source/Grep/GX_GrepResults.pas branches/dark-mode/Source/Grep/GX_GrepSearch.pas branches/dark-mode/Source/Utils/GX_CheckButton.pas Modified: branches/dark-mode/Projects/Delphi2007/GExpertsDelphi2007.dpr =================================================================== --- branches/dark-mode/Projects/Delphi2007/GExpertsDelphi2007.dpr 2024-08-15 07:41:13 UTC (rev 4295) +++ branches/dark-mode/Projects/Delphi2007/GExpertsDelphi2007.dpr 2024-08-18 16:38:51 UTC (rev 4296) @@ -18,6 +18,7 @@ GX_BaseForm in '..\..\source\Framework\GX_BaseForm.pas' {fmBaseForm}, GX_BookmarkList in '..\..\source\Utils\GX_BookmarkList.pas', GX_Bookmarks in '..\..\source\Bookmarks\GX_Bookmarks.pas' {fmGxBookmarksForm}, + GX_CheckButton in '..\..\Source\Utils\GX_CheckButton.pas', GX_CheckListBoxWithHints in '..\..\Source\ProjectOptionSets\GX_CheckListBoxWithHints.pas', GX_ClassBrowser in '..\..\source\ClassBrowser\GX_ClassBrowser.pas' {fmClassBrowser}, GX_ClassHacks in '..\..\source\Framework\GX_ClassHacks.pas', Modified: branches/dark-mode/Source/Grep/GX_GrepResults.dfm =================================================================== --- branches/dark-mode/Source/Grep/GX_GrepResults.dfm 2024-08-15 07:41:13 UTC (rev 4295) +++ branches/dark-mode/Source/Grep/GX_GrepResults.dfm 2024-08-18 16:38:51 UTC (rev 4296) @@ -9,6 +9,7 @@ KeyPreview = True OldCreateOrder = False ShowHint = True + OnActivate = FormActivate OnKeyPress = FormKeyPress OnResize = FormResize OnShow = FormShow Modified: branches/dark-mode/Source/Grep/GX_GrepResults.pas =================================================================== --- branches/dark-mode/Source/Grep/GX_GrepResults.pas 2024-08-15 07:41:13 UTC (rev 4295) +++ branches/dark-mode/Source/Grep/GX_GrepResults.pas 2024-08-18 16:38:51 UTC (rev 4296) @@ -326,6 +326,7 @@ procedure SplitterHistoryListCanResize(Sender: TObject; var NewSize: Integer; var Accept: Boolean); procedure actHistoryClearExecute(Sender: TObject); procedure actFileOptionsStandAloneExecute(Sender: TObject); + procedure FormActivate(Sender: TObject); private FLastRepaintTick: DWORD; FSearchInProgress: Boolean; @@ -360,6 +361,7 @@ FSaveSortCaption: string; FSavedFormCaption: string; FlbHistoryListIndexForHistoryMenuActions: Integer; + procedure InitThemedColors; procedure SetStayOnTop(Value: Boolean); procedure RefreshContextLines; procedure SetShowContext(Value: Boolean); @@ -545,6 +547,19 @@ { TfmGrepResults } +procedure TfmGrepResults.FormActivate(Sender: TObject); +// will be called by the IDE if the form is in the saved layout. +begin + inherited; + InitThemedColors; + + AssignSettingsToForm; + ResizeListBox; + ResizeStatusBar; + + ForceRedraw; +end; + procedure TfmGrepResults.FormKeyPress(Sender: TObject; var Key: Char); begin if Key = #27 then @@ -895,6 +910,29 @@ lbResults.Refresh; end; +procedure TfmGrepResults.InitThemedColors; +var + LBackColor : TColor; +begin +{$IFDEF GX_SUPPORTS_THEMING} + if IsThemingEnabled then begin + InitTheming(Self); + GxOtaGetIDEThemingServices.ApplyTheme(tcHistoryListPage); + + LBackColor := GetThemedColor(clWindow); + + tcHistoryListPage.Style := tsFlatButtons; // don't paint the control themed + tcHistoryListPage.Brush.Color := LBackColor; + + pnlMain.Color := LBackColor; + pnlBottom.Color := LBackColor; + lbResults.Color := LBackColor; + lbHistoryList.Color := LBackColor; + reContext.Color := LBackColor; + end; +{$ENDIF} +end; + procedure TfmGrepResults.InitGrepSettings(AGrepSettings: TGrepSettings); begin FGrepSettings := AGrepSettings; @@ -2030,24 +2068,48 @@ lbHistoryList.Refresh; end; -procedure TfmGrepResults.FormShow(Sender: TObject); +(* +procedure TfmGrepResults.TabControlDrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); var + LCaption : string; + LTextRect : TRect; LBackColor : TColor; + LTextColor : TColor; begin + LCaption := TTabControl(Control).Tabs[TabIndex]; + if Active then + begin + LBackColor := GetThemedColor(clHighlight); + LTextColor := GetThemedColor(clHighlightText) + end + else begin + LBackColor := GetThemedColor(clBtnFace); + LTextColor := GetThemedColor(clBtnText); + end; + + Control.Canvas.Brush.Color := LBackColor; + Control.Canvas.FillRect(Rect); + Control.Canvas.Font.Color := LTextColor; + + LTextRect := Rect; + LTextRect.Inflate(-3, -3); + DrawText(Control.Canvas.Handle, PChar(LCaption), -1, LTextRect, DT_TOP or DT_LEFT); +end; +*) + +type + TWinControlAccess = class(TWinControl); + +procedure TfmGrepResults.FormShow(Sender: TObject); +begin inherited; + InitThemedColors; + AssignSettingsToForm; ResizeListBox; ResizeStatusBar; - if IsThemingEnabled then begin - InitTheming(Self); - LBackColor := GetThemedColor(clWindow); - pnlMain.Color := LBackColor; - pnlBottom.Color := LBackColor; - lbResults.Color := LBackColor; - lbHistoryList.Color := LBackColor; - reContext.Color := LBackColor; - end; + ForceRedraw; end; Modified: branches/dark-mode/Source/Grep/GX_GrepSearch.pas =================================================================== --- branches/dark-mode/Source/Grep/GX_GrepSearch.pas 2024-08-15 07:41:13 UTC (rev 4295) +++ branches/dark-mode/Source/Grep/GX_GrepSearch.pas 2024-08-18 16:38:51 UTC (rev 4296) @@ -811,8 +811,10 @@ inherited; TControl_SetConstraints(Self, [ccMinWidth, ccMinHeight, ccMaxHeight]); +{$IFDEF GX_SUPPORTS_THEMING} if not IsStandAlone then InitTheming; +{$ENDIF} FixComboBoxSelections(Self); end; Modified: branches/dark-mode/Source/Utils/GX_CheckButton.pas =================================================================== --- branches/dark-mode/Source/Utils/GX_CheckButton.pas 2024-08-15 07:41:13 UTC (rev 4295) +++ branches/dark-mode/Source/Utils/GX_CheckButton.pas 2024-08-18 16:38:51 UTC (rev 4296) @@ -22,8 +22,10 @@ private FSavedOnClick: TNotifyEvent; FData: Pointer; +{$IFDEF GX_SUPPORTS_THEMING} class constructor Create; class destructor Destroy; +{$ENDIF} function GetDownState: Boolean; procedure SetDownState(const Value: Boolean); protected @@ -71,6 +73,7 @@ GX_IdeUtils ; +{$IFDEF GX_SUPPORTS_THEMING} type TGXCheckButtonStyleHook = class(TButtonStyleHook) protected @@ -154,6 +157,7 @@ end; end; end; +{$ENDIF} { TGXCheckButton } @@ -160,6 +164,7 @@ type TWinControlAccess = class(TWinControl); +{$IFDEF GX_SUPPORTS_THEMING} class constructor TGXCheckButton.Create; begin TCustomStyleEngine.UnRegisterStyleHook(TGXCheckButton, TCheckBoxStyleHook); @@ -170,6 +175,7 @@ begin TCustomStyleEngine.UnRegisterStyleHook(TGXCheckButton, TGXCheckButtonStyleHook); end; +{$ENDIF} constructor TGXCheckButton.Clone(var AControl); var This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aka...@us...> - 2024-08-27 18:27:28
|
Revision: 4302 http://sourceforge.net/p/gexperts/code/4302 Author: akalwahome Date: 2024-08-27 18:27:25 +0000 (Tue, 27 Aug 2024) Log Message: ----------- Merged revision(s) from trunk Modified Paths: -------------- branches/dark-mode/Documentation/License.txt branches/dark-mode/Images/TGxFilterExceptionsExpert.bmp branches/dark-mode/Projects/GExperts_version.ini Property Changed: ---------------- branches/dark-mode/ Index: branches/dark-mode =================================================================== --- branches/dark-mode 2024-08-24 14:17:47 UTC (rev 4301) +++ branches/dark-mode 2024-08-27 18:27:25 UTC (rev 4302) Property changes on: branches/dark-mode ___________________________________________________________________ Modified: svn:mergeinfo ## -1 +1 ## -/trunk:4085-4291 \ No newline at end of property +/trunk:4085-4301 \ No newline at end of property Modified: branches/dark-mode/Documentation/License.txt =================================================================== --- branches/dark-mode/Documentation/License.txt 2024-08-24 14:17:47 UTC (rev 4301) +++ branches/dark-mode/Documentation/License.txt 2024-08-27 18:27:25 UTC (rev 4302) @@ -1,6 +1,6 @@ GExperts License Agreement - GExperts is copyright 1996-2023 by Thomas Mueller, Erik Berry and the GExperts development team. This license agreement only covers code written by Erik Berry and the rest of the GExperts development team who have specifically submitted their code for inclusion with GExperts. You should contact the other third-party authors concerning their respective copyrights and conditions. + GExperts is copyright 1996-2024 by Thomas Mueller, Erik Berry and the GExperts development team. This license agreement only covers code written by Erik Berry and the rest of the GExperts development team who have specifically submitted their code for inclusion with GExperts. You should contact the other third-party authors concerning their respective copyrights and conditions. The rules governing the use of GExperts and the GExperts source code are derived from the official Open Source Definition, available at http://www.opensource.org. The conditions and limitations are as follows: Modified: branches/dark-mode/Images/TGxFilterExceptionsExpert.bmp =================================================================== (Binary files differ) Modified: branches/dark-mode/Projects/GExperts_version.ini =================================================================== --- branches/dark-mode/Projects/GExperts_version.ini 2024-08-24 14:17:47 UTC (rev 4301) +++ branches/dark-mode/Projects/GExperts_version.ini 2024-08-27 18:27:25 UTC (rev 4302) @@ -2,7 +2,7 @@ Build=85 MajorVer=1 MinorVer=3 -Release=24 +Release=25 AutoIncBuild=0 Revision= Private=0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |