http://marcin-wiacek.fkn.pl/english/zips/mygnokii.tar.gz
[gnokii.git] / win32_makefile / gui_delphi / smsedit.pas
diff --git a/win32_makefile/gui_delphi/smsedit.pas b/win32_makefile/gui_delphi/smsedit.pas
new file mode 100644 (file)
index 0000000..62a45d8
--- /dev/null
@@ -0,0 +1,285 @@
+unit SMSEdit;\r
+\r
+interface\r
+\r
+uses\r
+  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,\r
+  Dialogs, StdCtrls,MainUnit,GnokiiAPI, ExtCtrls, ComCtrls;\r
+\r
+type\r
+  TSMSEditForm = class(TForm)\r
+    GroupBox1: TGroupBox;\r
+    ComboBox1: TComboBox;\r
+    Label1: TLabel;\r
+    Memo1: TMemo;\r
+    Label2: TLabel;\r
+    Label3: TLabel;\r
+    CheckBox1: TCheckBox;\r
+    Button1: TButton;\r
+    CheckBox2: TCheckBox;\r
+    Button3: TButton;\r
+    Edit1: TEdit;\r
+    Edit2: TEdit;\r
+    GroupBox2: TGroupBox;\r
+    ComboBox2: TComboBox;\r
+    Label4: TLabel;\r
+    ComboBox3: TComboBox;\r
+    Label5: TLabel;\r
+    Label6: TLabel;\r
+    ComboBox4: TComboBox;\r
+    RadioGroup1: TRadioGroup;\r
+    CheckBox3: TCheckBox;\r
+    CheckBox4: TCheckBox;\r
+    ComboBox5: TComboBox;\r
+    SMSEditPageControl: TPageControl;\r
+    TextSMSTabSheet: TTabSheet;\r
+    Label7: TLabel;\r
+    BitmapSMSTabSheet: TTabSheet;\r
+    CalendarSMSTabSheet: TTabSheet;\r
+    RingtoneSMSTabSheet: TTabSheet;\r
+    Label8: TLabel;\r
+    ComboBox6: TComboBox;\r
+    GroupBox3: TGroupBox;\r
+    Label9: TLabel;\r
+    ComboBox7: TComboBox;\r
+    Label10: TLabel;\r
+    CheckBox5: TCheckBox;\r
+    ScrollBox1: TScrollBox;\r
+    Image1: TImage;\r
+    GroupBox4: TGroupBox;\r
+    Memo2: TMemo;\r
+    CheckBox6: TCheckBox;\r
+    GroupBox5: TGroupBox;\r
+    PBKSMSTabSheet: TTabSheet;\r
+    GroupBox6: TGroupBox;\r
+    Label11: TLabel;\r
+    Label12: TLabel;\r
+    Label13: TLabel;\r
+    ComboBox8: TComboBox;\r
+    Label14: TLabel;\r
+    Edit3: TEdit;\r
+    procedure Button3Click(Sender: TObject);\r
+    procedure Memo1Change(Sender: TObject);\r
+    procedure Button1Click(Sender: TObject);\r
+    procedure RadioGroup1Click(Sender: TObject);\r
+    procedure FormShow(Sender: TObject);\r
+    procedure ComboBox2Change(Sender: TObject);\r
+    procedure ComboBox5Change(Sender: TObject);\r
+  private\r
+    { Private declarations }\r
+  public\r
+    { Public declarations }\r
+  end;\r
+\r
+var\r
+  SMSEditForm: TSMSEditForm;\r
+  maxlength:integer;\r
+\r
+implementation\r
+\r
+{$R *.dfm}\r
+\r
+procedure TSMSEditForm.Button3Click(Sender: TObject);\r
+begin\r
+  SMSEditForm.Close;\r
+end;\r
+\r
+procedure TSMSEditForm.Memo1Change(Sender: TObject);\r
+begin\r
+  GroupBox1.Caption:='Text ' + inttostr(Memo1.GetTextLen)+'/'+inttostr(maxlength);\r
+end;\r
+\r
+procedure TSMSEditForm.Button1Click(Sender: TObject);\r
+var\r
+  i:integer;\r
+  z:integer;\r
+  w:word;\r
+  unicode,screensaver:integer;\r
+  smstext:array[1..500] of char;\r
+begin\r
+  if (SMSEditPageControl.ActivePage=TextSMSTabSheet) then\r
+  begin\r
+    z:=GSM_Coding_Default;\r
+    case combobox5.ItemIndex of\r
+      0: z:=GSM_Coding_Default;\r
+      1: z:=GSM_Coding_Unicode;\r
+    end;\r
+\r
+    for i:=1 to 500 do\r
+      smstext[i]:=chr(0);\r
+    w:=strlen(pchar(SMSEditForm.Memo1.Text));\r
+    for i:=1 to w do\r
+      smstext[i]:=SMSEditForm.Memo1.Text[i];\r
+\r
+    GSM_MakeMultiPartSMS2(@setsms,@smstext,w,GSM_NoUDH,z);\r
+\r
+    for i:=1 to setsms.number do\r
+    begin\r
+      if CheckBox1.Checked then\r
+        setsms.sms[i].Class2 := 0\r
+      else\r
+       setsms.sms[i].Class2 := -1;\r
+    end;\r
+\r
+    setsms.sms[1].location:=setsmslocation;\r
+  end;\r
+  if (SMSEditPageControl.ActivePage=BitmapSMSTabSheet) then\r
+  begin\r
+    unicode:=0;\r
+    screensaver:=0;\r
+    if bitma.type2=GSM_PictureImage then\r
+    begin\r
+      for i:=1 to 256 do\r
+        bitma.text[i]:=chr(0);\r
+      for i:=1 to strlen(pchar(Memo2.text)) do\r
+        bitma.text[i]:=Memo2.Text[i];\r
+    end;\r
+    GSM_SaveBitmapToSMS(@setsms,@bitma,unicode,screensaver);\r
+  end;\r
+  if (SMSEditPageControl.ActivePage=RingtoneSMSTabSheet) then\r
+  begin\r
+    GSM_SaveRingtoneToSMS(@setsms,@rington,1);\r
+  end;\r
+  if (SMSEditPageControl.ActivePage=CalendarSMSTabSheet) then\r
+  begin\r
+    GSM_SaveCalendarNoteToSMS(@setsms,@calenda);\r
+  end;\r
+  if (SMSEditPageControl.ActivePage=PBKSMSTabSheet) then\r
+  begin\r
+    i:=10;\r
+    case ComboBox8.ItemIndex of\r
+      0:i:=10;\r
+      1:i:=21;\r
+    end;\r
+    GSM_SavePhonebookEntryToSMS(@setsms,@pbk,i);\r
+  end;\r
+\r
+  for z:=1 to setsms.number do\r
+  begin\r
+    for i:=1 to 40 do\r
+      setsms.sms[z].MessageCenter.number[i]:=chr(0);\r
+    for i:=1 to strlen(pchar(Edit1.text)) do\r
+      setsms.sms[z].MessageCenter.number[i]:=Edit1.Text[i];\r
+    setsms.sms[z].MessageCenter.No := ComboBox2.ItemIndex;\r
+    setsms.sms[z].Validity := 4320;  //do it\r
+\r
+    for i:=1 to 41 do\r
+      setsms.sms[z].destination[i]:=chr(0);\r
+    for i:=1 to strlen(pchar(Edit2.text)) do\r
+      setsms.sms[z].destination[i]:=Edit2.Text[i];\r
+\r
+    setsms.sms[z].folder:=combobox1.ItemIndex;\r
+\r
+    setsms.sms[z].Type2 := GST_SMS;\r
+    //delivery report\r
+    if CheckBox2.Checked then\r
+    begin\r
+      if RadioGroup1.ItemIndex=1 then setsms.sms[z].Type2:= GST_DR;\r
+    end;\r
+\r
+    for i:=1 to 26 do\r
+      setsms.sms[z].name[i]:=chr(0);\r
+    for i:=1 to strlen(pchar(SMSEditForm.edit3.Text)) do\r
+      setsms.sms[z].name[i]:=SMSEditForm.edit3.Text[i];\r
+\r
+    //read/unread\r
+    if Checkbox4.Checked then\r
+      setsms.sms[z].status:=GSS_SENTREAD\r
+    else\r
+      setsms.sms[z].status:=GSS_NOTSENTREAD;\r
+\r
+    if CheckBox3.Checked then\r
+      setsms.sms[z].ReplyViaSameSMSC := 1\r
+    else\r
+      setsms.sms[z].ReplyViaSameSMSC := 0;\r
+  end;\r
+\r
+  if Application.MessageBox(pchar('Do you want to save/send '+inttostr(setsms.number)+' sms ?'),'question',MB_YESNO)=IDYES then\r
+  begin\r
+    if (RadioGroup1.itemindex=0) then\r
+    begin\r
+      for z:=1 to setsms.number do\r
+      begin\r
+        GSM_SaveSMSMessage(@setsms.sms[z]);\r
+      end;\r
+    end else\r
+    begin\r
+      for z:=1 to setsms.number do\r
+      begin\r
+        GSM_SendSMSMessage(@setsms.sms[z]);\r
+      end;\r
+    end;\r
+  end;\r
+\r
+  MainForm.SMSTabSheetShow(nil);\r
+\r
+  SMSEditForm.Close;\r
+end;\r
+\r
+procedure TSMSEditForm.RadioGroup1Click(Sender: TObject);\r
+begin\r
+  case RadioGroup1.ItemIndex of\r
+    0:begin\r
+        ComboBox1.Enabled:=true;\r
+        CheckBox2.Enabled:=false;\r
+        CheckBox4.Enabled:=true;\r
+        ComboBox3.Enabled:=false;\r
+        ComboBox4.Enabled:=false;\r
+        Label14.Enabled:=true;\r
+        edit3.Enabled:=true;\r
+      end;\r
+    1:begin\r
+        ComboBox1.Enabled:=false;\r
+        CheckBox2.Enabled:=true;\r
+        CheckBox4.Enabled:=false;\r
+        Label14.Enabled:=false;\r
+        edit3.Enabled:=false;\r
+        if ComboBox2.ItemIndex<>0 then\r
+        begin\r
+          ComboBox3.Enabled:=false;\r
+          ComboBox4.Enabled:=false;\r
+        end else\r
+        begin\r
+          ComboBox3.Enabled:=true;\r
+          ComboBox4.Enabled:=true;\r
+        end;\r
+      end;\r
+  end;\r
+  if ComboBox2.ItemIndex<>0 then\r
+  begin\r
+    Edit1.Enabled:=false;\r
+  end else\r
+  begin\r
+    Edit1.Enabled:=true;\r
+  end;\r
+end;\r
+\r
+procedure TSMSEditForm.FormShow(Sender: TObject);\r
+begin\r
+  RadioGroup1Click(nil);\r
+  ComboBox5Change(nil);\r
+//  ScrollBox1.VertScrollBar.Visible:=true;\r
+  ScrollBox1.VertScrollBar.Position:=80;\r
+//  ScrollBox1.VertScrollBar.Visible:=false;\r
+end;\r
+\r
+procedure TSMSEditForm.ComboBox2Change(Sender: TObject);\r
+begin\r
+  if ComboBox2.ItemIndex<>0 then\r
+  begin\r
+    SetSMSC(ComboBox2.ItemIndex);\r
+  end;\r
+  RadioGroup1Click(nil);\r
+end;\r
+\r
+procedure TSMSEditForm.ComboBox5Change(Sender: TObject);\r
+begin\r
+  case ComboBox5.ItemIndex of\r
+    0:maxlength:=160;\r
+    1:maxlength:=70;\r
+  end;\r
+  Memo1.MaxLength:=maxlength;\r
+  Memo1Change(nil);\r
+end;\r
+\r
+end.\r