From 2986e3f0ff86b27336de1aabb921eda2b48a5651 Mon Sep 17 00:00:00 2001 From: DelphiWorlds Date: Sun, 19 Aug 2018 14:28:25 +0930 Subject: [PATCH] Added template units for creating cross-platform features --- UnitTemplates/DW.Template.Android.pas | 45 ++++++++++++ UnitTemplates/DW.Template.CustomPlatform.pas | 77 ++++++++++++++++++++ UnitTemplates/DW.Template.iOS.pas | 45 ++++++++++++ 3 files changed, 167 insertions(+) create mode 100644 UnitTemplates/DW.Template.Android.pas create mode 100644 UnitTemplates/DW.Template.CustomPlatform.pas create mode 100644 UnitTemplates/DW.Template.iOS.pas diff --git a/UnitTemplates/DW.Template.Android.pas b/UnitTemplates/DW.Template.Android.pas new file mode 100644 index 0000000..978a489 --- /dev/null +++ b/UnitTemplates/DW.Template.Android.pas @@ -0,0 +1,45 @@ +unit DW.Template.Android; + +{*******************************************************} +{ } +{ Kastri Free } +{ } +{ DelphiWorlds Cross-Platform Library } +{ } +{*******************************************************} + +{$I DW.GlobalDefines.inc} + +interface + +uses + DW.Template.CustomPlatform; + +type + TPlatformTemplate = class(TCustomPlatformTemplate) + private + // + protected + // + public + constructor Create(const ATemplate: TTemplate); override; + destructor Destroy; override; + end; + +implementation + +{ TPlatformTemplate } + +constructor TPlatformTemplate.Create(const ATemplate: TTemplate); +begin + inherited; + // +end; + +destructor TPlatformTemplate.Destroy; +begin + // + inherited; +end; + +end. diff --git a/UnitTemplates/DW.Template.CustomPlatform.pas b/UnitTemplates/DW.Template.CustomPlatform.pas new file mode 100644 index 0000000..1969f21 --- /dev/null +++ b/UnitTemplates/DW.Template.CustomPlatform.pas @@ -0,0 +1,77 @@ +unit DW.Template.CustomPlatform; + +{*******************************************************} +{ } +{ Kastri Free } +{ } +{ DelphiWorlds Cross-Platform Library } +{ } +{*******************************************************} + +{$I DW.GlobalDefines.inc} + +interface + +type + TTemplate = class; + + TCustomPlatformTemplate = class(TObject) + private + FTemplate: TTemplate; + protected + property Template: TTemplate read FTemplate; + public + constructor Create(const ATemplate: TTemplate); virtual; + destructor Destroy; override; + end; + + TTemplate = class(TObject) + private + FPlatformTemplate: TCustomPlatformTemplate; + protected + // + public + constructor Create; + destructor Destroy; override; + end; + +implementation + +uses + {$IF Defined(IOS)} + DW.Template.iOS; + {$ELSEIF Defined(ANDROID)} + DW.Template.Android; + {$ELSE} + DW.Template.Default; + {$ENDIF} + +{ TCustomPlatformTemplate } + +constructor TCustomPlatformTemplate.Create(const ATemplate: TTemplate); +begin + inherited Create; + FTemplate := ATemplate; +end; + +destructor TCustomPlatformTemplate.Destroy; +begin + // + inherited; +end; + +{ TTemplate } + +constructor TTemplate.Create; +begin + inherited; + FPlatformTemplate := TPlatformTemplate.Create(Self); +end; + +destructor TTemplate.Destroy; +begin + FPlatformTemplate.Free; + inherited; +end; + +end. diff --git a/UnitTemplates/DW.Template.iOS.pas b/UnitTemplates/DW.Template.iOS.pas new file mode 100644 index 0000000..93636dc --- /dev/null +++ b/UnitTemplates/DW.Template.iOS.pas @@ -0,0 +1,45 @@ +unit DW.Template.iOS; + +{*******************************************************} +{ } +{ Kastri Free } +{ } +{ DelphiWorlds Cross-Platform Library } +{ } +{*******************************************************} + +{$I DW.GlobalDefines.inc} + +interface + +uses + DW.Template.CustomPlatform; + +type + TPlatformTemplate = class(TCustomPlatformTemplate) + private + // + protected + // + public + constructor Create(const ATemplate: TTemplate); override; + destructor Destroy; override; + end; + +implementation + +{ TPlatformTemplate } + +constructor TPlatformTemplate.Create(const ATemplate: TTemplate); +begin + inherited; + // +end; + +destructor TPlatformTemplate.Destroy; +begin + // + inherited; +end; + +end.