mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
ADD: actions to the HighLight Modern ToolBar Items in ViewerForm on macOS 11+
This commit is contained in:
parent
75954f00f6
commit
2c401b9945
3 changed files with 102 additions and 7 deletions
|
|
@ -543,6 +543,9 @@ type
|
|||
procedure onGifStateChanged(
|
||||
const viewer: TfrmViewer;
|
||||
const states: TViewerGifStates ); virtual;
|
||||
procedure onImageEditStateChanged(
|
||||
const viewer: TfrmViewer;
|
||||
const highlightButton: TToolButton ); virtual;
|
||||
end;
|
||||
|
||||
procedure ShowViewer(const FilesToView: TStringList; WaitData: TWaitData = nil); overload;
|
||||
|
|
@ -1109,6 +1112,8 @@ begin
|
|||
end;
|
||||
if actAutoReload.Checked then cm_AutoReload([]);
|
||||
end;
|
||||
|
||||
viewerFormHandler.onImageEditStateChanged( self, btnHightlight );
|
||||
end;
|
||||
|
||||
procedure TfrmViewer.FormResize(Sender: TObject);
|
||||
|
|
@ -1927,7 +1932,7 @@ begin
|
|||
Result:= DoZoom( 0.909, -1 );
|
||||
end;
|
||||
|
||||
procedure TfrmViewer.RotateImage(ADegree: integer);
|
||||
procedure TfrmViewer.RotateImage(ADegree: Integer);
|
||||
// ADegree now supported only 90,180,270 values
|
||||
var
|
||||
Q: QWord;
|
||||
|
|
@ -2302,6 +2307,8 @@ begin
|
|||
begin
|
||||
AdjustImageSize;
|
||||
end;
|
||||
|
||||
viewerFormHandler.onImageEditStateChanged( self, btnHightlight );
|
||||
end;
|
||||
|
||||
procedure TfrmViewer.StartCalcFolderSize;
|
||||
|
|
@ -2608,6 +2615,8 @@ begin
|
|||
btnPenColor.Enabled:= btnPaint.Down;
|
||||
ImgEdit:= True;
|
||||
CreateTmp;
|
||||
|
||||
viewerFormHandler.onImageEditStateChanged( self, btnHightlight );
|
||||
end;
|
||||
|
||||
procedure TfrmViewer.btnPenModeClick(Sender: TObject);
|
||||
|
|
@ -2984,6 +2993,7 @@ function TfrmViewer.LoadGraphics(const sFileName:String): Boolean;
|
|||
else
|
||||
gifStates:= [vgsIsGif];
|
||||
viewerFormHandler.onGifStateChanged( self, gifStates );
|
||||
viewerFormHandler.onImageEditStateChanged( self, btnHightlight );
|
||||
end;
|
||||
|
||||
var
|
||||
|
|
@ -3894,6 +3904,8 @@ begin
|
|||
btnSlideShow.Visible:=miFullScreen.Checked;
|
||||
AdjustImageSize;
|
||||
ShowOnTop;
|
||||
|
||||
viewerFormHandler.onImageEditStateChanged( self, btnHightlight );
|
||||
end;
|
||||
|
||||
procedure TfrmViewer.cm_Screenshot(const Params: array of string);
|
||||
|
|
@ -4255,6 +4267,12 @@ procedure TViewerFormHandler.onGifStateChanged(
|
|||
begin
|
||||
end;
|
||||
|
||||
procedure TViewerFormHandler.onImageEditStateChanged(
|
||||
const viewer: TfrmViewer;
|
||||
const highlightButton: TToolButton );
|
||||
begin
|
||||
end;
|
||||
|
||||
initialization
|
||||
viewerFormHandler:= TViewerFormHandler.Create;
|
||||
TFormCommands.RegisterCommandsForm(TfrmViewer, HotkeysCategory, @rsHotkeyCategoryViewer);
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ interface
|
|||
|
||||
uses
|
||||
Classes, SysUtils,
|
||||
LCLType, Forms, Menus,
|
||||
LCLType, Forms, Menus, ComCtrls,
|
||||
fMain, fEditor, fDiffer, fViewer,
|
||||
uHotkeyManager, uEarlyConfig, uGlobs, uLng, uDCUtils,
|
||||
uFileView, uBriefFileView, uColumnsFileView, uThumbFileView,
|
||||
|
|
|
|||
|
|
@ -39,7 +39,10 @@ type
|
|||
const mode: TViewerShowMode ); override;
|
||||
procedure onGifStateChanged(
|
||||
const viewer: TfrmViewer;
|
||||
const states: TViewerGifStates); override;
|
||||
const states: TViewerGifStates ); override;
|
||||
procedure onImageEditStateChanged(
|
||||
const viewer: TfrmViewer;
|
||||
const highlightButton: TToolButton ); override;
|
||||
end;
|
||||
|
||||
function getCurrentViewerForm: TfrmViewer;
|
||||
|
|
@ -221,6 +224,35 @@ begin
|
|||
form.btnGifToBmpClick( nil );
|
||||
end;
|
||||
|
||||
procedure viewerHighlightAction( const Sender: id );
|
||||
var
|
||||
form: TfrmViewer;
|
||||
begin
|
||||
form:= getCurrentViewerForm;
|
||||
if Assigned(form) then begin
|
||||
form.btnHightlight.Down:= NOT form.btnHightlight.Down;
|
||||
form.btnPaintHightlight( form.btnHightlight );
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure viewerCropAction( const Sender: id );
|
||||
var
|
||||
form: TfrmViewer;
|
||||
begin
|
||||
form:= getCurrentViewerForm;
|
||||
if Assigned(form) then
|
||||
form.btnCutTuImageClick( nil );
|
||||
end;
|
||||
|
||||
procedure viewerRedEyesAction( const Sender: id );
|
||||
var
|
||||
form: TfrmViewer;
|
||||
begin
|
||||
form:= getCurrentViewerForm;
|
||||
if Assigned(form) then
|
||||
form.btnRedEyeClick( nil );
|
||||
end;
|
||||
|
||||
procedure onViewerGetPenWidthMenu( const menu: TMenu );
|
||||
var
|
||||
i: Integer;
|
||||
|
|
@ -408,33 +440,36 @@ const
|
|||
identifier: 'ViewerForm.HighLight';
|
||||
priority: NSToolbarItemVisibilityPriorityStandard;
|
||||
navigational: False;
|
||||
iconName: 'paintbrush.pointed.fill';
|
||||
appValidates: True;
|
||||
iconName: 'paintbrush.pointed';
|
||||
title: 'Highlight';
|
||||
tips: 'Highlight';
|
||||
bordered: True;
|
||||
onAction: nil;
|
||||
onAction: @viewerHighlightAction;
|
||||
);
|
||||
|
||||
viewerCropItemConfig: TCocoaConfigToolBarItem = (
|
||||
identifier: 'ViewerForm.Crop';
|
||||
priority: NSToolbarItemVisibilityPriorityStandard;
|
||||
navigational: False;
|
||||
appValidates: True;
|
||||
iconName: 'crop';
|
||||
title: 'Crop';
|
||||
tips: 'Crop';
|
||||
bordered: True;
|
||||
onAction: nil;
|
||||
onAction: @viewerCropAction;
|
||||
);
|
||||
|
||||
viewerRedEyesItemConfig: TCocoaConfigToolBarItem = (
|
||||
identifier: 'ViewerForm.RedEyes';
|
||||
priority: NSToolbarItemVisibilityPriorityStandard;
|
||||
navigational: False;
|
||||
appValidates: True;
|
||||
iconName: 'eye';
|
||||
title: 'Red Eyes';
|
||||
tips: 'Red Eyes';
|
||||
bordered: True;
|
||||
onAction: nil;
|
||||
onAction: @viewerRedEyesAction;
|
||||
);
|
||||
|
||||
viewerPaintItemConfig: TCocoaConfigToolBarItem = (
|
||||
|
|
@ -707,3 +742,45 @@ begin
|
|||
item.setEnabled( exportEnabled );
|
||||
end;
|
||||
|
||||
procedure TCocoaViewerFormHandler.onImageEditStateChanged(
|
||||
const viewer: TfrmViewer;
|
||||
const highlightButton: TToolButton );
|
||||
var
|
||||
cropEnabled: Boolean;
|
||||
redEyesEnabled: Boolean;
|
||||
|
||||
toolBar: NSToolBar;
|
||||
item: NSToolBarItem;
|
||||
|
||||
highlightImageName: String;
|
||||
highlightImage: NSImage;
|
||||
begin
|
||||
viewerAttachImageToolBar( viewer );
|
||||
toolBar:= TCocoaToolBarUtils.getToolBar( viewer );
|
||||
if toolBar = nil then
|
||||
Exit;
|
||||
|
||||
if highlightButton.Down then begin
|
||||
cropEnabled:= True;
|
||||
redEyesEnabled:= True;
|
||||
end else begin
|
||||
cropEnabled:= False;
|
||||
redEyesEnabled:= False;
|
||||
end;
|
||||
|
||||
item:= TCocoaToolBarUtils.findItemByIdentifier( toolBar , 'ViewerForm.HighLight');
|
||||
item.setEnabled( highlightButton.Enabled );
|
||||
if highlightButton.Down then
|
||||
highlightImageName:= 'paintbrush.pointed.fill'
|
||||
else
|
||||
highlightImageName:= 'paintbrush.pointed';
|
||||
highlightImage:= NSImage.imageWithSystemSymbolName_accessibilityDescription(
|
||||
StringToNSString(highlightImageName), nil );
|
||||
item.setImage( highlightImage );
|
||||
|
||||
item:= TCocoaToolBarUtils.findItemByIdentifier( toolBar , 'ViewerForm.Crop');
|
||||
item.setEnabled( cropEnabled );
|
||||
item:= TCocoaToolBarUtils.findItemByIdentifier( toolBar , 'ViewerForm.RedEyes');
|
||||
item.setEnabled( redEyesEnabled );
|
||||
end;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue