mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
ADD: facilities for dynamically attaching/deattaching ToolBar Items
This commit is contained in:
parent
765391e798
commit
cb25db5dac
2 changed files with 77 additions and 30 deletions
|
|
@ -8,7 +8,7 @@ interface
|
|||
uses
|
||||
Classes, SysUtils,
|
||||
LCLType, Forms, Menus,
|
||||
fMain, fEditor, fDiffer,
|
||||
fMain, fEditor, fDiffer, fViewer,
|
||||
uHotkeyManager, uEarlyConfig, uGlobs, uLng, uDCUtils,
|
||||
uFileView, uBriefFileView, uColumnsFileView, uThumbFileView,
|
||||
uFileSystemFileSource,
|
||||
|
|
|
|||
|
|
@ -1,3 +1,78 @@
|
|||
var
|
||||
viewerImageItemsIdentifiers: TStringArray = (
|
||||
'ViewerForm.ZoomIn',
|
||||
'ViewerForm.ZoomOut',
|
||||
'NSToolbarFlexibleSpaceItem',
|
||||
'ViewerForm.Rotate270',
|
||||
'ViewerForm.Rotate90',
|
||||
'ViewerForm.Mirror',
|
||||
'NSToolbarFlexibleSpaceItem',
|
||||
|
||||
'ViewerForm.GifMove',
|
||||
'ViewerForm.GifPrev',
|
||||
'ViewerForm.GifNext',
|
||||
'ViewerForm.GifExport',
|
||||
'NSToolbarFlexibleSpaceItem',
|
||||
|
||||
'ViewerForm.HighLight',
|
||||
'ViewerForm.Crop',
|
||||
'ViewerForm.RedEyes',
|
||||
'NSToolbarFlexibleSpaceItem',
|
||||
|
||||
'ViewerForm.Paint',
|
||||
'ViewerForm.PenMode',
|
||||
'ViewerForm.PenWidth',
|
||||
'ViewerForm.PenColor',
|
||||
|
||||
'NSToolbarFlexibleSpaceItem',
|
||||
'ViewerForm.Resize',
|
||||
'ViewerForm.Slide'
|
||||
);
|
||||
|
||||
function getCurrentViewerForm: TfrmViewer;
|
||||
var
|
||||
form: TCustomForm;
|
||||
begin
|
||||
Result:= nil;
|
||||
form:= Screen.ActiveCustomForm;
|
||||
if form is TfrmViewer then
|
||||
Result:= TfrmViewer(form);
|
||||
end;
|
||||
|
||||
procedure viewerAttachImageToolBar( const Sender: id );
|
||||
var
|
||||
toolBar: NSToolBar;
|
||||
i: Integer;
|
||||
begin
|
||||
toolBar:= TCocoaToolBarUtils.getToolBar( getCurrentViewerForm );
|
||||
if toolBar = nil then
|
||||
Exit;
|
||||
|
||||
if TCocoaToolBarUtils.findItemIndexByIdentifier(toolBar,viewerImageItemsIdentifiers[0]) > 0 then
|
||||
Exit;
|
||||
|
||||
for i:= 0 to Length(viewerImageItemsIdentifiers)-1 do
|
||||
TCocoaToolBarUtils.addItemWithIdentifier( toolBar, viewerImageItemsIdentifiers[i] );
|
||||
end;
|
||||
|
||||
procedure viewerDeattachImageToolBar( const Sender: id );
|
||||
var
|
||||
toolBar: NSToolBar;
|
||||
index: Integer;
|
||||
i: Integer;
|
||||
begin
|
||||
toolBar:= TCocoaToolBarUtils.getToolBar( getCurrentViewerForm );
|
||||
if toolBar = nil then
|
||||
Exit;
|
||||
|
||||
index:= TCocoaToolBarUtils.findItemIndexByIdentifier( toolBar, viewerImageItemsIdentifiers[0] );
|
||||
if index < 0 then
|
||||
Exit;
|
||||
|
||||
for i:= toolBar.items.count-1 downto index do
|
||||
TCocoaToolBarUtils.removeItemByIndex( toolBar, i );
|
||||
end;
|
||||
|
||||
procedure onViewerGetPenWidthMenu( const menu: TMenu );
|
||||
var
|
||||
i: Integer;
|
||||
|
|
@ -339,35 +414,7 @@ const
|
|||
'ViewerForm.Next',
|
||||
'ViewerForm.CopyFile',
|
||||
'ViewerForm.MoveFile',
|
||||
'ViewerForm.DeleteFile',
|
||||
|
||||
'ViewerForm.ZoomIn',
|
||||
'ViewerForm.ZoomOut',
|
||||
'NSToolbarFlexibleSpaceItem',
|
||||
'ViewerForm.Rotate270',
|
||||
'ViewerForm.Rotate90',
|
||||
'ViewerForm.Mirror',
|
||||
'NSToolbarFlexibleSpaceItem',
|
||||
|
||||
'ViewerForm.GifMove',
|
||||
'ViewerForm.GifPrev',
|
||||
'ViewerForm.GifNext',
|
||||
'ViewerForm.GifExport',
|
||||
'NSToolbarFlexibleSpaceItem',
|
||||
|
||||
'ViewerForm.HighLight',
|
||||
'ViewerForm.Crop',
|
||||
'ViewerForm.RedEyes',
|
||||
'NSToolbarFlexibleSpaceItem',
|
||||
|
||||
'ViewerForm.Paint',
|
||||
'ViewerForm.PenMode',
|
||||
'ViewerForm.PenWidth',
|
||||
'ViewerForm.PenColor',
|
||||
|
||||
'NSToolbarFlexibleSpaceItem',
|
||||
'ViewerForm.Resize',
|
||||
'ViewerForm.Slide'
|
||||
'ViewerForm.DeleteFile'
|
||||
);
|
||||
allowedItemsIdentifiers: (
|
||||
'ViewerForm.Reload',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue