mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
UPD: support dynamic search menu(sidebar finder tags) in Modern Form Style Tool Bar
This commit is contained in:
parent
7e347cffcd
commit
d28cd151f6
2 changed files with 56 additions and 59 deletions
|
|
@ -216,9 +216,9 @@ begin
|
|||
Result:= displayName.UTF8String;
|
||||
end;
|
||||
|
||||
function onGetFolderMenu: TMenuItem;
|
||||
procedure onGetFolderMenu( const menu: TMenu );
|
||||
var
|
||||
menu: TMenuItem;
|
||||
items: TMenuItem;
|
||||
tag: PtrInt = 0;
|
||||
|
||||
procedure newItem( imageName: String );
|
||||
|
|
@ -233,7 +233,7 @@ var
|
|||
lclItem.Caption:= folderName;
|
||||
lclItem.onClick:= @toolBarMenuHandler.goToFolder;
|
||||
lclItem.Tag:= tag;
|
||||
menu.Add( lclItem );
|
||||
items.Add( lclItem );
|
||||
|
||||
cocoaImage:= NSImage.imageWithSystemSymbolName_accessibilityDescription(
|
||||
NSSTR(imageName), nil );
|
||||
|
|
@ -244,7 +244,7 @@ var
|
|||
end;
|
||||
|
||||
begin
|
||||
menu:= TMenuItem.Create( frmMain );
|
||||
items:= menu.Items;
|
||||
newItem('doc');
|
||||
newItem('menubar.dock.rectangle');
|
||||
newItem('arrow.down.circle');
|
||||
|
|
@ -255,9 +255,8 @@ begin
|
|||
newItem('wrench.and.screwdriver.fill');
|
||||
newItem('l.circle');
|
||||
newItem('a.circle');
|
||||
menu.AddSeparator;
|
||||
items.AddSeparator;
|
||||
newItem('trash');
|
||||
Result:= menu;
|
||||
end;
|
||||
|
||||
function copyMenuItem( owner: TComponent; source: TMenuItem ): TMenuItem;
|
||||
|
|
@ -267,10 +266,7 @@ begin
|
|||
Result.Action:= source.Action;
|
||||
end;
|
||||
|
||||
function onGetCommandMenu: TMenuItem;
|
||||
var
|
||||
menu: TMenuItem;
|
||||
|
||||
procedure onGetCommandMenu( const menu: TMenu );
|
||||
function toItem( source: TMenuItem ): TMenuItem;
|
||||
begin
|
||||
Result:= copyMenuItem( menu, source );
|
||||
|
|
@ -305,45 +301,46 @@ var
|
|||
Result.OnClick:= @toolBarMenuHandler.showEditTagPanel;
|
||||
end;
|
||||
|
||||
begin
|
||||
menu:= TMenuItem.Create( frmMain );
|
||||
menu.Add( toItem(frmMain.miMultiRename) );
|
||||
menu.Add( toItem(frmMain.mnuFilesCmpCnt) );
|
||||
menu.Add( toItem(frmMain.mnuCmdSyncDirs) );
|
||||
menu.AddSeparator;
|
||||
menu.Add( toItem(frmMain.mnuCmdSearch) );
|
||||
menu.Add( toItem(frmMain.mnuCmdAddNewSearch) );
|
||||
menu.Add( toItem(frmMain.mnuCmdViewSearches) );
|
||||
menu.AddSeparator;
|
||||
menu.Add( createShowHotlistMenuItem );
|
||||
menu.Add( toItem(frmMain.mnuCmdConfigDirHotlist) );
|
||||
menu.AddSeparator;
|
||||
menu.Add( createShowFavoriteMenuItem );
|
||||
menu.Add( toItem(frmMain.mnuConfigFavoriteTabs) );
|
||||
menu.AddSeparator;
|
||||
menu.Add( createQuickLookMenuItem );
|
||||
menu.Add( toItem(frmMain.mnuQuickView) );
|
||||
menu.Add( toItem(frmMain.mnuFilesShwSysFiles) );
|
||||
menu.Add( toItem(frmMain.mnuShowOperations) );
|
||||
menu.AddSeparator;
|
||||
menu.Add( toItem(frmMain.miEditComment) );
|
||||
menu.Add( createTagMenuItem );
|
||||
menu.AddSeparator;
|
||||
menu.Add( toItem(frmMain.mnuFilesSymLink) );
|
||||
menu.Add( toItem(frmMain.mnuFilesHardLink) );
|
||||
menu.AddSeparator;
|
||||
menu.Add( toItem(frmMain.mnuSetFileProperties) );
|
||||
menu.Add( toItem(frmMain.mnuFilesProperties) );
|
||||
menu.AddSeparator;
|
||||
menu.Add( toItem(frmMain.mnuCheckSumCalc) );
|
||||
menu.Add( toItem(frmMain.mnuCheckSumVerify) );
|
||||
var
|
||||
items: TMenuItem;
|
||||
|
||||
Result:= menu;
|
||||
begin
|
||||
items:= menu.Items;
|
||||
items.Add( toItem(frmMain.miMultiRename) );
|
||||
items.Add( toItem(frmMain.mnuFilesCmpCnt) );
|
||||
items.Add( toItem(frmMain.mnuCmdSyncDirs) );
|
||||
items.AddSeparator;
|
||||
items.Add( toItem(frmMain.mnuCmdSearch) );
|
||||
items.Add( toItem(frmMain.mnuCmdAddNewSearch) );
|
||||
items.Add( toItem(frmMain.mnuCmdViewSearches) );
|
||||
items.AddSeparator;
|
||||
items.Add( createShowHotlistMenuItem );
|
||||
items.Add( toItem(frmMain.mnuCmdConfigDirHotlist) );
|
||||
items.AddSeparator;
|
||||
items.Add( createShowFavoriteMenuItem );
|
||||
items.Add( toItem(frmMain.mnuConfigFavoriteTabs) );
|
||||
items.AddSeparator;
|
||||
items.Add( createQuickLookMenuItem );
|
||||
items.Add( toItem(frmMain.mnuQuickView) );
|
||||
items.Add( toItem(frmMain.mnuFilesShwSysFiles) );
|
||||
items.Add( toItem(frmMain.mnuShowOperations) );
|
||||
items.AddSeparator;
|
||||
items.Add( toItem(frmMain.miEditComment) );
|
||||
items.Add( createTagMenuItem );
|
||||
items.AddSeparator;
|
||||
items.Add( toItem(frmMain.mnuFilesSymLink) );
|
||||
items.Add( toItem(frmMain.mnuFilesHardLink) );
|
||||
items.AddSeparator;
|
||||
items.Add( toItem(frmMain.mnuSetFileProperties) );
|
||||
items.Add( toItem(frmMain.mnuFilesProperties) );
|
||||
items.AddSeparator;
|
||||
items.Add( toItem(frmMain.mnuCheckSumCalc) );
|
||||
items.Add( toItem(frmMain.mnuCheckSumVerify) );
|
||||
end;
|
||||
|
||||
function onGetSearchMenu: TMenuItem;
|
||||
procedure onGetSearchMenu( const menu: TMenu );
|
||||
var
|
||||
menu: TMenuItem;
|
||||
items: TMenuItem;
|
||||
|
||||
procedure createSidebarTagMenuItem;
|
||||
var
|
||||
|
|
@ -356,7 +353,7 @@ var
|
|||
menuItem:= TMenuItem.Create( menu );
|
||||
menuItem.Caption:= tagName.UTF8String;
|
||||
menuItem.OnClick:= @toolBarMenuHandler.searchOneFinderTagAction;
|
||||
menu.Add( menuItem );
|
||||
items.Add( menuItem );
|
||||
end;
|
||||
uDarwinFinderUtil.attachSearchForTagsMenu( menu );
|
||||
end;
|
||||
|
|
@ -368,7 +365,7 @@ var
|
|||
menuItem:= TMenuItem.Create( menu );
|
||||
menuItem.Caption:= rsMFSTBISearchCombinedTags;
|
||||
menuItem.OnClick:= @toolBarMenuHandler.showFinderTagSelectorPanel;
|
||||
menu.Add( menuItem );
|
||||
items.Add( menuItem );
|
||||
end;
|
||||
|
||||
procedure createSearchFileMenuItem;
|
||||
|
|
@ -376,17 +373,16 @@ var
|
|||
menuItem: TMenuItem;
|
||||
begin
|
||||
menuItem:= copyMenuItem( menu, frmMain.mnuCmdSearch );
|
||||
menu.Add( menuItem );
|
||||
items.Add( menuItem );
|
||||
end;
|
||||
|
||||
begin
|
||||
menu:= TMenuItem.Create( frmMain );
|
||||
items:= menu.Items;
|
||||
createSidebarTagMenuItem;
|
||||
menu.AddSeparator;
|
||||
items.AddSeparator;
|
||||
createCombinedTagMenuItem;
|
||||
menu.AddSeparator;
|
||||
items.AddSeparator;
|
||||
createSearchFileMenuItem;
|
||||
Result:= menu;
|
||||
end;
|
||||
|
||||
procedure terminalAction( const Sender: id );
|
||||
|
|
@ -608,6 +604,7 @@ const
|
|||
onAction: nil;
|
||||
|
||||
showsIndicator: False;
|
||||
dynamic: True;
|
||||
menu: nil;
|
||||
onGetMenu: @onGetSearchMenu;
|
||||
);
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ type
|
|||
const positioningView: NSView; const edge: NSRectEdge );
|
||||
|
||||
class procedure attachFinderTagsMenu( const path: String; const lclMenu: TPopupMenu );
|
||||
class procedure attachSearchForTagsMenu( const lclMenu: TMenuItem );
|
||||
class procedure attachSearchForTagsMenu( const lclMenu: TMenu );
|
||||
private
|
||||
class procedure drawTagName( const tagName: NSString;
|
||||
const fontSize: CGFloat; const color: NSColor; const rect: NSRect );
|
||||
|
|
@ -914,7 +914,7 @@ begin
|
|||
menuView.release;
|
||||
end;
|
||||
|
||||
class procedure uDarwinFinderUtil.attachSearchForTagsMenu(const lclMenu: TMenuItem);
|
||||
class procedure uDarwinFinderUtil.attachSearchForTagsMenu(const lclMenu: TMenu);
|
||||
procedure setColorImage( const lclMenuItem: TMenuItem );
|
||||
var
|
||||
cocoaItem: NSMenuItem;
|
||||
|
|
@ -931,9 +931,9 @@ var
|
|||
i: Integer;
|
||||
count: Integer;
|
||||
begin
|
||||
count:= lclMenu.Count;
|
||||
count:= lclMenu.Items.Count;
|
||||
for i:=0 to count-1 do begin
|
||||
setColorImage( lclMenu[i] );
|
||||
setColorImage( lclMenu.Items[i] );
|
||||
end;
|
||||
end;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue