This commit was generated by cvs2svn to compensate for changes in r164,
[gnokii.git] / win32_makefile / gui_delphi / smsedit.pas
1 unit SMSEdit;\r
2 \r
3 interface\r
4 \r
5 uses\r
6   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,\r
7   Dialogs, StdCtrls,MainUnit,GnokiiAPI, ExtCtrls, ComCtrls;\r
8 \r
9 type\r
10   TSMSEditForm = class(TForm)\r
11     GroupBox1: TGroupBox;\r
12     ComboBox1: TComboBox;\r
13     Label1: TLabel;\r
14     Memo1: TMemo;\r
15     Label2: TLabel;\r
16     Label3: TLabel;\r
17     CheckBox1: TCheckBox;\r
18     Button1: TButton;\r
19     CheckBox2: TCheckBox;\r
20     Button3: TButton;\r
21     Edit1: TEdit;\r
22     GroupBox2: TGroupBox;\r
23     ComboBox2: TComboBox;\r
24     Label4: TLabel;\r
25     ComboBox3: TComboBox;\r
26     Label5: TLabel;\r
27     Label6: TLabel;\r
28     ComboBox4: TComboBox;\r
29     RadioGroup1: TRadioGroup;\r
30     CheckBox3: TCheckBox;\r
31     CheckBox4: TCheckBox;\r
32     ComboBox5: TComboBox;\r
33     SMSEditPageControl: TPageControl;\r
34     TextSMSTabSheet: TTabSheet;\r
35     Label7: TLabel;\r
36     BitmapSMSTabSheet: TTabSheet;\r
37     CalendarSMSTabSheet: TTabSheet;\r
38     RingtoneSMSTabSheet: TTabSheet;\r
39     Label8: TLabel;\r
40     ComboBox6: TComboBox;\r
41     GroupBox3: TGroupBox;\r
42     Label9: TLabel;\r
43     ComboBox7: TComboBox;\r
44     Label10: TLabel;\r
45     CheckBox5: TCheckBox;\r
46     ScrollBox1: TScrollBox;\r
47     Image1: TImage;\r
48     GroupBox4: TGroupBox;\r
49     Memo2: TMemo;\r
50     CheckBox6: TCheckBox;\r
51     GroupBox5: TGroupBox;\r
52     PBKSMSTabSheet: TTabSheet;\r
53     GroupBox6: TGroupBox;\r
54     Label11: TLabel;\r
55     Label12: TLabel;\r
56     Label13: TLabel;\r
57     ComboBox8: TComboBox;\r
58     Label14: TLabel;\r
59     Edit3: TEdit;\r
60     WAPBookTabSheet: TTabSheet;\r
61     WAPSettTabSheet: TTabSheet;\r
62     GroupBox7: TGroupBox;\r
63     GroupBox8: TGroupBox;\r
64     ComboBox9: TComboBox;\r
65     procedure Button3Click(Sender: TObject);\r
66     procedure Memo1Change(Sender: TObject);\r
67     procedure Button1Click(Sender: TObject);\r
68     procedure RadioGroup1Click(Sender: TObject);\r
69     procedure FormShow(Sender: TObject);\r
70     procedure ComboBox2Change(Sender: TObject);\r
71     procedure ComboBox5Change(Sender: TObject);\r
72   private\r
73     { Private declarations }\r
74   public\r
75     { Public declarations }\r
76   end;\r
77 \r
78 var\r
79   SMSEditForm: TSMSEditForm;\r
80   maxlength:integer;\r
81 \r
82 implementation\r
83 \r
84 {$R *.dfm}\r
85 \r
86 procedure TSMSEditForm.Button3Click(Sender: TObject);\r
87 begin\r
88   SMSEditForm.Close;\r
89 end;\r
90 \r
91 procedure TSMSEditForm.Memo1Change(Sender: TObject);\r
92 begin\r
93   GroupBox1.Caption:='Text ' + inttostr(Memo1.GetTextLen)+'/'+inttostr(maxlength);\r
94 end;\r
95 \r
96 procedure TSMSEditForm.Button1Click(Sender: TObject);\r
97 var\r
98   p,i,j:integer;\r
99   z:integer;\r
100   w:word;\r
101   unicode,screensaver:integer;\r
102   smstext:array[1..500] of char;\r
103 begin\r
104   if (SMSEditPageControl.ActivePage=TextSMSTabSheet) then\r
105   begin\r
106     z:=GSM_Coding_Default;\r
107     case combobox5.ItemIndex of\r
108       0: z:=GSM_Coding_Default;\r
109       1: z:=GSM_Coding_Unicode;\r
110     end;\r
111 \r
112     for i:=1 to 500 do\r
113       smstext[i]:=chr(0);\r
114     w:=strlen(pchar(SMSEditForm.Memo1.Text));\r
115     for i:=1 to w do\r
116       smstext[i]:=SMSEditForm.Memo1.Text[i];\r
117 \r
118     GSM_MakeMultiPartSMS2(@setsms,@smstext,w,GSM_NoUDH,z);\r
119 \r
120     for i:=1 to setsms.number do\r
121     begin\r
122       if CheckBox1.Checked then\r
123         setsms.sms[i].Class2 := 0\r
124       else\r
125        setsms.sms[i].Class2 := -1;\r
126     end;\r
127 \r
128     setsms.sms[1].location:=setsmslocation;\r
129   end;\r
130   if (SMSEditPageControl.ActivePage=BitmapSMSTabSheet) then\r
131   begin\r
132     unicode:=0;\r
133     screensaver:=0;\r
134     if bitma.type2=GSM_PictureImage then\r
135     begin\r
136       for i:=1 to 256 do\r
137         bitma.text[i]:=chr(0);\r
138       for i:=1 to strlen(pchar(Memo2.text)) do\r
139         bitma.text[i]:=Memo2.Text[i];\r
140     end;\r
141     GSM_SaveBitmapToSMS(@setsms,@bitma,unicode,screensaver);\r
142   end;\r
143   if (SMSEditPageControl.ActivePage=RingtoneSMSTabSheet) then\r
144   begin\r
145     GSM_SaveRingtoneToSMS(@setsms,@rington,1);\r
146   end;\r
147   if (SMSEditPageControl.ActivePage=WAPBookTabSheet) then\r
148   begin\r
149     GSM_SaveWAPBookmarkToSMS(@setsms,@bookma);\r
150   end;\r
151   if (SMSEditPageControl.ActivePage=WAPSettTabSheet) then\r
152   begin\r
153     GSM_SaveWAPSettingsToSMS(@setsms,@wapset);\r
154   end;\r
155   if (SMSEditPageControl.ActivePage=CalendarSMSTabSheet) then\r
156   begin\r
157     GSM_SaveCalendarNoteToSMS(@setsms,@calenda);\r
158   end;\r
159   if (SMSEditPageControl.ActivePage=PBKSMSTabSheet) then\r
160   begin\r
161     i:=10;\r
162     case ComboBox8.ItemIndex of\r
163       0:i:=10;\r
164       1:i:=21;\r
165     end;\r
166     GSM_SavePhonebookEntryToSMS(@setsms,@pbk,i);\r
167   end;\r
168 \r
169   for z:=1 to setsms.number do\r
170   begin\r
171     for i:=1 to 40 do\r
172       setsms.sms[z].MessageCenter.number[i]:=chr(0);\r
173     for i:=1 to strlen(pchar(Edit1.text)) do\r
174       setsms.sms[z].MessageCenter.number[i]:=Edit1.Text[i];\r
175     setsms.sms[z].MessageCenter.No := ComboBox2.ItemIndex;\r
176     setsms.sms[z].Validity := 4320;  //do it\r
177 \r
178     for i:=1 to 41 do\r
179       setsms.sms[z].destination[i]:=chr(0);\r
180     if (ComboBox9.ItemIndex=-1) then\r
181     begin\r
182       for i:=1 to strlen(pchar(ComboBox9.text)) do\r
183         setsms.sms[z].destination[i]:=ComboBox9.Text[i];\r
184     end else\r
185     begin\r
186       ReadPBKOffline;\r
187       for p:=1 to PBKOfflineNumber do\r
188       begin\r
189         MainForm.Label16.Caption:=PhoneBackup.PhonePhonebook[p].Name;\r
190         if (MainForm.Label16.Caption=ComboBox9.Text) then\r
191         begin\r
192           if (PhoneBackup.PhonePhonebook[p].Number[1]<>chr(0)) then\r
193           begin\r
194             MainForm.Label14.Caption:=PhoneBackup.PhonePhonebook[p].Number;\r
195             for i:=1 to strlen(pchar(MainForm.Label14.Caption)) do\r
196               setsms.sms[z].destination[i]:=PhoneBackup.PhonePhonebook[p].Number[i];\r
197           end else\r
198           begin\r
199             for j:=1 to PhoneBackup.PhonePhonebook[p].SubEntriesCount do\r
200             begin\r
201               if PhoneBackup.PhonePhonebook[p].SubEntries[j].EntryType=GSM_Number then\r
202               begin\r
203                 MainForm.Label14.Caption:=PhoneBackup.PhonePhonebook[p].SubEntries[j].Number;\r
204                 for i:=1 to strlen(pchar(MainForm.Label14.Caption)) do\r
205                   setsms.sms[z].destination[i]:=PhoneBackup.PhonePhonebook[p].SubEntries[j].Number[i];\r
206                 break;\r
207               end;\r
208             end;\r
209           end;\r
210         end;\r
211       end;\r
212     end;\r
213 \r
214     setsms.sms[z].folder:=combobox1.ItemIndex;\r
215 \r
216     setsms.sms[z].Type2 := GST_SMS;\r
217     //delivery report\r
218     if CheckBox2.Checked then\r
219     begin\r
220       if RadioGroup1.ItemIndex=1 then setsms.sms[z].Type2:= GST_DR;\r
221     end;\r
222 \r
223     for i:=1 to 26 do\r
224       setsms.sms[z].name[i]:=chr(0);\r
225     for i:=1 to strlen(pchar(SMSEditForm.edit3.Text)) do\r
226       setsms.sms[z].name[i]:=SMSEditForm.edit3.Text[i];\r
227 \r
228     //read/unread\r
229     if Checkbox4.Checked then\r
230       setsms.sms[z].status:=GSS_SENTREAD\r
231     else\r
232       setsms.sms[z].status:=GSS_NOTSENTREAD;\r
233 \r
234     if CheckBox3.Checked then\r
235       setsms.sms[z].ReplyViaSameSMSC := 1\r
236     else\r
237       setsms.sms[z].ReplyViaSameSMSC := 0;\r
238   end;\r
239 \r
240   if Application.MessageBox(pchar('Do you want to save/send '+inttostr(setsms.number)+' sms ?'),'question',MB_YESNO)=IDYES then\r
241   begin\r
242     if (RadioGroup1.itemindex=0) then\r
243     begin\r
244       for z:=1 to setsms.number do\r
245       begin\r
246         GSM_SaveSMSMessage(@setsms.sms[z]);\r
247       end;\r
248     end else\r
249     begin\r
250       for z:=1 to setsms.number do\r
251       begin\r
252         GSM_SendSMSMessage(@setsms.sms[z]);\r
253       end;\r
254     end;\r
255   end;\r
256 \r
257   MainForm.SMSTabSheetShow(nil);\r
258 \r
259   SMSEditForm.Close;\r
260 end;\r
261 \r
262 procedure TSMSEditForm.RadioGroup1Click(Sender: TObject);\r
263 begin\r
264   case RadioGroup1.ItemIndex of\r
265     0:begin\r
266         ComboBox1.Enabled:=true;\r
267         CheckBox2.Enabled:=false;\r
268         CheckBox4.Enabled:=true;\r
269         ComboBox3.Enabled:=false;\r
270         ComboBox4.Enabled:=false;\r
271         Label14.Enabled:=true;\r
272         edit3.Enabled:=true;\r
273       end;\r
274     1:begin\r
275         ComboBox1.Enabled:=false;\r
276         CheckBox2.Enabled:=true;\r
277         CheckBox4.Enabled:=false;\r
278         Label14.Enabled:=false;\r
279         edit3.Enabled:=false;\r
280         if ComboBox2.ItemIndex<>0 then\r
281         begin\r
282           ComboBox3.Enabled:=false;\r
283           ComboBox4.Enabled:=false;\r
284         end else\r
285         begin\r
286           ComboBox3.Enabled:=true;\r
287           ComboBox4.Enabled:=true;\r
288         end;\r
289       end;\r
290   end;\r
291   if ComboBox2.ItemIndex<>0 then\r
292   begin\r
293     Edit1.Enabled:=false;\r
294   end else\r
295   begin\r
296     Edit1.Enabled:=true;\r
297   end;\r
298 end;\r
299 \r
300 procedure TSMSEditForm.FormShow(Sender: TObject);\r
301 begin\r
302   RadioGroup1Click(nil);\r
303   ComboBox5Change(nil);\r
304 //  ScrollBox1.VertScrollBar.Visible:=true;\r
305   ScrollBox1.VertScrollBar.Position:=80;\r
306 //  ScrollBox1.VertScrollBar.Visible:=false;\r
307 end;\r
308 \r
309 procedure TSMSEditForm.ComboBox2Change(Sender: TObject);\r
310 begin\r
311   if ComboBox2.ItemIndex<>0 then\r
312   begin\r
313     SetSMSC(ComboBox2.ItemIndex);\r
314   end;\r
315   RadioGroup1Click(nil);\r
316 end;\r
317 \r
318 procedure TSMSEditForm.ComboBox5Change(Sender: TObject);\r
319 begin\r
320   case ComboBox5.ItemIndex of\r
321     0:maxlength:=160;\r
322     1:maxlength:=70;\r
323   end;\r
324   Memo1.MaxLength:=maxlength;\r
325   Memo1Change(nil);\r
326 end;\r
327 \r
328 end.\r