-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathWP.GitHub.Creator.pas
138 lines (113 loc) · 3.14 KB
/
WP.GitHub.Creator.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
{ ***************************************************}
{ Auhtor: Ali Dehbansiahkarbon(adehban@gmail.com) }
{ GitHub: https://github.com/AliDehbansiahkarbon }
{ ***************************************************}
unit WP.GitHub.Creator;
interface
uses
System.SysUtils, System.Classes, Vcl.Forms, Vcl.Controls, Vcl.Graphics, Vcl.Dialogs,
ToolsAPI.WelcomePage, ToolsAPI, WP.GitHub.Constants, WP.GitHub.Setting;
type
TWPDemoPlugInCreator = class(TInterfacedObject, INTAWelcomePagePlugin, INTAWelcomePageContentPluginCreator)
private
FWPPluginView: TFrame;
FIconIndex: Integer;
{ INTAWelcomePageContentPluginCreator }
function GetView: TFrame;
function GetIconIndex: Integer;
procedure SetIconIndex(const Value: Integer);
public
constructor Create;
destructor Destroy; override;
class procedure PlugInStartup;
class procedure PlugInFinish;
{ INTAWelcomePagePlugin }
function GetPluginID: string;
function GetPluginName: string;
function GetPluginVisible: boolean;
{ INTAWelcomePageContentPluginCreator }
function CreateView: TFrame;
procedure DestroyView;
function GetIcon: TGraphicArray;
end;
procedure Register;
implementation
uses
WP.GitHub.View;
procedure Register;
begin
TWPDemoPlugInCreator.PlugInStartup;
end;
{ TWPDemoPlugInCreator }
function TWPDemoPlugInCreator.GetPluginID: string;
begin
Result := cPluginID;
end;
function TWPDemoPlugInCreator.GetPluginName: string;
begin
Result := cPluginName;
end;
function TWPDemoPlugInCreator.GetPluginVisible: boolean;
begin
Result := True;
end;
constructor TWPDemoPlugInCreator.Create;
begin
FIconIndex := -1;
end;
destructor TWPDemoPlugInCreator.Destroy;
begin
DestroyView;
inherited;
end;
function TWPDemoPlugInCreator.CreateView: TFrame;
var
LPluginView: INTAWelcomePageCaptionFrame;
// LFrame: TMainFrame;
begin
// if not Assigned(FWPPluginView) then
// FWPPluginView := TMainFrame.Create(nil);
// Result := FWPPluginView;
if not Assigned(FWPPluginView) then
FWPPluginView := WelcomePagePluginService.CreateCaptionFrame(cPluginID, cPluginName, nil);
if Supports(FWPPluginView, INTAWelcomePageCaptionFrame, LPluginView) then
begin
MainFrame := TMainFrame.Create(FWPPluginView);
LPluginView.SetClientFrame(MainFrame);
end;
Result := FWPPluginView;
end;
procedure TWPDemoPlugInCreator.DestroyView;
begin
FreeAndNil(FWPPluginView);
end;
function TWPDemoPlugInCreator.GetIcon: TGraphicArray;
begin
Result := [];
end;
function TWPDemoPlugInCreator.GetIconIndex: Integer;
begin
Result := FIconIndex;
end;
procedure TWPDemoPlugInCreator.SetIconIndex(const Value: Integer);
begin
FIconIndex := Value;
end;
function TWPDemoPlugInCreator.GetView: TFrame;
begin
Result := FWPPluginView;
end;
class procedure TWPDemoPlugInCreator.PlugInStartup;
begin
WelcomePagePluginService.RegisterPluginCreator(TWPDemoPlugInCreator.Create);
TSingletonSettings.Instance;
end;
class procedure TWPDemoPlugInCreator.PlugInFinish;
begin
if Assigned(WelcomePagePluginService) then
WelcomePagePluginService.UnRegisterPlugin(cPluginID);
end;
initialization
finalization
TWPDemoPlugInCreator.PlugInFinish;
end.