implemented using menuintf for IDE main menu

git-svn-id: trunk@7779 -
This commit is contained in:
mattias 2005-09-21 22:33:37 +00:00
parent d39b3450ad
commit f1bd1cc6c5
9 changed files with 667 additions and 166 deletions

View File

@ -42,7 +42,7 @@ uses
Classes, SysUtils, Forms, Controls, Dialogs, Menus, FileUtil, LCLProc,
Laz_XMLCfg,
SynEdit, CodeCache, CodeToolManager,
MenuIntf,
MenuIntf, IDECommands,
LazConf, DebugOptionsFrm,
CompilerOptions, EditorOptions, EnvironmentOpts, KeyMapping, UnitEditor,
Project, IDEProcs, InputHistory, Debugger,
@ -1441,7 +1441,29 @@ begin
end;
procedure TDebugManager.SetupMainBarShortCuts;
{$IFDEF UseMenuIntf}
function GetCommand(ACommand: word): TIDECommand;
begin
Result:=IDECommandList.FindIDECommand(ACommand);
end;
{$ENDIF}
begin
{$IFDEF UseMenuIntf}
with MainIDEBar do
begin
itmViewWatches.Command:=GetCommand(ecToggleWatches);
itmViewBreakpoints.Command:=GetCommand(ecToggleBreakPoints);
itmViewDebugOutput.Command:=GetCommand(ecToggleDebuggerOut);
itmViewLocals.Command:=GetCommand(ecToggleLocals);
itmViewCallStack.Command:=GetCommand(ecToggleCallStack);
itmRunMenuInspect.Command:=GetCommand(ecInspect);
itmRunMenuEvaluate.Command:=GetCommand(ecEvaluate);
itmRunMenuAddWatch.Command:=GetCommand(ecAddWatch);
end;
{$ELSE}
with MainIDEBar, EditorOpts.KeyMap do
begin
itmViewWatches.ShortCut := CommandToShortCut(ecToggleWatches);
@ -1454,6 +1476,7 @@ begin
itmRunMenuEvaluate.ShortCut := CommandToShortCut(ecEvaluate);
itmRunMenuAddWatch.ShortCut := CommandToShortCut(ecAddWatch);
end;
{$ENDIF}
end;
procedure TDebugManager.UpdateButtonsAndMenuItems;

View File

@ -286,14 +286,17 @@ type
//---------------------------------------------------------------------------
// class for storing the keys of a single command (key-command relationship)
TKeyCommandRelation = class(TIDECommandKeys)
TKeyCommandRelation = class(TIDECommand)
public
function GetLocalizedName: string; override;
end;
//---------------------------------------------------------------------------
// class for a list of key - command relations
TKeyCommandRelationList = class
{ TKeyCommandRelationList }
TKeyCommandRelationList = class(TIDECommands)
private
fLastKey: TIDEShortCut; // for multiple key commands
FCustomKeyCount: integer;
@ -322,6 +325,7 @@ type
function Find(Key: TIDEShortCut;
{$IFDEF UseIDEScopes}IDEWindowClass: TCustomFormClass{$ELSE}Areas: TCommandAreas{$ENDIF}
): TKeyCommandRelation;
function FindIDECommand(ACommand:word): TIDECommand; override;
function FindByCommand(ACommand:word): TKeyCommandRelation;
function FindCategoryByName(const CategoryName: string): TKeyCommandCategory;
function TranslateKey(Key: word; Shift: TShiftState;
@ -2748,6 +2752,12 @@ begin
end;
end;
function TKeyCommandRelationList.FindIDECommand(ACommand: word
): TIDECommand;
begin
Result:=FindByCommand(ACommand);
end;
function TKeyCommandRelationList.FindByCommand(
ACommand: word):TKeyCommandRelation;
var a:integer;

View File

@ -1619,6 +1619,9 @@ resourcestring
// codetools defines
lisCodeToolsDefsCodeToolsDefinesPreview = 'CodeTools Defines Preview';
lisCodeToolsDefsWriteError = 'Write error';
lisStopDebugging2 = 'Stop debugging?';
lisStopCurrentDebuggingAndRebuildProject = 'Stop current debugging and '
+'rebuild project?';
lisErrorWritingPackageListToFile = 'Error writing package list to file%s%s%'
+'s%s';
lisCodeToolsDefsErrorWhileWriting = 'Error while writing %s%s%s%s%s';

View File

@ -563,7 +563,9 @@ type
var Handled: boolean; Data: TObject);
public
{$IFNDEF UseMenuIntf}
CustomExtToolMenuSeparator: TMenuItem;
{$ENDIF}
CurDefinesCompilerFilename: String;
CurDefinesCompilerOptions: String;
class procedure ParseCmdLineOptions;
@ -973,6 +975,7 @@ begin
EditorOpts:=TEditorOptions.Create;
EditorOpts.Load;
IDECommandList:=EditorOpts.KeyMap;
EnvironmentOptions.ExternalTools.LoadShortCuts(EditorOpts.KeyMap);
@ -1935,7 +1938,9 @@ begin
itmToolBuildLazarus.OnClick := @mnuToolBuildLazarusClicked;
itmToolConfigureBuildLazarus.OnClick := @mnuToolConfigBuildLazClicked;
end;
{$IFNDEF UseMenuIntf}
CustomExtToolMenuSeparator:=nil;
{$ENDIF}
UpdateCustomToolsInMenu;
end;
@ -2359,7 +2364,7 @@ begin
mnuViewInspectorClicked(Self);
ecAboutLazarus:
MainIDEBar.itmHelpAboutLazarus.Click;
MainIDEBar.itmHelpAboutLazarus.OnClick(Self);
ecAddBreakPoint:
SourceNotebook.AddBreakpointClicked(Self);
@ -3140,8 +3145,13 @@ procedure TMainIDE.mnuCustomExtToolClick(Sender: TObject);
var
Index: integer;
begin
{$IFDEF UseMenuIntf}
if not (Sender is TIDEMenuItem) then exit;
Index:=MainIDEBar.itmCustomTools.IndexOf(TIDEMenuItem(Sender))-1;
{$ELSE}
if CustomExtToolMenuSeparator=nil then exit;
Index:=TMenuItem(Sender).MenuIndex-CustomExtToolMenuSeparator.MenuIndex-1;
{$ENDIF}
if (Index<0) or (Index>=EnvironmentOptions.ExternalTools.Count) then exit;
DoRunExternalTool(Index);
end;
@ -7778,6 +7788,20 @@ var
ToolCount: integer;
procedure CreateToolMenuItems;
{$IFDEF UseMenuIntf}
var
Section: TIDEMenuSection;
begin
Section:=MainIDEBar.itmCustomTools;
// add enough menuitems
while Section.Count-1<ToolCount do
RegisterIDEMenuCommand(Section.GetPath,
'itmToolCustomExt'+IntToStr(Section.Count),'');
// delete unneeded menuitems
while Section.Count-1>ToolCount do
Section[Section.Count-1].Free;
end;
{$ELSE}
var
CurMenuItem: TMenuItem;
LastIndex, FirstIndex, ExistingCount: integer;
@ -7810,22 +7834,35 @@ var
dec(ExistingCount);
end;
end;
{$ENDIF}
procedure SetToolMenuItems;
var
CurMenuItem: TMenuItem;
CurMenuItem: {$IFDEF UseMenuIntf}TIDEMenuItem{$ELSE}TMenuItem{$ENDIF};
i, Index: integer;
ExtTool: TExternalToolOptions;
begin
{$IFDEF UseMenuIntf}
i:=1;
{$ELSE}
if CustomExtToolMenuSeparator=nil then exit;
i:=CustomExtToolMenuSeparator.MenuIndex+1;
{$ENDIF}
Index:=0;
while (i<MainIDEBar.mnuTools.Count) do begin
while (i<MainIDEBar.{$IFDEF UseMenuIntf}itmCustomTools{$ELSE}mnuTools{$ENDIF}.Count) do begin
{$IFDEF UseMenuIntf}
CurMenuItem:=MainIDEBar.itmCustomTools[i];
{$ELSE}
CurMenuItem:=MainIDEBar.mnuTools[i];
if CurMenuItem.Caption='-' then break;
{$ENDIF}
ExtTool:=EnvironmentOptions.ExternalTools[Index];
CurMenuItem.Caption:=ExtTool.Title;
{$IFDEF UseMenuIntf}
{$WARNING TODO ExtTool Shortcut}
{$ELSE}
CurMenuItem.ShortCut:=ShortCut(ExtTool.Key,ExtTool.Shift);
{$ENDIF}
CurMenuItem.OnClick:=@mnuCustomExtToolClick;
inc(i);
inc(Index);
@ -7842,8 +7879,8 @@ function TMainIDE.PrepareForCompile: TModalResult;
begin
Result:=mrOk;
if ToolStatus=itDebugger then begin
Result:=MessageDlg('Stop debugging?',
'Stop current debugging and rebuild project?',
Result:=MessageDlg(lisStopDebugging2,
lisStopCurrentDebuggingAndRebuildProject,
mtConfirmation,[mbYes,mbNo,mbAbort],0);
if Result=mrNo then Result:=mrCancel;
if Result<>mrYes then exit;

View File

@ -111,18 +111,17 @@ type
itmEditUpperCaseBlock: TIDEMenuCommand;
itmEditLowerCaseBlock: TIDEMenuCommand;
itmEditTabsToSpacesBlock: TIDEMenuCommand;
itmEditSelections: TIDEMenuSection;
itmEditSelectionBreakLines: TIDEMenuCommand;
itmEditSelect: TIDEMenuSection;
itmEditSelectAll: TIDEMenuCommand;
itmEditSelectToBrace: TIDEMenuCommand;
itmEditSelectCodeBlock: TIDEMenuCommand;
itmEditSelectLine: TIDEMenuCommand;
itmEditSelectParagraph: TIDEMenuCommand;
itmEditSelect: TIDEMenuSection;
itmEditSelectAll: TIDEMenuCommand;
itmEditSelectToBrace: TIDEMenuCommand;
itmEditSelectCodeBlock: TIDEMenuCommand;
itmEditSelectLine: TIDEMenuCommand;
itmEditSelectParagraph: TIDEMenuCommand;
itmEditInsertions: TIDEMenuSection;
itmEditInsertCharacter: TIDEMenuCommand;
itmEditInsertText: TIDEMenuSection;
itmEditInsertCVSKeyWord: TIDEMenuCommand;
itmEditInsertCVSKeyWord: TIDEMenuSection;
itmEditInsertCVSAuthor: TIDEMenuCommand;
itmEditInsertCVSDate: TIDEMenuCommand;
itmEditInsertCVSHeader: TIDEMenuCommand;
@ -131,13 +130,13 @@ type
itmEditInsertCVSName: TIDEMenuCommand;
itmEditInsertCVSRevision: TIDEMenuCommand;
itmEditInsertCVSSource: TIDEMenuCommand;
itmEditInsertGeneral: TIDEMenuCommand;
itmEditInsertGeneral: TIDEMenuSection;
itmEditInsertGPLNotice: TIDEMenuCommand;
itmEditInsertLGPLNotice: TIDEMenuCommand;
itmEditInsertUsername: TIDEMenuCommand;
itmEditInsertDateTime: TIDEMenuCommand;
itmEditInsertChangeLogEntry: TIDEMenuCommand;
itmEditCodeTools: TIDEMenuSection;
itmEditMenuCodeTools: TIDEMenuSection;
itmEditCompleteCode: TIDEMenuCommand;
itmEditExtractProc: TIDEMenuCommand;
@ -148,7 +147,6 @@ type
itmSearchFindNext: TIDEMenuCommand;
itmSearchFindPrevious: TIDEMenuCommand;
itmSearchFindInFiles: TIDEMenuCommand;
itmSearchFindIdentifierRefs: TIDEMenuCommand;
itmSearchReplace: TIDEMenuCommand;
itmIncrementalFind: TIDEMenuCommand;
itmGotoLine: TIDEMenuCommand;
@ -165,61 +163,62 @@ type
itmJumpToPrevBookmark: TIDEMenuCommand;
itmCodeToolSearches: TIDEMenuSection;
itmFindDeclaration: TIDEMenuCommand;
itmSearchRenameIdentifier: TIDEMenuCommand;
itmFindBlockOtherEnd: TIDEMenuCommand;
itmFindBlockStart: TIDEMenuCommand;
itmOpenFileAtCursor: TIDEMenuCommand;
itmGotoIncludeDirective: TIDEMenuCommand;
itmSearchFindIdentifierRefs: TIDEMenuCommand;
itmSearchRenameIdentifier: TIDEMenuCommand;
// view menu
mnuView: TIDEMenuSection;
itmViewMainWindows: TIDEMenuSection;
itmViewInspector: TIDEMenuCommand;
itmViewSourceEditor: TIDEMenuCommand;
itmViewCodeExplorer: TIDEMenuCommand;
itmViewLazDoc: TIDEMenuCommand;
itmViewUnitWindows: TIDEMenuSection;
itmViewUnits: TIDEMenuCommand;
itmViewForms: TIDEMenuCommand;
itmViewUnitDependencies: TIDEMenuCommand;
itmViewUnitInfo: TIDEMenuCommand;
itmViewToggleFormUnit: TIDEMenuCommand;
itmViewSecondaryWindows: TIDEMenuSection;
itmViewAnchorEditor: TIDEMenuCommand;
itmViewMessage: TIDEMenuCommand;
itmViewSearchResults: TIDEMenuCommand;
itmViewDebugWindows: TIDEMenuSection;
itmViewWatches: TIDEMenuCommand;
itmViewBreakpoints: TIDEMenuCommand;
itmViewLocals: TIDEMenuCommand;
itmViewCallStack: TIDEMenuCommand;
itmViewDebugOutput: TIDEMenuCommand;
itmViewMainWindows: TIDEMenuSection;
itmViewInspector: TIDEMenuCommand;
itmViewSourceEditor: TIDEMenuCommand;
itmViewCodeExplorer: TIDEMenuCommand;
itmViewLazDoc: TIDEMenuCommand;
itmViewUnitWindows: TIDEMenuSection;
itmViewUnits: TIDEMenuCommand;
itmViewForms: TIDEMenuCommand;
itmViewUnitDependencies: TIDEMenuCommand;
itmViewUnitInfo: TIDEMenuCommand;
itmViewToggleFormUnit: TIDEMenuCommand;
itmViewSecondaryWindows: TIDEMenuSection;
itmViewAnchorEditor: TIDEMenuCommand;
itmViewMessage: TIDEMenuCommand;
itmViewSearchResults: TIDEMenuCommand;
itmViewDebugWindows: TIDEMenuSection;
itmViewWatches: TIDEMenuCommand;
itmViewBreakpoints: TIDEMenuCommand;
itmViewLocals: TIDEMenuCommand;
itmViewCallStack: TIDEMenuCommand;
itmViewDebugOutput: TIDEMenuCommand;
// project menu
mnuProject: TIDEMenuSection;
itmProjectNews: TIDEMenuSection;
itmProjectNewSection: TIDEMenuSection;
itmProjectNew: TIDEMenuCommand;
itmProjectNewFromFile: TIDEMenuCommand;
itmProjectOpens: TIDEMenuSection;
itmProjectOpenSection: TIDEMenuSection;
itmProjectOpen: TIDEMenuCommand;
itmProjectRecentOpen: TIDEMenuCommand;
itmProjectSaves: TIDEMenuSection;
itmProjectRecentOpen: TIDEMenuSection;
itmProjectSaveSection: TIDEMenuSection;
itmProjectSave: TIDEMenuCommand;
itmProjectSaveAs: TIDEMenuCommand;
itmProjectPublish: TIDEMenuCommand;
itmProjectWindows: TIDEMenuSection;
itmProjectWindowSection: TIDEMenuSection;
itmProjectInspector: TIDEMenuCommand;
itmProjectOptions: TIDEMenuCommand;
itmProjectCompilerOptions: TIDEMenuCommand;
itmProjectViewToDos: TIDEMenuCommand;
itmProjectAddRemoves: TIDEMenuSection;
itmProjectAddRemoveSection: TIDEMenuSection;
itmProjectAddTo: TIDEMenuCommand;
itmProjectRemoveFrom: TIDEMenuCommand;
itmProjectViewSource: TIDEMenuCommand;
{$IFDEF TRANSLATESTRING}
itmProjectPoFiles:TIDEMenuCommand;
itmProjectCreatePoFiles:TIDEMenuCommand;
itmProjectCollectPoFiles:TIDEMenuCommand;
itmProjectPoFileSection: TIDEMenuCommand;
itmProjectCreatePoFiles: TIDEMenuCommand;
itmProjectCollectPoFiles: TIDEMenuCommand;
{$ENDIF}
// run menu
@ -237,7 +236,7 @@ type
itmRunMenuStop: TIDEMenuCommand;
itmRunMenuRunParameters: TIDEMenuCommand;
itmRunMenuResetDebugger: TIDEMenuCommand;
itmRunBuildignFile: TIDEMenuSection;
itmRunBuildingFile: TIDEMenuSection;
itmRunMenuBuildFile: TIDEMenuCommand;
itmRunMenuRunFile: TIDEMenuCommand;
itmRunMenuConfigBuildFile: TIDEMenuCommand;
@ -245,19 +244,19 @@ type
itmRunMenuInspect: TIDEMenuCommand;
itmRunMenuEvaluate: TIDEMenuCommand;
itmRunMenuAddWatch: TIDEMenuCommand;
itmRunMenuAddBreakpoint: TIDEMenuCommand;
itmRunMenuAddBpSource: TIDEMenuCommand;
itmRunMenuAddBreakpoint: TIDEMenuSection;
itmRunMenuAddBpSource: TIDEMenuCommand;
// components menu
mnuComponents: TIDEMenuSection;
itmPkgOpening: TIDEMenuCommand;
itmPkgOpening: TIDEMenuSection;
itmPkgOpenPackage: TIDEMenuCommand;
itmPkgOpenPackageFile: TIDEMenuCommand;
itmPkgOpenPackageOfCurUnit: TIDEMenuCommand;
itmPkgOpenRecent: TIDEMenuCommand;
itmPkgUnits: TIDEMenuCommand;
itmPkgOpenRecent: TIDEMenuSection;
itmPkgUnits: TIDEMenuSection;
itmPkgAddCurUnitToPkg: TIDEMenuCommand;
itmPkgGraphs: TIDEMenuCommand;
itmPkgGraphSection: TIDEMenuSection;
itmPkgPkgGraph: TIDEMenuCommand;
itmPkgEditInstallPkgs: TIDEMenuCommand;
{$IFDEF CustomIDEComps}
@ -272,14 +271,14 @@ type
itmToolSyntaxCheck: TIDEMenuCommand;
itmToolGuessUnclosedBlock: TIDEMenuCommand;
itmToolGuessMisplacedIFDEF: TIDEMenuCommand;
itmSecondaryTools: TIDEMenuSection;
itmToolMakeResourceString: TIDEMenuCommand;
itmToolDiff: TIDEMenuCommand;
itmDelphiConversion: TIDEMenuSection;
itmToolCheckLFM: TIDEMenuCommand;
itmToolConvertDelphiUnit: TIDEMenuCommand;
itmToolConvertDelphiProject: TIDEMenuCommand;
itmToolConvertDFMtoLFM: TIDEMenuCommand;
itmSecondaryTools: TIDEMenuSection;
itmToolMakeResourceString: TIDEMenuCommand;
itmToolDiff: TIDEMenuCommand;
itmBuildingLazarus: TIDEMenuSection;
itmToolBuildLazarus: TIDEMenuCommand;
itmToolConfigureBuildLazarus: TIDEMenuCommand;
@ -293,7 +292,7 @@ type
itmEnvDebuggerOptions: TIDEMenuCommand;
itmEnvCodeToolsOptions: TIDEMenuCommand;
itmEnvCodeToolsDefinesEditor: TIDEMenuCommand;
itmIDECache: TIDEMenuSection;
itmIDECacheSection: TIDEMenuSection;
itmEnvRescanFPCSrcDir: TIDEMenuCommand;
// windows menu

View File

@ -61,6 +61,7 @@ uses
CodeCache, AVL_Tree, SynEditKeyCmds,
// IDE
LazConf, LazarusIDEStrConsts, SrcEditorIntf, LazIDEIntf, MenuIntf,
IDECommands,
ProjectDefs, Project, PublishModule, BuildLazDialog, Compiler,
ComponentReg,
TransferMacros, ObjectInspector, PropEdits, OutputFilter, IDEDefs, MsgView,
@ -91,7 +92,8 @@ type
var Section: TIDEMenuSection; const AName: String);
procedure CreateMenuSubSection(ParentSection: TIDEMenuSection;
var Section: TIDEMenuSection;
const AName, ACaption: String);
const AName, ACaption: String;
const bmpName: String = '');
procedure CreateMainMenuItem(var Section: TIDEMenuSection;
const MenuItemName, MenuItemCaption: String);
{$ELSE}
@ -166,7 +168,9 @@ type
): TModalResult; override;
procedure UpdateWindowsMenu; override;
procedure SetRecentSubMenu(ParentMenuItem: TMenuItem; FileList: TStringList;
procedure SetRecentSubMenu({$IFDEF UseMenuIntf}Section: TIDEMenuSection;
{$ELSE}Section: TMenuItem;{$ENDIF}
FileList: TStringList;
OnClickEvent: TNotifyEvent); override;
function DoJumpToCodePosition(
@ -307,10 +311,13 @@ begin
end;
procedure TMainIDEBase.CreateMenuSubSection(ParentSection: TIDEMenuSection;
var Section: TIDEMenuSection; const AName, ACaption: String);
var Section: TIDEMenuSection; const AName, ACaption: String;
const bmpName: String = '');
begin
Section:=RegisterIDEMenuSection(ParentSection.GetPath,AName);
Section.Caption:=ACaption;
if bmpName<>'' then
Section.Bitmap.LoadFromLazarusResource(bmpName);
end;
procedure TMainIDEBase.CreateMainMenuItem(var Section: TIDEMenuSection;
@ -399,17 +406,21 @@ procedure TMainIDEBase.SetupFileMenu;
var
ParentMI: {$IFDEF UseMenuIntf}TIDEMenuSection{$ELSE}TMenuItem{$ENDIF};
begin
ParentMI:=MainIDEBar.mnuFile;
with MainIDEBar do begin
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(ParentMI,itmFileNew,'itmFileNew');
CreateMenuSeparatorSection(mnuFile,itmFileNew,'itmFileNew');
ParentMI:=itmFileNew;
{$ELSE}
ParentMI:=mnuFile;
{$ENDIF}
CreateMenuItem(ParentMI,itmFileNewUnit,'itmFileNewUnit',lisMenuNewUnit,'menu_new');
CreateMenuItem(ParentMI,itmFileNewForm,'itmFileNewForm',lisMenuNewForm,'menu_new');
CreateMenuItem(ParentMI,itmFileNewOther,'itmFileNewOther',lisMenuNewOther,'menu_new');
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(ParentMI,itmFileOpenSave,'itmFileOpenSave');
CreateMenuSeparatorSection(mnuFile,itmFileOpenSave,'itmFileOpenSave');
ParentMI:=itmFileOpenSave;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
@ -417,7 +428,7 @@ begin
CreateMenuItem(ParentMI,itmFileOpen,'itmFileOpen',lisMenuOpen,'menu_open');
CreateMenuItem(ParentMI,itmFileRevert,'itmFileRevert',lisMenuRevert,'menu_undo');
{$IFDEF UseMenuIntf}
CreateMenuSubSection(ParentMI,itmFileRecentOpen,'itmFileRecentOpen',lisMenuOpenRecent);
CreateMenuSubSection(mnuFile,itmFileRecentOpen,'itmFileRecentOpen',lisMenuOpenRecent);
{$ELSE}
CreateMenuItem(ParentMI,itmFileRecentOpen,'itmFileRecentOpen',lisMenuOpenRecent);
{$ENDIF}
@ -428,7 +439,8 @@ begin
CreateMenuItem(ParentMI,itmFileCloseAll,'itmFileCloseAll',lisMenuCloseAll,'',false);
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(ParentMI,itmFileDirectories,'itmFileDirectories');
CreateMenuSeparatorSection(mnuFile,itmFileDirectories,'itmFileDirectories');
ParentMI:=itmFileDirectories;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
@ -436,7 +448,8 @@ begin
CreateMenuItem(ParentMI,itmFileCleanDirectory,'itmFileCleanDirectory',lisMenuCleanDirectory);
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(ParentMI,itmFileIDEStart,'itmFileIDEStart');
CreateMenuSeparatorSection(mnuFile,itmFileIDEStart,'itmFileIDEStart');
ParentMI:=itmFileIDEStart;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
@ -448,51 +461,66 @@ end;
procedure TMainIDEBase.SetupEditMenu;
var
ParentMI: TMenuItem;
SubParentMI: TMenuItem;
SubSubParentMI: TMenuItem;
ParentMI: {$IFDEF UseMenuIntf}TIDEMenuSection{$ELSE}TMenuItem{$ENDIF};
SubParentMI: {$IFDEF UseMenuIntf}TIDEMenuSection{$ELSE}TMenuItem{$ENDIF};
SubSubParentMI: {$IFDEF UseMenuIntf}TIDEMenuSection{$ELSE}TMenuItem{$ENDIF};
begin
ParentMI:=MainIDEBar.mnuEdit;
with MainIDEBar do begin
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuEdit,itmEditReUndo,'itmEditReUndo');
ParentMI:=itmEditReUndo;
{$ELSE}
ParentMI:=mnuEdit;
{$ENDIF}
CreateMenuItem(ParentMI,itmEditUndo,'itmEditUndo',lisMenuUndo,'menu_undo');
CreateMenuItem(ParentMI,itmEditRedo,'itmEditRedo',lisMenuRedo,'menu_redo');
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuEdit,itmEditClipboard,'itmEditClipboard');
ParentMI:=itmEditClipboard;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmEditCut,'itmEditCut',lisMenuCut,'menu_cut');
CreateMenuItem(ParentMI,itmEditCopy,'itmEditCopy',lisMenuCopy,'menu_copy');
CreateMenuItem(ParentMI,itmEditPaste,'itmEditPaste',lisMenuPaste,'menu_paste');
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuEdit,itmEditBlockIndentation,'itmEditBlockIndentation');
ParentMI:=itmEditBlockIndentation;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmEditIndentBlock,'itmEditIndentBlock',lisMenuIndentSelection,'menu_indent');
CreateMenuItem(ParentMI,itmEditUnindentBlock,'itmEditUnindentBlock',lisMenuUnindentSelection,'menu_unindent');
CreateMenuItem(ParentMI,itmEditEncloseBlock,'itmEditEncloseBlock',lisMenuEncloseSelection);
ParentMI.Add(CreateMenuSeparator);
CreateMenuItem(ParentMI,itmEditUpperCaseBlock,'itmEditUpperCaseBlock',lisMenuUpperCaseSelection);
CreateMenuItem(ParentMI,itmEditLowerCaseBlock,'itmEditLowerCaseBlock',lisMenuLowerCaseSelection);
ParentMI.Add(CreateMenuSeparator);
CreateMenuItem(ParentMI,itmEditTabsToSpacesBlock,'itmEditTabsToSpacesBlock',lisMenuTabsToSpacesSelection);
CreateMenuItem(ParentMI,itmEditSelectionBreakLines,'itmEditSelectionBreakLines',lisMenuBeakLinesInSelection);
ParentMI.Add(CreateMenuSeparator);
CreateMenuItem(ParentMI,itmEditCommentBlock,'itmEditCommentBlock',lisMenuCommentSelection);
CreateMenuItem(ParentMI,itmEditUncommentBlock,'itmEditUncommentBlock',lisMenuUncommentSelection);
CreateMenuItem(ParentMI,itmEditConditionalBlock,'itmEditConditionalBlock',lisMenuConditionalSelection);
CreateMenuItem(ParentMI,itmEditSortBlock,'itmEditSortBlock',lisMenuSortSelection);
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuEdit,itmEditBlockCharConversion,'itmEditBlockCharConversion');
ParentMI:=itmEditBlockCharConversion;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmEditUpperCaseBlock,'itmEditUpperCaseBlock',lisMenuUpperCaseSelection);
CreateMenuItem(ParentMI,itmEditLowerCaseBlock,'itmEditLowerCaseBlock',lisMenuLowerCaseSelection);
CreateMenuItem(ParentMI,itmEditTabsToSpacesBlock,'itmEditTabsToSpacesBlock',lisMenuTabsToSpacesSelection);
CreateMenuItem(ParentMI,itmEditSelectionBreakLines,'itmEditSelectionBreakLines',lisMenuBeakLinesInSelection);
{$IFDEF UseMenuIntf}
CreateMenuSubSection(mnuEdit,itmEditSelect,'itmEditSelect',lisMenuSelect);
{$ELSE}
CreateMenuItem(ParentMI,itmEditSelect,'itmEditSelect',lisMenuSelect);
{$ENDIF}
begin
// select sub menu items
SubParentMI:=MainIDEBar.itmEditSelect;
SubParentMI:=itmEditSelect;
CreateMenuItem(SubParentMI,itmEditSelectAll,'itmEditSelectAll',lisMenuSelectAll);
CreateMenuItem(SubParentMI,itmEditSelectToBrace,'itmEditSelectToBrace',lisMenuSelectToBrace);
CreateMenuItem(SubParentMI,itmEditSelectCodeBlock,'itmEditSelectCodeBlock',lisMenuSelectCodeBlock);
@ -500,15 +528,30 @@ begin
CreateMenuItem(SubParentMI,itmEditSelectParagraph,'itmEditSelectParagraph',lisMenuSelectParagraph);
end;
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuEdit,itmEditInsertions,'itmEditInsertions');
ParentMI:=itmEditInsertions;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmEditInsertCharacter,'itmEditInsertCharacter',lisMenuInsertCharacter);
{$IFDEF UseMenuIntf}
CreateMenuSubSection(ParentMI,itmEditInsertText,'itmEditInsertText',lisMenuInsertText);
{$ELSE}
CreateMenuItem(ParentMI,itmEditInsertText,'itmEditInsertText',lisMenuInsertText);
{$ENDIF}
begin
// insert text sub menu items
SubParentMI:=MainIDEBar.itmEditInsertText;
SubParentMI:=itmEditInsertText;
{$IFDEF UseMenuIntf}
CreateMenuSubSection(SubParentMI,itmEditInsertCVSKeyWord,'itmEditInsertCVSKeyWord',lisMenuInsertCVSKeyword);
{$ELSE}
CreateMenuItem(SubParentMI,itmEditInsertCVSKeyWord,'itmEditInsertCVSKeyWord',lisMenuInsertCVSKeyword);
{$ENDIF}
begin
// insert CVS keyword sub menu items
SubSubParentMI:=MainIDEBar.itmEditInsertCVSKeyWord;
SubSubParentMI:=itmEditInsertCVSKeyWord;
CreateMenuItem(SubSubParentMI,itmEditInsertCVSAuthor,'itmEditInsertCVSAuthor','Author');
CreateMenuItem(SubSubParentMI,itmEditInsertCVSDate,'itmEditInsertCVSDate','Date');
CreateMenuItem(SubSubParentMI,itmEditInsertCVSHeader,'itmEditInsertCVSHeader','Header');
@ -519,10 +562,14 @@ begin
CreateMenuItem(SubSubParentMI,itmEditInsertCVSSource,'itmEditInsertCVSSource','Source');
end;
{$IFDEF UseMenuIntf}
CreateMenuSubSection(SubParentMI,itmEditInsertGeneral,'itmEditInsertGeneral',lisMenuInsertGeneral);
{$ELSE}
CreateMenuItem(SubParentMI,itmEditInsertGeneral,'itmEditInsertGeneral',lisMenuInsertGeneral);
{$ENDIF}
begin
// insert general text sub menu items
SubSubParentMI:=MainIDEBar.itmEditInsertGeneral;
SubSubParentMI:=itmEditInsertGeneral;
CreateMenuItem(SubSubParentMI,itmEditInsertGPLNotice,'itmEditInsertGPLNotice',lisMenuInsertGPLNotice);
CreateMenuItem(SubSubParentMI,itmEditInsertLGPLNotice,'itmEditInsertLGPLNotice',lisMenuInsertLGPLNotice);
CreateMenuItem(SubSubParentMI,itmEditInsertUsername,'itmEditInsertUsername',lisMenuInsertUsername);
@ -531,7 +578,12 @@ begin
end;
end;
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuEdit,itmEditMenuCodeTools,'itmEditMenuCodeTools');
ParentMI:=itmEditMenuCodeTools;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmEditCompleteCode,'itmEditCompleteCode',lisMenuCompleteCode);
CreateMenuItem(ParentMI,itmEditExtractProc,'itmEditExtractProc',lisMenuExtractProc);
@ -540,23 +592,30 @@ end;
procedure TMainIDEBase.SetupSearchMenu;
var
ParentMI: TMenuItem;
ParentMI: {$IFDEF UseMenuIntf}TIDEMenuSection{$ELSE}TMenuItem{$ENDIF};
begin
ParentMI:=MainIDEBar.mnuSearch;
with MainIDEBar do begin
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuSearch,itmSearchFindReplace,'itmSearchFindReplace');
ParentMI:=itmSearchFindReplace;
{$ELSE}
ParentMI:=mnuSearch;
{$ENDIF}
CreateMenuItem(ParentMI,itmSearchFind,'itmSearchFind',lisMenuFind);
CreateMenuItem(ParentMI,itmSearchFindNext,'itmSearchFindNext',lisMenuFindNext);
CreateMenuItem(ParentMI,itmSearchFindPrevious,'itmSearchFindPrevious',lisMenuFindPrevious);
CreateMenuItem(ParentMI,itmSearchFindInFiles,'itmSearchFindInFiles',lisMenuFindInFiles);
CreateMenuItem(ParentMI,itmSearchReplace,'itmSearchReplace',lisMenuReplace);
CreateMenuItem(ParentMI,itmIncrementalFind,'itmIncrementalFind',lisMenuIncrementalFind);
ParentMI.Add(CreateMenuSeparator);
CreateMenuItem(ParentMI,itmGotoLine,'itmGotoLine',lisMenuGotoLine);
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuSearch,itmJumpings,'itmJumpings');
ParentMI:=itmJumpings;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmJumpBack,'itmJumpBack',lisMenuJumpBack);
CreateMenuItem(ParentMI,itmJumpForward,'itmJumpForward',lisMenuJumpForward);
@ -564,17 +623,27 @@ begin
CreateMenuItem(ParentMI,itmJumpHistory,'itmJumpHistory',lisMenuViewJumpHistory);
CreateMenuItem(ParentMI,itmJumpToNextError,'itmJumpToNextError',lisMenuJumpToNextError);
CreateMenuItem(ParentMI,itmJumpToPrevError,'itmJumpToPrevError',lisMenuJumpToPrevError);
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuSearch,itmBookmarks,'itmBookmarks');
ParentMI:=itmBookmarks;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmSetFreeBookmark,'itmSetFreeBookmark',lisMenuSetFreeBookmark);
CreateMenuItem(ParentMI,itmJumpToNextBookmark,'itmJumpToNextBookmark',lisMenuJumpToNextBookmark);
CreateMenuItem(ParentMI,itmJumpToPrevBookmark,'itmJumpToPrevBookmark',lisMenuJumpToPrevBookmark);
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuSearch,itmCodeToolSearches,'itmCodeToolSearches');
ParentMI:=itmCodeToolSearches;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmFindBlockOtherEnd,'itmFindBlockOtherEnd',lisMenuFindBlockOtherEndOfCodeBlock);
CreateMenuItem(ParentMI,itmFindBlockStart,'itmFindBlockStart',lisMenuFindCodeBlockStart);
ParentMI.Add(CreateMenuSeparator);
CreateMenuItem(ParentMI,itmFindDeclaration,'itmFindDeclaration',lisMenuFindDeclarationAtCursor);
CreateMenuItem(ParentMI,itmOpenFileAtCursor,'itmOpenFileAtCursor',lisMenuOpenFilenameAtCursor);
CreateMenuItem(ParentMI,itmGotoIncludeDirective,'itmGotoIncludeDirective',lisMenuGotoIncludeDirective);
@ -585,30 +654,49 @@ end;
procedure TMainIDEBase.SetupViewMenu;
var
ParentMI: TMenuItem;
ParentMI: {$IFDEF UseMenuIntf}TIDEMenuSection{$ELSE}TMenuItem{$ENDIF};
begin
ParentMI:=MainIDEBar.mnuView;
with MainIDEBar do begin
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuView,itmViewMainWindows,'itmViewMainWindows');
ParentMI:=itmViewMainWindows;
{$ELSE}
ParentMI:=mnuView;
{$ENDIF}
CreateMenuItem(ParentMI,itmViewInspector,'itmViewInspector',lisMenuViewObjectInspector);
CreateMenuItem(ParentMI,itmViewSourceEditor,'itmViewSourceEditor',lisMenuViewSourceEditor);
CreateMenuItem(ParentMI,itmViewCodeExplorer,'itmViewCodeExplorer',lisMenuViewCodeExplorer);
CreateMenuItem(ParentMI,itmViewLazDoc,'itmViewLazDoc',lisMenuLazDoc); //DBlaszijk 5-sep-05
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuView,itmViewUnitWindows,'itmViewUnitWindows');
ParentMI:=itmViewUnitWindows;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmViewUnits,'itmViewUnits',lisMenuViewUnits);
CreateMenuItem(ParentMI,itmViewForms,'itmViewForms',lisMenuViewForms);
CreateMenuItem(ParentMI,itmViewUnitDependencies,'itmViewUnitDependencies',lisMenuViewUnitDependencies);
CreateMenuItem(ParentMI,itmViewUnitInfo,'itmViewUnitInfo',lisMenuViewUnitInfo);
ParentMI.Add(CreateMenuSeparator);
CreateMenuItem(ParentMI,itmViewToggleFormUnit,'itmViewToggleFormUnit',lisMenuViewToggleFormUnit);
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuView,itmViewSecondaryWindows,'itmViewSecondaryWindows');
ParentMI:=itmViewSecondaryWindows;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmViewMessage,'itmViewMessage',lisMenuViewMessages);
CreateMenuItem(ParentMI,itmViewSearchResults,'itmViewSearchResults',lisMenuViewSearchResults);
CreateMenuItem(ParentMI,itmViewAnchorEditor,'itmViewAnchorEditor',lisMenuViewAnchorEditor);
{$IFDEF UseMenuIntf}
CreateMenuSubSection(ParentMI,itmViewDebugWindows,'itmViewDebugWindows',lisMenuDebugWindows,'menu_debugger');
{$ELSE}
CreateMenuItem(ParentMI,itmViewDebugWindows,'itmViewDebugWindows',lisMenuDebugWindows,'menu_debugger');
{$ENDIF}
begin
CreateMenuItem(itmViewDebugWindows,itmViewWatches,'itmViewWatches',lisMenuViewWatches,'menu_watches');
CreateMenuItem(itmViewDebugWindows,itmViewBreakPoints,'itmViewBreakPoints',lisMenuViewBreakPoints,'menu_breakpoints');
@ -621,38 +709,74 @@ end;
procedure TMainIDEBase.SetupProjectMenu;
var
ParentMI: TMenuItem;
ParentMI: {$IFDEF UseMenuIntf}TIDEMenuSection{$ELSE}TMenuItem{$ENDIF};
begin
ParentMI:=MainIDEBar.mnuProject;
with MainIDEBar do begin
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuProject,itmProjectNewSection,'itmProjectNewSection');
ParentMI:=itmProjectNewSection;
{$ELSE}
ParentMI:=mnuProject;
{$ENDIF}
CreateMenuItem(ParentMI,itmProjectNew,'itmProjectNew',lisMenuNewProject);
CreateMenuItem(ParentMI,itmProjectNewFromFile,'itmProjectNewFromFile',lisMenuNewProjectFromFile);
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuProject,itmProjectOpenSection,'itmProjectOpenSection');
ParentMI:=itmProjectOpenSection;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmProjectOpen,'itmProjectOpen',lisMenuOpenProject,'menu_openproject');
{$IFDEF UseMenuIntf}
CreateMenuSubSection(ParentMI,itmProjectRecentOpen,'itmProjectRecentOpen',lisMenuOpenRecentProject);
{$ELSE}
CreateMenuItem(ParentMI,itmProjectRecentOpen,'itmProjectRecentOpen',lisMenuOpenRecentProject);
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuProject,itmProjectSaveSection,'itmProjectSaveSection');
ParentMI:=itmProjectSaveSection;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmProjectSave,'itmProjectSave',lisMenuSaveProject);
CreateMenuItem(ParentMI,itmProjectSaveAs,'itmProjectSaveAs',lisMenuSaveProjectAs);
CreateMenuItem(ParentMI,itmProjectPublish,'itmProjectPublish',lisMenuPublishProject);
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuProject,itmProjectWindowSection,'itmProjectWindowSection');
ParentMI:=itmProjectWindowSection;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmProjectInspector,'itmProjectInspector',lisMenuProjectInspector,'menu_projectinspector');
CreateMenuItem(ParentMI,itmProjectOptions,'itmProjectOptions',lisMenuProjectOptions,'menu_projectoptions');
CreateMenuItem(ParentMI,itmProjectCompilerOptions,'itmProjectCompilerOptions',lisMenuCompilerOptions);
CreateMenuItem(ParentMI,itmProjectViewToDos,'itmProjectViewToDos',lisMenuViewProjectTodos);
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuProject,itmProjectAddRemoveSection,'itmProjectAddRemoveSection');
ParentMI:=itmProjectAddRemoveSection;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmProjectAddTo,'itmProjectAddTo',lisMenuAddToProject);
CreateMenuItem(ParentMI,itmProjectRemoveFrom,'itmProjectRemoveFrom',lisMenuRemoveFromProject);
ParentMI.Add(CreateMenuSeparator);
CreateMenuItem(ParentMI,itmProjectViewSource,'itmProjectViewSource',lisMenuViewSource);
CreateMenuItem(ParentMI,itmProjectViewToDos,'itmProjectViewToDos',lisMenuViewProjectTodos);
{$IFDEF TRANSLATESTRING}
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuProject,itmProjectPoFileSection,'itmProjectPoFileSection');
ParentMI:=itmProjectPoFileSection;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI, itmProjectCreatePoFiles,'itmProjectCreatePoFiles', lisMenuCreatePoFile);
CreateMenuItem(ParentMI, itmProjectCollectPoFiles, 'itmProjectCollectPoFiles', lisMenuCollectPoFil);
{$ENDIF}
@ -661,15 +785,26 @@ end;
procedure TMainIDEBase.SetupRunMenu;
var
ParentMI: TMenuItem;
ParentMI: {$IFDEF UseMenuIntf}TIDEMenuSection{$ELSE}TMenuItem{$ENDIF};
begin
ParentMI:=MainIDEBar.mnuRun;
with MainIDEBar do begin
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuRun,itmRunBuilding,'itmRunBuilding');
ParentMI:=itmRunBuilding;
{$ELSE}
ParentMI:=mnuRun;
{$ENDIF}
CreateMenuItem(ParentMI,itmRunMenuBuild,'itmRunMenuBuild',lisMenuBuild,'menu_build');
CreateMenuItem(ParentMI,itmRunMenuBuildAll,'itmRunMenuBuildAll',lisMenuBuildAll,'menu_buildall');
CreateMenuItem(ParentMI,itmRunMenuAbortBuild,'itmRunMenuAbortBuild',lisMenuAbortBuild);
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuRun,itmRunnning,'itmRunnning');
ParentMI:=itmRunnning;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmRunMenuRun,'itmRunMenuRun',lisMenuProjectRun,'menu_run');
CreateMenuItem(ParentMI,itmRunMenuPause,'itmRunMenuPause',lisMenuPause,'menu_pause');
@ -677,46 +812,84 @@ begin
CreateMenuItem(ParentMI,itmRunMenuStepOver,'itmRunMenuStepOver',lisMenuStepOver,'menu_stepover');
CreateMenuItem(ParentMI,itmRunMenuRunToCursor,'itmRunMenuRunToCursor',lisMenuRunToCursor);
CreateMenuItem(ParentMI,itmRunMenuStop,'itmRunMenuStop',lisMenuStop,'');
ParentMI.Add(CreateMenuSeparator);
CreateMenuItem(ParentMI,itmRunMenuRunParameters,'itmRunMenuRunParameters',lisMenuRunParameters);
CreateMenuItem(ParentMI,itmRunMenuResetDebugger,'itmRunMenuResetDebugger',lisMenuResetDebugger);
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuRun,itmRunBuildingFile,'itmRunBuildingFile');
ParentMI:=itmRunBuildingFile;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmRunMenuBuildFile,'itmRunMenuBuildFile',lisMenuBuildFile);
CreateMenuItem(ParentMI,itmRunMenuRunFile,'itmRunMenuRunFile',lisMenuRunFile);
CreateMenuItem(ParentMI,itmRunMenuConfigBuildFile,'itmRunMenuConfigBuildFile',lisMenuConfigBuildFile);
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuRun,itmRunDebugging,'itmRunDebugging');
ParentMI:=itmRunDebugging;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmRunMenuInspect,'itmRunMenuInspect',lisMenuInspect, '', False);
CreateMenuItem(ParentMI,itmRunMenuEvaluate,'itmRunMenuEvaluate',lisMenuEvaluate, '', False);
CreateMenuItem(ParentMI,itmRunMenuAddWatch,'itmRunMenuAddWatch',lisMenuAddWatch, '', False);
{$IFDEF UseMenuIntf}
CreateMenuSubSection(ParentMI,itmRunMenuAddBreakpoint,'itmRunMenuAddBreakpoint',lisMenuAddBreakpoint, '');
{$ELSE}
CreateMenuItem(ParentMI,itmRunMenuAddBreakpoint,'itmRunMenuAddBreakpoint',lisMenuAddBreakpoint, '');
CreateMenuItem(itmRunMenuAddBreakpoint,itmRunMenuAddBPSource,'itmRunMenuAdddBPSource',lisMenuAddBPSource, '', False);
{$ENDIF}
CreateMenuItem(itmRunMenuAddBreakpoint,itmRunMenuAddBPSource,'itmRunMenuAdddBPSource',lisMenuAddBPSource, '', False);
end;
end;
procedure TMainIDEBase.SetupComponentsMenu;
var
ParentMI: TMenuItem;
ParentMI: {$IFDEF UseMenuIntf}TIDEMenuSection{$ELSE}TMenuItem{$ENDIF};
begin
ParentMI:=MainIDEBar.mnuComponents;
with MainIDEBar do begin
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuComponents,itmPkgOpening,'itmPkgOpening');
ParentMI:=itmPkgOpening;
{$ELSE}
ParentMI:=mnuComponents;
{$ENDIF}
CreateMenuItem(ParentMI,itmPkgOpenPackage,'itmPkgOpenPackage',lisMenuOpenPackage,'pkg_package');
CreateMenuItem(ParentMI,itmPkgOpenPackageFile,'itmPkgOpenPackageFile',lisMenuOpenPackageFile,'pkg_package');
CreateMenuItem(ParentMI,itmPkgOpenPackageOfCurUnit,'itmPkgOpenPackageOfCurUnit',lisMenuOpenPackageOfCurUnit,'pkg_package');
{$IFDEF UseMenuIntf}
CreateMenuSubSection(ParentMI,itmPkgOpenRecent,'itmPkgOpenRecent',lisMenuOpenRecentPkg,'pkg_package');
{$ELSE}
CreateMenuItem(ParentMI,itmPkgOpenRecent,'itmPkgOpenRecent',lisMenuOpenRecentPkg,'pkg_package');
{$ENDIF}
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuComponents,itmPkgUnits,'itmPkgUnits');
ParentMI:=itmPkgUnits;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmPkgAddCurUnitToPkg,'itmPkgAddCurUnitToPkg',lisMenuAddCurUnitToPkg,'pkg_addunittopackage');
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuComponents,itmPkgGraphSection,'itmPkgGraphSection');
ParentMI:=itmPkgGraphSection;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmPkgPkgGraph,'itmPkgPkgGraph',lisMenuPackageGraph,'pkg_packagegraph');
CreateMenuItem(ParentMI,itmPkgEditInstallPkgs,'itmPkgEditInstallPkgs',lisMenuEditInstallPkgs,'pkg_package_install');
{$IFDEF CustomIDEComps}
{$IFDEF UseMenuIntf}
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmCompsConfigCustomComps,'itmCompsConfigCustomComps',lisMenuConfigCustomComps);
{$ENDIF}
end;
@ -724,26 +897,57 @@ end;
procedure TMainIDEBase.SetupToolsMenu;
var
ParentMI: TMenuItem;
ParentMI: {$IFDEF UseMenuIntf}TIDEMenuSection{$ELSE}TMenuItem{$ENDIF};
begin
ParentMI:=MainIDEBar.mnuTools;
with MainIDEBar do begin
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuTools,itmCustomTools,'itmCustomTools');
ParentMI:=itmCustomTools;
{$ELSE}
ParentMI:=mnuTools;
{$ENDIF}
CreateMenuItem(ParentMI,itmToolConfigure,'itmToolConfigure',lisMenuSettings);
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuTools,itmCodeToolChecks,'itmCodeToolChecks');
ParentMI:=itmCodeToolChecks;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmToolSyntaxCheck,'itmToolSyntaxCheck',lisMenuQuickSyntaxCheck);
CreateMenuItem(ParentMI,itmToolGuessUnclosedBlock,'itmToolGuessUnclosedBlock',lisMenuGuessUnclosedBlock);
CreateMenuItem(ParentMI,itmToolGuessMisplacedIFDEF,'itmToolGuessMisplacedIFDEF',lisMenuGuessMisplacedIFDEF);
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuTools,itmSecondaryTools,'itmSecondaryTools');
ParentMI:=itmSecondaryTools;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmToolMakeResourceString,'itmToolMakeResourceString',lisMenuMakeResourceString);
CreateMenuItem(ParentMI,itmToolDiff,'itmToolDiff',lisMenuDiff);
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuTools,itmDelphiConversion,'itmDelphiConversion');
ParentMI:=itmDelphiConversion;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmToolCheckLFM,'itmToolCheckLFM',lisMenuCheckLFM);
CreateMenuItem(ParentMI,itmToolConvertDelphiUnit,'itmToolConvertDelphiUnit',lisMenuConvertDelphiUnit);
CreateMenuItem(ParentMI,itmToolConvertDelphiProject,'itmToolConvertDelphiProject',lisMenuConvertDelphiProject);
CreateMenuItem(ParentMI,itmToolConvertDFMtoLFM,'itmToolConvertDFMtoLFM',lisMenuConvertDFMtoLFM);
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuTools,itmBuildingLazarus,'itmBuildingLazarus');
ParentMI:=itmBuildingLazarus;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmToolBuildLazarus,'itmToolBuildLazarus',lisMenuBuildLazarus,'menu_buildlazarus');
CreateMenuItem(ParentMI,itmToolConfigureBuildLazarus,'itmToolConfigureBuildLazarus',lisMenuConfigureBuildLazarus);
@ -752,11 +956,16 @@ end;
procedure TMainIDEBase.SetupEnvironmentMenu;
var
ParentMI: TMenuItem;
ParentMI: {$IFDEF UseMenuIntf}TIDEMenuSection{$ELSE}TMenuItem{$ENDIF};
begin
ParentMI:=MainIDEBar.mnuEnvironment;
with MainIDEBar do begin
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuEnvironment,itmOptionsDialogs,'itmOptionsDialogs');
ParentMI:=itmOptionsDialogs;
{$ELSE}
ParentMI:=mnuEnvironment;
{$ENDIF}
CreateMenuItem(ParentMI,itmEnvGeneralOptions,'itmEnvGeneralOptions',
lisMenuGeneralOptions,'menu_environmentoptions');
CreateMenuItem(ParentMI,itmEnvEditorOptions,'itmEnvEditorOptions',
@ -770,7 +979,14 @@ begin
CreateMenuItem(ParentMI,itmEnvCodeToolsDefinesEditor,
'itmEnvCodeToolsDefinesEditor',lisMenuCodeToolsDefinesEditor,
'menu_codetoolsdefineseditor');
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuEnvironment,itmIDECacheSection,'itmIDECacheSection');
ParentMI:=itmIDECacheSection;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmEnvRescanFPCSrcDir,'itmEnvRescanFPCSrcDir',
lisMenuRescanFPCSourceDirectory);
end;
@ -782,20 +998,209 @@ begin
end;
procedure TMainIDEBase.SetupHelpMenu;
var
ParentMI: {$IFDEF UseMenuIntf}TIDEMenuSection{$ELSE}TMenuItem{$ENDIF};
begin
with MainIDEBar do begin
CreateMenuItem(mnuHelp,itmHelpOnlineHelp,'itmHelpOnlineHelp',
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuHelp,itmOnlineHelps,'itmOnlineHelps');
ParentMI:=itmOnlineHelps;
{$ELSE}
ParentMI:=mnuHelp;
{$ENDIF}
CreateMenuItem(ParentMI,itmHelpOnlineHelp,'itmHelpOnlineHelp',
lisMenuOnlineHelp);
CreateMenuItem(mnuHelp,itmHelpConfigureHelp,'itmHelpConfigureHelp',
CreateMenuItem(ParentMI,itmHelpConfigureHelp,'itmHelpConfigureHelp',
lisMenuConfigureHelp);
mnuHelp.Add(CreateMenuSeparator);
CreateMenuItem(mnuHelp,itmHelpAboutLazarus,'itmHelpAboutLazarus',
{$IFDEF UseMenuIntf}
CreateMenuSeparatorSection(mnuHelp,itmInfoHelps,'itmInfoHelps');
ParentMI:=itmInfoHelps;
{$ELSE}
ParentMI.Add(CreateMenuSeparator);
{$ENDIF}
CreateMenuItem(ParentMI,itmHelpAboutLazarus,'itmHelpAboutLazarus',
lisMenuAboutLazarus);
end;
end;
procedure TMainIDEBase.LoadMenuShortCuts;
{$IFDEF UseMenuIntf}
function GetCommand(ACommand: word): TIDECommand;
begin
Result:=IDECommandList.FindIDECommand(ACommand);
end;
{$ENDIF}
begin
{$IFDEF UseMenuIntf}
with MainIDEBar do begin
// file menu
itmFileNewUnit.Command:=GetCommand(ecNewUnit);
itmFileNewForm.Command:=GetCommand(ecNewForm);
itmFileNewOther.Command:=GetCommand(ecNew);
itmFileOpen.Command:=GetCommand(ecOpen);
itmFileRevert.Command:=GetCommand(ecRevert);
itmFileSave.Command:=GetCommand(ecSave);
itmFileSaveAs.Command:=GetCommand(ecSaveAs);
itmFileSaveAll.Command:=GetCommand(ecSaveAll);
itmFileClose.Command:=GetCommand(ecClose);
itmFileCloseAll.Command:=GetCommand(ecCloseAll);
itmFileCleanDirectory.Command:=GetCommand(ecCleanDirectory);
itmFileQuit.Command:=GetCommand(ecQuit);
itmFileQuit.Command:=GetCommand(ecQuit);
// edit menu
itmEditUndo.Command:=GetCommand(ecUndo);
itmEditRedo.Command:=GetCommand(ecRedo);
itmEditCut.Command:=GetCommand(ecCut);
itmEditCopy.Command:=GetCommand(ecCopy);
itmEditPaste.Command:=GetCommand(ecPaste);
itmEditIndentBlock.Command:=GetCommand(ecBlockIndent);
itmEditUnindentBlock.Command:=GetCommand(ecBlockUnindent);
itmEditEncloseBlock.Command:=GetCommand(ecSelectionEnclose);
itmEditUpperCaseBlock.Command:=GetCommand(ecSelectionUpperCase);
itmEditLowerCaseBlock.Command:=GetCommand(ecSelectionLowerCase);
itmEditTabsToSpacesBlock.Command:=GetCommand(ecSelectionTabs2Spaces);
itmEditCommentBlock.Command:=GetCommand(ecSelectionComment);
itmEditUncommentBlock.Command:=GetCommand(ecSelectionUncomment);
itmEditConditionalBlock.Command:=GetCommand(ecSelectionConditional);
itmEditSortBlock.Command:=GetCommand(ecSelectionSort);
itmEditSelectionBreakLines.Command:=GetCommand(ecSelectionBreakLines);
itmEditSelectAll.Command:=GetCommand(ecSelectAll);
itmEditSelectToBrace.Command:=GetCommand(ecSelectToBrace);
itmEditSelectCodeBlock.Command:=GetCommand(ecSelectCodeBlock);
itmEditSelectLine.Command:=GetCommand(ecSelectLine);
itmEditSelectParagraph.Command:=GetCommand(ecSelectParagraph);
itmEditCompleteCode.Command:=GetCommand(ecCompleteCode);
itmEditExtractProc.Command:=GetCommand(ecExtractProc);
itmEditInsertCVSAuthor.Command:=GetCommand(ecInsertCVSAuthor);
itmEditInsertCVSDate.Command:=GetCommand(ecInsertCVSDate);
itmEditInsertCVSHeader.Command:=GetCommand(ecInsertCVSHeader);
itmEditInsertCVSID.Command:=GetCommand(ecInsertCVSID);
itmEditInsertCVSLog.Command:=GetCommand(ecInsertCVSLog);
itmEditInsertCVSName.Command:=GetCommand(ecInsertCVSName);
itmEditInsertCVSRevision.Command:=GetCommand(ecInsertCVSRevision);
itmEditInsertCVSSource.Command:=GetCommand(ecInsertCVSSource);
itmEditInsertGPLNotice.Command:=GetCommand(ecInsertGPLNotice);
itmEditInsertLGPLNotice.Command:=GetCommand(ecInsertLGPLNotice);
itmEditInsertUsername.Command:=GetCommand(ecInsertUserName);
itmEditInsertDateTime.Command:=GetCommand(ecInsertDateTime);
itmEditInsertChangeLogEntry.Command:=GetCommand(ecInsertChangeLogEntry);
// search menu
itmSearchFind.Command:=GetCommand(ecFind);
itmSearchFindNext.Command:=GetCommand(ecFindNext);
itmSearchFindPrevious.Command:=GetCommand(ecFindPrevious);
itmSearchFindInFiles.Command:=GetCommand(ecFindInFiles);
itmSearchFindIdentifierRefs.Command:=GetCommand(ecFindIdentifierRefs);
itmSearchReplace.Command:=GetCommand(ecReplace);
itmSearchRenameIdentifier.Command:=GetCommand(ecRenameIdentifier);
itmIncrementalFind.Command:=GetCommand(ecIncrementalFind);
itmGotoLine.Command:=GetCommand(ecGotoLineNumber);
itmJumpBack.Command:=GetCommand(ecJumpBack);
itmJumpForward.Command:=GetCommand(ecJumpForward);
itmAddJumpPoint.Command:=GetCommand(ecAddJumpPoint);
itmJumpHistory.Command:=GetCommand(ecViewJumpHistory);
itmJumpToNextError.Command:=GetCommand(ecJumpToNextError);
itmJumpToPrevError.Command:=GetCommand(ecJumpToPrevError);
itmSetFreeBookmark.Command:=GetCommand(ecSetFreeBookmark);
itmJumpToNextBookmark.Command:=GetCommand(ecNextBookmark);
itmJumpToPrevBookmark.Command:=GetCommand(ecPrevBookmark);
itmFindBlockOtherEnd.Command:=GetCommand(ecFindBlockOtherEnd);
itmFindBlockStart.Command:=GetCommand(ecFindBlockStart);
itmFindDeclaration.Command:=GetCommand(ecFindDeclaration);
itmOpenFileAtCursor.Command:=GetCommand(ecOpenFileAtCursor);
itmGotoIncludeDirective.Command:=GetCommand(ecGotoIncludeDirective);
// view menu
itmViewInspector.Command:=GetCommand(ecToggleObjectInsp);
itmViewSourceEditor.Command:=GetCommand(ecToggleSourceEditor);
itmViewUnits.Command:=GetCommand(ecViewUnits);
itmViewCodeExplorer.Command:=GetCommand(ecToggleCodeExpl);
//itmViewLazDoc.Command:=GetCommand(ecLazDoc); //DBlaszijk 5-sep-05
itmViewUnitDependencies.Command:=GetCommand(ecViewUnitDependencies);
itmViewUnitInfo.Command:=GetCommand(ecViewUnitInfo);
itmViewForms.Command:=GetCommand(ecViewForms);
itmViewToggleFormUnit.Command:=GetCommand(ecToggleFormUnit);
itmViewMessage.Command:=GetCommand(ecToggleMessages);
itmViewSearchResults.Command:=GetCommand(ecToggleSearchResults);
itmViewAnchorEditor.Command:=GetCommand(ecViewAnchorEditor);
// project menu
itmProjectNew.Command:=GetCommand(ecNewProject);
itmProjectNewFromFile.Command:=GetCommand(ecNewProjectFromFile);
itmProjectOpen.Command:=GetCommand(ecOpenProject);
itmProjectSave.Command:=GetCommand(ecSaveProject);
itmProjectSaveAs.Command:=GetCommand(ecSaveProjectAs);
itmProjectPublish.Command:=GetCommand(ecPublishProject);
itmProjectInspector.Command:=GetCommand(ecProjectInspector);
itmProjectOptions.Command:=GetCommand(ecProjectOptions);
itmProjectCompilerOptions.Command:=GetCommand(ecCompilerOptions);
itmProjectAddTo.Command:=GetCommand(ecAddCurUnitToProj);
itmProjectRemoveFrom.Command:=GetCommand(ecRemoveFromProj);
itmProjectViewSource.Command:=GetCommand(ecViewProjectSource);
// run menu
itmRunMenuBuild.Command:=GetCommand(ecBuild);
itmRunMenuBuildAll.Command:=GetCommand(ecBuildAll);
itmRunMenuAbortBuild.Command:=GetCommand(ecAbortBuild);
itmRunMenuRun.Command:=GetCommand(ecRun);
itmRunMenuPause.Command:=GetCommand(ecPause);
itmRunMenuStepInto.Command:=GetCommand(ecStepInto);
itmRunMenuStepOver.Command:=GetCommand(ecStepOver);
itmRunMenuRunToCursor.Command:=GetCommand(ecRunToCursor);
itmRunMenuStop.Command:=GetCommand(ecStopProgram);
itmRunMenuResetDebugger.Command:=GetCommand(ecResetDebugger);
itmRunMenuRunParameters.Command:=GetCommand(ecRunParameters);
itmRunMenuBuildFile.Command:=GetCommand(ecBuildFile);
itmRunMenuRunFile.Command:=GetCommand(ecRunFile);
itmRunMenuConfigBuildFile.Command:=GetCommand(ecConfigBuildFile);
// components menu
itmPkgOpenPackage.Command:=GetCommand(ecOpenPackage);
itmPkgOpenPackageFile.Command:=GetCommand(ecOpenPackageFile);
itmPkgOpenPackageOfCurUnit.Command:=GetCommand(ecOpenPackageOfCurUnit);
itmPkgAddCurUnitToPkg.Command:=GetCommand(ecAddCurUnitToPkg);
itmPkgPkgGraph.Command:=GetCommand(ecPackageGraph);
itmPkgEditInstallPkgs.Command:=GetCommand(ecEditInstallPkgs);
{$IFDEF CustomIDEComps}
itmCompsConfigCustomComps.Command:=GetCommand(ecConfigCustomComps);
{$ENDIF}
// tools menu
itmToolConfigure.Command:=GetCommand(ecExtToolSettings);
itmToolSyntaxCheck.Command:=GetCommand(ecSyntaxCheck);
itmToolGuessUnclosedBlock.Command:=GetCommand(ecGuessUnclosedBlock);
itmToolGuessMisplacedIFDEF.Command:=GetCommand(ecGuessMisplacedIFDEF);
itmToolMakeResourceString.Command:=GetCommand(ecMakeResourceString);
itmToolDiff.Command:=GetCommand(ecDiff);
itmToolConvertDFMtoLFM.Command:=GetCommand(ecConvertDFM2LFM);
itmToolCheckLFM.Command:=GetCommand(ecCheckLFM);
itmToolConvertDelphiUnit.Command:=GetCommand(ecConvertDelphiUnit);
itmToolConvertDelphiProject.Command:=GetCommand(ecConvertDelphiProject);
itmToolBuildLazarus.Command:=GetCommand(ecBuildLazarus);
itmToolConfigureBuildLazarus.Command:=GetCommand(ecConfigBuildLazarus);
// environment menu
itmEnvGeneralOptions.Command:=GetCommand(ecEnvironmentOptions);
itmEnvEditorOptions.Command:=GetCommand(ecEditorOptions);
itmEnvCodeTemplates.Command:=GetCommand(ecEditCodeTemplates);
itmEnvCodeToolsOptions.Command:=GetCommand(ecCodeToolsOptions);
itmEnvCodeToolsDefinesEditor.Command:=GetCommand(ecCodeToolsDefinesEd);
itmEnvRescanFPCSrcDir.Command:=GetCommand(ecRescanFPCSrcDir);
// help menu
itmHelpAboutLazarus.Command:=GetCommand(ecAboutLazarus);
itmHelpOnlineHelp.Command:=GetCommand(ecOnlineHelp);
itmHelpConfigureHelp.Command:=GetCommand(ecConfigureHelp);
end;
{$ELSE}
with MainIDEBar, EditorOpts.KeyMap do begin
// file menu
itmFileNewUnit.ShortCut:=CommandToShortCut(ecNewUnit);
@ -959,6 +1364,7 @@ begin
itmHelpOnlineHelp.ShortCut:=CommandToShortCut(ecOnlineHelp);
itmHelpConfigureHelp.ShortCut:=CommandToShortCut(ecConfigureHelp);
end;
{$ENDIF}
end;
function TMainIDEBase.GetToolStatus: TIDEToolStatus;
@ -1308,7 +1714,7 @@ procedure TMainIDEBase.UpdateWindowsMenu;
var
WindowsList: TList;
i: Integer;
CurMenuItem: TMenuItem;
CurMenuItem: {$IFDEF UseMenuIntf}TIDEMenuItem{$ELSE}TMenuItem{$ENDIF};
AForm: TForm;
begin
WindowsList:=TList.Create;
@ -1336,8 +1742,13 @@ begin
if MainIDEBar.mnuWindows.Count>i then
CurMenuItem:=MainIDEBar.mnuWindows.Items[i]
else begin
{$IFDEF UseMenuIntf}
CurMenuItem:=RegisterIDEMenuCommand(MainIDEBar.mnuWindows.GetPath,
'Window'+IntToStr(i),'');
{$ELSE}
CurMenuItem:=TMenuItem.Create(MainIDEBar);
MainIDEBar.mnuWindows.Add(CurMenuItem);
{$ENDIF}
CurMenuItem.OnClick:=@mnuWindowsItemClick;
end;
CurMenuItem.Caption:=TCustomForm(WindowsList[i]).Caption;
@ -1349,25 +1760,33 @@ begin
WindowsList.Free;
end;
procedure TMainIDEBase.SetRecentSubMenu(ParentMenuItem: TMenuItem;
procedure TMainIDEBase.SetRecentSubMenu(
{$IFDEF UseMenuIntf}Section: TIDEMenuSection;
{$ELSE}Section: TMenuItem;{$ENDIF}
FileList: TStringList; OnClickEvent: TNotifyEvent);
var i: integer;
AMenuItem: TMenuItem;
var
i: integer;
AMenuItem: {$IFDEF UseMenuIntf}TIDEMenuItem{$ELSE}TMenuItem{$ENDIF};
begin
// create enough menuitems
while ParentMenuItem.Count<FileList.Count do begin
while Section.Count<FileList.Count do begin
{$IFDEF UseMenuIntf}
AMenuItem:=RegisterIDEMenuCommand(Section.GetPath,
Section.Name+'Recent'+IntToStr(Section.Count),'');
{$ELSE}
AMenuItem:=TMenuItem.Create(MainIDEBar);
AMenuItem.Name:=
ParentMenuItem.Name+'Recent'+IntToStr(ParentMenuItem.Count);
ParentMenuItem.Add(AMenuItem);
Section.Name+'Recent'+IntToStr(Section.Count);
Section.Add(AMenuItem);
{$ENDIF}
end;
// delete unused menuitems
while ParentMenuItem.Count>FileList.Count do
ParentMenuItem.Items[ParentMenuItem.Count-1].Free;
ParentMenuItem.Enabled:=(ParentMenuItem.Count>0);
while Section.Count>FileList.Count do
Section.Items[Section.Count-1].Free;
Section.Enabled:=(Section.Count>0);
// set captions and event
for i:=0 to FileList.Count-1 do begin
AMenuItem:=ParentMenuItem.Items[i];
AMenuItem:=Section.Items[i];
AMenuItem.Caption := FileList[i];
AMenuItem.OnClick := OnClickEvent;
end;

View File

@ -64,7 +64,7 @@ uses
Controls, Graphics, ExtCtrls, Dialogs, FileUtil, Forms, CodeToolManager,
CodeCache, AVL_Tree, SynEditKeyCmds,
// IDE
ObjectInspector,
ObjectInspector, MenuIntf,
LazConf, LazarusIDEStrConsts, MacroIntf,
ProjectIntf, ProjectDefs, Project, PublishModule, BuildLazDialog, Compiler,
LazIDEIntf,
@ -202,7 +202,9 @@ type
procedure UpdateWindowsMenu; virtual; abstract;
procedure SaveEnvironment; virtual; abstract;
procedure SetRecentSubMenu(ParentMenuItem: TMenuItem; FileList: TStringList;
procedure SetRecentSubMenu({$IFDEF UseMenuIntf}Section: TIDEMenuSection;
{$ELSE}Section: TMenuItem;{$ENDIF}
FileList: TStringList;
OnClickEvent: TNotifyEvent); virtual; abstract;
function DoJumpToSourcePosition(const Filename: string;
NewX, NewY, NewTopLine: integer;

View File

@ -60,7 +60,7 @@ const
{$ENDIF}
type
TIDECommandKeys = class;
TIDECommand = class;
TIDECommandCategory = class;
{ TIDECommandScope
@ -152,10 +152,10 @@ type
end;
{ TIDECommandKeys }
{ TIDECommand }
{ class for storing the keys of a single command
(shortcut-command relationship) }
TIDECommandKeys = class
TIDECommand = class
private
FCategory: TIDECommandCategory;
FCommand: word;
@ -183,6 +183,11 @@ type
property Category: TIDECommandCategory read FCategory write SetCategory;
end;
TIDECommands = class
public
function FindIDECommand(ACommand:word): TIDECommand; virtual; abstract;
end;
const
CleanIDEShortCut: TIDEShortCut =
(Key1: VK_UNKNOWN; Shift1: []; Key2: VK_UNKNOWN; Shift2: []);
@ -215,6 +220,7 @@ function IDEShortCutToMenuShortCut(const IDEShortCut: TIDEShortCut): TShortCut;
var
// will be set by the IDE
IDECommandList: TIDECommands;
IDECommandScopes: TIDECommandScopes = nil;
var
IDECmdScopeSrcEdit: TIDECommandScope;
@ -279,9 +285,9 @@ begin
IDECommandScopes.Add(Result);
end;
{ TIDECommandKeys }
{ TIDECommand }
function TIDECommandKeys.GetLocalizedName: string;
function TIDECommand.GetLocalizedName: string;
begin
if FLocalizedName<>'' then
Result:=FLocalizedName
@ -289,13 +295,13 @@ begin
Result:=Name;
end;
procedure TIDECommandKeys.SetLocalizedName(const AValue: string);
procedure TIDECommand.SetLocalizedName(const AValue: string);
begin
if FLocalizedName=AValue then exit;
FLocalizedName:=AValue;
end;
procedure TIDECommandKeys.SetCategory(const AValue: TIDECommandCategory);
procedure TIDECommand.SetCategory(const AValue: TIDECommandCategory);
begin
if FCategory=AValue then exit;
// unbind
@ -307,7 +313,7 @@ begin
Category.Add(Self);
end;
function TIDECommandKeys.AsShortCut: TShortCut;
function TIDECommand.AsShortCut: TShortCut;
var
CurKey: TIDEShortCut;
begin
@ -326,7 +332,7 @@ begin
Result:=Result+scAlt;
end;
constructor TIDECommandKeys.Create(TheCategory: TIDECommandCategory;
constructor TIDECommand.Create(TheCategory: TIDECommandCategory;
const TheName: String; TheCommand: word;
const TheKeyA, TheKeyB: TIDEShortCut);
begin
@ -339,17 +345,17 @@ begin
Category:=TheCategory;
end;
procedure TIDECommandKeys.ClearKeyA;
procedure TIDECommand.ClearKeyA;
begin
KeyA:=CleanIDEShortCut;
end;
procedure TIDECommandKeys.ClearKeyB;
procedure TIDECommand.ClearKeyB;
begin
KeyB:=CleanIDEShortCut;
end;
function TIDECommandKeys.GetCategoryAndName: string;
function TIDECommand.GetCategoryAndName: string;
begin
Result:='"'+GetLocalizedName+'"';
if Category<>nil then

View File

@ -64,6 +64,7 @@ type
FSection: TIDEMenuSection;
FSectionIndex: Integer;
FSize: integer;
FTag: Integer;
FVisible: Boolean;
FLastVisibleActive: boolean;
procedure MenuItemClick(Sender: TObject);
@ -110,6 +111,7 @@ type
property MenuItemClass: TMenuItemClass read FMenuItemClass write FMenuItemClass;
property SectionIndex: Integer read FSectionIndex;
property AutoFreeMenuItem: boolean read FAutoFreeMenuItem write FAutoFreeMenuItem;
property Tag: Integer read FTag write FTag;
end;
TIDEMenuItemClass = class of TIDEMenuItem;
@ -201,7 +203,7 @@ type
private
FAutoCheck: boolean;
FChecked: Boolean;
FCommand: TIDECommandKeys;
FCommand: TIDECommand;
FDefault: Boolean;
FGroupIndex: Byte;
FRadioItem: Boolean;
@ -215,10 +217,10 @@ type
procedure SetRadioItem(const AValue: Boolean); virtual;
procedure SetRightJustify(const AValue: boolean); virtual;
procedure SetShowAlwaysCheckable(const AValue: boolean); virtual;
procedure SetCommand(const AValue: TIDECommandKeys); virtual;
procedure SetCommand(const AValue: TIDECommand); virtual;
procedure SetMenuItem(const AValue: TMenuItem); override;
public
property Command: TIDECommandKeys read FCommand write SetCommand;
property Command: TIDECommand read FCommand write SetCommand;
property AutoCheck: boolean read FAutoCheck write SetAutoCheck default False;
property Checked: Boolean read FChecked write SetChecked default False;
property Default: Boolean read FDefault write SetDefault default False;
@ -295,7 +297,7 @@ function RegisterIDESubMenu(const Path, Name, Caption: string;
function RegisterIDEMenuCommand(const Path, Name, Caption: string;
const OnClickMethod: TNotifyEvent = nil;
const OnClickProc: TNotifyProcedure = nil;
const Command: TIDECommandKeys = nil
const Command: TIDECommand = nil
): TIDEMenuCommand;
implementation
@ -344,7 +346,7 @@ end;
function RegisterIDEMenuCommand(const Path, Name, Caption: string;
const OnClickMethod: TNotifyEvent; const OnClickProc: TNotifyProcedure;
const Command: TIDECommandKeys): TIDEMenuCommand;
const Command: TIDECommand): TIDEMenuCommand;
var
Parent: TIDEMenuSection;
begin
@ -364,8 +366,8 @@ end;
procedure TIDEMenuItem.MenuItemClick(Sender: TObject);
begin
if Assigned(OnClick) then OnClick(Sender);
if Assigned(OnClickProc) then OnClickProc(Sender);
if Assigned(OnClick) then OnClick(Self);
if Assigned(OnClickProc) then OnClickProc(Self);
end;
procedure TIDEMenuItem.MenuItemDestroy(Sender: TObject);
@ -1263,7 +1265,7 @@ begin
MenuItem.ShowAlwaysCheckable:=ShowAlwaysCheckable;
end;
procedure TIDEMenuCommand.SetCommand(const AValue: TIDECommandKeys);
procedure TIDEMenuCommand.SetCommand(const AValue: TIDECommand);
begin
if FCommand=AValue then exit;
FCommand:=AValue;