XP_OTAWizards.pas
上传用户:yjb1804
上传日期:2021-01-30
资源大小:3105k
文件大小:6k
源码类别:

Email服务器

开发平台:

Delphi

  1. unit XP_OTAWizards;
  2. {
  3.  $Source: /cvsroot/dunit/dunit/Contrib/DUnitWizard/Source/DelphiExperts/Common/XP_OTAWizards.pas,v $
  4.  $Revision: 1.2 $
  5.  $Date: 2004/05/03 15:07:15 $
  6.  Last amended by $Author: pvspain $
  7.  $State: Exp $
  8.  XP_OTAWizards:
  9.  Base class for IOTAWizard and descendant interface implementations
  10.  Copyright (c) 2001 by The Excellent Programming Company Pty Ltd
  11.  (Australia) (ABN 27 005 394 918).
  12.  Contact Paul Spain via email: paul@xpro.com.au
  13.  This unit is free software; you can redistribute it and/or
  14.  modify it under the terms of the GNU Lesser General Public
  15.  License as published by the Free Software Foundation; either
  16.  version 2.1 of the License, or (at your option) any later version.
  17.  This unit is distributed in the hope that it will be useful,
  18.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  19.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  20.  Lesser General Public License for more details.
  21.  You should have received a copy of the GNU Lesser General Public
  22.  License along with this unit; if not, the license can be viewed at:
  23.  http://www.gnu.org/copyleft/lesser.html
  24.  or write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  25.  Boston, MA  02111-1307  USA
  26.  }
  27. interface
  28. {$I JEDI.inc}
  29. uses
  30.   ToolsAPI,     // IOTA...
  31.   Windows,      // HICON
  32.   XP_OTAUtils;  // TXP_OTANotifier
  33. type
  34. {$IFDEF DELPHI6_UP}
  35.   TXPIconHandle = cardinal;
  36. {$ELSE}
  37.   TXPIconHandle = HICON;
  38. {$ENDIF}
  39. //////////////////////////////////////////////////////////////////////////////
  40. ///     TXP_OTAWizard declaration
  41. //////////////////////////////////////////////////////////////////////////////
  42.   TXP_OTAWizard = class(TXP_OTANotifier, IOTAWizard)
  43.   protected
  44.     function GetAuthor: string; virtual; abstract;
  45.     // IOTAWizard implementation
  46.     function GetIDString: string; virtual;
  47.     function GetName: string; virtual; abstract;
  48.     function GetState: TWizardState; virtual;
  49.     procedure Execute; virtual;
  50.   end;
  51. //////////////////////////////////////////////////////////////////////////////
  52. ///     TXP_OTAMenuWizard declaration
  53. //////////////////////////////////////////////////////////////////////////////
  54.   TXP_OTAMenuWizard = class(TXP_OTAWizard, IOTAMenuWizard)
  55.   protected
  56.     // IOTAMenuWizard implementation
  57.     function GetMenuText: string; virtual; abstract;
  58.     // Subclasses must also override GetAuthor(), GetName() and usually
  59.     // Execute()
  60.   end;
  61. //////////////////////////////////////////////////////////////////////////////
  62. ///     TXP_OTARepositoryWizard declaration
  63. //////////////////////////////////////////////////////////////////////////////
  64.   TXP_OTARepositoryWizard = class(TXP_OTAWizard, IOTARepositoryWizard)
  65.   protected
  66.     // IOTARepositoryWizard implementation
  67.     function GetComment: string; virtual; abstract;
  68.     function GetPage: string; virtual;
  69.     function GetGlyph: TXPIconHandle; virtual;
  70.     // Subclasses must also override GetAuthor(), GetName() and usually
  71.     // Execute()
  72.   end;
  73. //////////////////////////////////////////////////////////////////////////////
  74. ///     TXP_OTAProjectWizard declaration
  75. //////////////////////////////////////////////////////////////////////////////
  76.   TXP_OTAProjectWizard = class(TXP_OTARepositoryWizard, IOTAProjectWizard)
  77.   protected
  78.     function GetPage: string; override;
  79.     // Subclasses must implement GetAuthor(), GetName(), GetComment() and
  80.     // usually Execute()
  81.   end;
  82. //////////////////////////////////////////////////////////////////////////////
  83. ///     TXP_OTAPFormWizard declaration
  84. //////////////////////////////////////////////////////////////////////////////
  85.   TXP_OTAPFormWizard = class(TXP_OTARepositoryWizard, IOTAFormWizard)
  86.   protected
  87.     function GetPage: string; override;
  88.     // Subclasses must implement GetAuthor(), GetName(), GetComment() and
  89.     // usually Execute()
  90.   end;
  91. implementation
  92. uses
  93.   SysUtils;       // FmtStr()
  94. const CVSID: string = '$Header: /cvsroot/dunit/dunit/Contrib/DUnitWizard/Source/DelphiExperts/Common/XP_OTAWizards.pas,v 1.2 2004/05/03 15:07:15 pvspain Exp $';
  95. // "New..." dialogue page names for repository wizards - locale specific,
  96. // so we're using resource strings
  97. resourcestring sProjectsPage = 'Projects';
  98. resourcestring sFormsPage = 'Forms';
  99. //////////////////////////////////////////////////////////////////////////////
  100. ///     TXP_OTAWizard implementation
  101. //////////////////////////////////////////////////////////////////////////////
  102. procedure TXP_OTAWizard.Execute;
  103. begin
  104.   // Do nothing - only called for IOTAWizard-derived interfaces
  105. end;
  106. function TXP_OTAWizard.GetIDString: string;
  107. begin
  108.   SysUtils.FmtStr(Result, '%s.%s', [XP_OTAUtils.ExtractWhiteSpace(GetAuthor),
  109.     XP_OTAUtils.ExtractWhiteSpace(GetName)]);
  110. end;
  111. function TXP_OTAWizard.GetState: TWizardState;
  112. begin
  113.   // Only used by menu wizards
  114.   Result := [wsEnabled];
  115. end;
  116. //////////////////////////////////////////////////////////////////////////////
  117. ///     TXP_OTARepositoryWizard implementation
  118. //////////////////////////////////////////////////////////////////////////////
  119. function TXP_OTARepositoryWizard.GetGlyph: TXPIconHandle;
  120. begin
  121.   // Use default icon
  122.   Result := 0;
  123. end;
  124. function TXP_OTARepositoryWizard.GetPage: string;
  125. begin
  126.   // Use default page ('Wizards')
  127.   Result := '';
  128. end;
  129. //////////////////////////////////////////////////////////////////////////////
  130. ///     TXP_OTAProjectWizard implementation
  131. //////////////////////////////////////////////////////////////////////////////
  132. function TXP_OTAProjectWizard.GetPage: string;
  133. begin
  134.   Result := sProjectsPage;
  135. end;
  136. //////////////////////////////////////////////////////////////////////////////
  137. ///     TXP_OTAPFormWizard implementation
  138. //////////////////////////////////////////////////////////////////////////////
  139. function TXP_OTAPFormWizard.GetPage: string;
  140. begin
  141.   Result := sFormsPage;
  142. end;
  143. end.