227 lines
5.2 KiB
Plaintext
227 lines
5.2 KiB
Plaintext
{
|
|
$Project$
|
|
$Workfile$
|
|
$Revision$
|
|
$DateUTC$
|
|
$Id$
|
|
|
|
This file is part of the Indy (Internet Direct) project, and is offered
|
|
under the dual-licensing agreement described on the Indy website.
|
|
(http://www.indyproject.org/)
|
|
|
|
Copyright:
|
|
(c) 1993-2005, Chad Z. Hower and the Indy Pit Crew. All rights reserved.
|
|
}
|
|
{
|
|
$Log$
|
|
}
|
|
{
|
|
Rev 1.7 9/5/2004 3:16:58 PM JPMugaas
|
|
Should work in D9 DotNET.
|
|
|
|
Rev 1.6 3/8/2004 10:14:54 AM JPMugaas
|
|
Property editor for SASL mechanisms now supports TIdDICT.
|
|
|
|
Rev 1.5 2/26/2004 8:53:14 AM JPMugaas
|
|
Hack to restore the property editor for SASL mechanisms.
|
|
|
|
Rev 1.4 1/25/2004 4:28:42 PM JPMugaas
|
|
Removed a discontinued Unit.
|
|
|
|
Rev 1.3 1/25/2004 3:11:06 PM JPMugaas
|
|
SASL Interface reworked to make it easier for developers to use.
|
|
SSL and SASL reenabled components.
|
|
|
|
Rev 1.2 10/12/2003 1:49:28 PM BGooijen
|
|
Changed comment of last checkin
|
|
|
|
Rev 1.1 10/12/2003 1:43:28 PM BGooijen
|
|
Changed IdCompilerDefines.inc to Core\IdCompilerDefines.inc
|
|
|
|
Rev 1.0 11/14/2002 02:18:56 PM JPMugaas
|
|
}
|
|
|
|
unit IdDsnRegister;
|
|
|
|
interface
|
|
|
|
{$I IdCompilerDefines.inc}
|
|
|
|
uses
|
|
Classes,
|
|
{$IFDEF DOTNET}
|
|
Borland.Vcl.Design.DesignIntF,
|
|
Borland.Vcl.Design.DesignEditors
|
|
{$ELSE}
|
|
{$IFDEF FPC}
|
|
PropEdits,
|
|
ComponentEditors
|
|
{$ELSE}
|
|
{$IFDEF VCL_6_OR_ABOVE}
|
|
DesignIntf,
|
|
DesignEditors
|
|
{$ELSE}
|
|
Dsgnintf
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
;
|
|
// Procs
|
|
|
|
type
|
|
TIdPropEdSASL = class(TClassProperty)
|
|
public
|
|
procedure Edit; override;
|
|
function GetAttributes: TPropertyAttributes; override;
|
|
function GetValue: string; override;
|
|
procedure SetValue(const Value: string); override;
|
|
end;
|
|
|
|
{$IFDEF TSelectionEditor}
|
|
{$IFDEF USE_OPENSSL}
|
|
TIdOpenSSLSelectionEditor = class(TSelectionEditor)
|
|
public
|
|
procedure RequiresUnits(Proc: TGetStrProc); override;
|
|
end;
|
|
{$ENDIF}
|
|
TIdFTPServerSelectionEditor = class(TSelectionEditor)
|
|
public
|
|
procedure RequiresUnits(Proc: TGetStrProc); override;
|
|
end;
|
|
{$ENDIF}
|
|
|
|
procedure Register;
|
|
|
|
implementation
|
|
|
|
uses
|
|
IdDsnResourceStrings,
|
|
{$IFDEF WIDGET_WINFORMS}
|
|
IdDsnSASLListEditorFormNET,
|
|
{$R 'IdDsnSASLListEditorFormNET.TfrmSASLListEditor.resources' 'IdDsnSASLListEditorFormNET.resx'}
|
|
{$ENDIF}
|
|
{$IFDEF WIDGET_VCL_LIKE_OR_KYLIX}
|
|
IdDsnSASLListEditorFormVCL,
|
|
{$ENDIF}
|
|
{$IFDEF TSelectionEditor}
|
|
{$IFDEF USE_OPENSSL}
|
|
IdSSLOpenSSL,
|
|
{$ENDIF}
|
|
IdFTPServer,
|
|
{$ENDIF}
|
|
IdSASL, IdSASLCollection,
|
|
SysUtils, TypInfo;
|
|
{Since we are removing New Design-Time part, we remove the "New Message Part Editor"}
|
|
{IdDsnNewMessagePart, }
|
|
|
|
type
|
|
{$IFDEF WIDGET_WINFORMS}
|
|
//we make a create here because I'm not sure how the Visual Designer for WinForms
|
|
//we behave in a package. I know it can act weird if something is renamed
|
|
TfrmSASLListEditor = class(IdDsnSASLListEditorFormNET.TfrmSASLListEditor)
|
|
public
|
|
constructor Create(AOwner : TComponent);
|
|
end;
|
|
{$ENDIF}
|
|
{$IFDEF WIDGET_VCL_LIKE_OR_KYLIX}
|
|
TfrmSASLListEditor = class(TfrmSASLListEditorVCL);
|
|
{$ENDIF}
|
|
|
|
{ TfrmSASLListEditor }
|
|
|
|
{$IFDEF WIDGET_WINFORMS}
|
|
constructor TfrmSASLListEditor.Create(AOwner : TComponent);
|
|
begin
|
|
inherited Create;
|
|
end;
|
|
{$ENDIF}
|
|
|
|
{$IFDEF TSelectionEditor}
|
|
|
|
{$IFDEF USE_OPENSSL}
|
|
|
|
{TIdOpenSSLSelectionEditor}
|
|
|
|
procedure TIdOpenSSLSelectionEditor.RequiresUnits(Proc: TGetStrProc);
|
|
begin
|
|
inherited RequiresUnits(Proc);
|
|
//for new callback event
|
|
Proc('IdCTypes');
|
|
Proc('IdSSLOpenSSLHeaders');
|
|
end;
|
|
|
|
{$ENDIF}
|
|
|
|
{TIdFTPServerSelectionEditor}
|
|
|
|
procedure TIdFTPServerSelectionEditor.RequiresUnits(Proc: TGetStrProc);
|
|
begin
|
|
inherited RequiresUnits(Proc);
|
|
Proc('IdFTPListOutput');
|
|
Proc('IdFTPList');
|
|
end;
|
|
|
|
{$ENDIF}
|
|
|
|
{ TIdPropEdSASL }
|
|
|
|
procedure TIdPropEdSASL.Edit;
|
|
var
|
|
LF: TfrmSASLListEditor;
|
|
LComp: TPersistent;
|
|
LList: TIdSASLEntries;
|
|
begin
|
|
inherited Edit;
|
|
|
|
LComp := GetComponent(0);
|
|
|
|
//done this way to prevent invalid typecast error.
|
|
{$IFDEF HAS_GetObjectProp}
|
|
LList := TIdSASLEntries(GetObjectProp(LComp, GetPropInfo, TIdSASLEntries));
|
|
{$ELSE}
|
|
LList := TObject(GetOrdProp(LComp, GetPropInfo)) as TIdSASLEntries;
|
|
{$ENDIF}
|
|
|
|
LF := TfrmSASLListEditor.Create(nil);
|
|
try
|
|
if LComp is TComponent then begin
|
|
LF.SetComponentName(TComponent(LComp).Name);
|
|
end;
|
|
LF.SetList(LList);
|
|
if LF.Execute then begin
|
|
LF.GetList(LList);
|
|
end;
|
|
finally
|
|
FreeAndNil(LF);
|
|
end;
|
|
end;
|
|
|
|
function TIdPropEdSASL.GetAttributes: TPropertyAttributes;
|
|
begin
|
|
Result := inherited GetAttributes + [paDialog];
|
|
end;
|
|
|
|
function TIdPropEdSASL.GetValue: string;
|
|
begin
|
|
Result := GetStrValue;
|
|
end;
|
|
|
|
procedure TIdPropEdSASL.SetValue(const Value: string);
|
|
begin
|
|
inherited SetValue(Value);
|
|
end;
|
|
|
|
procedure Register;
|
|
begin
|
|
RegisterPropertyEditor(TypeInfo(TIdSASLEntries), nil, '', TIdPropEdSASL);
|
|
{$IFDEF TSelectionEditor}
|
|
{$IFDEF USE_OPENSSL}
|
|
RegisterSelectionEditor(TIdServerIOHandlerSSLOpenSSL, TIdOpenSSLSelectionEditor);
|
|
RegisterSelectionEditor(TIdSSLIOHandlerSocketOpenSSL, TIdOpenSSLSelectionEditor);
|
|
{$ENDIF}
|
|
RegisterSelectionEditor(TIdFTPServer,TIdFTPServerSelectionEditor);
|
|
{$ENDIF}
|
|
end;
|
|
|
|
end.
|