Two new toolbar commands for bookmarks. Issue #0033947 Patch by FTurtle

git-svn-id: trunk@58500 -
This commit is contained in:
martin 2018-07-13 12:23:16 +00:00
parent 57affab688
commit 38d48bbdbd
51 changed files with 291 additions and 58 deletions

6
.gitattributes vendored
View File

@ -7875,6 +7875,9 @@ images/menu/menu_goto_bookmark8_200.png -text
images/menu/menu_goto_bookmark9.png -text
images/menu/menu_goto_bookmark9_150.png -text
images/menu/menu_goto_bookmark9_200.png -text
images/menu/menu_goto_bookmarks.png -text
images/menu/menu_goto_bookmarks_150.png -text
images/menu/menu_goto_bookmarks_200.png -text
images/menu/menu_goto_line.png -text svneol=unset#image/png
images/menu/menu_goto_line_150.png -text
images/menu/menu_goto_line_200.png -text
@ -8066,6 +8069,9 @@ images/menu/menu_toggle_bookmark8_200.png -text
images/menu/menu_toggle_bookmark9.png -text
images/menu/menu_toggle_bookmark9_150.png -text
images/menu/menu_toggle_bookmark9_200.png -text
images/menu/menu_toggle_bookmarks.png -text
images/menu/menu_toggle_bookmarks_150.png -text
images/menu/menu_toggle_bookmarks_200.png -text
images/menu/menu_tool_check_lfm.png -text svneol=unset#image/png
images/menu/menu_tool_check_lfm_150.png -text
images/menu/menu_tool_check_lfm_200.png -text

View File

@ -253,6 +253,8 @@ const
ecClearBookmarkForFile = ecFirstLazarus + 384;
ecClearAllBookmark = ecFirstLazarus + 385;
ecGotoBookmarks = ecFirstLazarus + 386;
ecToggleBookmarks = ecFirstLazarus + 387;
// Macro
ecSynMacroRecord = ecFirstLazarus + 390;
@ -1922,7 +1924,7 @@ begin
end;
const
IDEEditorCommandStrs: array[0..317] of TIdentMapEntry = (
IDEEditorCommandStrs: array[0..319] of TIdentMapEntry = (
// search
(Value: ecFind; Name: 'ecFind'),
(Value: ecFindAgain; Name: 'ecFindAgain'),
@ -2118,6 +2120,8 @@ const
(Value: ecNextBookmark; Name: 'ecNextBookmark'),
(Value: ecClearBookmarkForFile; Name: 'ecClearBookmarkForFile'),
(Value: ecClearAllBookmark; Name: 'ecClearAllBookmark'),
(Value: ecGotoBookmarks; Name: 'ecGotoBookmarks'),
(Value: ecToggleBookmarks; Name: 'ecToggleBookmarks'),
// Macro
(Value: ecSynMacroRecord; Name: 'ecSynMacroRecord'),

View File

@ -589,6 +589,8 @@ type
SearchFor, ReplaceText: string; Flags: TSrcEditSearchOptions;
var Prompt: boolean; Progress: TIDESearchInTextProgress = nil): TModalResult;
TBookmarkNumRange = 0..9;
var
IDESearchInText: TIDESearchInTextFunction = nil;// set by the IDE

View File

@ -16,7 +16,8 @@ unit ToolBarIntf;
interface
uses
Classes, SysUtils, Controls, ComCtrls, IDECommands, MenuIntf;
Classes, SysUtils, Controls, ComCtrls, IDECommands, MenuIntf, IDEImagesIntf,
SrcEditorIntf, Menus, Forms;
type
TIDEToolButton = class;
@ -60,6 +61,36 @@ type
property Item: TIDEButtonCommand read FItem write FItem;
end;
{ TIDEToolButtonWithArrow }
TIDEToolButtonWithArrow = class(TIDEToolButton)
protected
procedure AddMenuItem(ACommand: TIDEMenuCommand); virtual;
procedure AddMenuItems(ACommands: array of TIDEMenuCommand);
procedure DoOnMenuItemClick(Sender: TObject);
procedure DoOnMenuPopup(Sender: TObject);
procedure RefreshMenu; virtual;
public
constructor Create(AOwner: TComponent); override;
end;
{ TIDEToolButton_ButtonDrop }
TIDEToolButton_ButtonDrop = class(TIDEToolButtonWithArrow)
protected
procedure PopUpAloneMenu;
public
procedure DoOnAdded; override;
end;
{ TIDEToolButton_DropDown }
TIDEToolButton_DropDown = class(TIDEToolButtonWithArrow)
public
procedure DoOnAdded; override;
end;
TIDEToolButtonCategory = class
private
FButtons: TFPList;
@ -155,6 +186,93 @@ begin
Result := IDEToolButtonCategories.AddButton(aCommand);
end;
{ TIDEToolButtonWithArrow }
constructor TIDEToolButtonWithArrow.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
DropdownMenu := TPopupMenu.Create(Self);
DropdownMenu.Images := IDEImages.Images_16;
DropdownMenu.OnPopup := @DoOnMenuPopup;
end;
procedure TIDEToolButtonWithArrow.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 TIDEToolButtonWithArrow.AddMenuItems(ACommands: array of TIDEMenuCommand);
var
Cmd: TIDEMenuCommand;
begin
for Cmd in ACommands do
AddMenuItem(Cmd);
end;
procedure TIDEToolButtonWithArrow.DoOnMenuPopup(Sender: TObject);
begin
DropdownMenu.Items.Clear;
RefreshMenu;
end;
procedure TIDEToolButtonWithArrow.RefreshMenu;
begin
{ Override this method in descendants.
DropdownMenu fully regenerates for every showing on OnPopup event.
So, RefreshMenu calling happens:
- On click to arrow (Style=tbsDropDown)
- On click to button (Style=tbsButtonDrop)
- On popup alone menu in static methods (on shortcuts)
of TIDEToolButton_ButtonDrop descendants (Style is not matter)
At calling time:
- Instance of DropdownMenu exists
- DropdownMenu is empty }
end;
procedure TIDEToolButtonWithArrow.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_ButtonDrop }
procedure TIDEToolButton_ButtonDrop.DoOnAdded;
begin
Style := tbsButtonDrop; // not in constructor
end;
procedure TIDEToolButton_ButtonDrop.PopUpAloneMenu;
var
ActiveEditor: TSourceEditorInterface;
ScreenXY: TPoint;
begin
ActiveEditor := SourceEditorManagerIntf.ActiveEditor;
if ActiveEditor=nil then
Exit;
ScreenXY := ActiveEditor.EditorControl.ClientToScreen(Point(0, 0));
DropdownMenu.PopUp(ScreenXY.X, ScreenXY.Y);
end;
{ TIDEToolButton_DropDown }
procedure TIDEToolButton_DropDown.DoOnAdded;
begin
Style := tbsDropDown; // not in constructor
end;
{ TIDEToolButtonsEnumerator }
constructor TIDEToolButtonsEnumerator.Create(AButtons: TIDEToolButtons);

View File

@ -36,7 +36,7 @@ uses
// SynEdit
SynEdit, SynHighlighterPas, SynPluginMultiCaret,
// IdeIntf
IDEOptionsIntf, IDEOptEditorIntf, IDEUtils,
IDEOptionsIntf, IDEOptEditorIntf, IDEUtils, SrcEditorIntf,
// IDE
EditorOptions, LazarusIDEStrConsts, IDEProcs;
@ -408,7 +408,7 @@ begin
FDefaultBookmarkImages := TImageList.Create(Self);
FDefaultBookmarkImages.Width := 11;
FDefaultBookmarkImages.Height := 11;
for i := 0 to 9 do
for i in TBookmarkNumRange do
FDefaultBookmarkImages.AddResourceName(HInstance, 'bookmark' + IntToStr(i));
end;
Result := FDefaultBookmarkImages;

View File

@ -33,7 +33,7 @@ uses
// SynEdit
SynEdit, SynBeautifier, SynHighlighterPas, SynEditKeyCmds,
// IdeIntf
IDEOptionsIntf, IDEOptEditorIntf, IDEUtils,
IDEOptionsIntf, IDEOptEditorIntf, IDEUtils, SrcEditorIntf,
// IDE
EditorOptions, LazarusIDEStrConsts, IDEProcs, KeyMapping,
editor_keymapping_options, editor_general_options;
@ -662,7 +662,7 @@ begin
FDefaultBookmarkImages := TImageList.Create(Self);
FDefaultBookmarkImages.Width := 11;
FDefaultBookmarkImages.Height := 11;
for i := 0 to 9 do
for i in TBookmarkNumRange do
FDefaultBookmarkImages.AddResourceName(HInstance, 'bookmark' + IntToStr(i));
end;
Result := FDefaultBookmarkImages;

View File

@ -442,7 +442,8 @@ begin
ecSetMarker9 : Result:= Format(srkmecSetMarker,[cmd-ecSetMarker0]);
ecToggleMarker0 ..
ecToggleMarker9 : Result:= Format(srkmecToggleMarker,[cmd-ecToggleMarker0]);
ecGotoBookmarks : Result:= uemGotoBookmarks;
ecToggleBookmarks : Result:= uemToggleBookmarks;
ecBlockSetBegin : Result := srkmecBlockSetBegin;
ecBlockSetEnd : Result := srkmecBlockSetEnd;
ecBlockToggleHide : Result := srkmecBlockToggleHide;
@ -1159,6 +1160,8 @@ begin
ecSetMarker7: SetSingle(VK_UNKNOWN,[]);
ecSetMarker8: SetSingle(VK_UNKNOWN,[]);
ecSetMarker9: SetSingle(VK_UNKNOWN,[]);
ecGotoBookmarks: SetSingle(VK_B,[ssCtrl]);
ecToggleBookmarks: SetSingle(VK_B,[ssCtrl,ssShift]);
// codetools
ecAutoCompletion: SetSingle(VK_J,[XCtrl]);
@ -1685,6 +1688,8 @@ begin
EcFoldCurrent: SetSingle(VK_OEM_PLUS,[ssAlt,ssShift]);
EcUnFoldCurrent: SetSingle(VK_OEM_MINUS,[ssAlt,ssShift]);
EcToggleMarkupWord: SetSingle(VK_M,[ssAlt]);
ecGotoBookmarks: SetSingle(VK_B,[ssCtrl]);
ecToggleBookmarks: SetSingle(VK_B,[ssCtrl,ssShift]);
// file menu
ecNew: SetSingle(VK_UNKNOWN,[]);
@ -2311,6 +2316,9 @@ begin
EcToggleMarkupWord: SetSingle(VK_M,[ssMeta]);
*)
ecGotoBookmarks: SetSingle(VK_UNKNOWN,[]);
ecToggleBookmarks: SetSingle(VK_UNKNOWN,[]);
// file menu
ecNew: SetSingle(VK_N,[ssMeta]);
ecNewUnit: SetSingle(VK_UNKNOWN,[]);
@ -2814,6 +2822,7 @@ begin
AddDefault(C, 'Clear all Bookmarks', srkmecClearAllBookmark, ecClearAllBookmark);
AddDefault(C, 'Previous Bookmark', srkmecPrevBookmark, ecPrevBookmark);
AddDefault(C, 'Next Bookmark', srkmecNextBookmark, ecNextBookmark);
AddDefault(C, 'Go to Bookmark...', uemGotoBookmarks, ecGotoBookmarks);
AddDefault(C, 'Go to marker 0', lisKMGoToMarker0, ecGotoMarker0);
AddDefault(C, 'Go to marker 1', lisKMGoToMarker1, ecGotoMarker1);
AddDefault(C, 'Go to marker 2', lisKMGoToMarker2, ecGotoMarker2);
@ -2834,6 +2843,7 @@ begin
AddDefault(C, 'Set marker 7', lisKMSetMarker7, ecSetMarker7);
AddDefault(C, 'Set marker 8', lisKMSetMarker8, ecSetMarker8);
AddDefault(C, 'Set marker 9', lisKMSetMarker9, ecSetMarker9);
AddDefault(C, 'Toggle Bookmark...', uemToggleBookmarks, ecToggleBookmarks);
AddDefault(C, 'Toggle marker 0', lisKMToggleMarker0, ecToggleMarker0);
AddDefault(C, 'Toggle marker 1', lisKMToggleMarker1, ecToggleMarker1);
AddDefault(C, 'Toggle marker 2', lisKMToggleMarker2, ecToggleMarker2);

View File

@ -2834,6 +2834,7 @@ resourcestring
uemCopyFilename = 'Copy Filename';
lisCopyFilename = 'Copy Filename %s';
uemGotoBookmark = '&Goto Bookmark';
uemGotoBookmarks = 'Goto Bookmark...';
uemSetFreeBookmark = 'Set a Free Bookmark';
uemNextBookmark = 'Goto Next Bookmark';
uemPrevBookmark = 'Goto Previous Bookmark';
@ -2848,6 +2849,7 @@ resourcestring
lisOpenLfm = 'Open %s';
lisUtf8WithBOM = 'UTF-8 with BOM';
uemToggleBookmark = '&Toggle Bookmark';
uemToggleBookmarks = 'Toggle Bookmark...';
uemReadOnly = 'Read Only';
uemShowLineNumbers = 'Show Line Numbers';
lisDisableI18NForLFM = 'Disable I18N for LFM';

View File

@ -8521,7 +8521,7 @@ begin
if not UpdateBookmarkCommandsStamp.Changed(BookmarksStamp) then
Exit;
for BookMarkID:=0 to 9 do begin
for BookMarkID in TBookmarkNumRange do begin
MarkDesc:=' '+IntToStr(BookMarkID);
BookmarkAvail:=False;
i := 0;
@ -10705,7 +10705,7 @@ var
UInfo: TUnitInfo;
begin
if ID = -1 then begin
for i := 0 to 9 do begin
for i in TBookmarkNumRange do begin
//b := Project1.Bookmarks[i];
UInfo := TUnitInfo(Project1.Bookmarks.UnitInfoForBookmarkWithIndex(i));
if UInfo <> nil then begin

View File

@ -55,6 +55,7 @@ uses
{$IFDEF IDE_MEM_CHECK}
MemCheck,
{$ENDIF}
// RTL + FCL
Classes, SysUtils, Types, Math,
// LCL
LCLProc, Buttons, Menus, ComCtrls, Controls, Graphics, Dialogs, Forms, ImgList,
@ -204,12 +205,9 @@ type
{ TJumpToSectionToolButton }
TJumpToSectionToolButton = class(TIDEToolButton)
private
procedure AddMenuItem(aCmd: TIDEMenuCommand);
public
procedure DoOnAdded; override;
procedure RefreshMenu;
TJumpToSectionToolButton = class(TIDEToolButton_DropDown)
protected
procedure RefreshMenu; override;
end;
{ TSetBuildModeToolButton }
@ -599,37 +597,14 @@ end;
{ TJumpToSectionToolButton }
procedure TJumpToSectionToolButton.DoOnAdded;
begin
inherited DoOnAdded;
RefreshMenu;
end;
procedure TJumpToSectionToolButton.AddMenuItem(aCmd: TIDEMenuCommand);
var
xItem: TMenuItem;
begin
xItem := TMenuItem.Create(DropdownMenu);
DropdownMenu.Items.Add(xItem);
xItem.Caption := aCmd.Caption;
xItem.OnClick := aCmd.OnClick;
xItem.ImageIndex := aCmd.ImageIndex;
end;
procedure TJumpToSectionToolButton.RefreshMenu;
begin
if DropdownMenu = nil then
begin
DropdownMenu := TPopupMenu.Create(Self);
if Assigned(FToolBar) then
DropdownMenu.Images := FToolBar.Images;
Style := tbsDropDown;
end;
DropdownMenu.Items.Clear;
AddMenuItem(MainIDEBar.itmJumpToInterface);
AddMenuItem(MainIDEBar.itmJumpToInterfaceUses);
DropdownMenu.Items.AddSeparator;
AddMenuItem(MainIDEBar.itmJumpToImplementation);
AddMenuItem(MainIDEBar.itmJumpToImplementationUses);
DropdownMenu.Items.AddSeparator;
AddMenuItem(MainIDEBar.itmJumpToInitialization);
end;

View File

@ -1358,6 +1358,10 @@ var
SrcEditMenuSetFreeBookmark: TIDEMenuCommand;
SrcEditMenuClearFileBookmark: TIDEMenuCommand;
SrcEditMenuClearAllBookmark: TIDEMenuCommand;
SrcEditMenuGotoBookmark: array [TBookmarkNumRange] of TIDEMenuCommand;
SrcEditMenuGotoBookmarks: TIDEMenuCommand;
SrcEditMenuToggleBookmark: array [TBookmarkNumRange] of TIDEMenuCommand;
SrcEditMenuToggleBookmarks: TIDEMenuCommand;
// debugging
SrcEditMenuToggleBreakpoint: TIDEMenuCommand;
SrcEditMenuRunToCursor: TIDEMenuCommand;
@ -1422,6 +1426,27 @@ var
EnglishModifiedLGPLNotice: string;
EnglishMITNotice: string;
type
{ TToolButton_GotoBookmarks }
TToolButton_GotoBookmarks = class(TIDEToolButton_ButtonDrop)
protected
procedure RefreshMenu; override;
public
class procedure ShowAloneMenu(Sender: TObject); static;
end;
{ TToolButton_ToggleBookmarks }
TToolButton_ToggleBookmarks = class(TIDEToolButton_ButtonDrop)
protected
procedure RefreshMenu; override;
public
class procedure ShowAloneMenu(Sender: TObject); static;
end;
implementation
{$R *.lfm}
@ -1657,32 +1682,56 @@ begin
SrcEditMenuSectionMarks:=RegisterIDEMenuSection(SourceEditorMenuRoot, 'Marks section');
// register the Goto Bookmarks Submenu
SrcEditSubMenuGotoBookmarks:=RegisterIDESubMenu(SrcEditMenuSectionMarks,
'Goto bookmarks',uemGotoBookmark);
'Goto bookmarks submenu', uemGotoBookmark, nil, nil, 'menu_goto_bookmarks');
AParent:=SrcEditSubMenuGotoBookmarks;
for I := 0 to 9 do
RegisterIDEMenuCommand(AParent,'GotoBookmark'+IntToStr(I),
uemBookmarkN+IntToStr(I), nil, @ExecuteIdeMenuClick, nil, 'menu_goto_bookmark'+IntToStr(I));
for I in TBookmarkNumRange do
SrcEditMenuGotoBookmark[I]:=RegisterIDEMenuCommand(AParent,
'GotoBookmark'+IntToStr(I), uemBookmarkN+IntToStr(I),
nil, @ExecuteIdeMenuClick, nil,
'menu_goto_bookmark'+IntToStr(I));
AParent:=RegisterIDEMenuSection(AParent, 'Next/Prev Bookmark section');
SrcEditMenuNextBookmark:=RegisterIDEMenuCommand(AParent,
'Goto next Bookmark',uemNextBookmark, nil,
@ExecuteIdeMenuClick, nil, 'menu_search_next_bookmark');
SrcEditMenuPrevBookmark:=RegisterIDEMenuCommand(AParent,
'Goto previous Bookmark',uemPrevBookmark, nil,
@ExecuteIdeMenuClick, nil, 'menu_search_previous_bookmark');
{For toolbar only. Hidden in menu.}
SrcEditMenuGotoBookmarks:=RegisterIDEMenuCommand(AParent,
'Goto bookmarks', uemGotoBookmarks,
nil, TNotifyProcedure(@TToolButton_GotoBookmarks.ShowAloneMenu), nil,
'menu_goto_bookmarks');
SrcEditMenuGotoBookmarks.Visible:=False;
{%endregion}
{%region *** Toggle Bookmarks Submenu ***}
SrcEditSubMenuToggleBookmarks:=RegisterIDESubMenu(SrcEditMenuSectionMarks,
'Toggle bookmarks',uemToggleBookmark);
'Toggle bookmarks submenu', uemToggleBookmark, nil, nil, 'menu_toggle_bookmarks');
AParent:=SrcEditSubMenuToggleBookmarks;
for I := 0 to 9 do
RegisterIDEMenuCommand(AParent, 'ToggleBookmark'+IntToStr(I),
uemBookmarkN+IntToStr(I), nil, @ExecuteIdeMenuClick, nil, 'menu_toggle_bookmark'+IntToStr(I));
for I in TBookmarkNumRange do
SrcEditMenuToggleBookmark[I]:=RegisterIDEMenuCommand(AParent,
'ToggleBookmark'+IntToStr(I), uemBookmarkN+IntToStr(I),
nil, @ExecuteIdeMenuClick, nil,
'menu_toggle_bookmark'+IntToStr(I));
AParent:=RegisterIDEMenuSection(AParent, 'Set Free Bookmark section');
SrcEditMenuSetFreeBookmark:=RegisterIDEMenuCommand(AParent,
'Set a free Bookmark',uemSetFreeBookmark, nil, @ExecuteIdeMenuClick, nil, 'menu_set_free_bookmark');
AParent:=RegisterIDEMenuSection(AParent, 'Clear Bookmarks section');
SrcEditMenuClearFileBookmark:=RegisterIDEMenuCommand(AParent,
'Clear Bookmark for current file',srkmecClearBookmarkForFile, nil, @ExecuteIdeMenuClick, nil, 'menu_clear_file_bookmarks');
SrcEditMenuClearAllBookmark:=RegisterIDEMenuCommand(AParent,
'Clear all Bookmark',srkmecClearAllBookmark, nil, @ExecuteIdeMenuClick, nil, 'menu_clear_all_bookmarks');
{For toolbar only. Hidden in menu.}
SrcEditMenuToggleBookmarks:=RegisterIDEMenuCommand(AParent,
'Toggle bookmarks', uemToggleBookmarks,
nil, TNotifyProcedure(@TToolButton_ToggleBookmarks.ShowAloneMenu), nil,
'menu_toggle_bookmarks');
SrcEditMenuToggleBookmarks.Visible:=False;
{%endregion}
{%region *** Debug Section ***}
@ -1791,6 +1840,51 @@ begin
Result:=CompareFilenames(AnsiString(FileNameStr),SE1.FileName);
end;
{ TToolButton_GotoBookmarks }
procedure TToolButton_GotoBookmarks.RefreshMenu;
begin
AddMenuItems(SrcEditMenuGotoBookmark);
DropdownMenu.Items.AddSeparator;
AddMenuItems([
SrcEditMenuPrevBookmark,
SrcEditMenuNextBookmark]);
end;
class procedure TToolButton_GotoBookmarks.ShowAloneMenu(Sender: TObject); // on shortcuts only
const
Btn: TToolButton_GotoBookmarks=nil; // static var
begin
if Btn = nil then
Btn := TToolButton_GotoBookmarks.Create(Application);
Btn.PopUpAloneMenu;
// Btn should not be destroyed immediately after PopUp
end;
{ TToolButton_ToggleBookmarks }
procedure TToolButton_ToggleBookmarks.RefreshMenu;
begin
AddMenuItems(SrcEditMenuToggleBookmark);
DropdownMenu.Items.AddSeparator;
AddMenuItem(SrcEditMenuSetFreeBookmark);
DropdownMenu.Items.AddSeparator;
AddMenuItems([
SrcEditMenuClearFileBookmark,
SrcEditMenuClearAllBookmark]);
end;
class procedure TToolButton_ToggleBookmarks.ShowAloneMenu(Sender: TObject); // on shortcuts only
const
Btn: TToolButton_ToggleBookmarks=nil; // static var
begin
if Btn = nil then
Btn := TToolButton_ToggleBookmarks.Create(Application);
Btn.PopUpAloneMenu;
// Btn should not be destroyed immediately after PopUp
end;
{ TSourceEditorWordCompletion }
constructor TSourceEditorWordCompletion.Create;
@ -4060,7 +4154,7 @@ Begin
end;
ecClearBookmarkForFile: begin
if Assigned(Manager) and Assigned(Manager.OnClearBookmarkId) then
for i := 0 to 9 do
for i in TBookmarkNumRange do
if EditorComponent.GetBookMark(i,x{%H-},y{%H-}) then
Manager.OnClearBookmarkId(Self, i);
end;
@ -10539,9 +10633,17 @@ procedure TSourceEditorManager.SetupShortCuts;
Result:=GetCmdAndBtn(ACommand, ToolButton);
end;
function GetCommand(ACommand: word; ToolButtonClass: TIDEToolButtonClass): TIDECommand;
var
ToolButton: TIDEButtonCommand;
begin
Result:=GetCmdAndBtn(ACommand, ToolButton);
if ToolButton<>nil then
ToolButton.ToolButtonClass := ToolButtonClass;
end;
var
i: Integer;
IDEmi: TIDEMenuItem;
begin
{%region *** first static section *** }
SrcEditMenuFindDeclaration.Command := GetCommand(ecFindDeclaration);
@ -10604,12 +10706,14 @@ begin
SrcEditMenuClearFileBookmark.Command:=GetCommand(ecClearBookmarkForFile);
SrcEditMenuClearAllBookmark.Command:=GetCommand(ecClearAllBookmark);
for i:=0 to 9 do begin
IDEmi:=SrcEditSubMenuGotoBookmarks.FindByName('GotoBookmark'+IntToStr(i));
IDEmi.Command := GetCommand(ecGotoMarker0 + i);
IDEmi:=SrcEditSubMenuToggleBookmarks.FindByName('ToggleBookmark'+IntToStr(i));
IDEmi.Command := GetCommand(ecToggleMarker0 + i);
end;
SrcEditMenuGotoBookmarks.Command:=GetCommand(ecGotoBookmarks, TToolButton_GotoBookmarks);
SrcEditMenuToggleBookmarks.Command:=GetCommand(ecToggleBookmarks, TToolButton_ToggleBookmarks);
for i in TBookmarkNumRange do
SrcEditMenuGotoBookmark[i].Command := GetCommand(ecGotoMarker0 + i);
for i in TBookmarkNumRange do
SrcEditMenuToggleBookmark[i].Command := GetCommand(ecToggleMarker0 + i);
{%region *** Source Section ***}
SrcEditMenuEncloseSelection.Command:=GetCommand(ecSelectionEnclose);

View File

@ -557,7 +557,7 @@ begin
FImgList.RegisterResolutions([11, 16, 22, 33], [100, 150, 200, 300]);
// synedit expects the first 10 icons for the bookmarks
for i := 0 to 9 do
for i in TBookmarkNumRange do
AddImage('bookmark'+IntToStr(i));
// load active breakpoint image

View File

@ -163,6 +163,9 @@ menu_goto_bookmark8_200.png
menu_goto_bookmark9.png
menu_goto_bookmark9_150.png
menu_goto_bookmark9_200.png
menu_goto_bookmarks.png
menu_goto_bookmarks_150.png
menu_goto_bookmarks_200.png
menu_goto_line.png
menu_goto_line_150.png
menu_goto_line_200.png
@ -338,6 +341,9 @@ menu_toggle_bookmark8_200.png
menu_toggle_bookmark9.png
menu_toggle_bookmark9_150.png
menu_toggle_bookmark9_200.png
menu_toggle_bookmarks.png
menu_toggle_bookmarks_150.png
menu_toggle_bookmarks_200.png
menu_tool_check_lfm.png
menu_tool_check_lfm_150.png
menu_tool_check_lfm_200.png

Binary file not shown.

View File

@ -362,6 +362,9 @@ menu/menu_goto_bookmark8_200.png
menu/menu_goto_bookmark9.png
menu/menu_goto_bookmark9_150.png
menu/menu_goto_bookmark9_200.png
menu/menu_goto_bookmarks.png
menu/menu_goto_bookmarks_150.png
menu/menu_goto_bookmarks_200.png
menu/menu_goto_line.png
menu/menu_goto_line_150.png
menu/menu_goto_line_200.png
@ -553,6 +556,9 @@ menu/menu_toggle_bookmark8_200.png
menu/menu_toggle_bookmark9.png
menu/menu_toggle_bookmark9_150.png
menu/menu_toggle_bookmark9_200.png
menu/menu_toggle_bookmarks.png
menu/menu_toggle_bookmarks_150.png
menu/menu_toggle_bookmarks_200.png
menu/menu_tool_check_lfm.png
menu/menu_tool_check_lfm_150.png
menu/menu_tool_check_lfm_200.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 399 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 584 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 810 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 505 B

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 789 B

After

Width:  |  Height:  |  Size: 794 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 B

After

Width:  |  Height:  |  Size: 459 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 901 B

After

Width:  |  Height:  |  Size: 899 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 515 B

After

Width:  |  Height:  |  Size: 513 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 816 B

After

Width:  |  Height:  |  Size: 826 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 511 B

After

Width:  |  Height:  |  Size: 510 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 826 B

After

Width:  |  Height:  |  Size: 831 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 B

After

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 761 B

After

Width:  |  Height:  |  Size: 767 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 904 B

After

Width:  |  Height:  |  Size: 905 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 479 B

After

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 777 B

After

Width:  |  Height:  |  Size: 774 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 937 B

After

Width:  |  Height:  |  Size: 945 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 520 B

After

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 822 B

After

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 479 B

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 751 B

After

Width:  |  Height:  |  Size: 760 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 902 B

After

Width:  |  Height:  |  Size: 899 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 509 B

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 840 B

After

Width:  |  Height:  |  Size: 848 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 518 B

After

Width:  |  Height:  |  Size: 517 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 830 B

After

Width:  |  Height:  |  Size: 834 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 849 B