git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.jvcl@17 7f62d464-2af8-f54e-996c-e91b33f51cbe
807 lines
21 KiB
ObjectPascal
807 lines
21 KiB
ObjectPascal
{******************************************************************************}
|
|
{* *}
|
|
{* PasDesigner 0.1 - Package loading *}
|
|
{* *}
|
|
{* (C) 2003-2004 Andreas Hausladen *}
|
|
{* *}
|
|
{******************************************************************************}
|
|
|
|
unit Packages;
|
|
|
|
{$I jedi.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
{$IFDEF MSWINDOWS}
|
|
Windows, Graphics, ImgList, Controls, ActnList,
|
|
{$ENDIF}
|
|
{$IFDEF LINUX}
|
|
Libc, QGraphics, QImgList, QActnList,
|
|
{$ENDIF}
|
|
Types, SysUtils, Classes;
|
|
|
|
const
|
|
sNoIconPalette = '.';
|
|
|
|
type
|
|
{ Interfaces }
|
|
|
|
IPackage = interface;
|
|
IPackageList = interface;
|
|
IUnit = interface;
|
|
IComponentItem = interface;
|
|
IActionItem = interface;
|
|
|
|
IPackage = interface
|
|
['{A232C373-4202-45F9-8772-21CBACCA52DB}']
|
|
{private}
|
|
function GetIsRunOnly: Boolean;
|
|
function GetFlags: Integer;
|
|
function GetName: string;
|
|
function GetDescription: string;
|
|
function GetDcpBpiName: string;
|
|
|
|
function GetUnitCount: Integer;
|
|
function GetUnits(Index: Integer): IUnit;
|
|
|
|
function GetRequireCount: Integer;
|
|
function GetRequires(Index: Integer): string;
|
|
|
|
function GetComponentCount: Integer;
|
|
function GetComponents(Index: Integer): IComponentItem;
|
|
|
|
function GetActionCount: Integer;
|
|
function GetActions(Index: Integer): IActionItem;
|
|
|
|
function GetChecked: Boolean;
|
|
procedure SetChecked(Value: Boolean);
|
|
{public}
|
|
function HasCheckedDeps: Boolean;
|
|
|
|
property IsRunOnly: Boolean read GetIsRunOnly;
|
|
property Flags: Integer read GetFlags;
|
|
|
|
property Name: string read GetName;
|
|
property Description: string read GetDescription;
|
|
property DcpBpiName: string read GetDcpBpiName;
|
|
|
|
property UnitCount: Integer read GetUnitCount;
|
|
property Units[Index: Integer]: IUnit read GetUnits;
|
|
|
|
property RequireCount: Integer read GetRequireCount;
|
|
property Requires[Index: Integer]: string read GetRequires;
|
|
|
|
property ComponentCount: Integer read GetComponentCount;
|
|
property Components[Index: Integer]: IComponentItem read GetComponents;
|
|
|
|
property ActionCount: Integer read GetActionCount;
|
|
property Actions[Index: Integer]: IActionItem read GetActions;
|
|
|
|
property Checked: Boolean read GetChecked write SetChecked;
|
|
end;
|
|
|
|
IPackageList = Interface
|
|
['{9C475358-1385-419D-8F20-496CC978C120}']
|
|
{private}
|
|
function GetUnitCount: Integer;
|
|
function GetUnits(Index: Integer): IUnit;
|
|
|
|
function GetPackageCount: Integer;
|
|
function GetPackages(Index: Integer): IPackage;
|
|
|
|
function GetComponentCount: Integer;
|
|
function GetComponents(Index: Integer): IComponentItem;
|
|
|
|
function GetActionCount: Integer;
|
|
function GetActions(Index: Integer): IActionItem;
|
|
{public}
|
|
function IndexOf(const Name: string): Integer; overload;
|
|
|
|
property UnitCount: Integer read GetUnitCount;
|
|
property Units[Index: Integer]: IUnit read GetUnits;
|
|
|
|
property PackageCount: Integer read GetPackageCount;
|
|
property Packages[Index: Integer]: IPackage read GetPackages;
|
|
|
|
property ComponentCount: Integer read GetComponentCount;
|
|
property Components[Index: Integer]: IComponentItem read GetComponents;
|
|
|
|
property ActionCount: Integer read GetActionCount;
|
|
property Actions[Index: Integer]: IActionItem read GetActions;
|
|
end;
|
|
|
|
IUnit = interface
|
|
['{C3D68986-4D02-48E9-8395-B830DB9D533F}']
|
|
{private}
|
|
function GetName: string;
|
|
function GetFlags: Integer;
|
|
function GetComponentCount: Integer;
|
|
function GetComponents(Index: Integer): IComponentItem;
|
|
{public}
|
|
property Name: string read GetName;
|
|
property Flags: Integer read GetFlags;
|
|
|
|
procedure AddComponent(AComponent: IComponentItem);
|
|
|
|
property ComponentCount: Integer read GetComponentCount;
|
|
property Components[Index: Integer]: IComponentItem read GetComponents;
|
|
end;
|
|
|
|
IComponentItem = interface
|
|
['{7DE95D34-5D5F-491A-BE1D-A47592ADEE1B}']
|
|
{private}
|
|
function GetComponentClass: string;
|
|
function GetPalette: string;
|
|
function GetImageIndex: Integer;
|
|
procedure SetImageIndex(Value: Integer);
|
|
function GetUnitName: string;
|
|
|
|
function GetPackage: IPackage;
|
|
function GetChecked: Boolean;
|
|
procedure SetChecked(Value: Boolean);
|
|
{public}
|
|
property Palette: string read GetPalette;
|
|
property ComponentClass: string read GetComponentClass;
|
|
property ImageIndex: Integer read GetImageIndex write SetImageIndex;
|
|
property UnitName: string read GetUnitName;
|
|
|
|
property Package: IPackage read GetPackage;
|
|
property Checked: Boolean read GetChecked write SetChecked;
|
|
end;
|
|
|
|
IActionItem = interface
|
|
['{BCF43AA4-D4F1-496B-8697-999D2EEB953E}']
|
|
{private}
|
|
function GetActionClass: string;
|
|
function GetCategory: string;
|
|
function GetResource: string;
|
|
function GetUnitName: string;
|
|
{public}
|
|
property Category: string read GetCategory;
|
|
property ActionClass: string read GetActionClass;
|
|
property Resource: string read GetResource;
|
|
property UnitName: string read GetUnitName;
|
|
end;
|
|
|
|
|
|
{ Classes }
|
|
|
|
TPackage = class;
|
|
TPackageList = class;
|
|
TUnit = class;
|
|
TComponentItem = class;
|
|
TActionItem = class;
|
|
|
|
TPackage = class(TInterfacedObject, IPackage)
|
|
private
|
|
FPackageList: TPackageList;
|
|
FUnits: TInterfaceList;
|
|
FComponents: TInterfaceList;
|
|
FActions: TInterfaceList;
|
|
FFlags: Integer;
|
|
FRequires: TStrings;
|
|
FName: string;
|
|
FDescription: string;
|
|
FDcpBpiName: string;
|
|
FChecked: Boolean;
|
|
|
|
function GetIsRunOnly: Boolean;
|
|
function GetFlags: Integer;
|
|
function GetName: string;
|
|
function GetDescription: string;
|
|
function GetDcpBpiName: string;
|
|
|
|
function GetUnitCount: Integer;
|
|
function GetUnits(Index: Integer): IUnit;
|
|
|
|
function GetRequireCount: Integer;
|
|
function GetRequires(Index: Integer): string;
|
|
|
|
function GetComponentCount: Integer;
|
|
function GetComponents(Index: Integer): IComponentItem;
|
|
|
|
function GetActionCount: Integer;
|
|
function GetActions(Index: Integer): IActionItem;
|
|
|
|
function GetChecked: Boolean;
|
|
procedure SetChecked(Value: Boolean);
|
|
public
|
|
constructor Create(APackageList: TPackageList;
|
|
const AName, ADescription, ADcpBpiName: string; AFlags: Integer);
|
|
destructor Destroy; override;
|
|
function HasCheckedDeps: Boolean;
|
|
|
|
procedure AddUnit(AUnit: TUnit);
|
|
procedure AddComponent(AItem: IComponentItem);
|
|
procedure AddAction(AItem: IActionItem);
|
|
procedure AddRequire(const Name: string);
|
|
|
|
property IsRunOnly: Boolean read GetIsRunOnly;
|
|
property Flags: Integer read GetFlags;
|
|
|
|
property Name: string read GetName;
|
|
property Description: string read GetDescription;
|
|
property DcpBpiName: string read GetDcpBpiName;
|
|
|
|
property UnitCount: Integer read GetUnitCount;
|
|
property Units[Index: Integer]: IUnit read GetUnits;
|
|
|
|
property RequireCount: Integer read GetRequireCount;
|
|
property Requires[Index: Integer]: string read GetRequires;
|
|
|
|
property ComponentCount: Integer read GetComponentCount;
|
|
property Components[Index: Integer]: IComponentItem read GetComponents;
|
|
|
|
property ActionCount: Integer read GetActionCount;
|
|
property Actions[Index: Integer]: IActionItem read GetActions;
|
|
|
|
property Checked: Boolean read GetChecked write SetChecked;
|
|
end;
|
|
|
|
TPackageList = class(TComponent, IPackageList)
|
|
private
|
|
FPackages: TInterfaceList;
|
|
FComponents: TInterfaceList;
|
|
FActions: TInterfaceList;
|
|
FLock: TRTLCriticalSection;
|
|
FImageList: TImageList;
|
|
FLockCount: Integer;
|
|
|
|
function GetUnitCount: Integer;
|
|
function GetUnits(Index: Integer): IUnit;
|
|
|
|
function GetPackageCount: Integer;
|
|
function GetPackages(Index: Integer): IPackage;
|
|
|
|
function GetComponentCount: Integer;
|
|
function GetComponents(Index: Integer): IComponentItem;
|
|
|
|
function GetActionCount: Integer;
|
|
function GetActions(Index: Integer): IActionItem;
|
|
public
|
|
constructor Create(AOwner: TComponent); override;
|
|
destructor Destroy; override;
|
|
|
|
function AddPackage(APackage: IPackage): Boolean;
|
|
|
|
function IndexOf(const Name: string): Integer; overload;
|
|
|
|
procedure BeginUpdate;
|
|
procedure EndUpdate;
|
|
|
|
property UnitCount: Integer read GetUnitCount;
|
|
property Units[Index: Integer]: IUnit read GetUnits;
|
|
|
|
property PackageCount: Integer read GetPackageCount;
|
|
property Packages[Index: Integer]: IPackage read GetPackages;
|
|
|
|
property ComponentCount: Integer read GetComponentCount;
|
|
property Components[Index: Integer]: IComponentItem read GetComponents;
|
|
|
|
property ActionCount: Integer read GetActionCount;
|
|
property Actions[Index: Integer]: IActionItem read GetActions;
|
|
|
|
property ImageList: TImageList read FImageList write FImageList;
|
|
end;
|
|
|
|
TUnit = class(TInterfacedObject, IUnit)
|
|
private
|
|
FName: string;
|
|
FFlags: Integer;
|
|
FComponents: TInterfaceList;
|
|
|
|
function GetName: string;
|
|
function GetFlags: Integer;
|
|
function GetComponentCount: Integer;
|
|
function GetComponents(Index: Integer): IComponentItem;
|
|
public
|
|
constructor Create(const AName: string; AFlags: Integer);
|
|
destructor Destroy; override;
|
|
property Name: string read GetName;
|
|
property Flags: Integer read GetFlags;
|
|
|
|
procedure AddComponent(AComponent: IComponentItem);
|
|
|
|
property ComponentCount: Integer read GetComponentCount;
|
|
property Components[Index: Integer]: IComponentItem read GetComponents;
|
|
end;
|
|
|
|
TComponentItem = class(TInterfacedObject, IComponentItem)
|
|
private
|
|
FPackage: IPackage;
|
|
FComponentClass: string;
|
|
FPalette: string;
|
|
FImageIndex: Integer;
|
|
FUnitName: string;
|
|
FChecked: Boolean;
|
|
|
|
function GetComponentClass: string;
|
|
function GetPalette: string;
|
|
function GetImageIndex: Integer;
|
|
procedure SetImageIndex(Value: Integer);
|
|
function GetUnitName: string;
|
|
|
|
function GetPackage: IPackage;
|
|
function GetChecked: Boolean;
|
|
procedure SetChecked(Value: Boolean);
|
|
public
|
|
constructor Create(APackage: IPackage; const APalette: string; const AComponentClass: string;
|
|
AImageIndex: Integer; const AUnitName: string);
|
|
|
|
property Palette: string read GetPalette;
|
|
property ComponentClass: string read GetComponentClass;
|
|
property ImageIndex: Integer read GetImageIndex write SetImageIndex;
|
|
property UnitName: string read GetUnitName;
|
|
|
|
property Package: IPackage read GetPackage;
|
|
property Checked: Boolean read GetChecked write SetChecked;
|
|
end;
|
|
|
|
TActionItem = class(TInterfacedObject, IActionItem)
|
|
private
|
|
FCategory: string;
|
|
FActionClass: string;
|
|
FResource: string;
|
|
FUnitName: string;
|
|
function GetActionClass: string;
|
|
function GetCategory: string;
|
|
function GetResource: string;
|
|
function GetUnitName: string;
|
|
public
|
|
constructor Create(const ACategory: string; const AActionClass: string;
|
|
const AResource: string; const AUnitName: string);
|
|
|
|
property Category: string read GetCategory;
|
|
property ActionClass: string read GetActionClass;
|
|
property Resource: string read GetResource;
|
|
property UnitName: string read GetUnitName;
|
|
end;
|
|
|
|
var
|
|
PackageList: TPackageList;
|
|
|
|
implementation
|
|
|
|
uses
|
|
Helpers, Math;
|
|
|
|
{$R Creator\PackageLoading\rcCoreIDE.res}
|
|
|
|
{ TPackageList }
|
|
|
|
function TPackageList.AddPackage(APackage: IPackage): Boolean;
|
|
begin
|
|
if APackage <> nil then
|
|
begin
|
|
CSBlock(FLock);
|
|
FPackages.Add(APackage);
|
|
Result := True;
|
|
end
|
|
else
|
|
Result := False;
|
|
end;
|
|
|
|
procedure TPackageList.BeginUpdate;
|
|
begin
|
|
Inc(FLockCount);
|
|
end;
|
|
|
|
constructor TPackageList.Create(AOwner: TComponent);
|
|
begin
|
|
inherited Create(AOwner);
|
|
FPackages := TInterfaceList.Create;
|
|
FComponents := TInterfaceList.Create;
|
|
FActions := TInterfaceList.Create;
|
|
InitializeCriticalSection(FLock);
|
|
end;
|
|
|
|
destructor TPackageList.Destroy;
|
|
begin
|
|
FActions.Free;
|
|
FComponents.Free;
|
|
FPackages.Free;
|
|
DeleteCriticalSection(FLock);
|
|
inherited Destroy;
|
|
end;
|
|
|
|
procedure TPackageList.EndUpdate;
|
|
begin
|
|
Dec(FLockCount);
|
|
end;
|
|
|
|
function TPackageList.GetComponentCount: Integer;
|
|
begin
|
|
CSBlock(FLock);
|
|
Result := FComponents.Count;
|
|
end;
|
|
|
|
function TPackageList.GetComponents(Index: Integer): IComponentItem;
|
|
begin
|
|
CSBlock(FLock);
|
|
Result := FComponents[Index] as IComponentItem;
|
|
end;
|
|
|
|
function TPackageList.GetActionCount: Integer;
|
|
begin
|
|
CSBlock(FLock);
|
|
Result := FActions.Count;
|
|
end;
|
|
|
|
function TPackageList.GetActions(Index: Integer): IActionItem;
|
|
begin
|
|
CSBlock(FLock);
|
|
Result := FActions[Index] as IActionItem;
|
|
end;
|
|
|
|
function TPackageList.GetUnitCount: Integer;
|
|
var
|
|
i: Integer;
|
|
begin
|
|
CSBlock(FLock);
|
|
Result := 0;
|
|
for i := 0 to PackageCount - 1 do
|
|
Inc(Result, Packages[i].UnitCount);
|
|
end;
|
|
|
|
function TPackageList.GetUnits(Index: Integer): IUnit;
|
|
var
|
|
i: Integer;
|
|
begin
|
|
CSBlock(FLock);
|
|
for i := 0 to PackageCount - 1 do
|
|
begin
|
|
if Index < Packages[i].UnitCount then
|
|
begin
|
|
Result := Packages[i].Units[Index];
|
|
Exit;
|
|
end;
|
|
Dec(Index, Packages[i].UnitCount);
|
|
end;
|
|
end;
|
|
|
|
function TPackageList.GetPackageCount: Integer;
|
|
begin
|
|
CSBlock(FLock);
|
|
Result := FPackages.Count;
|
|
end;
|
|
|
|
function TPackageList.GetPackages(Index: Integer): IPackage;
|
|
begin
|
|
CSBlock(FLock);
|
|
Result := FPackages[Index] as IPackage;
|
|
end;
|
|
|
|
function TPackageList.IndexOf(const Name: string): Integer;
|
|
begin
|
|
CSBlock(FLock);
|
|
|
|
for Result := 0 to PackageCount - 1 do
|
|
if CompareText(Packages[Result].Name, Name) = 0 then
|
|
Exit;
|
|
Result := -1;
|
|
end;
|
|
|
|
{ TPackage }
|
|
|
|
constructor TPackage.Create(APackageList: TPackageList;
|
|
const AName, ADescription, ADcpBpiName: string; AFlags: Integer);
|
|
begin
|
|
inherited Create;
|
|
FPackageList := APackageList;
|
|
FRequires := TStringList.Create;
|
|
FUnits := TInterfaceList.Create;
|
|
FComponents := TInterfaceList.Create;
|
|
FActions := TInterfaceList.Create;
|
|
|
|
FName := AName;
|
|
FDescription := ADescription;
|
|
FDcpBpiName := ADcpBpiName;
|
|
FFlags := AFlags;
|
|
end;
|
|
|
|
destructor TPackage.Destroy;
|
|
begin
|
|
FRequires.Free;
|
|
FActions.Free;
|
|
FComponents.Free;
|
|
FUnits.Free;
|
|
inherited Destroy;
|
|
end;
|
|
|
|
procedure TPackage.AddUnit(AUnit: TUnit);
|
|
begin
|
|
if Assigned(AUnit) then
|
|
FUnits.Add(AUnit);
|
|
end;
|
|
|
|
procedure TPackage.AddComponent(AItem: IComponentItem);
|
|
begin
|
|
if Assigned(AItem) then
|
|
begin
|
|
if AItem.Palette = sNoIconPalette then // NoIcon components are not of interest
|
|
Exit;
|
|
FComponents.Add(AItem);
|
|
FPackageList.FComponents.Add(AItem);
|
|
end;
|
|
end;
|
|
|
|
procedure TPackage.AddAction(AItem: IActionItem);
|
|
begin
|
|
if Assigned(AItem) then
|
|
begin
|
|
FActions.Add(AItem);
|
|
FPackageList.FActions.Add(AItem);
|
|
end;
|
|
end;
|
|
|
|
procedure TPackage.AddRequire(const Name: string);
|
|
begin
|
|
if (Name <> '') and (FRequires.IndexOf(Name) = -1) then
|
|
FRequires.Add(Name);
|
|
end;
|
|
|
|
function TPackage.GetComponentCount: Integer;
|
|
begin
|
|
Result := FComponents.Count;
|
|
end;
|
|
|
|
function TPackage.GetComponents(Index: Integer): IComponentItem;
|
|
begin
|
|
Result := FComponents[Index] as IComponentItem;
|
|
end;
|
|
|
|
function TPackage.GetActionCount: Integer;
|
|
begin
|
|
Result := FActions.Count;
|
|
end;
|
|
|
|
function TPackage.GetActions(Index: Integer): IActionItem;
|
|
begin
|
|
Result := FActions[Index] as IActionItem;
|
|
end;
|
|
|
|
function TPackage.GetDcpBpiName: string;
|
|
begin
|
|
Result := FDcpBpiName;
|
|
end;
|
|
|
|
function TPackage.GetFlags: Integer;
|
|
begin
|
|
Result := FFlags;
|
|
end;
|
|
|
|
function TPackage.GetIsRunOnly: Boolean;
|
|
begin
|
|
Result := (Flags and pfRunOnly <> 0) and (Flags and pfDesignOnly = 0);
|
|
end;
|
|
|
|
function TPackage.GetName: string;
|
|
begin
|
|
Result := FName;
|
|
end;
|
|
|
|
function TPackage.GetRequireCount: Integer;
|
|
begin
|
|
Result := FRequires.Count;
|
|
end;
|
|
|
|
function TPackage.GetRequires(Index: Integer): string;
|
|
begin
|
|
Result := FRequires[Index];
|
|
end;
|
|
|
|
function TPackage.GetUnitCount: Integer;
|
|
begin
|
|
Result := FUnits.Count;
|
|
end;
|
|
|
|
function TPackage.GetUnits(Index: Integer): IUnit;
|
|
begin
|
|
Result := FUnits[Index] as IUnit;
|
|
end;
|
|
|
|
function TPackage.GetChecked: Boolean;
|
|
begin
|
|
Result := FChecked;
|
|
end;
|
|
|
|
procedure TPackage.SetChecked(Value: Boolean);
|
|
var
|
|
i, Index: Integer;
|
|
begin
|
|
if Value <> FChecked then
|
|
begin
|
|
FChecked := Value;
|
|
if FChecked then
|
|
begin
|
|
// check parent packages
|
|
for i := 0 to RequireCount - 1 do
|
|
begin
|
|
Index := FPackageList.IndexOf(ChangeFileExt(Requires[i], ''));
|
|
if Index >= 0 then
|
|
FPackageList.Packages[Index].Checked := True;
|
|
end;
|
|
for i := 0 to ComponentCount - 1 do
|
|
Components[i].Checked := True;
|
|
end
|
|
else
|
|
begin
|
|
// uncheck child packages
|
|
for i := 0 to FPackageList.PackageCount - 1 do
|
|
begin
|
|
for Index := 0 to FPackageList.Packages[i].RequireCount - 1 do
|
|
if CompareText(Name, ChangeFileExt(FPackageList.Packages[i].Requires[Index], '')) = 0 then
|
|
begin
|
|
FPackageList.Packages[i].Checked := False;
|
|
Break;
|
|
end;
|
|
end;
|
|
for i := 0 to ComponentCount - 1 do
|
|
Components[i].Checked := False;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function TPackage.HasCheckedDeps: Boolean;
|
|
var
|
|
i, Index: Integer;
|
|
begin
|
|
Result := True;
|
|
// uncheck child packages
|
|
for i := 0 to FPackageList.PackageCount - 1 do
|
|
begin
|
|
for Index := 0 to FPackageList.Packages[i].RequireCount - 1 do
|
|
if CompareText(Name, ChangeFileExt(FPackageList.Packages[i].Requires[Index], '')) = 0 then
|
|
begin
|
|
if FPackageList.Packages[i].Checked and FPackageList.Packages[i].HasCheckedDeps then
|
|
Exit;
|
|
end;
|
|
end;
|
|
Result := False;
|
|
end;
|
|
|
|
function TPackage.GetDescription: string;
|
|
begin
|
|
Result := FDescription;
|
|
end;
|
|
|
|
{ TUnit }
|
|
|
|
procedure TUnit.AddComponent(AComponent: IComponentItem);
|
|
begin
|
|
if AComponent <> nil then
|
|
FComponents.Add(AComponent);
|
|
end;
|
|
|
|
constructor TUnit.Create(const AName: string; AFlags: Integer);
|
|
begin
|
|
inherited Create;
|
|
FName := AName;
|
|
FFlags := AFlags;
|
|
FComponents := TInterfaceList.Create;
|
|
end;
|
|
|
|
destructor TUnit.Destroy;
|
|
begin
|
|
FComponents.Free;
|
|
inherited Destroy;
|
|
end;
|
|
|
|
function TUnit.GetComponentCount: Integer;
|
|
begin
|
|
Result := FComponents.Count;
|
|
end;
|
|
|
|
function TUnit.GetComponents(Index: Integer): IComponentItem;
|
|
begin
|
|
Result := FComponents[Index] as IComponentItem;
|
|
end;
|
|
|
|
function TUnit.GetFlags: Integer;
|
|
begin
|
|
Result := FFlags;
|
|
end;
|
|
|
|
function TUnit.GetName: string;
|
|
begin
|
|
Result := FName;
|
|
end;
|
|
|
|
{ TComponentItem }
|
|
|
|
constructor TComponentItem.Create(APackage: IPackage; const APalette: string;
|
|
const AComponentClass: string; AImageIndex: Integer; const AUnitName: string);
|
|
begin
|
|
inherited Create;
|
|
FPackage := APackage;
|
|
FPalette := APalette;
|
|
FComponentClass := AComponentClass;
|
|
FImageIndex := AImageIndex;
|
|
FUnitName := AUnitName;
|
|
end;
|
|
|
|
function TComponentItem.GetComponentClass: string;
|
|
begin
|
|
Result := FComponentClass;
|
|
end;
|
|
|
|
function TComponentItem.GetImageIndex: Integer;
|
|
begin
|
|
Result := FImageIndex;
|
|
end;
|
|
|
|
function TComponentItem.GetPalette: string;
|
|
begin
|
|
Result := FPalette;
|
|
end;
|
|
|
|
function TComponentItem.GetUnitName: string;
|
|
begin
|
|
Result := FUnitName;
|
|
end;
|
|
|
|
function TComponentItem.GetChecked: Boolean;
|
|
begin
|
|
Result := FChecked;
|
|
end;
|
|
|
|
procedure TComponentItem.SetChecked(Value: Boolean);
|
|
begin
|
|
if Value <> FChecked then
|
|
begin
|
|
FChecked := Value;
|
|
if FChecked then
|
|
FPackage.Checked := True
|
|
else
|
|
if FPackage.HasCheckedDeps then
|
|
FChecked := True
|
|
else
|
|
FPackage.Checked := False;
|
|
end;
|
|
end;
|
|
|
|
procedure TComponentItem.SetImageIndex(Value: Integer);
|
|
begin
|
|
FImageIndex := Value;
|
|
end;
|
|
|
|
function TComponentItem.GetPackage: IPackage;
|
|
begin
|
|
Result := FPackage;
|
|
end;
|
|
|
|
{ TActionItem }
|
|
|
|
constructor TActionItem.Create(const ACategory: string; const AActionClass: string;
|
|
const AResource: string; const AUnitName: string);
|
|
begin
|
|
inherited Create;
|
|
FCategory := ACategory;
|
|
FActionClass := AActionClass;
|
|
FResource := AResource;
|
|
FUnitName := AUnitName;
|
|
end;
|
|
|
|
function TActionItem.GetActionClass: string;
|
|
begin
|
|
Result := FActionClass;
|
|
end;
|
|
|
|
function TActionItem.GetCategory: string;
|
|
begin
|
|
Result := FCategory;
|
|
end;
|
|
|
|
function TActionItem.GetResource: string;
|
|
begin
|
|
Result := FResource;
|
|
end;
|
|
|
|
function TActionItem.GetUnitName: string;
|
|
begin
|
|
Result := FUnitName;
|
|
end;
|
|
|
|
end.
|