mirror of https://gitlab.com/basile.b/dexed.git
common project interface - part 1
This commit is contained in:
parent
3d74bffa3b
commit
9139d8eef7
|
@ -176,6 +176,7 @@
|
||||||
<ComponentName Value="CEEditorWidget"/>
|
<ComponentName Value="CEEditorWidget"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="ce_editor"/>
|
||||||
</Unit8>
|
</Unit8>
|
||||||
<Unit9>
|
<Unit9>
|
||||||
<Filename Value="..\src\ce_editoroptions.pas"/>
|
<Filename Value="..\src\ce_editoroptions.pas"/>
|
||||||
|
@ -188,10 +189,12 @@
|
||||||
<Unit11>
|
<Unit11>
|
||||||
<Filename Value="..\src\ce_interfaces.pas"/>
|
<Filename Value="..\src\ce_interfaces.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="ce_interfaces"/>
|
||||||
</Unit11>
|
</Unit11>
|
||||||
<Unit12>
|
<Unit12>
|
||||||
<Filename Value="..\src\ce_libman.pas"/>
|
<Filename Value="..\src\ce_libman.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="ce_libman"/>
|
||||||
</Unit12>
|
</Unit12>
|
||||||
<Unit13>
|
<Unit13>
|
||||||
<Filename Value="..\src\ce_libmaneditor.pas"/>
|
<Filename Value="..\src\ce_libmaneditor.pas"/>
|
||||||
|
@ -199,6 +202,7 @@
|
||||||
<ComponentName Value="CELibManEditorWidget"/>
|
<ComponentName Value="CELibManEditorWidget"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="ce_libmaneditor"/>
|
||||||
</Unit13>
|
</Unit13>
|
||||||
<Unit14>
|
<Unit14>
|
||||||
<Filename Value="..\src\ce_main.pas"/>
|
<Filename Value="..\src\ce_main.pas"/>
|
||||||
|
@ -226,6 +230,7 @@
|
||||||
<Unit17>
|
<Unit17>
|
||||||
<Filename Value="..\src\ce_mru.pas"/>
|
<Filename Value="..\src\ce_mru.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="ce_mru"/>
|
||||||
</Unit17>
|
</Unit17>
|
||||||
<Unit18>
|
<Unit18>
|
||||||
<Filename Value="..\src\ce_observer.pas"/>
|
<Filename Value="..\src\ce_observer.pas"/>
|
||||||
|
@ -244,6 +249,7 @@
|
||||||
<ComponentName Value="CEProcInputWidget"/>
|
<ComponentName Value="CEProcInputWidget"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="ce_procinput"/>
|
||||||
</Unit20>
|
</Unit20>
|
||||||
<Unit21>
|
<Unit21>
|
||||||
<Filename Value="..\src\ce_projconf.pas"/>
|
<Filename Value="..\src\ce_projconf.pas"/>
|
||||||
|
@ -264,6 +270,7 @@
|
||||||
<ComponentName Value="CEProjectInspectWidget"/>
|
<ComponentName Value="CEProjectInspectWidget"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="ce_projinspect"/>
|
||||||
</Unit23>
|
</Unit23>
|
||||||
<Unit24>
|
<Unit24>
|
||||||
<Filename Value="..\src\ce_search.pas"/>
|
<Filename Value="..\src\ce_search.pas"/>
|
||||||
|
@ -294,10 +301,12 @@
|
||||||
<Unit28>
|
<Unit28>
|
||||||
<Filename Value="..\src\ce_symstring.pas"/>
|
<Filename Value="..\src\ce_symstring.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="ce_symstring"/>
|
||||||
</Unit28>
|
</Unit28>
|
||||||
<Unit29>
|
<Unit29>
|
||||||
<Filename Value="..\src\ce_synmemo.pas"/>
|
<Filename Value="..\src\ce_synmemo.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="ce_synmemo"/>
|
||||||
</Unit29>
|
</Unit29>
|
||||||
<Unit30>
|
<Unit30>
|
||||||
<Filename Value="..\src\ce_todolist.pas"/>
|
<Filename Value="..\src\ce_todolist.pas"/>
|
||||||
|
@ -310,7 +319,6 @@
|
||||||
<Unit31>
|
<Unit31>
|
||||||
<Filename Value="..\src\ce_tools.pas"/>
|
<Filename Value="..\src\ce_tools.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="ce_tools"/>
|
|
||||||
</Unit31>
|
</Unit31>
|
||||||
<Unit32>
|
<Unit32>
|
||||||
<Filename Value="..\src\ce_toolseditor.pas"/>
|
<Filename Value="..\src\ce_toolseditor.pas"/>
|
||||||
|
@ -330,6 +338,7 @@
|
||||||
<Unit35>
|
<Unit35>
|
||||||
<Filename Value="..\src\ce_sharedres.pas"/>
|
<Filename Value="..\src\ce_sharedres.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="ce_sharedres"/>
|
||||||
</Unit35>
|
</Unit35>
|
||||||
<Unit36>
|
<Unit36>
|
||||||
<Filename Value="..\src\ce_widget.pas"/>
|
<Filename Value="..\src\ce_widget.pas"/>
|
||||||
|
@ -337,7 +346,6 @@
|
||||||
<ComponentName Value="CEWidget"/>
|
<ComponentName Value="CEWidget"/>
|
||||||
<HasResources Value="True"/>
|
<HasResources Value="True"/>
|
||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
<UnitName Value="ce_widget"/>
|
|
||||||
</Unit36>
|
</Unit36>
|
||||||
</Units>
|
</Units>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
|
|
|
@ -28,16 +28,16 @@ type
|
||||||
fClient, fServer: TProcess;
|
fClient, fServer: TProcess;
|
||||||
fAvailable: boolean;
|
fAvailable: boolean;
|
||||||
fDoc: TCESynMemo;
|
fDoc: TCESynMemo;
|
||||||
fProj: TCEProject;
|
fProj: TCENativeProject;
|
||||||
procedure killServer;
|
procedure killServer;
|
||||||
procedure terminateClient;
|
procedure terminateClient;
|
||||||
procedure waitClient;
|
procedure waitClient;
|
||||||
//
|
//
|
||||||
procedure projNew(aProject: TCEProject);
|
procedure projNew(aProject: ICECommonProject);
|
||||||
procedure projChanged(aProject: TCEProject);
|
procedure projChanged(aProject: ICECommonProject);
|
||||||
procedure projClosing(aProject: TCEProject);
|
procedure projClosing(aProject: ICECommonProject);
|
||||||
procedure projFocused(aProject: TCEProject);
|
procedure projFocused(aProject: ICECommonProject);
|
||||||
procedure projCompiling(aProject: TCEProject);
|
procedure projCompiling(aProject: ICECommonProject);
|
||||||
//
|
//
|
||||||
procedure docNew(aDoc: TCESynMemo);
|
procedure docNew(aDoc: TCESynMemo);
|
||||||
procedure docFocused(aDoc: TCESynMemo);
|
procedure docFocused(aDoc: TCESynMemo);
|
||||||
|
@ -112,18 +112,21 @@ end;
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
||||||
{$REGION ICEProjectObserver ----------------------------------------------------}
|
{$REGION ICEProjectObserver ----------------------------------------------------}
|
||||||
procedure TCEDcdWrapper.projNew(aProject: TCEProject);
|
procedure TCEDcdWrapper.projNew(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
fProj := aProject;
|
case aProject.getKind of
|
||||||
|
pkNative: fProj := TCENativeProject(aProject.getProject);
|
||||||
|
pkDub:fProj := nil;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEDcdWrapper.projChanged(aProject: TCEProject);
|
procedure TCEDcdWrapper.projChanged(aProject: ICECommonProject);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
fold: string;
|
fold: string;
|
||||||
folds: TStringList;
|
folds: TStringList;
|
||||||
begin
|
begin
|
||||||
if fProj <> aProject then
|
if fProj <> aProject.getProject then
|
||||||
exit;
|
exit;
|
||||||
if fProj = nil then
|
if fProj = nil then
|
||||||
exit;
|
exit;
|
||||||
|
@ -148,18 +151,22 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEDcdWrapper.projClosing(aProject: TCEProject);
|
procedure TCEDcdWrapper.projClosing(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
if fProj <> aProject then exit;
|
if fProj <> aProject.getProject then
|
||||||
|
exit;
|
||||||
fProj := nil;
|
fProj := nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEDcdWrapper.projFocused(aProject: TCEProject);
|
procedure TCEDcdWrapper.projFocused(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
fProj := aProject;
|
case aProject.getKind of
|
||||||
|
pkNative: fProj := TCENativeProject(aProject.getProject);
|
||||||
|
pkDub:fProj := nil;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEDcdWrapper.projCompiling(aProject: TCEProject);
|
procedure TCEDcdWrapper.projCompiling(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
|
@ -6,10 +6,45 @@ interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, actnList, menus, process,
|
Classes, SysUtils, actnList, menus, process,
|
||||||
ce_synmemo, ce_project, ce_observer;
|
ce_synmemo, ce_observer;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
|
// describes the project kind. Used as a hint to cast ICECommonProject.getProject()
|
||||||
|
TCEProjectKind = (pkNative, pkDub);
|
||||||
|
|
||||||
|
(**
|
||||||
|
* Common project interface
|
||||||
|
*)
|
||||||
|
ICECommonProject = interface
|
||||||
|
['ICECommonProject']
|
||||||
|
function getKind: TCEProjectKind;
|
||||||
|
// returns an untyped object that can be casted using getSpecialization()
|
||||||
|
function getProject: TObject;
|
||||||
|
|
||||||
|
//// project file
|
||||||
|
//function filename: string;
|
||||||
|
//procedure loadFromFile(const aFilename: string);
|
||||||
|
//procedure saveToFile(const aFilename: string);
|
||||||
|
//procedure save;
|
||||||
|
//
|
||||||
|
//// common project properties
|
||||||
|
//function sourceCount: integer;
|
||||||
|
//function source(index: integer): string;
|
||||||
|
//function stringImportCount: integer;
|
||||||
|
//function stringImport(index: integer): string;
|
||||||
|
//function moduleImportCount: integer;
|
||||||
|
//function moduleImport(index: integer): string;
|
||||||
|
//function configurationCount: integer;
|
||||||
|
//function configuration(index: integer): string;
|
||||||
|
//function outputFilename: string;
|
||||||
|
//
|
||||||
|
//// common actions
|
||||||
|
//function compile: boolean;
|
||||||
|
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
(**
|
(**
|
||||||
* An implementer declares some actions on demand.
|
* An implementer declares some actions on demand.
|
||||||
*)
|
*)
|
||||||
|
@ -55,15 +90,15 @@ type
|
||||||
ICEProjectObserver = interface
|
ICEProjectObserver = interface
|
||||||
['ICEProjectObserver']
|
['ICEProjectObserver']
|
||||||
// aProject has been created/opened
|
// aProject has been created/opened
|
||||||
procedure projNew(aProject: TCEProject);
|
procedure projNew(aProject: ICECommonProject);
|
||||||
// aProject has been modified: switches, source name, ...
|
// aProject has been modified: switches, source name, ...
|
||||||
procedure projChanged(aProject: TCEProject);
|
procedure projChanged(aProject: ICECommonProject);
|
||||||
// aProject is about to be closed.
|
// aProject is about to be closed.
|
||||||
procedure projClosing(aProject: TCEProject);
|
procedure projClosing(aProject: ICECommonProject);
|
||||||
// not called yet: aProject is always the same
|
// not called yet: aProject is always the same
|
||||||
procedure projFocused(aProject: TCEProject);
|
procedure projFocused(aProject: ICECommonProject);
|
||||||
// aProject is about to be compiled
|
// aProject is about to be compiled
|
||||||
procedure projCompiling(aProject: TCEProject);
|
procedure projCompiling(aProject: ICECommonProject);
|
||||||
end;
|
end;
|
||||||
(**
|
(**
|
||||||
* An implementer informs some ICEProjectObserver about the current project(s)
|
* An implementer informs some ICEProjectObserver about the current project(s)
|
||||||
|
@ -258,11 +293,11 @@ type
|
||||||
(**
|
(**
|
||||||
* TCEProjectSubject primitives.
|
* TCEProjectSubject primitives.
|
||||||
*)
|
*)
|
||||||
procedure subjProjNew(aSubject: TCEProjectSubject; aProj: TCEProject); {$IFDEF RELEASE}inline;{$ENDIF}
|
procedure subjProjNew(aSubject: TCEProjectSubject; aProj: ICECommonProject); {$IFDEF RELEASE}inline;{$ENDIF}
|
||||||
procedure subjProjClosing(aSubject: TCEProjectSubject; aProj: TCEProject); {$IFDEF RELEASE}inline;{$ENDIF}
|
procedure subjProjClosing(aSubject: TCEProjectSubject; aProj: ICECommonProject); {$IFDEF RELEASE}inline;{$ENDIF}
|
||||||
procedure subjProjFocused(aSubject: TCEProjectSubject; aProj: TCEProject); {$IFDEF RELEASE}inline;{$ENDIF}
|
procedure subjProjFocused(aSubject: TCEProjectSubject; aProj: ICECommonProject); {$IFDEF RELEASE}inline;{$ENDIF}
|
||||||
procedure subjProjChanged(aSubject: TCEProjectSubject; aProj: TCEProject); {$IFDEF RELEASE}inline;{$ENDIF}
|
procedure subjProjChanged(aSubject: TCEProjectSubject; aProj: ICECommonProject); {$IFDEF RELEASE}inline;{$ENDIF}
|
||||||
procedure subjProjCompiling(aSubject: TCEProjectSubject; aProj: TCEProject);{$IFDEF RELEASE}inline;{$ENDIF}
|
procedure subjProjCompiling(aSubject: TCEProjectSubject; aProj: ICECommonProject);{$IFDEF RELEASE}inline;{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -332,7 +367,7 @@ begin
|
||||||
exit(aObject is ICEProjectObserver);
|
exit(aObject is ICEProjectObserver);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure subjProjNew(aSubject: TCEProjectSubject; aProj: TCEProject);
|
procedure subjProjNew(aSubject: TCEProjectSubject; aProj: ICECommonProject);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
|
@ -340,7 +375,7 @@ begin
|
||||||
(fObservers.Items[i] as ICEProjectObserver).ProjNew(aProj);
|
(fObservers.Items[i] as ICEProjectObserver).ProjNew(aProj);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure subjProjClosing(aSubject: TCEProjectSubject; aProj: TCEProject);
|
procedure subjProjClosing(aSubject: TCEProjectSubject; aProj: ICECommonProject);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
|
@ -348,7 +383,7 @@ begin
|
||||||
(fObservers.Items[i] as ICEProjectObserver).projClosing(aProj);
|
(fObservers.Items[i] as ICEProjectObserver).projClosing(aProj);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure subjProjFocused(aSubject: TCEProjectSubject; aProj: TCEProject);
|
procedure subjProjFocused(aSubject: TCEProjectSubject; aProj: ICECommonProject);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
|
@ -356,7 +391,7 @@ begin
|
||||||
(fObservers.Items[i] as ICEProjectObserver).projFocused(aProj);
|
(fObservers.Items[i] as ICEProjectObserver).projFocused(aProj);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure subjProjChanged(aSubject: TCEProjectSubject; aProj: TCEProject);
|
procedure subjProjChanged(aSubject: TCEProjectSubject; aProj: ICECommonProject);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
|
@ -364,7 +399,7 @@ begin
|
||||||
(fObservers.Items[i] as ICEProjectObserver).projChanged(aProj);
|
(fObservers.Items[i] as ICEProjectObserver).projChanged(aProj);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure subjProjCompiling(aSubject: TCEProjectSubject; aProj: TCEProject);
|
procedure subjProjCompiling(aSubject: TCEProjectSubject; aProj: ICECommonProject);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
|
|
|
@ -36,13 +36,13 @@ type
|
||||||
procedure btnMoveDownClick(Sender: TObject);
|
procedure btnMoveDownClick(Sender: TObject);
|
||||||
procedure ListEdited(Sender: TObject; Item: TListItem; var AValue: string);
|
procedure ListEdited(Sender: TObject; Item: TListItem; var AValue: string);
|
||||||
private
|
private
|
||||||
fProj: TCEProject;
|
fProj: TCENativeProject;
|
||||||
procedure updateRegistrable;
|
procedure updateRegistrable;
|
||||||
procedure projNew(aProject: TCEProject);
|
procedure projNew(aProject: ICECommonProject);
|
||||||
procedure projChanged(aProject: TCEProject);
|
procedure projChanged(aProject: ICECommonProject);
|
||||||
procedure projClosing(aProject: TCEProject);
|
procedure projClosing(aProject: ICECommonProject);
|
||||||
procedure projFocused(aProject: TCEProject);
|
procedure projFocused(aProject: ICECommonProject);
|
||||||
procedure projCompiling(aProject: TCEProject);
|
procedure projCompiling(aProject: ICECommonProject);
|
||||||
//
|
//
|
||||||
procedure dataToGrid;
|
procedure dataToGrid;
|
||||||
procedure gridToData;
|
procedure gridToData;
|
||||||
|
@ -99,30 +99,37 @@ begin
|
||||||
(FileExists(fProj.Filename))
|
(FileExists(fProj.Filename))
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCELibManEditorWidget.projNew(aProject: TCEProject);
|
procedure TCELibManEditorWidget.projNew(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
fProj := aProject;
|
if aProject.getKind <> pkNative then
|
||||||
|
exit;
|
||||||
|
fProj := TCENativeProject(aProject.getProject);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCELibManEditorWidget.projChanged(aProject: TCEProject);
|
procedure TCELibManEditorWidget.projChanged(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
|
if fProj = nil then exit;
|
||||||
|
if fProj <> aProject.getProject then exit;
|
||||||
|
//
|
||||||
updateRegistrable;
|
updateRegistrable;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCELibManEditorWidget.projClosing(aProject: TCEProject);
|
procedure TCELibManEditorWidget.projClosing(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
if aProject <> fProj then exit;
|
if fProj <> aProject.getProject then exit;
|
||||||
fProj := nil;
|
fProj := nil;
|
||||||
updateRegistrable;
|
updateRegistrable;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCELibManEditorWidget.projFocused(aProject: TCEProject);
|
procedure TCELibManEditorWidget.projFocused(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
fProj := aProject;
|
if aProject.getKind <> pkNative then
|
||||||
|
exit;
|
||||||
|
fProj := TCENativeProject(aProject.getProject);
|
||||||
updateRegistrable;
|
updateRegistrable;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCELibManEditorWidget.projCompiling(aProject: TCEProject);
|
procedure TCELibManEditorWidget.projCompiling(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
|
@ -189,7 +189,7 @@ type
|
||||||
fMultidoc: ICEMultiDocHandler;
|
fMultidoc: ICEMultiDocHandler;
|
||||||
fScCollectCount: Integer;
|
fScCollectCount: Integer;
|
||||||
fUpdateCount: NativeInt;
|
fUpdateCount: NativeInt;
|
||||||
fProject: TCEProject;
|
fProject: TCENativeProject;
|
||||||
fProjMru: TCEMRUProjectList;
|
fProjMru: TCEMRUProjectList;
|
||||||
fFileMru: TCEMRUDocumentList;
|
fFileMru: TCEMRUDocumentList;
|
||||||
fWidgList: TCEWidgetList;
|
fWidgList: TCEWidgetList;
|
||||||
|
@ -1733,7 +1733,7 @@ end;
|
||||||
|
|
||||||
procedure TCEMainForm.newProj;
|
procedure TCEMainForm.newProj;
|
||||||
begin
|
begin
|
||||||
fProject := TCEProject.Create(nil);
|
fProject := TCENativeProject.Create(nil);
|
||||||
fProject.Name := 'CurrentProject';
|
fProject.Name := 'CurrentProject';
|
||||||
showProjTitle;
|
showProjTitle;
|
||||||
end;
|
end;
|
||||||
|
|
|
@ -83,7 +83,7 @@ type
|
||||||
fActCopyMsg: TAction;
|
fActCopyMsg: TAction;
|
||||||
fActSelAll: TAction;
|
fActSelAll: TAction;
|
||||||
fMaxMessCnt: Integer;
|
fMaxMessCnt: Integer;
|
||||||
fProj: TCEProject;
|
fProj: TCENativeProject;
|
||||||
fDoc: TCESynMemo;
|
fDoc: TCESynMemo;
|
||||||
fCtxt: TCEAppMessageCtxt;
|
fCtxt: TCEAppMessageCtxt;
|
||||||
fAutoSelect: boolean;
|
fAutoSelect: boolean;
|
||||||
|
@ -114,11 +114,11 @@ type
|
||||||
procedure setColorBuble(aValue: TColor);
|
procedure setColorBuble(aValue: TColor);
|
||||||
procedure setColorWarning(aValue: TColor);
|
procedure setColorWarning(aValue: TColor);
|
||||||
//
|
//
|
||||||
procedure projNew(aProject: TCEProject);
|
procedure projNew(aProject: ICECommonProject);
|
||||||
procedure projClosing(aProject: TCEProject);
|
procedure projClosing(aProject: ICECommonProject);
|
||||||
procedure projFocused(aProject: TCEProject);
|
procedure projFocused(aProject: ICECommonProject);
|
||||||
procedure projChanged(aProject: TCEProject);
|
procedure projChanged(aProject: ICECommonProject);
|
||||||
procedure projCompiling(aProject: TCEProject);
|
procedure projCompiling(aProject: ICECommonProject);
|
||||||
//
|
//
|
||||||
procedure docNew(aDoc: TCESynMemo);
|
procedure docNew(aDoc: TCESynMemo);
|
||||||
procedure docClosing(aDoc: TCESynMemo);
|
procedure docClosing(aDoc: TCESynMemo);
|
||||||
|
@ -584,34 +584,40 @@ end;
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
||||||
{$REGION ICEProjectObserver ----------------------------------------------------}
|
{$REGION ICEProjectObserver ----------------------------------------------------}
|
||||||
procedure TCEMessagesWidget.projNew(aProject: TCEProject);
|
procedure TCEMessagesWidget.projNew(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
fProj := aProject;
|
case aProject.getKind of
|
||||||
|
pkNative: fProj := TCENativeProject(aProject.getProject);
|
||||||
|
pkDub:fProj := nil;
|
||||||
|
end;
|
||||||
filterMessages(fCtxt);
|
filterMessages(fCtxt);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEMessagesWidget.projClosing(aProject: TCEProject);
|
procedure TCEMessagesWidget.projClosing(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
if fProj <> aProject then
|
if fProj <> aProject.getProject then
|
||||||
exit;
|
exit;
|
||||||
//
|
//
|
||||||
clearbyData(aProject);
|
clearbyData(fProj);
|
||||||
fProj := nil;
|
fProj := nil;
|
||||||
filterMessages(fCtxt);
|
filterMessages(fCtxt);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEMessagesWidget.projFocused(aProject: TCEProject);
|
procedure TCEMessagesWidget.projFocused(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
if fProj = aProject then exit;
|
if fProj = aProject.getProject then exit;
|
||||||
fProj := aProject;
|
case aProject.getKind of
|
||||||
|
pkNative: fProj := TCENativeProject(aProject.getProject);
|
||||||
|
pkDub:fProj := nil;
|
||||||
|
end;
|
||||||
filterMessages(fCtxt);
|
filterMessages(fCtxt);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEMessagesWidget.projChanged(aProject: TCEProject);
|
procedure TCEMessagesWidget.projChanged(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEMessagesWidget.projCompiling(aProject: TCEProject);
|
procedure TCEMessagesWidget.projCompiling(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
@ -789,7 +795,7 @@ begin
|
||||||
Itm.Visible := true
|
Itm.Visible := true
|
||||||
else case msgdt^.ctxt of
|
else case msgdt^.ctxt of
|
||||||
amcEdit: itm.Visible := (fDoc = TCESynMemo(msgdt^.data)) and (aCtxt = amcEdit);
|
amcEdit: itm.Visible := (fDoc = TCESynMemo(msgdt^.data)) and (aCtxt = amcEdit);
|
||||||
amcProj: itm.Visible := (fProj = TCEProject(msgdt^.data)) and (aCtxt = amcProj);
|
amcProj: itm.Visible := (fProj = TCENativeProject(msgdt^.data)) and (aCtxt = amcProj);
|
||||||
amcApp: itm.Visible := aCtxt = amcApp;
|
amcApp: itm.Visible := aCtxt = amcApp;
|
||||||
amcMisc: itm.Visible := aCtxt = amcMisc;
|
amcMisc: itm.Visible := aCtxt = amcMisc;
|
||||||
end;
|
end;
|
||||||
|
|
|
@ -63,11 +63,11 @@ type
|
||||||
*)
|
*)
|
||||||
TCEMRUProjectList = class(TCEMRUFileList, ICEProjectObserver)
|
TCEMRUProjectList = class(TCEMRUFileList, ICEProjectObserver)
|
||||||
private
|
private
|
||||||
procedure projNew(aProject: TCEProject);
|
procedure projNew(aProject: ICECommonProject);
|
||||||
procedure projChanged(aProject: TCEProject);
|
procedure projChanged(aProject: ICECommonProject);
|
||||||
procedure projClosing(aProject: TCEProject);
|
procedure projClosing(aProject: ICECommonProject);
|
||||||
procedure projFocused(aProject: TCEProject);
|
procedure projFocused(aProject: ICECommonProject);
|
||||||
procedure projCompiling(aProject: TCEProject);
|
procedure projCompiling(aProject: ICECommonProject);
|
||||||
public
|
public
|
||||||
constructor create; override;
|
constructor create; override;
|
||||||
destructor destroy; override;
|
destructor destroy; override;
|
||||||
|
@ -192,26 +192,32 @@ begin
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEMRUProjectList.projNew(aProject: TCEProject);
|
procedure TCEMRUProjectList.projNew(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEMRUProjectList.projFocused(aProject: TCEProject);
|
procedure TCEMRUProjectList.projFocused(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEMRUProjectList.projChanged(aProject: TCEProject);
|
procedure TCEMRUProjectList.projChanged(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEMRUProjectList.projCompiling(aProject: TCEProject);
|
procedure TCEMRUProjectList.projCompiling(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEMRUProjectList.projClosing(aProject: TCEProject);
|
procedure TCEMRUProjectList.projClosing(aProject: ICECommonProject);
|
||||||
|
var
|
||||||
|
natProj: TCENativeProject;
|
||||||
begin
|
begin
|
||||||
if FileExists(aProject.fileName) then
|
if aProject.getProject is TCENativeProject then
|
||||||
Insert(0, aProject.fileName);
|
begin
|
||||||
|
natProj := TCENativeProject(aProject.getProject);
|
||||||
|
if FileExists(natProj.fileName) then
|
||||||
|
Insert(0, natProj.fileName);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
|
|
|
@ -35,7 +35,7 @@ type
|
||||||
procedure TreeChange(Sender: TObject; Node: TTreeNode);
|
procedure TreeChange(Sender: TObject; Node: TTreeNode);
|
||||||
procedure GridFilter(Sender: TObject; aEditor: TPropertyEditor;var aShow: boolean);
|
procedure GridFilter(Sender: TObject; aEditor: TPropertyEditor;var aShow: boolean);
|
||||||
private
|
private
|
||||||
fProj: TCEProject;
|
fProj: TCENativeProject;
|
||||||
fSyncroMode: boolean;
|
fSyncroMode: boolean;
|
||||||
fSynchroItem: TStringList;
|
fSynchroItem: TStringList;
|
||||||
fSynchroValue: TStringList;
|
fSynchroValue: TStringList;
|
||||||
|
@ -45,11 +45,11 @@ type
|
||||||
procedure syncroGetPropAsString(const ASection, Item, Value: string);
|
procedure syncroGetPropAsString(const ASection, Item, Value: string);
|
||||||
property syncroMode: boolean read fSyncroMode write setSyncroMode;
|
property syncroMode: boolean read fSyncroMode write setSyncroMode;
|
||||||
//
|
//
|
||||||
procedure projNew(aProject: TCEProject);
|
procedure projNew(aProject: ICECommonProject);
|
||||||
procedure projClosing(aProject: TCEProject);
|
procedure projClosing(aProject: ICECommonProject);
|
||||||
procedure projChanged(aProject: TCEProject);
|
procedure projChanged(aProject: ICECommonProject);
|
||||||
procedure projFocused(aProject: TCEProject);
|
procedure projFocused(aProject: ICECommonProject);
|
||||||
procedure projCompiling(aProject: TCEProject);
|
procedure projCompiling(aProject: ICECommonProject);
|
||||||
protected
|
protected
|
||||||
procedure updateImperative; override;
|
procedure updateImperative; override;
|
||||||
procedure SetVisible(Value: boolean); override;
|
procedure SetVisible(Value: boolean); override;
|
||||||
|
@ -107,18 +107,21 @@ end;
|
||||||
{$ENDREGION --------------------------------------------------------------------}
|
{$ENDREGION --------------------------------------------------------------------}
|
||||||
|
|
||||||
{$REGION ICEProjectObserver ----------------------------------------------------}
|
{$REGION ICEProjectObserver ----------------------------------------------------}
|
||||||
procedure TCEProjectConfigurationWidget.projNew(aProject: TCEProject);
|
procedure TCEProjectConfigurationWidget.projNew(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
beginImperativeUpdate;
|
beginImperativeUpdate;
|
||||||
fProj := aProject;
|
case aProject.getKind of
|
||||||
|
pkNative: fProj := TCENativeProject(aProject.getProject);
|
||||||
|
pkDub:fProj := nil;
|
||||||
|
end;
|
||||||
if Visible then updateImperative;
|
if Visible then updateImperative;
|
||||||
syncroMode := false;
|
syncroMode := false;
|
||||||
pnlToolBar.Enabled:=true;
|
pnlToolBar.Enabled:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProjectConfigurationWidget.projClosing(aProject: TCEProject);
|
procedure TCEProjectConfigurationWidget.projClosing(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
if fProj <> aProject then
|
if fProj <> aProject.getProject then
|
||||||
exit;
|
exit;
|
||||||
inspector.TIObject := nil;
|
inspector.TIObject := nil;
|
||||||
inspector.ItemIndex := -1;
|
inspector.ItemIndex := -1;
|
||||||
|
@ -128,21 +131,27 @@ begin
|
||||||
fProj := nil;
|
fProj := nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProjectConfigurationWidget.projChanged(aProject: TCEProject);
|
procedure TCEProjectConfigurationWidget.projChanged(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
if fProj <> aProject then exit;
|
if fProj <> aProject.getProject then exit;
|
||||||
fProj := aProject;
|
case aProject.getKind of
|
||||||
|
pkNative: fProj := TCENativeProject(aProject.getProject);
|
||||||
|
pkDub:fProj := nil;
|
||||||
|
end;
|
||||||
if Visible then updateImperative;
|
if Visible then updateImperative;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProjectConfigurationWidget.projFocused(aProject: TCEProject);
|
procedure TCEProjectConfigurationWidget.projFocused(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
fProj := aProject;
|
case aProject.getKind of
|
||||||
|
pkNative: fProj := TCENativeProject(aProject.getProject);
|
||||||
|
pkDub: fProj := nil;
|
||||||
|
end;
|
||||||
pnlToolBar.Enabled:=true;
|
pnlToolBar.Enabled:=true;
|
||||||
if Visible then updateImperative;
|
if Visible then updateImperative;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProjectConfigurationWidget.projCompiling(aProject: TCEProject);
|
procedure TCEProjectConfigurationWidget.projCompiling(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
{$ENDREGION --------------------------------------------------------------------}
|
{$ENDREGION --------------------------------------------------------------------}
|
||||||
|
|
|
@ -9,7 +9,7 @@ uses
|
||||||
LclProc,
|
LclProc,
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
Classes, SysUtils, process, strUtils, ce_common, ce_writableComponent,
|
Classes, SysUtils, process, strUtils, ce_common, ce_writableComponent,
|
||||||
ce_dmdwrap, ce_observer;
|
ce_dmdwrap, ce_observer, ce_interfaces;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ type
|
||||||
*
|
*
|
||||||
* Basically it' s designed to provide the options for the dmd process.
|
* Basically it' s designed to provide the options for the dmd process.
|
||||||
*)
|
*)
|
||||||
TCEProject = class(TWritableLfmTextComponent)
|
TCENativeProject = class(TWritableLfmTextComponent, ICECommonProject)
|
||||||
private
|
private
|
||||||
fOnChange: TNotifyEvent;
|
fOnChange: TNotifyEvent;
|
||||||
fModified: boolean;
|
fModified: boolean;
|
||||||
|
@ -51,6 +51,9 @@ type
|
||||||
procedure runProcOutput(sender: TObject);
|
procedure runProcOutput(sender: TObject);
|
||||||
// passes compilation message as "to be guessed"
|
// passes compilation message as "to be guessed"
|
||||||
procedure compProcOutput(proc: TProcess);
|
procedure compProcOutput(proc: TProcess);
|
||||||
|
//
|
||||||
|
function getKind: TCEProjectKind;
|
||||||
|
function getProject: TObject;
|
||||||
protected
|
protected
|
||||||
procedure beforeLoad; override;
|
procedure beforeLoad; override;
|
||||||
procedure afterSave; override;
|
procedure afterSave; override;
|
||||||
|
@ -91,9 +94,9 @@ type
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
ce_interfaces, controls, dialogs, ce_symstring, ce_libman, ce_dcd;
|
controls, dialogs, ce_symstring, ce_libman, ce_dcd;
|
||||||
|
|
||||||
constructor TCEProject.create(aOwner: TComponent);
|
constructor TCENativeProject.create(aOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited create(aOwner);
|
inherited create(aOwner);
|
||||||
//
|
//
|
||||||
|
@ -117,7 +120,7 @@ begin
|
||||||
fModified := false;
|
fModified := false;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TCEProject.destroy;
|
destructor TCENativeProject.destroy;
|
||||||
begin
|
begin
|
||||||
subjProjClosing(TCEProjectSubject(fProjectSubject), self);
|
subjProjClosing(TCEProjectSubject(fProjectSubject), self);
|
||||||
fProjectSubject.Free;
|
fProjectSubject.Free;
|
||||||
|
@ -131,13 +134,23 @@ begin
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCEProject.addConfiguration: TCompilerConfiguration;
|
function TCENativeProject.getKind: TCEProjectKind;
|
||||||
|
begin
|
||||||
|
exit(pkNative);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TCENativeProject.getProject: TObject;
|
||||||
|
begin
|
||||||
|
exit(Self);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TCENativeProject.addConfiguration: TCompilerConfiguration;
|
||||||
begin
|
begin
|
||||||
result := TCompilerConfiguration(fOptsColl.Add);
|
result := TCompilerConfiguration(fOptsColl.Add);
|
||||||
result.onChanged := @subMemberChanged;
|
result.onChanged := @subMemberChanged;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.setOptsColl(const aValue: TCollection);
|
procedure TCENativeProject.setOptsColl(const aValue: TCollection);
|
||||||
var
|
var
|
||||||
i: nativeInt;
|
i: nativeInt;
|
||||||
begin
|
begin
|
||||||
|
@ -146,7 +159,7 @@ begin
|
||||||
Configuration[i].onChanged := @subMemberChanged;
|
Configuration[i].onChanged := @subMemberChanged;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.addSource(const aFilename: string);
|
procedure TCENativeProject.addSource(const aFilename: string);
|
||||||
var
|
var
|
||||||
relSrc, absSrc, ext: string;
|
relSrc, absSrc, ext: string;
|
||||||
begin
|
begin
|
||||||
|
@ -163,7 +176,7 @@ begin
|
||||||
fSrcs.Add(ExtractRelativepath(fBasePath, aFilename));
|
fSrcs.Add(ExtractRelativepath(fBasePath, aFilename));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.setRoot(const aValue: string);
|
procedure TCENativeProject.setRoot(const aValue: string);
|
||||||
begin
|
begin
|
||||||
if fRootFolder = aValue then exit;
|
if fRootFolder = aValue then exit;
|
||||||
beginUpdate;
|
beginUpdate;
|
||||||
|
@ -171,7 +184,7 @@ begin
|
||||||
endUpdate;
|
endUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.setFilename(const aValue: string);
|
procedure TCENativeProject.setFilename(const aValue: string);
|
||||||
var
|
var
|
||||||
oldAbs, newRel, oldBase: string;
|
oldAbs, newRel, oldBase: string;
|
||||||
i: NativeInt;
|
i: NativeInt;
|
||||||
|
@ -194,14 +207,14 @@ begin
|
||||||
endUpdate;
|
endUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.setLibAliases(const aValue: TStringList);
|
procedure TCENativeProject.setLibAliases(const aValue: TStringList);
|
||||||
begin
|
begin
|
||||||
beginUpdate;
|
beginUpdate;
|
||||||
fLibAliases.Assign(aValue);
|
fLibAliases.Assign(aValue);
|
||||||
endUpdate;
|
endUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.setSrcs(const aValue: TStringList);
|
procedure TCENativeProject.setSrcs(const aValue: TStringList);
|
||||||
begin
|
begin
|
||||||
beginUpdate;
|
beginUpdate;
|
||||||
fSrcs.Assign(aValue);
|
fSrcs.Assign(aValue);
|
||||||
|
@ -209,7 +222,7 @@ begin
|
||||||
endUpdate;
|
endUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.setConfIx(aValue: Integer);
|
procedure TCENativeProject.setConfIx(aValue: Integer);
|
||||||
begin
|
begin
|
||||||
beginUpdate;
|
beginUpdate;
|
||||||
if aValue < 0 then aValue := 0;
|
if aValue < 0 then aValue := 0;
|
||||||
|
@ -218,19 +231,19 @@ begin
|
||||||
endUpdate;
|
endUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.subMemberChanged(sender : TObject);
|
procedure TCENativeProject.subMemberChanged(sender : TObject);
|
||||||
begin
|
begin
|
||||||
beginUpdate;
|
beginUpdate;
|
||||||
fModified := true;
|
fModified := true;
|
||||||
endUpdate;
|
endUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.beginUpdate;
|
procedure TCENativeProject.beginUpdate;
|
||||||
begin
|
begin
|
||||||
Inc(fUpdateCount);
|
Inc(fUpdateCount);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.endUpdate;
|
procedure TCENativeProject.endUpdate;
|
||||||
begin
|
begin
|
||||||
Dec(fUpdateCount);
|
Dec(fUpdateCount);
|
||||||
if fUpdateCount > 0 then
|
if fUpdateCount > 0 then
|
||||||
|
@ -244,7 +257,7 @@ begin
|
||||||
doChanged;
|
doChanged;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.doChanged;
|
procedure TCENativeProject.doChanged;
|
||||||
{$IFDEF DEBUG}
|
{$IFDEF DEBUG}
|
||||||
var
|
var
|
||||||
lst: TStringList;
|
lst: TStringList;
|
||||||
|
@ -267,18 +280,18 @@ begin
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCEProject.getConfig(const ix: integer): TCompilerConfiguration;
|
function TCENativeProject.getConfig(const ix: integer): TCompilerConfiguration;
|
||||||
begin
|
begin
|
||||||
result := TCompilerConfiguration(fOptsColl.Items[ix]);
|
result := TCompilerConfiguration(fOptsColl.Items[ix]);
|
||||||
result.onChanged := @subMemberChanged;
|
result.onChanged := @subMemberChanged;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCEProject.getCurrConf: TCompilerConfiguration;
|
function TCENativeProject.getCurrConf: TCompilerConfiguration;
|
||||||
begin
|
begin
|
||||||
result := TCompilerConfiguration(fOptsColl.Items[fConfIx]);
|
result := TCompilerConfiguration(fOptsColl.Items[fConfIx]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.addDefaults;
|
procedure TCENativeProject.addDefaults;
|
||||||
begin
|
begin
|
||||||
with TCompilerConfiguration(fOptsColl.Add) do
|
with TCompilerConfiguration(fOptsColl.Add) do
|
||||||
begin
|
begin
|
||||||
|
@ -303,7 +316,7 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.reset;
|
procedure TCENativeProject.reset;
|
||||||
var
|
var
|
||||||
defConf: TCompilerConfiguration;
|
defConf: TCompilerConfiguration;
|
||||||
begin
|
begin
|
||||||
|
@ -318,7 +331,7 @@ begin
|
||||||
fModified := false;
|
fModified := false;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.getOpts(const aList: TStrings);
|
procedure TCENativeProject.getOpts(const aList: TStrings);
|
||||||
var
|
var
|
||||||
rel, abs: string;
|
rel, abs: string;
|
||||||
i: Integer;
|
i: Integer;
|
||||||
|
@ -363,7 +376,7 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCEProject.isProjectSource(const aFilename: string): boolean;
|
function TCENativeProject.isProjectSource(const aFilename: string): boolean;
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
|
@ -373,31 +386,31 @@ begin
|
||||||
exit(false);
|
exit(false);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCEProject.getAbsoluteSourceName(aIndex: integer): string;
|
function TCENativeProject.getAbsoluteSourceName(aIndex: integer): string;
|
||||||
begin
|
begin
|
||||||
if aIndex < 0 then exit('');
|
if aIndex < 0 then exit('');
|
||||||
if aIndex > fSrcs.Count-1 then exit('');
|
if aIndex > fSrcs.Count-1 then exit('');
|
||||||
result := expandFileNameEx(fBasePath, fSrcs.Strings[aIndex]);
|
result := expandFileNameEx(fBasePath, fSrcs.Strings[aIndex]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCEProject.getAbsoluteFilename(const aFilename: string): string;
|
function TCENativeProject.getAbsoluteFilename(const aFilename: string): string;
|
||||||
begin
|
begin
|
||||||
result := expandFileNameEx(fBasePath, aFilename);
|
result := expandFileNameEx(fBasePath, aFilename);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.afterSave;
|
procedure TCENativeProject.afterSave;
|
||||||
begin
|
begin
|
||||||
fModified := false;
|
fModified := false;
|
||||||
updateOutFilename;
|
updateOutFilename;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.beforeLoad;
|
procedure TCENativeProject.beforeLoad;
|
||||||
begin
|
begin
|
||||||
beginUpdate;
|
beginUpdate;
|
||||||
Inherited;
|
Inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.afterLoad;
|
procedure TCENativeProject.afterLoad;
|
||||||
var
|
var
|
||||||
hasPatched: Boolean;
|
hasPatched: Boolean;
|
||||||
// either all the source files have moved or only the project file
|
// either all the source files have moved or only the project file
|
||||||
|
@ -499,7 +512,7 @@ begin
|
||||||
if not hasPatched then fModified := false;
|
if not hasPatched then fModified := false;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.readerPropNoFound(Reader: TReader; Instance: TPersistent;
|
procedure TCENativeProject.readerPropNoFound(Reader: TReader; Instance: TPersistent;
|
||||||
var PropName: string; IsPath: Boolean; var Handled, Skip: Boolean);
|
var PropName: string; IsPath: Boolean; var Handled, Skip: Boolean);
|
||||||
//var
|
//var
|
||||||
//idt: string;
|
//idt: string;
|
||||||
|
@ -532,7 +545,7 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.updateOutFilename;
|
procedure TCENativeProject.updateOutFilename;
|
||||||
begin
|
begin
|
||||||
fOutputFilename := currentConfiguration.pathsOptions.outputFilename;
|
fOutputFilename := currentConfiguration.pathsOptions.outputFilename;
|
||||||
// field is specified
|
// field is specified
|
||||||
|
@ -573,7 +586,7 @@ begin
|
||||||
fCanBeRun := fileExists(fOutputFilename);
|
fCanBeRun := fileExists(fOutputFilename);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCEProject.runPrePostProcess(const processInfo: TCompileProcOptions): Boolean;
|
function TCENativeProject.runPrePostProcess(const processInfo: TCompileProcOptions): Boolean;
|
||||||
var
|
var
|
||||||
process: TProcess;
|
process: TProcess;
|
||||||
pname: string;
|
pname: string;
|
||||||
|
@ -608,7 +621,7 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCEProject.compileProject: Boolean;
|
function TCENativeProject.compileProject: Boolean;
|
||||||
var
|
var
|
||||||
config: TCompilerConfiguration;
|
config: TCompilerConfiguration;
|
||||||
compilproc: TProcess;
|
compilproc: TProcess;
|
||||||
|
@ -672,7 +685,7 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCEProject.runProject(const runArgs: string = ''): Boolean;
|
function TCENativeProject.runProject(const runArgs: string = ''): Boolean;
|
||||||
var
|
var
|
||||||
prm: string;
|
prm: string;
|
||||||
i: Integer;
|
i: Integer;
|
||||||
|
@ -715,7 +728,7 @@ begin
|
||||||
result := true;
|
result := true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.runProcOutput(sender: TObject);
|
procedure TCENativeProject.runProcOutput(sender: TObject);
|
||||||
var
|
var
|
||||||
proc: TProcess;
|
proc: TProcess;
|
||||||
lst: TStringList;
|
lst: TStringList;
|
||||||
|
@ -737,7 +750,7 @@ begin
|
||||||
getprocInputHandler.removeProcess(proc);
|
getprocInputHandler.removeProcess(proc);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProject.compProcOutput(proc: TProcess);
|
procedure TCENativeProject.compProcOutput(proc: TProcess);
|
||||||
var
|
var
|
||||||
lst: TStringList;
|
lst: TStringList;
|
||||||
str: string;
|
str: string;
|
||||||
|
@ -755,5 +768,5 @@ begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
RegisterClasses([TCEProject]);
|
RegisterClasses([TCENativeProject]);
|
||||||
end.
|
end.
|
||||||
|
|
|
@ -34,7 +34,7 @@ type
|
||||||
private
|
private
|
||||||
fActOpenFile: TAction;
|
fActOpenFile: TAction;
|
||||||
fActSelConf: TAction;
|
fActSelConf: TAction;
|
||||||
fProject: TCEProject;
|
fProject: TCENativeProject;
|
||||||
fFileNode, fConfNode: TTreeNode;
|
fFileNode, fConfNode: TTreeNode;
|
||||||
fImpsNode, fInclNode: TTreeNode;
|
fImpsNode, fInclNode: TTreeNode;
|
||||||
fXtraNode: TTreeNode;
|
fXtraNode: TTreeNode;
|
||||||
|
@ -43,11 +43,11 @@ type
|
||||||
procedure TreeDblClick(sender: TObject);
|
procedure TreeDblClick(sender: TObject);
|
||||||
procedure actOpenFileExecute(sender: TObject);
|
procedure actOpenFileExecute(sender: TObject);
|
||||||
//
|
//
|
||||||
procedure projNew(aProject: TCEProject);
|
procedure projNew(aProject: ICECommonProject);
|
||||||
procedure projClosing(aProject: TCEProject);
|
procedure projClosing(aProject: ICECommonProject);
|
||||||
procedure projFocused(aProject: TCEProject);
|
procedure projFocused(aProject: ICECommonProject);
|
||||||
procedure projChanged(aProject: TCEProject);
|
procedure projChanged(aProject: ICECommonProject);
|
||||||
procedure projCompiling(aProject: TCEProject);
|
procedure projCompiling(aProject: ICECommonProject);
|
||||||
protected
|
protected
|
||||||
function contextName: string; override;
|
function contextName: string; override;
|
||||||
function contextActionCount: integer; override;
|
function contextActionCount: integer; override;
|
||||||
|
@ -146,35 +146,41 @@ end;
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
||||||
{$REGION ICEProjectMonitor -----------------------------------------------------}
|
{$REGION ICEProjectMonitor -----------------------------------------------------}
|
||||||
procedure TCEProjectInspectWidget.projNew(aProject: TCEProject);
|
procedure TCEProjectInspectWidget.projNew(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
fProject := aProject;
|
case aProject.getKind of
|
||||||
|
pkNative: fProject := TCENativeProject(aProject.getProject);
|
||||||
|
pkDub:fProject := nil;
|
||||||
|
end;
|
||||||
fLastFileOrFolder := '';
|
fLastFileOrFolder := '';
|
||||||
if Visible then updateImperative;
|
if Visible then updateImperative;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProjectInspectWidget.projClosing(aProject: TCEProject);
|
procedure TCEProjectInspectWidget.projClosing(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
if fProject <> aProject then
|
if fProject <> aProject.getProject then
|
||||||
exit;
|
exit;
|
||||||
fProject := nil;
|
fProject := nil;
|
||||||
fLastFileOrFolder := '';
|
fLastFileOrFolder := '';
|
||||||
updateImperative;
|
updateImperative;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProjectInspectWidget.projFocused(aProject: TCEProject);
|
procedure TCEProjectInspectWidget.projFocused(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
fProject := aProject;
|
case aProject.getKind of
|
||||||
|
pkNative: fProject := TCENativeProject(aProject.getProject);
|
||||||
|
pkDub:fProject := nil;
|
||||||
|
end;
|
||||||
if Visible then beginDelayedUpdate;
|
if Visible then beginDelayedUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProjectInspectWidget.projChanged(aProject: TCEProject);
|
procedure TCEProjectInspectWidget.projChanged(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
if fProject <> aProject then exit;
|
if fProject <> aProject.getProject then exit;
|
||||||
if Visible then beginDelayedUpdate;
|
if Visible then beginDelayedUpdate;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCEProjectInspectWidget.projCompiling(aProject: TCEProject);
|
procedure TCEProjectInspectWidget.projCompiling(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
|
@ -20,17 +20,17 @@ type
|
||||||
*)
|
*)
|
||||||
TCESymbolExpander = class(ICEMultiDocObserver, ICEProjectObserver)
|
TCESymbolExpander = class(ICEMultiDocObserver, ICEProjectObserver)
|
||||||
private
|
private
|
||||||
fProj: TCEProject;
|
fProj: TCENativeProject;
|
||||||
fDoc: TCESynMemo;
|
fDoc: TCESynMemo;
|
||||||
fNeedUpdate: boolean;
|
fNeedUpdate: boolean;
|
||||||
fSymbols: array[TCESymbol] of string;
|
fSymbols: array[TCESymbol] of string;
|
||||||
procedure updateSymbols;
|
procedure updateSymbols;
|
||||||
//
|
//
|
||||||
procedure projNew(aProject: TCEProject);
|
procedure projNew(aProject: ICECommonProject);
|
||||||
procedure projClosing(aProject: TCEProject);
|
procedure projClosing(aProject: ICECommonProject);
|
||||||
procedure projFocused(aProject: TCEProject);
|
procedure projFocused(aProject: ICECommonProject);
|
||||||
procedure projChanged(aProject: TCEProject);
|
procedure projChanged(aProject: ICECommonProject);
|
||||||
procedure projCompiling(aProject: TCEProject);
|
procedure projCompiling(aProject: ICECommonProject);
|
||||||
//
|
//
|
||||||
procedure docNew(aDoc: TCESynMemo);
|
procedure docNew(aDoc: TCESynMemo);
|
||||||
procedure docClosing(aDoc: TCESynMemo);
|
procedure docClosing(aDoc: TCESynMemo);
|
||||||
|
@ -68,34 +68,40 @@ end;
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
||||||
{$REGION ICEProjectObserver ----------------------------------------------------}
|
{$REGION ICEProjectObserver ----------------------------------------------------}
|
||||||
procedure TCESymbolExpander.projNew(aProject: TCEProject);
|
procedure TCESymbolExpander.projNew(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
fProj := aProject;
|
case aProject.getKind of
|
||||||
|
pkNative: fProj := TCENativeProject(aProject.getProject);
|
||||||
|
pkDub:fProj := nil;
|
||||||
|
end;
|
||||||
fNeedUpdate := true;
|
fNeedUpdate := true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCESymbolExpander.projClosing(aProject: TCEProject);
|
procedure TCESymbolExpander.projClosing(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
if fProj <> aProject then
|
if fProj <> aProject.getProject then
|
||||||
exit;
|
exit;
|
||||||
fProj := nil;
|
fProj := nil;
|
||||||
fNeedUpdate := true;
|
fNeedUpdate := true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCESymbolExpander.projFocused(aProject: TCEProject);
|
procedure TCESymbolExpander.projFocused(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
fProj := aProject;
|
case aProject.getKind of
|
||||||
|
pkNative: fProj := TCENativeProject(aProject.getProject);
|
||||||
|
pkDub:fProj := nil;
|
||||||
|
end;
|
||||||
fNeedUpdate := true;
|
fNeedUpdate := true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCESymbolExpander.projChanged(aProject: TCEProject);
|
procedure TCESymbolExpander.projChanged(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
if fProj <> aProject then
|
if fProj <> aProject.getProject then
|
||||||
exit;
|
exit;
|
||||||
fNeedUpdate := true;
|
fNeedUpdate := true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCESymbolExpander.projCompiling(aProject: TCEProject);
|
procedure TCESymbolExpander.projCompiling(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,7 @@ type
|
||||||
fToolOutput: TMemoryStream;
|
fToolOutput: TMemoryStream;
|
||||||
fAutoRefresh: Boolean;
|
fAutoRefresh: Boolean;
|
||||||
fSingleClick: Boolean;
|
fSingleClick: Boolean;
|
||||||
fProj: TCEProject;
|
fProj: TCENativeProject;
|
||||||
fDoc: TCESynMemo;
|
fDoc: TCESynMemo;
|
||||||
fToolProc: TCheckedAsyncProcess;
|
fToolProc: TCheckedAsyncProcess;
|
||||||
fTodos: TTodoItems;
|
fTodos: TTodoItems;
|
||||||
|
@ -94,11 +94,11 @@ type
|
||||||
procedure docChanged(aDoc: TCESynMemo);
|
procedure docChanged(aDoc: TCESynMemo);
|
||||||
procedure docClosing(aDoc: TCESynMemo);
|
procedure docClosing(aDoc: TCESynMemo);
|
||||||
// ICEProjectObserver
|
// ICEProjectObserver
|
||||||
procedure projNew(aProject: TCEProject);
|
procedure projNew(aProject: ICECommonProject);
|
||||||
procedure projChanged(aProject: TCEProject);
|
procedure projChanged(aProject: ICECommonProject);
|
||||||
procedure projClosing(aProject: TCEProject);
|
procedure projClosing(aProject: ICECommonProject);
|
||||||
procedure projFocused(aProject: TCEProject);
|
procedure projFocused(aProject: ICECommonProject);
|
||||||
procedure projCompiling(aProject: TCEProject);
|
procedure projCompiling(aProject: ICECommonProject);
|
||||||
// ICEEditableOptions
|
// ICEEditableOptions
|
||||||
function optionedWantCategory(): string;
|
function optionedWantCategory(): string;
|
||||||
function optionedWantEditorKind: TOptionEditorKind;
|
function optionedWantEditorKind: TOptionEditorKind;
|
||||||
|
@ -338,38 +338,43 @@ end;
|
||||||
{$ENDREGION}
|
{$ENDREGION}
|
||||||
|
|
||||||
{$REGION ICEProjectObserver ----------------------------------------------------}
|
{$REGION ICEProjectObserver ----------------------------------------------------}
|
||||||
procedure TCETodoListWidget.projNew(aProject: TCEProject);
|
procedure TCETodoListWidget.projNew(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
fProj := aProject;
|
if aProject.getKind <> pkNative then
|
||||||
|
exit;
|
||||||
|
fProj := TCENativeProject(aProject.getProject);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCETodoListWidget.projChanged(aProject: TCEProject);
|
procedure TCETodoListWidget.projChanged(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
if fProj <> aProject then
|
if fProj <> aProject.getProject then
|
||||||
exit;
|
exit;
|
||||||
if Visible and fAutoRefresh then
|
if Visible and fAutoRefresh then
|
||||||
callToolProcess;
|
callToolProcess;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCETodoListWidget.projClosing(aProject: TCEProject);
|
procedure TCETodoListWidget.projClosing(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
if fProj <> aProject then
|
if fProj <> aProject.getProject then
|
||||||
exit;
|
exit;
|
||||||
fProj := nil;
|
fProj := nil;
|
||||||
if Visible and fAutoRefresh then
|
if Visible and fAutoRefresh then
|
||||||
callToolProcess;
|
callToolProcess;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCETodoListWidget.projFocused(aProject: TCEProject);
|
procedure TCETodoListWidget.projFocused(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
if aProject = fProj then
|
if aProject.getProject = fProj then
|
||||||
exit;
|
exit;
|
||||||
fProj := aProject;
|
if aProject.getKind <> pkNative then
|
||||||
|
exit;
|
||||||
|
fProj := TCENativeProject(aProject.getProject);
|
||||||
|
|
||||||
if Visible and fAutoRefresh then
|
if Visible and fAutoRefresh then
|
||||||
callToolProcess;
|
callToolProcess;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCETodoListWidget.projCompiling(aProject: TCEProject);
|
procedure TCETodoListWidget.projCompiling(aProject: ICECommonProject);
|
||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue