mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-31 00:42:39 +02:00
IDE: Restore the old working code for the ecGotoBookmarks, ecToggleBookmarks command (direct/root bookmark popup). This was incorrectly removed in a555d027da
. Issue #39540
This commit is contained in:
parent
d195570688
commit
6d768e7921
@ -80,6 +80,9 @@ type
|
||||
private
|
||||
function GetSection: TIDEMenuSection;
|
||||
protected
|
||||
procedure AddMenuItem(ACommand: TIDEMenuCommand); virtual;
|
||||
procedure AddMenuItems(ACommands: array of TIDEMenuCommand);
|
||||
procedure DoOnMenuItemClick(Sender: TObject);
|
||||
procedure DoOnMenuPopup(Sender: TObject);
|
||||
procedure RefreshMenu; virtual;
|
||||
property Section: TIDEMenuSection read GetSection;
|
||||
@ -248,6 +251,28 @@ begin
|
||||
DropdownMenu.OnPopup := @DoOnMenuPopup;
|
||||
end;
|
||||
|
||||
procedure TIDEToolButton_WithArrow.AddMenuItem(ACommand: TIDEMenuCommand);
|
||||
var
|
||||
Itm: TMenuItem;
|
||||
begin
|
||||
Itm := TMenuItem.Create(DropdownMenu);
|
||||
Itm.Caption := ACommand.Caption;
|
||||
Itm.ShortCut := ACommand.Command.AsShortCut;
|
||||
Itm.ImageIndex := ACommand.ImageIndex;
|
||||
Itm.Enabled := ACommand.Enabled;
|
||||
Itm.OnClick := @DoOnMenuItemClick;
|
||||
Itm.Tag := PtrInt(ACommand);
|
||||
DropdownMenu.Items.Add(Itm);
|
||||
end;
|
||||
|
||||
procedure TIDEToolButton_WithArrow.AddMenuItems(ACommands: array of TIDEMenuCommand);
|
||||
var
|
||||
Cmd: TIDEMenuCommand;
|
||||
begin
|
||||
for Cmd in ACommands do
|
||||
AddMenuItem(Cmd);
|
||||
end;
|
||||
|
||||
function TIDEToolButton_WithArrow.GetSection: TIDEMenuSection;
|
||||
begin
|
||||
Result:=nil;
|
||||
@ -272,6 +297,14 @@ begin
|
||||
DropdownMenu.Items.Assign(Section.MenuItem);
|
||||
end;
|
||||
|
||||
procedure TIDEToolButton_WithArrow.DoOnMenuItemClick(Sender: TObject);
|
||||
var
|
||||
Cmd: TIDEMenuCommand;
|
||||
begin
|
||||
Cmd:=TIDEMenuCommand((Sender as TMenuItem).Tag);
|
||||
Cmd.DoOnClick; // Sender in handler should be a command but not a menu item
|
||||
end;
|
||||
|
||||
{ TIDEToolButton_DropDown }
|
||||
|
||||
procedure TIDEToolButton_DropDown.DoOnAdded;
|
||||
|
@ -1881,20 +1881,12 @@ end;
|
||||
{ TToolButton_GotoBookmarks }
|
||||
|
||||
procedure TToolButton_GotoBookmarks.RefreshMenu;
|
||||
var
|
||||
cmd: TIDEMenuCommand;
|
||||
begin
|
||||
for cmd in SrcEditMenuGotoBookmark do
|
||||
if cmd <> nil then begin
|
||||
cmd.CreateNewMenuItem;
|
||||
DropdownMenu.Items.Add(cmd.MenuItem);
|
||||
end;
|
||||
AddMenuItems(SrcEditMenuGotoBookmark);
|
||||
DropdownMenu.Items.AddSeparator;
|
||||
SrcEditMenuPrevBookmark.CreateNewMenuItem;
|
||||
SrcEditMenuNextBookmark.CreateNewMenuItem;
|
||||
DropdownMenu.Items.Add([
|
||||
SrcEditMenuPrevBookmark.MenuItem,
|
||||
SrcEditMenuNextBookmark.MenuItem]);
|
||||
AddMenuItems([
|
||||
SrcEditMenuPrevBookmark,
|
||||
SrcEditMenuNextBookmark]);
|
||||
end;
|
||||
|
||||
class procedure TToolButton_GotoBookmarks.ShowAloneMenu(Sender: TObject); // on shortcuts only
|
||||
@ -1911,23 +1903,14 @@ end;
|
||||
{ TToolButton_ToggleBookmarks }
|
||||
|
||||
procedure TToolButton_ToggleBookmarks.RefreshMenu;
|
||||
var
|
||||
cmd: TIDEMenuCommand;
|
||||
begin
|
||||
for cmd in SrcEditMenuToggleBookmark do
|
||||
if cmd <> nil then begin
|
||||
cmd.CreateNewMenuItem;
|
||||
DropdownMenu.Items.Add(cmd.MenuItem);
|
||||
end;
|
||||
AddMenuItems(SrcEditMenuToggleBookmark);
|
||||
DropdownMenu.Items.AddSeparator;
|
||||
SrcEditMenuSetFreeBookmark.CreateNewMenuItem;
|
||||
DropdownMenu.Items.Add(SrcEditMenuSetFreeBookmark.MenuItem);
|
||||
AddMenuItem(SrcEditMenuSetFreeBookmark);
|
||||
DropdownMenu.Items.AddSeparator;
|
||||
SrcEditMenuClearFileBookmark.CreateNewMenuItem;
|
||||
SrcEditMenuClearAllBookmark.CreateNewMenuItem;
|
||||
DropdownMenu.Items.Add([
|
||||
SrcEditMenuClearFileBookmark.MenuItem,
|
||||
SrcEditMenuClearAllBookmark.MenuItem]);
|
||||
AddMenuItems([
|
||||
SrcEditMenuClearFileBookmark,
|
||||
SrcEditMenuClearAllBookmark]);
|
||||
end;
|
||||
|
||||
class procedure TToolButton_ToggleBookmarks.ShowAloneMenu(Sender: TObject); // on shortcuts only
|
||||
|
Loading…
Reference in New Issue
Block a user