1 |
|
---|
2 | {*****************************************************************************}
|
---|
3 | { }
|
---|
4 | { Tnt Delphi Unicode Controls }
|
---|
5 | { http://www.tntware.com/delphicontrols/unicode/ }
|
---|
6 | { Version: 2.3.0 }
|
---|
7 | { }
|
---|
8 | { Copyright (c) 2002-2007, Troy Wolbrink (troy.wolbrink@tntware.com) }
|
---|
9 | { }
|
---|
10 | {*****************************************************************************}
|
---|
11 |
|
---|
12 | unit TntComCtrls_Design;
|
---|
13 |
|
---|
14 | {$INCLUDE ..\Source\TntCompilers.inc}
|
---|
15 |
|
---|
16 | interface
|
---|
17 |
|
---|
18 | uses
|
---|
19 | DesignIntf, DesignMenus, DesignEditors, Classes, ComCtrls;
|
---|
20 |
|
---|
21 | type
|
---|
22 | IPrepareMenuItem = IMenuItem;
|
---|
23 |
|
---|
24 | TTntListViewEditor = class(TComponentEditor)
|
---|
25 | public
|
---|
26 | procedure ExecuteVerb(Index: Integer); override;
|
---|
27 | function GetVerb(Index: Integer): string{TNT-ALLOW string}; override;
|
---|
28 | function GetVerbCount: Integer; override;
|
---|
29 | end;
|
---|
30 |
|
---|
31 | TTntPageControlEditor = class(TDefaultEditor)
|
---|
32 | private
|
---|
33 | function PageControl: TPageControl{TNT-ALLOW TPageControl};
|
---|
34 | public
|
---|
35 | procedure ExecuteVerb(Index: Integer); override;
|
---|
36 | function GetVerb(Index: Integer): string{TNT-ALLOW string}; override;
|
---|
37 | function GetVerbCount: Integer; override;
|
---|
38 | procedure PrepareItem(Index: Integer; const AItem: IPrepareMenuItem); override;
|
---|
39 | end;
|
---|
40 |
|
---|
41 | TTntStatusBarEditor = class(TComponentEditor)
|
---|
42 | public
|
---|
43 | procedure ExecuteVerb(Index: Integer); override;
|
---|
44 | function GetVerb(Index: Integer): string{TNT-ALLOW string}; override;
|
---|
45 | function GetVerbCount: Integer; override;
|
---|
46 | end;
|
---|
47 |
|
---|
48 | TTntToolBarEditor = class(TComponentEditor)
|
---|
49 | public
|
---|
50 | procedure ExecuteVerb(Index: Integer); override;
|
---|
51 | function GetVerb(Index: Integer): string{TNT-ALLOW string}; override;
|
---|
52 | function GetVerbCount: Integer; override;
|
---|
53 | end;
|
---|
54 |
|
---|
55 | procedure Register;
|
---|
56 |
|
---|
57 | implementation
|
---|
58 |
|
---|
59 | uses
|
---|
60 | SysUtils, DsnConst, TntComCtrls, TntDesignEditors_Design;
|
---|
61 |
|
---|
62 | procedure Register;
|
---|
63 | begin
|
---|
64 | RegisterComponentEditor(TTntListView, TTntListViewEditor);
|
---|
65 | RegisterComponentEditor(TTntPageControl, TTntPageControlEditor);
|
---|
66 | RegisterComponentEditor(TTntTabSheet, TTntPageControlEditor);
|
---|
67 | RegisterComponentEditor(TTntStatusBar, TTntStatusBarEditor);
|
---|
68 | RegisterComponentEditor(TTntToolBar, TTntToolBarEditor);
|
---|
69 | RegisterComponentEditor(TTntToolButton, TTntToolBarEditor);
|
---|
70 | end;
|
---|
71 |
|
---|
72 | { TTntListViewEditor }
|
---|
73 |
|
---|
74 | function TTntListViewEditor.GetVerbCount: Integer;
|
---|
75 | begin
|
---|
76 | Result := 2;
|
---|
77 | end;
|
---|
78 |
|
---|
79 | function TTntListViewEditor.GetVerb(Index: Integer): string{TNT-ALLOW string};
|
---|
80 | begin
|
---|
81 | case Index of
|
---|
82 | 0: Result := SListColumnsEditor;
|
---|
83 | 1: Result := SListItemsEditor;
|
---|
84 | end;
|
---|
85 | end;
|
---|
86 |
|
---|
87 | procedure TTntListViewEditor.ExecuteVerb(Index: Integer);
|
---|
88 | begin
|
---|
89 | case Index of
|
---|
90 | 0: EditPropertyWithDialog(Component, 'Columns', Designer);
|
---|
91 | 1: EditPropertyWithDialog(Component, 'Items', Designer);
|
---|
92 | end;
|
---|
93 | end;
|
---|
94 |
|
---|
95 | { TTntPageControlEditor }
|
---|
96 |
|
---|
97 | function TTntPageControlEditor.PageControl: TPageControl{TNT-ALLOW TPageControl};
|
---|
98 | begin
|
---|
99 | if Component is TTabSheet{TNT-ALLOW TTabSheet} then
|
---|
100 | Result := TTabSheet{TNT-ALLOW TTabSheet}(Component).PageControl
|
---|
101 | else
|
---|
102 | Result := Component as TPageControl{TNT-ALLOW TPageControl};
|
---|
103 | end;
|
---|
104 |
|
---|
105 | function TTntPageControlEditor.GetVerbCount: Integer;
|
---|
106 | begin
|
---|
107 | Result := 4;
|
---|
108 | end;
|
---|
109 |
|
---|
110 | function TTntPageControlEditor.GetVerb(Index: Integer): string{TNT-ALLOW string};
|
---|
111 | begin
|
---|
112 | case Index of
|
---|
113 | 0: Result := SNewPage;
|
---|
114 | 1: Result := SNextPage;
|
---|
115 | 2: Result := SPrevPage;
|
---|
116 | 3: Result := SDeletePage;
|
---|
117 | end;
|
---|
118 | end;
|
---|
119 |
|
---|
120 | procedure TTntPageControlEditor.PrepareItem(Index: Integer; const AItem: IPrepareMenuItem);
|
---|
121 | begin
|
---|
122 | AItem.Enabled := (Index <> 3) or (PageControl.PageCount > 0);
|
---|
123 | end;
|
---|
124 |
|
---|
125 | type TAccessPageControl = class(TPageControl{TNT-ALLOW TPageControl});
|
---|
126 |
|
---|
127 | procedure TTntPageControlEditor.ExecuteVerb(Index: Integer);
|
---|
128 |
|
---|
129 | procedure CreateNewTabSheet;
|
---|
130 | var
|
---|
131 | NewTabsheet: TTntTabSheet;
|
---|
132 | begin
|
---|
133 | NewTabSheet := TTntTabSheet.Create(PageControl.Owner);
|
---|
134 | NewTabSheet.PageControl := Self.PageControl;
|
---|
135 | with NewTabSheet do begin
|
---|
136 | Name := Designer.UniqueName(ClassName);
|
---|
137 | Caption := Name;
|
---|
138 | Visible := True;
|
---|
139 | end;
|
---|
140 | PageControl.ActivePage := NewTabSheet;
|
---|
141 | end;
|
---|
142 |
|
---|
143 | begin
|
---|
144 | case Index of
|
---|
145 | 0: CreateNewTabSheet;
|
---|
146 | 1: PageControl.SelectNextPage(True, False);
|
---|
147 | 2: PageControl.SelectNextPage(False, False);
|
---|
148 | 3: if PageControl.ActivePage <> nil then
|
---|
149 | PageControl.ActivePage.Free;
|
---|
150 | end;
|
---|
151 | end;
|
---|
152 |
|
---|
153 | { TTntStatusBarEditor }
|
---|
154 |
|
---|
155 | function TTntStatusBarEditor.GetVerbCount: Integer;
|
---|
156 | begin
|
---|
157 | Result := 1;
|
---|
158 | end;
|
---|
159 |
|
---|
160 | function TTntStatusBarEditor.GetVerb(Index: Integer): string{TNT-ALLOW string};
|
---|
161 | begin
|
---|
162 | case Index of
|
---|
163 | 0: Result := SStatusBarPanelEdit;
|
---|
164 | end;
|
---|
165 | end;
|
---|
166 |
|
---|
167 | procedure TTntStatusBarEditor.ExecuteVerb(Index: Integer);
|
---|
168 | begin
|
---|
169 | case Index of
|
---|
170 | 0: EditPropertyWithDialog(Component, 'Panels', Designer);
|
---|
171 | end;
|
---|
172 | end;
|
---|
173 |
|
---|
174 | { TTntToolBarEditor }
|
---|
175 |
|
---|
176 | procedure TTntToolBarEditor.ExecuteVerb(Index: Integer);
|
---|
177 | var
|
---|
178 | ToolBar: TTntToolBar;
|
---|
179 | ToolButton: TTntToolButton;
|
---|
180 | I, J: Integer;
|
---|
181 | NewName: WideString;
|
---|
182 | begin
|
---|
183 | Assert(Index in [0, 1]);
|
---|
184 |
|
---|
185 | if Component is TTntToolBar then
|
---|
186 | ToolBar := TTntToolBar(Component)
|
---|
187 | else if (Component is TTntToolButton) and (TTntToolButton(Component).Parent is TTntToolBar) then
|
---|
188 | ToolBar := TTntToolBar(TTntToolButton(Component).Parent)
|
---|
189 | else
|
---|
190 | Exit;
|
---|
191 |
|
---|
192 | ToolButton := TTntToolButton.Create(Component.Owner);
|
---|
193 |
|
---|
194 | I := 1;
|
---|
195 | repeat
|
---|
196 | NewName := 'TntToolButton' + IntToStr(I);
|
---|
197 | for J := 0 to ToolBar.ControlCount - 1 do
|
---|
198 | if WideSameText(ToolBar.Controls[J].Name, NewName) then
|
---|
199 | NewName := '';
|
---|
200 | Inc(I);
|
---|
201 | until NewName <> '';
|
---|
202 | ToolButton.Name := NewName;
|
---|
203 |
|
---|
204 | if Index = 1 then begin
|
---|
205 | ToolButton.Style := tbsSeparator;
|
---|
206 | ToolButton.Width := 8;
|
---|
207 | end;
|
---|
208 |
|
---|
209 | for I := 0 to ToolBar.ControlCount - 1 do
|
---|
210 | ToolButton.Left := ToolButton.Left + ToolBar.Controls[I].Width;
|
---|
211 |
|
---|
212 | ToolButton.Parent := ToolBar;
|
---|
213 | end;
|
---|
214 |
|
---|
215 | function TTntToolBarEditor.GetVerb(Index: Integer): string{TNT-ALLOW string};
|
---|
216 | begin
|
---|
217 | case Index of
|
---|
218 | 0: Result := SNewToolButton;
|
---|
219 | 1: Result := SNewToolSeparator;
|
---|
220 | end;
|
---|
221 | end;
|
---|
222 |
|
---|
223 | function TTntToolBarEditor.GetVerbCount: Integer;
|
---|
224 | begin
|
---|
225 | Result := 2;
|
---|
226 | end;
|
---|
227 |
|
---|
228 | end.
|
---|