|
@@ -30,7 +30,7 @@ type
|
|
LazPaintInstance: TLazPaintCustomInstance;
|
|
LazPaintInstance: TLazPaintCustomInstance;
|
|
Container: TWinControl;
|
|
Container: TWinControl;
|
|
BGRALayerStack: TBGRAVirtualScreen;
|
|
BGRALayerStack: TBGRAVirtualScreen;
|
|
- TimerScroll: TTimer;
|
|
|
|
|
|
+ TimerScroll, TimerQuery: TTimer;
|
|
PanelToolbar: TPanel;
|
|
PanelToolbar: TPanel;
|
|
Toolbar: TToolbar;
|
|
Toolbar: TToolbar;
|
|
ComboBox_BlendOp: TBCComboBox;
|
|
ComboBox_BlendOp: TBCComboBox;
|
|
@@ -45,6 +45,7 @@ type
|
|
WheelDelta: Integer; {%H-}MousePos: TPoint; var Handled: Boolean);
|
|
WheelDelta: Integer; {%H-}MousePos: TPoint; var Handled: Boolean);
|
|
procedure BGRALayerStack_Redraw(Sender: TObject; Bitmap: TBGRABitmap);
|
|
procedure BGRALayerStack_Redraw(Sender: TObject; Bitmap: TBGRABitmap);
|
|
procedure ComboBox_BlendOpChange(Sender: TObject);
|
|
procedure ComboBox_BlendOpChange(Sender: TObject);
|
|
|
|
+ procedure TimerQuery_Timer(Sender: TObject);
|
|
procedure TimerScroll_Timer(Sender: TObject);
|
|
procedure TimerScroll_Timer(Sender: TObject);
|
|
procedure Toolbar_Resize(Sender: TObject);
|
|
procedure Toolbar_Resize(Sender: TObject);
|
|
procedure ToolSelectBlendOperation_Click(Sender: TObject);
|
|
procedure ToolSelectBlendOperation_Click(Sender: TObject);
|
|
@@ -56,7 +57,7 @@ type
|
|
FScaling: Double;
|
|
FScaling: Double;
|
|
FDarkTheme: boolean;
|
|
FDarkTheme: boolean;
|
|
FScrollStackItemIntoView: Boolean;
|
|
FScrollStackItemIntoView: Boolean;
|
|
- FUpdatingComboBlendOp: Boolean;
|
|
|
|
|
|
+ FUpdatingComboBlendOp, FQuerySelectBlendOp: Boolean;
|
|
FPartialRedraw: Boolean;
|
|
FPartialRedraw: Boolean;
|
|
FRenaming: Boolean;
|
|
FRenaming: Boolean;
|
|
FDontUpdateStack: Boolean;
|
|
FDontUpdateStack: Boolean;
|
|
@@ -82,6 +83,7 @@ type
|
|
function GetTextColor(ASelected: boolean): TColor;
|
|
function GetTextColor(ASelected: boolean): TColor;
|
|
procedure UpdateComboBlendOp;
|
|
procedure UpdateComboBlendOp;
|
|
procedure SelectBlendOp;
|
|
procedure SelectBlendOp;
|
|
|
|
+ procedure QuerySelectBlendOp;
|
|
procedure SetZoomFactor(AValue: single);
|
|
procedure SetZoomFactor(AValue: single);
|
|
function DrawLayerItem(ABitmap: TBGRABitmap; ALayerPos: TPoint; ALayerIndex: integer; ASelected: boolean): TDrawLayerItemResult;
|
|
function DrawLayerItem(ABitmap: TBGRABitmap; ALayerPos: TPoint; ALayerIndex: integer; ASelected: boolean): TDrawLayerItemResult;
|
|
procedure DrawLayerStack(ABitmap: TBGRABitmap; ALayout: boolean; AUpdateItem: Integer);
|
|
procedure DrawLayerStack(ABitmap: TBGRABitmap; ALayout: boolean; AUpdateItem: Integer);
|
|
@@ -147,12 +149,24 @@ begin
|
|
if LazPaintInstance.Image.CurrentLayerIndex = 0 then
|
|
if LazPaintInstance.Image.CurrentLayerIndex = 0 then
|
|
LazPaintInstance.ToolManager.ToolPopup(tpmBlendOpBackground);
|
|
LazPaintInstance.ToolManager.ToolPopup(tpmBlendOpBackground);
|
|
FDontUpdateStack := false;
|
|
FDontUpdateStack := false;
|
|
|
|
+ FQuerySelectBlendOp:= false;
|
|
end else
|
|
end else
|
|
- SelectBlendOp;
|
|
|
|
|
|
+ QuerySelectBlendOp;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TLayerStackInterface.TimerQuery_Timer(Sender: TObject);
|
|
|
|
+begin
|
|
|
|
+ if FQuerySelectBlendOp then
|
|
|
|
+ begin
|
|
|
|
+ FQuerySelectBlendOp := false;
|
|
|
|
+ SelectBlendOp;
|
|
|
|
+ end
|
|
|
|
+ else
|
|
|
|
+ TimerQuery.Enabled:= false;
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TLayerStackInterface.TimerScroll_Timer(Sender: TObject);
|
|
procedure TLayerStackInterface.TimerScroll_Timer(Sender: TObject);
|
|
begin
|
|
begin
|
|
TimerScroll.Enabled := False;
|
|
TimerScroll.Enabled := False;
|
|
@@ -875,6 +889,7 @@ var
|
|
begin
|
|
begin
|
|
if FUpdatingComboBlendOp then exit;
|
|
if FUpdatingComboBlendOp then exit;
|
|
FUpdatingComboBlendOp := true;
|
|
FUpdatingComboBlendOp := true;
|
|
|
|
+ FQuerySelectBlendOp:= false;
|
|
blendOps := TStringList.Create;
|
|
blendOps := TStringList.Create;
|
|
selectedStr := '';
|
|
selectedStr := '';
|
|
blendOps.AddStrings(ComboBox_BlendOp.Items);
|
|
blendOps.AddStrings(ComboBox_BlendOp.Items);
|
|
@@ -930,6 +945,12 @@ begin
|
|
LazPaintInstance.ToolManager.ToolPopup(tpmBlendOpBackground);
|
|
LazPaintInstance.ToolManager.ToolPopup(tpmBlendOpBackground);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TLayerStackInterface.QuerySelectBlendOp;
|
|
|
|
+begin
|
|
|
|
+ TimerQuery.Enabled := true;
|
|
|
|
+ FQuerySelectBlendOp := true;
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TLayerStackInterface.ToolZoomLayerStackIn_Click(Sender: TObject);
|
|
procedure TLayerStackInterface.ToolZoomLayerStackIn_Click(Sender: TObject);
|
|
begin
|
|
begin
|
|
if Assigned(LazPaintInstance) then
|
|
if Assigned(LazPaintInstance) then
|
|
@@ -1029,6 +1050,11 @@ begin
|
|
TimerScroll.Enabled := false;
|
|
TimerScroll.Enabled := false;
|
|
TimerScroll.Interval := 30;
|
|
TimerScroll.Interval := 30;
|
|
TimerScroll.OnTimer:=@TimerScroll_Timer;
|
|
TimerScroll.OnTimer:=@TimerScroll_Timer;
|
|
|
|
+ TimerQuery := TTimer.Create(Container);
|
|
|
|
+ TimerQuery.Enabled := false;
|
|
|
|
+ TimerQuery.Interval := 200;
|
|
|
|
+ TimerQuery.OnTimer:=@TimerQuery_Timer;
|
|
|
|
+ FQuerySelectBlendOp:= false;
|
|
|
|
|
|
ApplyThemeAndDPI;
|
|
ApplyThemeAndDPI;
|
|
LazPaintInstance.Image.OnImageChanged.AddObserver(@LazPaint_ImageChanged);
|
|
LazPaintInstance.Image.OnImageChanged.AddObserver(@LazPaint_ImageChanged);
|