1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
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.
|