http://marcin-wiacek.fkn.pl/english/zips/mygnokii.tar.gz
[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     Edit2: TEdit;\r
23     GroupBox2: TGroupBox;\r
24     ComboBox2: TComboBox;\r
25     Label4: TLabel;\r
26     ComboBox3: TComboBox;\r
27     Label5: TLabel;\r
28     Label6: TLabel;\r
29     ComboBox4: TComboBox;\r
30     RadioGroup1: TRadioGroup;\r
31     CheckBox3: TCheckBox;\r
32     CheckBox4: TCheckBox;\r
33     ComboBox5: TComboBox;\r
34     SMSEditPageControl: TPageControl;\r
35     TextSMSTabSheet: TTabSheet;\r
36     Label7: TLabel;\r
37     BitmapSMSTabSheet: TTabSheet;\r
38     CalendarSMSTabSheet: TTabSheet;\r
39     RingtoneSMSTabSheet: TTabSheet;\r
40     Label8: TLabel;\r
41     ComboBox6: TComboBox;\r
42     GroupBox3: TGroupBox;\r
43     Label9: TLabel;\r
44     ComboBox7: TComboBox;\r
45     Label10: TLabel;\r
46     CheckBox5: TCheckBox;\r
47     ScrollBox1: TScrollBox;\r
48     Image1: TImage;\r
49     GroupBox4: TGroupBox;\r
50     Memo2: TMemo;\r
51     CheckBox6: TCheckBox;\r
52     GroupBox5: TGroupBox;\r
53     PBKSMSTabSheet: TTabSheet;\r
54     GroupBox6: TGroupBox;\r
55     Label11: TLabel;\r
56     Label12: TLabel;\r
57     Label13: TLabel;\r
58     ComboBox8: TComboBox;\r
59     Label14: TLabel;\r
60     Edit3: TEdit;\r
61     procedure Button3Click(Sender: TObject);\r
62     procedure Memo1Change(Sender: TObject);\r
63     procedure Button1Click(Sender: TObject);\r
64     procedure RadioGroup1Click(Sender: TObject);\r
65     procedure FormShow(Sender: TObject);\r
66     procedure ComboBox2Change(Sender: TObject);\r
67     procedure ComboBox5Change(Sender: TObject);\r
68   private\r
69     { Private declarations }\r
70   public\r
71     { Public declarations }\r
72   end;\r
73 \r
74 var\r
75   SMSEditForm: TSMSEditForm;\r
76   maxlength:integer;\r
77 \r
78 implementation\r
79 \r
80 {$R *.dfm}\r
81 \r
82 procedure TSMSEditForm.Button3Click(Sender: TObject);\r
83 begin\r
84   SMSEditForm.Close;\r
85 end;\r
86 \r
87 procedure TSMSEditForm.Memo1Change(Sender: TObject);\r
88 begin\r
89   GroupBox1.Caption:='Text ' + inttostr(Memo1.GetTextLen)+'/'+inttostr(maxlength);\r
90 end;\r
91 \r
92 procedure TSMSEditForm.Button1Click(Sender: TObject);\r
93 var\r
94   i:integer;\r
95   z:integer;\r
96   w:word;\r
97   unicode,screensaver:integer;\r
98   smstext:array[1..500] of char;\r
99 begin\r
100   if (SMSEditPageControl.ActivePage=TextSMSTabSheet) then\r
101   begin\r
102     z:=GSM_Coding_Default;\r
103     case combobox5.ItemIndex of\r
104       0: z:=GSM_Coding_Default;\r
105       1: z:=GSM_Coding_Unicode;\r
106     end;\r
107 \r
108     for i:=1 to 500 do\r
109       smstext[i]:=chr(0);\r
110     w:=strlen(pchar(SMSEditForm.Memo1.Text));\r
111     for i:=1 to w do\r
112       smstext[i]:=SMSEditForm.Memo1.Text[i];\r
113 \r
114     GSM_MakeMultiPartSMS2(@setsms,@smstext,w,GSM_NoUDH,z);\r
115 \r
116     for i:=1 to setsms.number do\r
117     begin\r
118       if CheckBox1.Checked then\r
119         setsms.sms[i].Class2 := 0\r
120       else\r
121        setsms.sms[i].Class2 := -1;\r
122     end;\r
123 \r
124     setsms.sms[1].location:=setsmslocation;\r
125   end;\r
126   if (SMSEditPageControl.ActivePage=BitmapSMSTabSheet) then\r
127   begin\r
128     unicode:=0;\r
129     screensaver:=0;\r
130     if bitma.type2=GSM_PictureImage then\r
131     begin\r
132       for i:=1 to 256 do\r
133         bitma.text[i]:=chr(0);\r
134       for i:=1 to strlen(pchar(Memo2.text)) do\r
135         bitma.text[i]:=Memo2.Text[i];\r
136     end;\r
137     GSM_SaveBitmapToSMS(@setsms,@bitma,unicode,screensaver);\r
138   end;\r
139   if (SMSEditPageControl.ActivePage=RingtoneSMSTabSheet) then\r
140   begin\r
141     GSM_SaveRingtoneToSMS(@setsms,@rington,1);\r
142   end;\r
143   if (SMSEditPageControl.ActivePage=CalendarSMSTabSheet) then\r
144   begin\r
145     GSM_SaveCalendarNoteToSMS(@setsms,@calenda);\r
146   end;\r
147   if (SMSEditPageControl.ActivePage=PBKSMSTabSheet) then\r
148   begin\r
149     i:=10;\r
150     case ComboBox8.ItemIndex of\r
151       0:i:=10;\r
152       1:i:=21;\r
153     end;\r
154     GSM_SavePhonebookEntryToSMS(@setsms,@pbk,i);\r
155   end;\r
156 \r
157   for z:=1 to setsms.number do\r
158   begin\r
159     for i:=1 to 40 do\r
160       setsms.sms[z].MessageCenter.number[i]:=chr(0);\r
161     for i:=1 to strlen(pchar(Edit1.text)) do\r
162       setsms.sms[z].MessageCenter.number[i]:=Edit1.Text[i];\r
163     setsms.sms[z].MessageCenter.No := ComboBox2.ItemIndex;\r
164     setsms.sms[z].Validity := 4320;  //do it\r
165 \r
166     for i:=1 to 41 do\r
167       setsms.sms[z].destination[i]:=chr(0);\r
168     for i:=1 to strlen(pchar(Edit2.text)) do\r
169       setsms.sms[z].destination[i]:=Edit2.Text[i];\r
170 \r
171     setsms.sms[z].folder:=combobox1.ItemIndex;\r
172 \r
173     setsms.sms[z].Type2 := GST_SMS;\r
174     //delivery report\r
175     if CheckBox2.Checked then\r
176     begin\r
177       if RadioGroup1.ItemIndex=1 then setsms.sms[z].Type2:= GST_DR;\r
178     end;\r
179 \r
180     for i:=1 to 26 do\r
181       setsms.sms[z].name[i]:=chr(0);\r
182     for i:=1 to strlen(pchar(SMSEditForm.edit3.Text)) do\r
183       setsms.sms[z].name[i]:=SMSEditForm.edit3.Text[i];\r
184 \r
185     //read/unread\r
186     if Checkbox4.Checked then\r
187       setsms.sms[z].status:=GSS_SENTREAD\r
188     else\r
189       setsms.sms[z].status:=GSS_NOTSENTREAD;\r
190 \r
191     if CheckBox3.Checked then\r
192       setsms.sms[z].ReplyViaSameSMSC := 1\r
193     else\r
194       setsms.sms[z].ReplyViaSameSMSC := 0;\r
195   end;\r
196 \r
197   if Application.MessageBox(pchar('Do you want to save/send '+inttostr(setsms.number)+' sms ?'),'question',MB_YESNO)=IDYES then\r
198   begin\r
199     if (RadioGroup1.itemindex=0) then\r
200     begin\r
201       for z:=1 to setsms.number do\r
202       begin\r
203         GSM_SaveSMSMessage(@setsms.sms[z]);\r
204       end;\r
205     end else\r
206     begin\r
207       for z:=1 to setsms.number do\r
208       begin\r
209         GSM_SendSMSMessage(@setsms.sms[z]);\r
210       end;\r
211     end;\r
212   end;\r
213 \r
214   MainForm.SMSTabSheetShow(nil);\r
215 \r
216   SMSEditForm.Close;\r
217 end;\r
218 \r
219 procedure TSMSEditForm.RadioGroup1Click(Sender: TObject);\r
220 begin\r
221   case RadioGroup1.ItemIndex of\r
222     0:begin\r
223         ComboBox1.Enabled:=true;\r
224         CheckBox2.Enabled:=false;\r
225         CheckBox4.Enabled:=true;\r
226         ComboBox3.Enabled:=false;\r
227         ComboBox4.Enabled:=false;\r
228         Label14.Enabled:=true;\r
229         edit3.Enabled:=true;\r
230       end;\r
231     1:begin\r
232         ComboBox1.Enabled:=false;\r
233         CheckBox2.Enabled:=true;\r
234         CheckBox4.Enabled:=false;\r
235         Label14.Enabled:=false;\r
236         edit3.Enabled:=false;\r
237         if ComboBox2.ItemIndex<>0 then\r
238         begin\r
239           ComboBox3.Enabled:=false;\r
240           ComboBox4.Enabled:=false;\r
241         end else\r
242         begin\r
243           ComboBox3.Enabled:=true;\r
244           ComboBox4.Enabled:=true;\r
245         end;\r
246       end;\r
247   end;\r
248   if ComboBox2.ItemIndex<>0 then\r
249   begin\r
250     Edit1.Enabled:=false;\r
251   end else\r
252   begin\r
253     Edit1.Enabled:=true;\r
254   end;\r
255 end;\r
256 \r
257 procedure TSMSEditForm.FormShow(Sender: TObject);\r
258 begin\r
259   RadioGroup1Click(nil);\r
260   ComboBox5Change(nil);\r
261 //  ScrollBox1.VertScrollBar.Visible:=true;\r
262   ScrollBox1.VertScrollBar.Position:=80;\r
263 //  ScrollBox1.VertScrollBar.Visible:=false;\r
264 end;\r
265 \r
266 procedure TSMSEditForm.ComboBox2Change(Sender: TObject);\r
267 begin\r
268   if ComboBox2.ItemIndex<>0 then\r
269   begin\r
270     SetSMSC(ComboBox2.ItemIndex);\r
271   end;\r
272   RadioGroup1Click(nil);\r
273 end;\r
274 \r
275 procedure TSMSEditForm.ComboBox5Change(Sender: TObject);\r
276 begin\r
277   case ComboBox5.ItemIndex of\r
278     0:maxlength:=160;\r
279     1:maxlength:=70;\r
280   end;\r
281   Memo1.MaxLength:=maxlength;\r
282   Memo1Change(nil);\r
283 end;\r
284 \r
285 end.\r