mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-08 00:12:40 +02:00
94 lines
3.5 KiB
ObjectPascal
94 lines
3.5 KiB
ObjectPascal
unit RegProjectGroup;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, ProjectGroupIntf, MenuIntf,
|
|
ProjectGroupStrConst, ProjectGroup, ProjectGroupEditor;
|
|
|
|
procedure RegisterStandardProjectGroupMenuItems;
|
|
procedure Register;
|
|
|
|
implementation
|
|
|
|
const
|
|
ProjectGroupEditorMenuRootName = 'ProjectGroupEditorMenu';
|
|
|
|
procedure RegisterStandardProjectGroupMenuItems;
|
|
var
|
|
Section,Root : TIDEMenuSection;
|
|
begin
|
|
Root:=RegisterIDEMenuRoot(ProjectGroupEditorMenuRootName);
|
|
ProjectGroupMenuRoot:=Root;
|
|
PGEditMenuSectionFiles:=RegisterIDEMenuSection(Root,'File');
|
|
|
|
Section:=RegisterIDEMenuSection(Root,'Compile');
|
|
PGEditMenuSectionCompile:=Section;
|
|
cmdTargetCompile:=RegisterIDEMenuCommand(Section,'TargetCompile',lisTargetCompile);
|
|
cmdTargetCompileClean:=RegisterIDEMenuCommand(Section,'TargetCompileClean',lisTargetCompileClean);
|
|
cmdTargetCompileFromHere:=RegisterIDEMenuCommand(Section,'TargetCompileFromHere',lisTargetCompileFromHere);
|
|
// ToDo: clean ... -> clean up dialog
|
|
// ToDo: set build mode of all projects
|
|
|
|
Section:=RegisterIDEMenuSection(Root,'AddRemove');
|
|
PGEditMenuSectionAddRemove:=Section;
|
|
cmdTargetAdd:=RegisterIDEMenuCommand(Section,'TargetAdd',lisTargetAdd);
|
|
cmdTargetRemove:=RegisterIDEMenuCommand(Section,'TargetRemove',lisTargetRemove);
|
|
// ToDo: re-add
|
|
|
|
Section:=RegisterIDEMenuSection(Root,'Use');
|
|
PGEditMenuSectionUse:=Section;
|
|
cmdTargetInstall:=RegisterIDEMenuCommand(Section,'TargetInstall',lisTargetInstall);// ToDo
|
|
cmdTargetUninstall:=RegisterIDEMenuCommand(Section,'TargetUninstall',lisTargetUninstall);// ToDo
|
|
cmdTargetEarlier:=RegisterIDEMenuCommand(Section,'TargetEarlier',lisTargetEarlier);// ToDo: Ctrl+Up
|
|
cmdTargetLater:=RegisterIDEMenuCommand(Section,'TargetLater',lisTargetLater);// ToDo: Ctrl+Down
|
|
cmdTargetActivate:=RegisterIDEMenuCommand(Section,'TargetActivate',lisTargetActivate);
|
|
cmdTargetOpen:=RegisterIDEMenuCommand(Section,'TargetOpen',lisTargetOpen);
|
|
cmdTargetRun:=RegisterIDEMenuCommand(Section,'TargetRun',lisTargetRun);
|
|
cmdTargetProperties:=RegisterIDEMenuCommand(Section,'TargetProperties',lisTargetProperties);
|
|
|
|
Section:=RegisterIDEMenuSection(Root,'Misc');
|
|
PGEditMenuSectionMisc:=Section;
|
|
|
|
cmdTargetCopyFilename:=RegisterIDEMenuCommand(Section,'CopyFilename',lisTargetCopyFilename);
|
|
// ToDo: View source (project)
|
|
|
|
// ToDo: find in files
|
|
// ToDo: find references in files
|
|
|
|
// ToDo: D&D order compile targets
|
|
end;
|
|
|
|
procedure Register;
|
|
begin
|
|
RegisterStandardProjectGroupMenuItems;
|
|
IDEProjectGroupManager:=TIDEProjectGroupManager.Create;
|
|
IDEProjectGroupManager.Options.LoadSafe;
|
|
|
|
cmdCreateProjectGroup:=RegisterIDEMenuCommand(itmProjectNewSection,
|
|
'NewProjectGroup',lisNewProjectGroup,@IDEProjectGroupManager.DoNewClick);
|
|
cmdOpenProjectGroup:=RegisterIDEMenuCommand(itmProjectOpenSection,
|
|
'OpenProjectGroup',lisOpenProjectGroup,@IDEProjectGroupManager.DoOpenClick);
|
|
OpenRecentProjectGroupSubMenu:=RegisterIDESubMenu(itmProjectOpenSection,
|
|
'OpenRecentProjectGroup',lisOpenRecentProjectGroup);
|
|
cmdSaveProjectGroup:=RegisterIDEMenuCommand(itmProjectSaveSection,
|
|
'SaveProjectGroup',lisSaveProjectGroup,@IDEProjectGroupManager.DoSaveClick);
|
|
cmdSaveProjectGroup.Enabled:=false;
|
|
cmdSaveProjectGroupAs:=RegisterIDEMenuCommand(itmProjectSaveSection,
|
|
'SaveProjectGroupAs',lisSaveProjectGroupAs,@IDEProjectGroupManager.DoSaveAsClick);
|
|
cmdSaveProjectGroupAs.Enabled:=false;
|
|
|
|
IDEProjectGroupManager.UpdateRecentProjectGroupMenu;
|
|
|
|
ProjectGroupManager:=IDEProjectGroupManager;
|
|
SetProjectGroupEditorCallBack;
|
|
end;
|
|
|
|
finalization
|
|
FreeAndNil(IDEProjectGroupManager);
|
|
|
|
end.
|
|
|