ソースを参照

dark theme for toolbox

Johann 6 年 前
コミット
acfbffb438
2 ファイル変更17 行追加1 行削除
  1. 2 0
      lazpaint/lazpaintinstance.pas
  2. 15 1
      lazpaint/utoolbox.pas

+ 2 - 0
lazpaint/lazpaintinstance.pas

@@ -416,6 +416,7 @@ begin
   if Assigned(FToolBox) or not Assigned(FMain) then exit;
   Application.CreateForm(TFToolbox, FToolbox);
   FToolbox.LazPaintInstance := self;
+  FToolbox.DarkTheme := Config.GetDarkTheme;
 
   //needed to attach to the right instance of FMain
   FToolbox.AddButton(FToolbox.Toolbar1, FMain.ToolHand);
@@ -678,6 +679,7 @@ begin
   if Assigned(FChooseColor) then FChooseColor.DarkTheme := ADarkTheme;
   if Assigned(FLayerStack) then FLayerStack.DarkTheme := ADarkTheme;
   if Assigned(FMain) then FMain.DarkTheme := ADarkTheme;
+  if Assigned(FToolbox) then FToolbox.DarkTheme:= ADarkTheme;
 end;
 
 function TLazPaintInstance.GetGridVisible: boolean;

+ 15 - 1
lazpaint/utoolbox.pas

@@ -20,6 +20,8 @@ type
     procedure FormCreate(Sender: TObject);
     procedure FormShow(Sender: TObject);
   private
+    FDarkTheme: boolean;
+    procedure SetDarkTheme(AValue: boolean);
     { private declarations }
     procedure SetImages(AToolBar: TToolBar; AImages: TImageList);
   public
@@ -27,11 +29,12 @@ type
     LazPaintInstance: TLazPaintCustomInstance;
     procedure AddButton(AToolBar: TToolBar; AAction: TBasicAction);
     procedure SetImages(AImages: TImageList);
+    property DarkTheme: boolean read FDarkTheme write SetDarkTheme;
   end; 
 
 implementation
 
-uses math;
+uses math, UDarkTheme;
 
 { TFToolbox }
 
@@ -41,6 +44,17 @@ begin
   self.EnsureVisible(False);
 end;
 
+procedure TFToolbox.SetDarkTheme(AValue: boolean);
+begin
+  if FDarkTheme=AValue then Exit;
+  FDarkTheme:=AValue;
+  DarkThemeInstance.Apply(ToolBar1, AValue);
+  DarkThemeInstance.Apply(ToolBar2, AValue);
+  DarkThemeInstance.Apply(ToolBar3, AValue);
+  DarkThemeInstance.Apply(ToolBar4, AValue);
+  if AValue then Color := clDarkBtnFace else Color := clBtnFace;
+end;
+
 procedure TFToolbox.AddButton(AToolBar: TToolBar; AAction: TBasicAction);
 var button: TToolButton;
 begin