Skip to content

Commit 86e79d1

Browse files
committed
Add ide component editor
1 parent 1c06fb0 commit 86e79d1

File tree

4 files changed

+77
-11
lines changed

4 files changed

+77
-11
lines changed

Source/VTIDEEditors.pas

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
unit VTIDEEditors;
2+
3+
{$mode objfpc}{$H+}
4+
5+
interface
6+
7+
uses
8+
ComponentEditors, PropEdits, VirtualTrees;
9+
10+
type
11+
12+
// The usual trick to make a protected property accessible in the ShowCollectionEditor call below.
13+
TVirtualTreeCast = class(TBaseVirtualTree);
14+
15+
{ TVirtualTreeEditor }
16+
17+
TVirtualTreeEditor = class(TComponentEditor)
18+
public
19+
procedure Edit; override;
20+
function GetVerbCount: Integer; override;
21+
function GetVerb(Index: Integer): string; override;
22+
procedure ExecuteVerb(Index: Integer); override;
23+
end;
24+
25+
implementation
26+
27+
{ TVirtualTreeEditor }
28+
29+
procedure TVirtualTreeEditor.Edit;
30+
var
31+
Tree: TVirtualTreeCast;
32+
begin
33+
Tree := TVirtualTreeCast(GetComponent);
34+
TCollectionPropertyEditor.ShowCollectionEditor(Tree.Header.Columns, Tree, 'Columns');
35+
end;
36+
37+
function TVirtualTreeEditor.GetVerbCount: Integer;
38+
begin
39+
Result := 1;
40+
end;
41+
42+
function TVirtualTreeEditor.GetVerb(Index: Integer): string;
43+
begin
44+
case Index of
45+
0: Result := 'Edit Columns...';
46+
end;
47+
end;
48+
49+
procedure TVirtualTreeEditor.ExecuteVerb(Index: Integer);
50+
begin
51+
case Index of
52+
0: Edit;
53+
end;
54+
end;
55+
56+
end.
57+

Source/registervirtualtreeview.pas

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,16 @@
44
{$H+}
55

66
interface
7-
8-
uses
9-
Classes, SysUtils, LResources, LazarusPackageIntf,
10-
VirtualTrees, VTHeaderPopup;
117

128
procedure Register;
139

1410
implementation
1511

12+
uses
13+
Classes, SysUtils, LResources, LazarusPackageIntf,
14+
VirtualTrees, VTHeaderPopup, VTIDEEditors, ComponentEditors;
15+
16+
1617
procedure RegisterUnitVirtualTrees;
1718
begin
1819
RegisterComponents('Virtual Controls', [TVirtualDrawTree, TVirtualStringTree]);
@@ -26,9 +27,10 @@ procedure RegisterUnitVTHeaderPopup;
2627
procedure Register;
2728

2829
begin
30+
RegisterComponentEditor([TVirtualDrawTree, TVirtualStringTree], TVirtualTreeEditor);
2931
RegisterUnit('VirtualTrees', @RegisterUnitVirtualTrees);
3032
RegisterUnit('VTHeaderPopup', @RegisterUnitVTHeaderPopup);
31-
end;
33+
end;
3234

3335
initialization
3436
{$i ideicons.lrs}

Source/virtualtreeview_package.lpk

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ end;"/>
4040
<License Value=" Mozilla Public License 1.1 (MPL 1.1) or GNU Lesser General Public License
4141
"/>
4242
<Version Major="4" Minor="8" Release="7" Build="3"/>
43-
<Files Count="7">
43+
<Files Count="8">
4444
<Item1>
4545
<Filename Value="VirtualTrees.pas"/>
4646
<UnitName Value="VirtualTrees"/>
@@ -70,15 +70,22 @@ end;"/>
7070
<Filename Value="VirtualTrees.res"/>
7171
<Type Value="Binary"/>
7272
</Item7>
73+
<Item8>
74+
<Filename Value="VTIDEEditors.pas"/>
75+
<UnitName Value="VTIDEEditors"/>
76+
</Item8>
7377
</Files>
74-
<RequiredPkgs Count="2">
78+
<RequiredPkgs Count="3">
7579
<Item1>
76-
<PackageName Value="lclextensions_package"/>
77-
<MinVersion Minor="5" Valid="True"/>
80+
<PackageName Value="IDEIntf"/>
7881
</Item1>
7982
<Item2>
80-
<PackageName Value="LCL"/>
83+
<PackageName Value="lclextensions_package"/>
84+
<MinVersion Minor="5" Valid="True"/>
8185
</Item2>
86+
<Item3>
87+
<PackageName Value="LCL"/>
88+
</Item3>
8289
</RequiredPkgs>
8390
<UsageOptions>
8491
<UnitPath Value="$(PkgOutDir)"/>

Source/virtualtreeview_package.pas

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ interface
99

1010
uses
1111
VirtualTrees, VTHeaderPopup, registervirtualtreeview, VTGraphics,
12-
LazarusPackageIntf;
12+
VTIDEEditors, LazarusPackageIntf;
1313

1414
implementation
1515

0 commit comments

Comments
 (0)