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. |