mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-30 20:49:17 +02:00
fixed opening main unit
git-svn-id: trunk@4090 -
This commit is contained in:
parent
ab6281bbf8
commit
14e8b67c16
@ -42,10 +42,15 @@ unit JITForms;
|
||||
interface
|
||||
|
||||
uses
|
||||
{$IFDEF IDE_MEM_CHECK}
|
||||
{$IFDEF IDE_MEM_CHECK}
|
||||
MemCheck,
|
||||
{$ENDIF}
|
||||
Classes, SysUtils, CompReg, Forms, Controls, LCLLinux, Dialogs, JITForm;
|
||||
{$ENDIF}
|
||||
Classes, SysUtils, Forms, Controls, LCLLinux, Dialogs, JITForm,
|
||||
{$IFDEF EnablePkgs}
|
||||
ComponentReg;
|
||||
{$ELSE}
|
||||
CompReg;
|
||||
{$ENDIF}
|
||||
|
||||
type
|
||||
//----------------------------------------------------------------------------
|
||||
@ -72,7 +77,9 @@ type
|
||||
FCurReadComponentClass: TComponentClass;
|
||||
FForms: TList; // list of TJITForm
|
||||
FOnReaderError: TJITReaderErrorEvent;
|
||||
{$IFNDEF EnablePkgs}
|
||||
FRegCompList:TRegisteredComponentList;
|
||||
{$ENDIF}
|
||||
// jit procedures
|
||||
function CreateVMTCopy(SourceClass:TClass; const NewClassName:ShortString):Pointer;
|
||||
procedure FreevmtCopy(vmtCopy:Pointer);
|
||||
@ -107,7 +114,9 @@ type
|
||||
destructor Destroy; override;
|
||||
property Items[Index:integer]:TForm read GetItem; default;
|
||||
function Count:integer;
|
||||
{$IFNDEF EnablePkgs}
|
||||
property RegCompList:TRegisteredComponentList read FRegCompList write FRegCompList;
|
||||
{$ENDIF}
|
||||
function AddNewJITForm:integer;
|
||||
function AddJITFormFromStream(BinStream:TStream):integer;
|
||||
procedure DestroyJITForm(JITForm:TForm);
|
||||
@ -744,14 +753,18 @@ end;
|
||||
procedure TJITForms.ReaderFindComponentClass(Reader: TReader;
|
||||
const FindClassName: Ansistring; var ComponentClass: TComponentClass);
|
||||
var
|
||||
RegComp:TRegisteredComponent;
|
||||
RegComp: TRegisteredComponent;
|
||||
Action: TModalResult;
|
||||
ErrorType: TJITFormError;
|
||||
begin
|
||||
fCurReadComponent:=nil;
|
||||
fCurReadComponentClass:=ComponentClass;
|
||||
if ComponentClass=nil then begin
|
||||
{$IFDEF EnablePkgs}
|
||||
RegComp:=IDEComponentPalette.FindComponent(FindClassName);
|
||||
{$ELSE}
|
||||
RegComp:=FRegCompList.FindComponentClassByName(FindClassName);
|
||||
{$ENDIF}
|
||||
if RegComp<>nil then begin
|
||||
//writeln('[TJITForms.ReaderFindComponentClass] '''+FindClassName
|
||||
// +''' is registered');
|
||||
|
@ -32,6 +32,10 @@ unit CompReg;
|
||||
|
||||
{$MODE OBJFPC}{$H+}
|
||||
|
||||
{$IFDEF EnablePkgs}
|
||||
This unit will be deleted in future
|
||||
{$ENDIF}
|
||||
|
||||
interface
|
||||
|
||||
uses Classes, SysUtils;
|
||||
|
@ -39,8 +39,13 @@ uses
|
||||
MemCheck,
|
||||
{$ENDIF}
|
||||
Classes, AbstractFormeditor, Controls, PropEdits, TypInfo, ObjectInspector,
|
||||
Forms, Menus, IDEComp, JITForms, Compreg, ComponentEditors, KeyMapping,
|
||||
EditorOptions, Dialogs;
|
||||
Forms, Menus, JITForms,
|
||||
{$IFDEF EnablePkgs}
|
||||
ComponentReg,
|
||||
{$ELSE}
|
||||
CompReg, IDEComp,
|
||||
{$ENDIF}
|
||||
ComponentEditors, KeyMapping, EditorOptions, Dialogs;
|
||||
|
||||
Const OrdinalTypes = [tkInteger,tkChar,tkENumeration,tkbool];
|
||||
|
||||
@ -618,7 +623,9 @@ begin
|
||||
FComponentInterfaceList := TList.Create;
|
||||
FSelectedComponents := TComponentSelectionList.Create;
|
||||
JITFormList := TJITForms.Create;
|
||||
{$IFNDEF EnablePkgs}
|
||||
JITFormList.RegCompList := RegCompList;
|
||||
{$ENDIF}
|
||||
JITFormList.OnReaderError:=@JITFormListReaderError;
|
||||
DesignerMenuItemClick:=@OnDesignerMenuItemClick;
|
||||
end;
|
||||
|
@ -39,6 +39,10 @@ unit IDEComp;
|
||||
{$linklib crypt}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF EnablePkgs}
|
||||
This unit will be deleted in future
|
||||
{$ENDIF}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
@ -51,6 +55,7 @@ uses
|
||||
SynHighlighterLFM, SynHighlighterMulti,
|
||||
db
|
||||
{$IFDEF INTERBASE}
|
||||
// WANRING: Don't use this, use CustomIDEComps instead
|
||||
,interbase
|
||||
{$ENDIF}
|
||||
{$IFDEF CustomIDEComps}
|
||||
|
@ -40,11 +40,17 @@ uses
|
||||
{$IFDEF IDE_MEM_CHECK}
|
||||
MemCheck,
|
||||
{$ENDIF}
|
||||
Classes, LazarusIDEStrConsts, LCLType, LclLinux, Compiler, StdCtrls, Forms,
|
||||
Buttons, Menus, ComCtrls, Spin, ProjectDefs, Project, SysUtils, FileCtrl,
|
||||
Controls, Graphics, ExtCtrls, Dialogs, LazConf, CompReg, CodeToolManager,
|
||||
Splash, TransferMacros, ObjectInspector, PropEdits, SynEditKeyCmds,
|
||||
OutputFilter, IDEDefs, MsgView, EnvironmentOpts, EditorOptions, IDEComp,
|
||||
Classes, LCLType, LCLLinux, Compiler, StdCtrls, Forms,
|
||||
Buttons, Menus, ComCtrls, Spin, SysUtils, FileCtrl,
|
||||
Controls, Graphics, ExtCtrls, Dialogs, CodeToolManager, SynEditKeyCmds,
|
||||
LazConf, LazarusIDEStrConsts, ProjectDefs, Project,
|
||||
{$IFDEF EnablePkgs}
|
||||
ComponentReg,
|
||||
{$ELSE}
|
||||
CompReg, IDEComp,
|
||||
{$ENDIF}
|
||||
Splash, TransferMacros, ObjectInspector, PropEdits,
|
||||
OutputFilter, IDEDefs, MsgView, EnvironmentOpts, EditorOptions,
|
||||
FormEditor, CompilerOptions, KeyMapping, IDEProcs, UnitEditor, Debugger,
|
||||
IDEOptionDefs, CodeToolsDefines;
|
||||
|
||||
@ -1094,15 +1100,6 @@ end;
|
||||
|
||||
procedure TMainIDEBar.SetupComponentsMenu;
|
||||
begin
|
||||
itmCompsConfigCustomComps := TMenuItem.Create(Self);
|
||||
itmCompsConfigCustomComps.Name:='itmCompsConfigCustomComps';
|
||||
itmCompsConfigCustomComps.Caption := lisMenuConfigCustomComps;
|
||||
mnuComponents.Add(itmCompsConfigCustomComps);
|
||||
|
||||
{$IFDEF EnablePkgs}
|
||||
mnuComponents.Add(CreateMenuSeparator);
|
||||
{$ENDIF}
|
||||
|
||||
itmPkgOpenPackage := TMenuItem.Create(Self);
|
||||
itmPkgOpenPackage.Name:='itmPkgOpenPackage';
|
||||
itmPkgOpenPackage.Caption := lisMenuOpenPackage;
|
||||
@ -1138,6 +1135,15 @@ begin
|
||||
{$IFDEF EnablePkgs}
|
||||
mnuComponents.Add(itmPkgPkgGraph);
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF EnablePkgs}
|
||||
mnuComponents.Add(CreateMenuSeparator);
|
||||
{$ENDIF}
|
||||
|
||||
itmCompsConfigCustomComps := TMenuItem.Create(Self);
|
||||
itmCompsConfigCustomComps.Name:='itmCompsConfigCustomComps';
|
||||
itmCompsConfigCustomComps.Caption := lisMenuConfigCustomComps;
|
||||
mnuComponents.Add(itmCompsConfigCustomComps);
|
||||
end;
|
||||
|
||||
procedure TMainIDEBar.SetupToolsMenu;
|
||||
|
@ -76,6 +76,8 @@ type
|
||||
function GetDefaultSaveDirectoryForFile(const Filename: string): string; virtual; abstract;
|
||||
|
||||
procedure LoadInstalledPackages; virtual; abstract;
|
||||
procedure UpdateVisibleComponentPalette; virtual; abstract;
|
||||
|
||||
function OpenProjectDependencies(AProject: TProject): TModalResult; virtual; abstract;
|
||||
procedure AddDefaultDependencies(AProject: TProject); virtual; abstract;
|
||||
procedure AddProjectDependency(AProject: TProject; APackage: TLazPackage); virtual; abstract;
|
||||
|
@ -63,16 +63,17 @@ const
|
||||
|
||||
|
||||
type
|
||||
TIDEComponentPage = class;
|
||||
TIDEComponentPalette = class;
|
||||
TBaseComponentPage = class;
|
||||
TBaseComponentPalette = class;
|
||||
|
||||
|
||||
{ TIDEComponent }
|
||||
{ TRegisteredComponent }
|
||||
|
||||
TIDEComponent = class
|
||||
TRegisteredComponent = class
|
||||
private
|
||||
FButton: TComponent;
|
||||
FComponentClass: TComponentClass;
|
||||
FPage: TIDEComponentPage;
|
||||
FPage: TBaseComponentPage;
|
||||
FPageName: string;
|
||||
public
|
||||
constructor Create(TheComponentClass: TComponentClass;
|
||||
@ -86,63 +87,83 @@ type
|
||||
public
|
||||
property ComponentClass: TComponentClass read FComponentClass;
|
||||
property PageName: string read FPageName;
|
||||
property Page: TIDEComponentPage read FPage write FPage;
|
||||
property Page: TBaseComponentPage read FPage write FPage;
|
||||
property Button: TComponent read FButton write FButton;
|
||||
end;
|
||||
|
||||
|
||||
{ TIDEComponentPage }
|
||||
{ TBaseComponentPage }
|
||||
|
||||
TIDEComponentPage = class
|
||||
TBaseComponentPage = class
|
||||
private
|
||||
FItems: TList; // list of TIDEComponent
|
||||
FItems: TList; // list of TRegisteredComponent
|
||||
FPageComponent: TComponent;
|
||||
FPageName: string;
|
||||
FPalette: TIDEComponentPalette;
|
||||
FPalette: TBaseComponentPalette;
|
||||
FPriority: TComponentPriority;
|
||||
function GetItems(Index: integer): TIDEComponent;
|
||||
function GetItems(Index: integer): TRegisteredComponent;
|
||||
public
|
||||
constructor Create(const ThePageName: string);
|
||||
destructor Destroy; override;
|
||||
procedure Clear;
|
||||
procedure ClearButtons;
|
||||
procedure ConsistencyCheck;
|
||||
function Count: integer;
|
||||
procedure Add(NewComponent: TIDEComponent);
|
||||
procedure Remove(AComponent: TIDEComponent);
|
||||
function FindComponent(const CompClassName: string): TIDEComponent;
|
||||
procedure Add(NewComponent: TRegisteredComponent);
|
||||
procedure Remove(AComponent: TRegisteredComponent);
|
||||
function FindComponent(const CompClassName: string): TRegisteredComponent;
|
||||
public
|
||||
property Items[Index: integer]: TIDEComponent read GetItems; default;
|
||||
property Items[Index: integer]: TRegisteredComponent read GetItems; default;
|
||||
property PageName: string read FPageName;
|
||||
property Palette: TIDEComponentPalette read FPalette;
|
||||
property Palette: TBaseComponentPalette read FPalette;
|
||||
property Priority: TComponentPriority read FPriority write FPriority;
|
||||
property PageComponent: TComponent read FPageComponent write FPageComponent;
|
||||
end;
|
||||
|
||||
|
||||
{ TIDEComponentPalette }
|
||||
{ TBaseComponentPalette }
|
||||
|
||||
TEndUpdatePaletteEvent =
|
||||
procedure(Sender: TObject; PaletteChanged: boolean) of object;
|
||||
|
||||
TIDEComponentPalette = class
|
||||
TBaseComponentPalette = class
|
||||
private
|
||||
FItems: TList; // list of TIDEComponentPage
|
||||
function GetItems(Index: integer): TIDEComponentPage;
|
||||
FItems: TList; // list of TBaseComponentPage
|
||||
FOnBeginUpdate: TNotifyEvent;
|
||||
FOnEndUpdate: TEndUpdatePaletteEvent;
|
||||
FUpdateLock: integer;
|
||||
fChanged: boolean;
|
||||
function GetItems(Index: integer): TBaseComponentPage;
|
||||
protected
|
||||
procedure DoEndUpdate(Changed: boolean); virtual;
|
||||
public
|
||||
constructor Create;
|
||||
destructor Destroy; override;
|
||||
procedure Clear;
|
||||
procedure ClearButtons;
|
||||
procedure BeginUpdate(Change: boolean);
|
||||
procedure EndUpdate;
|
||||
function IsUpdating: boolean;
|
||||
procedure ConsistencyCheck;
|
||||
function Count: integer;
|
||||
function GetPage(const APageName: string;
|
||||
CreateIfNotExists: boolean): TIDEComponentPage;
|
||||
CreateIfNotExists: boolean): TBaseComponentPage;
|
||||
function IndexOfPageWithName(const APageName: string): integer;
|
||||
procedure AddComponent(NewComponent: TIDEComponent);
|
||||
procedure AddComponent(NewComponent: TRegisteredComponent);
|
||||
function CreateNewPage(const NewPageName: string;
|
||||
const Priority: TComponentPriority): TIDEComponentPage;
|
||||
function FindComponent(const CompClassName: string): TIDEComponent;
|
||||
const Priority: TComponentPriority): TBaseComponentPage;
|
||||
function FindComponent(const CompClassName: string): TRegisteredComponent;
|
||||
function CreateNewClassName(const Prefix: string): string;
|
||||
public
|
||||
property Items[Index: integer]: TIDEComponentPage read GetItems; default;
|
||||
property Pages[Index: integer]: TBaseComponentPage read GetItems; default;
|
||||
property UpdateLock: integer read FUpdateLock;
|
||||
property OnBeginUpdate: TNotifyEvent read FOnBeginUpdate write FOnBeginUpdate;
|
||||
property OnEndUpdate: TEndUpdatePaletteEvent read FOnEndUpdate write FOnEndUpdate;
|
||||
end;
|
||||
|
||||
|
||||
var
|
||||
IDEComponentPalette: TIDEComponentPalette;
|
||||
IDEComponentPalette: TBaseComponentPalette;
|
||||
|
||||
function ComparePriority(const p1,p2: TComponentPriority): integer;
|
||||
function CompareIDEComponentByClassName(Data1, Data2: pointer): integer;
|
||||
@ -166,11 +187,11 @@ end;
|
||||
|
||||
function CompareIDEComponentByClassName(Data1, Data2: pointer): integer;
|
||||
var
|
||||
Comp1: TIDEComponent;
|
||||
Comp2: TIDEComponent;
|
||||
Comp1: TRegisteredComponent;
|
||||
Comp2: TRegisteredComponent;
|
||||
begin
|
||||
Comp1:=TIDEComponent(Data1);
|
||||
Comp2:=TIDEComponent(Data2);
|
||||
Comp1:=TRegisteredComponent(Data1);
|
||||
Comp2:=TRegisteredComponent(Data2);
|
||||
Result:=AnsiCompareText(Comp1.ComponentClass.Classname,
|
||||
Comp2.ComponentClass.Classname);
|
||||
end;
|
||||
@ -182,84 +203,99 @@ begin
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
{ TIDEComponent }
|
||||
{ TRegisteredComponent }
|
||||
|
||||
constructor TIDEComponent.Create(TheComponentClass: TComponentClass;
|
||||
constructor TRegisteredComponent.Create(TheComponentClass: TComponentClass;
|
||||
const ThePageName: string);
|
||||
begin
|
||||
FComponentClass:=TheComponentClass;
|
||||
FPageName:=ThePageName;
|
||||
end;
|
||||
|
||||
destructor TIDEComponent.Destroy;
|
||||
destructor TRegisteredComponent.Destroy;
|
||||
begin
|
||||
if FPage<>nil then FPage.Remove(Self);
|
||||
FreeThenNil(FButton);
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TIDEComponent.ConsistencyCheck;
|
||||
procedure TRegisteredComponent.ConsistencyCheck;
|
||||
begin
|
||||
if (FComponentClass=nil) then
|
||||
RaiseException('TIDEComponent.ConsistencyCheck FComponentClass=nil');
|
||||
RaiseException('TRegisteredComponent.ConsistencyCheck FComponentClass=nil');
|
||||
if not IsValidIdent(FComponentClass.ClassName) then
|
||||
RaiseException('TIDEComponent.ConsistencyCheck not IsValidIdent(FComponentClass.ClassName)');
|
||||
RaiseException('TRegisteredComponent.ConsistencyCheck not IsValidIdent(FComponentClass.ClassName)');
|
||||
end;
|
||||
|
||||
function TIDEComponent.GetPriority: TComponentPriority;
|
||||
function TRegisteredComponent.GetPriority: TComponentPriority;
|
||||
begin
|
||||
Result:=ComponentPriorityNormal;
|
||||
end;
|
||||
|
||||
procedure TIDEComponent.AddToPalette;
|
||||
procedure TRegisteredComponent.AddToPalette;
|
||||
begin
|
||||
IDEComponentPalette.AddComponent(Self);
|
||||
end;
|
||||
|
||||
function TIDEComponent.Createable: boolean;
|
||||
function TRegisteredComponent.Createable: boolean;
|
||||
begin
|
||||
Result:=true;
|
||||
end;
|
||||
|
||||
{ TIDEComponentPage }
|
||||
{ TBaseComponentPage }
|
||||
|
||||
function TIDEComponentPage.GetItems(Index: integer): TIDEComponent;
|
||||
function TBaseComponentPage.GetItems(Index: integer): TRegisteredComponent;
|
||||
begin
|
||||
Result:=TIDEComponent(FItems[Index]);
|
||||
Result:=TRegisteredComponent(FItems[Index]);
|
||||
end;
|
||||
|
||||
constructor TIDEComponentPage.Create(const ThePageName: string);
|
||||
constructor TBaseComponentPage.Create(const ThePageName: string);
|
||||
begin
|
||||
FPageName:=ThePageName;
|
||||
FItems:=TList.Create;
|
||||
end;
|
||||
|
||||
destructor TIDEComponentPage.Destroy;
|
||||
destructor TBaseComponentPage.Destroy;
|
||||
begin
|
||||
Clear;
|
||||
FreeThenNil(FPageComponent);
|
||||
FItems.Free;
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TIDEComponentPage.Clear;
|
||||
procedure TBaseComponentPage.Clear;
|
||||
var
|
||||
i: Integer;
|
||||
AComponent: TRegisteredComponent;
|
||||
begin
|
||||
for i:=0 to FItems.Count-1 do
|
||||
Items[i].Page:=nil;
|
||||
for i:=0 to FItems.Count-1 do begin
|
||||
AComponent:=Items[i];
|
||||
FreeThenNil(AComponent.FButton);
|
||||
AComponent.Page:=nil;
|
||||
end;
|
||||
FItems.Clear;
|
||||
end;
|
||||
|
||||
procedure TIDEComponentPage.ConsistencyCheck;
|
||||
procedure TBaseComponentPage.ClearButtons;
|
||||
var
|
||||
Cnt: Integer;
|
||||
i: Integer;
|
||||
begin
|
||||
Cnt:=Count;
|
||||
for i:=0 to Cnt-1 do FreeThenNil(Items[i].FButton);
|
||||
end;
|
||||
|
||||
procedure TBaseComponentPage.ConsistencyCheck;
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
function TIDEComponentPage.Count: integer;
|
||||
function TBaseComponentPage.Count: integer;
|
||||
begin
|
||||
Result:=FItems.Count;
|
||||
end;
|
||||
|
||||
procedure TIDEComponentPage.Add(NewComponent: TIDEComponent);
|
||||
procedure TBaseComponentPage.Add(NewComponent: TRegisteredComponent);
|
||||
var
|
||||
InsertIndex: Integer;
|
||||
NewPriority: TComponentPriority;
|
||||
@ -273,14 +309,14 @@ begin
|
||||
NewComponent.Page:=Self;
|
||||
end;
|
||||
|
||||
procedure TIDEComponentPage.Remove(AComponent: TIDEComponent);
|
||||
procedure TBaseComponentPage.Remove(AComponent: TRegisteredComponent);
|
||||
begin
|
||||
FItems.Remove(AComponent);
|
||||
AComponent.Page:=nil;
|
||||
end;
|
||||
|
||||
function TIDEComponentPage.FindComponent(const CompClassName: string
|
||||
): TIDEComponent;
|
||||
function TBaseComponentPage.FindComponent(const CompClassName: string
|
||||
): TRegisteredComponent;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
@ -292,71 +328,107 @@ begin
|
||||
Result:=nil;
|
||||
end;
|
||||
|
||||
{ TIDEComponentPalette }
|
||||
{ TBaseComponentPalette }
|
||||
|
||||
function TIDEComponentPalette.GetItems(Index: integer): TIDEComponentPage;
|
||||
function TBaseComponentPalette.GetItems(Index: integer): TBaseComponentPage;
|
||||
begin
|
||||
Result:=TIDEComponentPage(FItems[Index]);
|
||||
Result:=TBaseComponentPage(FItems[Index]);
|
||||
end;
|
||||
|
||||
constructor TIDEComponentPalette.Create;
|
||||
procedure TBaseComponentPalette.DoEndUpdate(Changed: boolean);
|
||||
begin
|
||||
if Assigned(OnEndUpdate) then OnEndUpdate(Self,Changed);
|
||||
end;
|
||||
|
||||
constructor TBaseComponentPalette.Create;
|
||||
begin
|
||||
FItems:=TList.Create;
|
||||
end;
|
||||
|
||||
destructor TIDEComponentPalette.Destroy;
|
||||
destructor TBaseComponentPalette.Destroy;
|
||||
begin
|
||||
Clear;
|
||||
FItems.Free;
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TIDEComponentPalette.Clear;
|
||||
procedure TBaseComponentPalette.Clear;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
for i:=0 to FItems.Count-1 do
|
||||
Items[i].Free;
|
||||
Pages[i].Free;
|
||||
FItems.Clear;
|
||||
end;
|
||||
|
||||
procedure TIDEComponentPalette.ConsistencyCheck;
|
||||
procedure TBaseComponentPalette.ClearButtons;
|
||||
var
|
||||
Cnt: Integer;
|
||||
i: Integer;
|
||||
begin
|
||||
Cnt:=Count;
|
||||
for i:=0 to Cnt-1 do Pages[i].ClearButtons;
|
||||
end;
|
||||
|
||||
procedure TBaseComponentPalette.BeginUpdate(Change: boolean);
|
||||
begin
|
||||
inc(FUpdateLock);
|
||||
if FUpdateLock=1 then begin
|
||||
fChanged:=Change;
|
||||
if Assigned(OnBeginUpdate) then OnBeginUpdate(Self);
|
||||
end else
|
||||
fChanged:=fChanged or Change;
|
||||
end;
|
||||
|
||||
procedure TBaseComponentPalette.EndUpdate;
|
||||
begin
|
||||
if FUpdateLock<=0 then RaiseException('TBaseComponentPalette.EndUpdate');
|
||||
dec(FUpdateLock);
|
||||
if FUpdateLock=0 then DoEndUpdate(fChanged);
|
||||
end;
|
||||
|
||||
function TBaseComponentPalette.IsUpdating: boolean;
|
||||
begin
|
||||
Result:=FUpdateLock>0;
|
||||
end;
|
||||
|
||||
procedure TBaseComponentPalette.ConsistencyCheck;
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
function TIDEComponentPalette.Count: integer;
|
||||
function TBaseComponentPalette.Count: integer;
|
||||
begin
|
||||
Result:=FItems.Count;
|
||||
end;
|
||||
|
||||
function TIDEComponentPalette.GetPage(const APageName: string;
|
||||
CreateIfNotExists: boolean): TIDEComponentPage;
|
||||
function TBaseComponentPalette.GetPage(const APageName: string;
|
||||
CreateIfNotExists: boolean): TBaseComponentPage;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
i:=IndexOfPageWithName(APageName);
|
||||
if i>=0 then begin
|
||||
Result:=Items[i];
|
||||
Result:=Pages[i];
|
||||
end else begin
|
||||
Result:=TIDEComponentPage.Create(APageName);
|
||||
Result:=TBaseComponentPage.Create(APageName);
|
||||
Result.FPalette:=Self;
|
||||
FItems.Add(Result);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TIDEComponentPalette.IndexOfPageWithName(const APageName: string
|
||||
function TBaseComponentPalette.IndexOfPageWithName(const APageName: string
|
||||
): integer;
|
||||
begin
|
||||
Result:=Count-1;
|
||||
while (Result>=0) and (AnsiCompareText(Items[Result].PageName,APageName)<>0)
|
||||
while (Result>=0) and (AnsiCompareText(Pages[Result].PageName,APageName)<>0)
|
||||
do
|
||||
dec(Result);
|
||||
end;
|
||||
|
||||
procedure TIDEComponentPalette.AddComponent(NewComponent: TIDEComponent);
|
||||
procedure TBaseComponentPalette.AddComponent(NewComponent: TRegisteredComponent);
|
||||
var
|
||||
CurPage: TIDEComponentPage;
|
||||
CurPage: TBaseComponentPage;
|
||||
begin
|
||||
CurPage:=GetPage(NewComponent.PageName,false);
|
||||
if CurPage=nil then
|
||||
@ -364,33 +436,33 @@ begin
|
||||
CurPage.Add(NewComponent);
|
||||
end;
|
||||
|
||||
function TIDEComponentPalette.CreateNewPage(const NewPageName: string;
|
||||
const Priority: TComponentPriority): TIDEComponentPage;
|
||||
function TBaseComponentPalette.CreateNewPage(const NewPageName: string;
|
||||
const Priority: TComponentPriority): TBaseComponentPage;
|
||||
var
|
||||
InsertIndex: Integer;
|
||||
begin
|
||||
Result:=TIDEComponentPage.Create(NewPageName);
|
||||
Result:=TBaseComponentPage.Create(NewPageName);
|
||||
InsertIndex:=0;
|
||||
while (InsertIndex<Count)
|
||||
and (ComparePriority(Items[InsertIndex].Priority,Priority)>0) do
|
||||
and (ComparePriority(Pages[InsertIndex].Priority,Priority)>0) do
|
||||
inc(InsertIndex);
|
||||
FItems.Insert(InsertIndex,Result);
|
||||
Result.FPalette:=Self;
|
||||
end;
|
||||
|
||||
function TIDEComponentPalette.FindComponent(const CompClassName: string
|
||||
): TIDEComponent;
|
||||
function TBaseComponentPalette.FindComponent(const CompClassName: string
|
||||
): TRegisteredComponent;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
for i:=0 to Count-1 do begin
|
||||
Result:=Items[i].FindComponent(CompClassName);
|
||||
Result:=Pages[i].FindComponent(CompClassName);
|
||||
if Result<>nil then exit;
|
||||
end;
|
||||
Result:=nil;
|
||||
end;
|
||||
|
||||
function TIDEComponentPalette.CreateNewClassName(const Prefix: string): string;
|
||||
function TBaseComponentPalette.CreateNewClassName(const Prefix: string): string;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
|
@ -64,7 +64,7 @@ type
|
||||
|
||||
{ TPkgComponent }
|
||||
|
||||
TPkgComponent = class(TIDEComponent)
|
||||
TPkgComponent = class(TRegisteredComponent)
|
||||
private
|
||||
FPkgFile: TPkgFile;
|
||||
FIcon: TBitmap;
|
||||
|
@ -51,11 +51,13 @@ uses
|
||||
PackageEditor, AddToPackageDlg, PackageDefs, PackageLinks, PackageSystem,
|
||||
OpenInstalledPkgDlg, PkgGraphExplorer, BrokenDependenciesDlg, CompilerOptions,
|
||||
ExtToolDialog, ExtToolEditDlg, EditDefineTree, DefineTemplates,
|
||||
ProjectInspector,
|
||||
ProjectInspector, ComponentPalette,
|
||||
BasePkgManager, MainBar;
|
||||
|
||||
type
|
||||
TPkgManager = class(TBasePkgManager)
|
||||
procedure IDEComponentPaletteEndUpdate(Sender: TObject;
|
||||
PaletteChanged: boolean);
|
||||
// events
|
||||
function OnPackageEditorCompilePackage(Sender: TObject;
|
||||
APackage: TLazPackage; CompileAll: boolean): TModalResult;
|
||||
@ -111,6 +113,8 @@ type
|
||||
function GetDefaultSaveDirectoryForFile(const Filename: string): string; override;
|
||||
|
||||
procedure LoadInstalledPackages; override;
|
||||
procedure UpdateVisibleComponentPalette; override;
|
||||
|
||||
function AddPackageToGraph(APackage: TLazPackage): TModalResult;
|
||||
function OpenProjectDependencies(AProject: TProject): TModalResult; override;
|
||||
procedure AddDefaultDependencies(AProject: TProject); override;
|
||||
@ -177,6 +181,12 @@ begin
|
||||
DoShowPackageGraph;
|
||||
end;
|
||||
|
||||
procedure TPkgManager.IDEComponentPaletteEndUpdate(Sender: TObject;
|
||||
PaletteChanged: boolean);
|
||||
begin
|
||||
UpdateVisibleComponentPalette;
|
||||
end;
|
||||
|
||||
function TPkgManager.OnPackageEditorCompilePackage(Sender: TObject;
|
||||
APackage: TLazPackage; CompileAll: boolean): TModalResult;
|
||||
var
|
||||
@ -865,7 +875,8 @@ end;
|
||||
constructor TPkgManager.Create(TheOwner: TComponent);
|
||||
begin
|
||||
inherited Create(TheOwner);
|
||||
IDEComponentPalette:=TIDEComponentPalette.Create;
|
||||
IDEComponentPalette:=TComponentPalette.Create;
|
||||
IDEComponentPalette.OnEndUpdate:=@IDEComponentPaletteEndUpdate;
|
||||
|
||||
PkgLinks:=TPackageLinks.Create;
|
||||
PkgLinks.UpdateAll;
|
||||
@ -961,9 +972,21 @@ end;
|
||||
|
||||
procedure TPkgManager.LoadInstalledPackages;
|
||||
begin
|
||||
// base packages
|
||||
IDEComponentPalette.BeginUpdate(true);
|
||||
|
||||
// static packages
|
||||
PackageGraph.AddStaticBasePackages;
|
||||
PackageGraph.RegisterStaticPackages;
|
||||
|
||||
// dynamic packages
|
||||
// ToDo
|
||||
|
||||
IDEComponentPalette.EndUpdate;
|
||||
end;
|
||||
|
||||
procedure TPkgManager.UpdateVisibleComponentPalette;
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
function TPkgManager.AddPackageToGraph(APackage: TLazPackage
|
||||
|
Loading…
Reference in New Issue
Block a user