source: cprs/branches/GUI-config/SkinFormU.pas@ 481

Last change on this file since 481 was 476, checked in by Kevin Toppenberg, 16 years ago

New WorldVistA Config Utility

File size: 6.2 KB
Line 
1unit SkinFormU;
2 (*
3 WorldVistA Configuration Utility
4 (c) 8/2008 Kevin Toppenberg
5 Programmed by Kevin Toppenberg, Eddie Hagood
6
7 Family Physicians of Greeneville, PC
8 1410 Tusculum Blvd, Suite 2600
9 Greeneville, TN 37745
10 kdtop@yahoo.com
11
12 This library is free software; you can redistribute it and/or
13 modify it under the terms of the GNU Lesser General Public
14 License as published by the Free Software Foundation; either
15 version 2.1 of the License, or (at your option) any later version.
16
17 This library 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
22 You should have received a copy of the GNU Lesser General Public
23 License along with this library; if not, write to the Free Software
24 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
25 *)
26
27
28 //==========================================================================
29 //==========================================================================
30 // NOTICE BELOW...
31 //==========================================================================
32 //==========================================================================
33 (*
34 NOTICE:
35 This unit makes use of propriatary, commercial, binary files
36 (.DCU files) that are bound by a *separate* license. Please see that
37 license which is in the \GUI-Config\SkinStuff\ folder
38 *)
39
40//NOTE: If the compilation directive USE_SKINS is not defined, then this
41// form compiles without the skin manager, and is essentially useless.
42// I chose not to remove the entire form for programming reasons, but
43// it will not be accessible to the user unless active.
44
45interface
46
47uses
48 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
49 {$IFDEF USE_SKINS}
50 ipSkinManager,
51 {$ENDIF}
52 StdCtrls, ExtCtrls, ComCtrls, Buttons, DBCtrls, Mask;
53
54type
55 TSkinForm = class(TForm)
56 Panel3: TPanel;
57 SkinsListBox: TListBox;
58 ApplySkinButton: TButton;
59 btnDisable: TButton;
60 Label12: TLabel;
61 Button6: TButton;
62 Button1: TButton;
63 cbSkinAtStartup: TCheckBox;
64 procedure FormCreate(Sender: TObject);
65 procedure ApplySkinButtonClick(Sender: TObject);
66 procedure SkinsListBoxDblClick(Sender: TObject);
67 procedure SkinsListBoxKeyPress(Sender: TObject; var Key: Char);
68 procedure Button6Click(Sender: TObject);
69 procedure FormDestroy(Sender: TObject);
70 procedure FormShow(Sender: TObject);
71 private
72 { Private declarations }
73 {$IFDEF USE_SKINS}
74 SkinManager : TipSkinManager;
75 {$ENDIF}
76 FINIFileName : string;
77 procedure FillSkinList;
78 public
79 { Public declarations }
80 CurrentSkinFile : string;
81 procedure ActivateCurrentSkin;
82 procedure InactivateSkin;
83 end;
84
85var
86 SkinForm: TSkinForm;
87
88//CONST
89// SKIN_NONE = '<TURN OFF SKINS>' ;
90
91implementation
92
93{$R *.DFM}
94
95uses ShellAPI, inifiles;
96
97 procedure TSkinForm.FillSkinList;
98 var
99 SRec : TSearchRec;
100 R : Integer;
101 begin
102 SkinsListBox.Items.Clear;
103// SkinsListBox.Items.Add (SKIN_NONE);
104 R := FindFirst (ExtractFilePath (Application.ExeName) + '\SkinStuff\Skins\*.ipz', faAnyFile, SRec);
105 while R = 0 do
106 begin
107 SkinsListBox.Items.Add (SRec.Name);
108 R := FindNext (SRec);
109 end;
110 SkinsListBox.Sorted := true;
111 SkinsListBox.ItemIndex := 0;
112 end;
113
114
115 procedure TSkinForm.FormCreate(Sender: TObject);
116 var iniFile : TIniFile;
117 begin
118 {$IFDEF USE_SKINS}
119 SkinManager := TipSkinManager.Create(self);
120 {$ENDIF}
121 FINIFileName := ExtractFilePath(ParamStr(0)) + 'GUI_Config.ini';
122 iniFile := TIniFile.Create(FINIFileName);
123 cbSkinAtStartup.Checked := iniFile.ReadBool('Skin','Load At Startup',false);
124 CurrentSkinFile := iniFile.ReadString('Skin','Default Skin','.\SkinStuff\Skins\ICQ_Longhorn_v.1.2.ipz');
125 iniFile.Free;
126 end;
127
128 procedure TSkinForm.FormDestroy(Sender: TObject);
129 var iniFile : TIniFile;
130 begin
131 iniFile := TIniFile.Create(FINIFileName);
132 iniFile.WriteString('Skin','Default Skin',CurrentSkinFile);
133 iniFile.WriteBool('Skin','Load At Startup',cbSkinAtStartup.Checked);
134 iniFile.Free;
135 {$IFDEF USE_SKINS}
136 SkinManager.Free;
137 {$ENDIF}
138 end;
139
140 procedure TSkinForm.ApplySkinButtonClick(Sender: TObject);
141 var fileS : String;
142 begin
143 fileS := '';
144 if SkinsListBox.ItemIndex > -1 then begin
145 fileS := SkinsListBox.Items [SkinsListBox.ItemIndex];
146 end;
147// if fileS = SKIN_NONE then fileS := '';
148 CurrentSkinFile := ExtractFilePath (Application.ExeName) +'\SkinStuff\Skins\' +fileS;
149 ModalResult := mrOK;
150 end;
151
152 procedure TSkinForm.SkinsListBoxDblClick(Sender: TObject);
153 begin
154 ApplySkinButtonClick (Self);
155 end;
156
157 procedure TSkinForm.SkinsListBoxKeyPress(Sender: TObject; var Key: Char);
158 begin
159 if Key = #13 then ApplySkinButtonClick (Self);
160 end;
161
162 procedure TSkinForm.Button6Click(Sender: TObject);
163 begin
164 ShellExecute (Handle, 'open', 'http://www2.wincustomize.com/Skins.aspx?LibID=12&view=1&sortby=9&sortdir=DESC&p=1&advanced=0&mode=1&u=0', nil, nil, SW_SHOWNORMAL);
165 end;
166
167 procedure TSkinForm.ActivateCurrentSkin;
168 begin
169 {$IFDEF USE_SKINS}
170 SkinManager.SkinFile := CurrentSkinFile;
171 if CurrentSkinFile <>'' then begin
172 try
173 SkinManager.Active := true;
174 except
175 on EInvalidOperation do begin
176 MessageDlg('Error Applying Skin. Please try another.',mtInformation,[mbOK],0);
177 end;
178 else begin
179 MessageDlg('Error Applying Skin. Please try another.',mtInformation,[mbOK],0);
180 end;
181 end;
182 end else begin
183 SkinManager.Active := false;
184 end;
185 {$ENDIF}
186 end;
187
188
189 procedure TSkinForm.InactivateSkin;
190 begin
191 {$IFDEF USE_SKINS}
192 SkinManager.Active := false;
193 {$ENDIF}
194 end;
195
196 procedure TSkinForm.FormShow(Sender: TObject);
197 begin
198 FillSkinList;
199 end;
200
201 end.
Note: See TracBrowser for help on using the repository browser.