229 lines
6.3 KiB
ObjectPascal
229 lines
6.3 KiB
ObjectPascal
|
|
{*****************************************************************************}
|
|
{ }
|
|
{ Tnt Delphi Unicode Controls }
|
|
{ http://www.tntware.com/delphicontrols/unicode/ }
|
|
{ Version: 2.3.0 }
|
|
{ }
|
|
{ Copyright (c) 2002-2007, Troy Wolbrink (troy.wolbrink@tntware.com) }
|
|
{ }
|
|
{*****************************************************************************}
|
|
|
|
unit TntComCtrls_Design;
|
|
|
|
{$INCLUDE ..\Source\TntCompilers.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
DesignIntf, DesignMenus, DesignEditors, Classes, ComCtrls;
|
|
|
|
type
|
|
IPrepareMenuItem = IMenuItem;
|
|
|
|
TTntListViewEditor = class(TComponentEditor)
|
|
public
|
|
procedure ExecuteVerb(Index: Integer); override;
|
|
function GetVerb(Index: Integer): string{TNT-ALLOW string}; override;
|
|
function GetVerbCount: Integer; override;
|
|
end;
|
|
|
|
TTntPageControlEditor = class(TDefaultEditor)
|
|
private
|
|
function PageControl: TPageControl{TNT-ALLOW TPageControl};
|
|
public
|
|
procedure ExecuteVerb(Index: Integer); override;
|
|
function GetVerb(Index: Integer): string{TNT-ALLOW string}; override;
|
|
function GetVerbCount: Integer; override;
|
|
procedure PrepareItem(Index: Integer; const AItem: IPrepareMenuItem); override;
|
|
end;
|
|
|
|
TTntStatusBarEditor = class(TComponentEditor)
|
|
public
|
|
procedure ExecuteVerb(Index: Integer); override;
|
|
function GetVerb(Index: Integer): string{TNT-ALLOW string}; override;
|
|
function GetVerbCount: Integer; override;
|
|
end;
|
|
|
|
TTntToolBarEditor = class(TComponentEditor)
|
|
public
|
|
procedure ExecuteVerb(Index: Integer); override;
|
|
function GetVerb(Index: Integer): string{TNT-ALLOW string}; override;
|
|
function GetVerbCount: Integer; override;
|
|
end;
|
|
|
|
procedure Register;
|
|
|
|
implementation
|
|
|
|
uses
|
|
SysUtils, DsnConst, TntComCtrls, TntDesignEditors_Design;
|
|
|
|
procedure Register;
|
|
begin
|
|
RegisterComponentEditor(TTntListView, TTntListViewEditor);
|
|
RegisterComponentEditor(TTntPageControl, TTntPageControlEditor);
|
|
RegisterComponentEditor(TTntTabSheet, TTntPageControlEditor);
|
|
RegisterComponentEditor(TTntStatusBar, TTntStatusBarEditor);
|
|
RegisterComponentEditor(TTntToolBar, TTntToolBarEditor);
|
|
RegisterComponentEditor(TTntToolButton, TTntToolBarEditor);
|
|
end;
|
|
|
|
{ TTntListViewEditor }
|
|
|
|
function TTntListViewEditor.GetVerbCount: Integer;
|
|
begin
|
|
Result := 2;
|
|
end;
|
|
|
|
function TTntListViewEditor.GetVerb(Index: Integer): string{TNT-ALLOW string};
|
|
begin
|
|
case Index of
|
|
0: Result := SListColumnsEditor;
|
|
1: Result := SListItemsEditor;
|
|
end;
|
|
end;
|
|
|
|
procedure TTntListViewEditor.ExecuteVerb(Index: Integer);
|
|
begin
|
|
case Index of
|
|
0: EditPropertyWithDialog(Component, 'Columns', Designer);
|
|
1: EditPropertyWithDialog(Component, 'Items', Designer);
|
|
end;
|
|
end;
|
|
|
|
{ TTntPageControlEditor }
|
|
|
|
function TTntPageControlEditor.PageControl: TPageControl{TNT-ALLOW TPageControl};
|
|
begin
|
|
if Component is TTabSheet{TNT-ALLOW TTabSheet} then
|
|
Result := TTabSheet{TNT-ALLOW TTabSheet}(Component).PageControl
|
|
else
|
|
Result := Component as TPageControl{TNT-ALLOW TPageControl};
|
|
end;
|
|
|
|
function TTntPageControlEditor.GetVerbCount: Integer;
|
|
begin
|
|
Result := 4;
|
|
end;
|
|
|
|
function TTntPageControlEditor.GetVerb(Index: Integer): string{TNT-ALLOW string};
|
|
begin
|
|
case Index of
|
|
0: Result := SNewPage;
|
|
1: Result := SNextPage;
|
|
2: Result := SPrevPage;
|
|
3: Result := SDeletePage;
|
|
end;
|
|
end;
|
|
|
|
procedure TTntPageControlEditor.PrepareItem(Index: Integer; const AItem: IPrepareMenuItem);
|
|
begin
|
|
AItem.Enabled := (Index <> 3) or (PageControl.PageCount > 0);
|
|
end;
|
|
|
|
type TAccessPageControl = class(TPageControl{TNT-ALLOW TPageControl});
|
|
|
|
procedure TTntPageControlEditor.ExecuteVerb(Index: Integer);
|
|
|
|
procedure CreateNewTabSheet;
|
|
var
|
|
NewTabsheet: TTntTabSheet;
|
|
begin
|
|
NewTabSheet := TTntTabSheet.Create(PageControl.Owner);
|
|
NewTabSheet.PageControl := Self.PageControl;
|
|
with NewTabSheet do begin
|
|
Name := Designer.UniqueName(ClassName);
|
|
Caption := Name;
|
|
Visible := True;
|
|
end;
|
|
PageControl.ActivePage := NewTabSheet;
|
|
end;
|
|
|
|
begin
|
|
case Index of
|
|
0: CreateNewTabSheet;
|
|
1: PageControl.SelectNextPage(True, False);
|
|
2: PageControl.SelectNextPage(False, False);
|
|
3: if PageControl.ActivePage <> nil then
|
|
PageControl.ActivePage.Free;
|
|
end;
|
|
end;
|
|
|
|
{ TTntStatusBarEditor }
|
|
|
|
function TTntStatusBarEditor.GetVerbCount: Integer;
|
|
begin
|
|
Result := 1;
|
|
end;
|
|
|
|
function TTntStatusBarEditor.GetVerb(Index: Integer): string{TNT-ALLOW string};
|
|
begin
|
|
case Index of
|
|
0: Result := SStatusBarPanelEdit;
|
|
end;
|
|
end;
|
|
|
|
procedure TTntStatusBarEditor.ExecuteVerb(Index: Integer);
|
|
begin
|
|
case Index of
|
|
0: EditPropertyWithDialog(Component, 'Panels', Designer);
|
|
end;
|
|
end;
|
|
|
|
{ TTntToolBarEditor }
|
|
|
|
procedure TTntToolBarEditor.ExecuteVerb(Index: Integer);
|
|
var
|
|
ToolBar: TTntToolBar;
|
|
ToolButton: TTntToolButton;
|
|
I, J: Integer;
|
|
NewName: WideString;
|
|
begin
|
|
Assert(Index in [0, 1]);
|
|
|
|
if Component is TTntToolBar then
|
|
ToolBar := TTntToolBar(Component)
|
|
else if (Component is TTntToolButton) and (TTntToolButton(Component).Parent is TTntToolBar) then
|
|
ToolBar := TTntToolBar(TTntToolButton(Component).Parent)
|
|
else
|
|
Exit;
|
|
|
|
ToolButton := TTntToolButton.Create(Component.Owner);
|
|
|
|
I := 1;
|
|
repeat
|
|
NewName := 'TntToolButton' + IntToStr(I);
|
|
for J := 0 to ToolBar.ControlCount - 1 do
|
|
if WideSameText(ToolBar.Controls[J].Name, NewName) then
|
|
NewName := '';
|
|
Inc(I);
|
|
until NewName <> '';
|
|
ToolButton.Name := NewName;
|
|
|
|
if Index = 1 then begin
|
|
ToolButton.Style := tbsSeparator;
|
|
ToolButton.Width := 8;
|
|
end;
|
|
|
|
for I := 0 to ToolBar.ControlCount - 1 do
|
|
ToolButton.Left := ToolButton.Left + ToolBar.Controls[I].Width;
|
|
|
|
ToolButton.Parent := ToolBar;
|
|
end;
|
|
|
|
function TTntToolBarEditor.GetVerb(Index: Integer): string{TNT-ALLOW string};
|
|
begin
|
|
case Index of
|
|
0: Result := SNewToolButton;
|
|
1: Result := SNewToolSeparator;
|
|
end;
|
|
end;
|
|
|
|
function TTntToolBarEditor.GetVerbCount: Integer;
|
|
begin
|
|
Result := 2;
|
|
end;
|
|
|
|
end.
|