X-Git-Url: https://git.jankratochvil.net/?p=gnokii.git;a=blobdiff_plain;f=win32_makefile%2Fgui_delphi%2Fmainunit.pas;fp=win32_makefile%2Fgui_delphi%2Fmainunit.pas;h=6461f68917ee91f49e71a4be109f7f15ec29e4ca;hp=9bf8351ef25ea5ba96e5d30b4091e9f76d7b25b1;hb=bd2325c6e5ee9fad610a886c91994d9a04d1b18a;hpb=a1cd8f8d3a6cbe586ebc3148afa87dd4cb2afb15 diff --git a/win32_makefile/gui_delphi/mainunit.pas b/win32_makefile/gui_delphi/mainunit.pas index 9bf8351..6461f68 100644 --- a/win32_makefile/gui_delphi/mainunit.pas +++ b/win32_makefile/gui_delphi/mainunit.pas @@ -222,6 +222,25 @@ type Label45: TLabel; TabSheet2: TTabSheet; TabSheet3: TTabSheet; + N6: TMenuItem; + Savebackuptofile1: TMenuItem; + Restorebackupfromfile1: TMenuItem; + N7: TMenuItem; + Savephonebooktofileanotherapplication1: TMenuItem; + PCPBKTabSheet: TTabSheet; + GroupBox25: TGroupBox; + ListView12: TListView; + Edit19: TMenuItem; + N10: TMenuItem; + Delete4: TMenuItem; + Button22: TButton; + WAPBookPopupMenu: TPopupMenu; + New20: TMenuItem; + SMSSendSave2: TMenuItem; + N8: TMenuItem; + Edit20: TMenuItem; + Button23: TButton; + CopyphonebooktoPC1: TMenuItem; procedure TreeView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormCreate(Sender: TObject); @@ -321,6 +340,23 @@ type procedure Delete5Click(Sender: TObject); procedure Copytocalendar1Click(Sender: TObject); procedure PCCalendarPopupMenuPopup(Sender: TObject); + procedure Savebackuptofile1Click(Sender: TObject); + procedure Restorebackupfromfile1Click(Sender: TObject); + procedure PBKPopupMenuPopup(Sender: TObject); + procedure Savephonebooktofileanotherapplication1Click(Sender: TObject); + procedure ListView4DblClick(Sender: TObject); + procedure Edit19Click(Sender: TObject); + procedure Delete4Click(Sender: TObject); + procedure Button22Click(Sender: TObject); + procedure New20Click(Sender: TObject); + procedure ListView9SelectItem(Sender: TObject; Item: TListItem; + Selected: Boolean); + procedure Edit20Click(Sender: TObject); + procedure WAPBookPopupMenuPopup(Sender: TObject); + procedure SMSSendSave2Click(Sender: TObject); + procedure Button23Click(Sender: TObject); + procedure CopyphonebooktoPC1Click(Sender: TObject); + procedure PCPBKTabSheetShow(Sender: TObject); private { Private declarations } public @@ -338,14 +374,23 @@ var calenda:GSM_CalendarNote; pbk:GSM_PhonebookEntry; previewcolor:TColor; + bookmarknum2:integer; + bookma:GSM_WAPBookmark; + wapset:GSM_WAPSettings; + pbkofflinenumber:integer; + + PhoneBackup: GSM_Backup; + PhoneBackupAvailable:boolean; procedure AddCalendarNote(note:GSM_CalendarNote;myview:TListView); function DayOFweek3(date:TDateTime):string; procedure SetSMSC(num:integer); +procedure ReadPBKOffline; implementation -uses Calendar, SMSEdit, LogosRing, Netmon, smscedit, pbkedit; +uses Calendar, SMSEdit, LogosRing, Netmon, smscedit, pbkedit, backup, + backup2, pbkedit2, wapbook; {$R *.dfm} @@ -405,7 +450,7 @@ var phonebookfound:integer; PhonebookThread: TPhonebookThread; pbknumberentry:integer; - + //logos pointsize:integer; x2,y2:byte; @@ -438,6 +483,9 @@ var calendarselect:integer; readcalendar:boolean; + CalendarOffline:array[1..300] of GSM_CalendarNote; + CalendarOfflineNumber:integer; + //profiles profilenum:integer; ProfileThread: TProfileThread; @@ -457,9 +505,6 @@ var WAPBookmarkThread: TWAPBookmarkThread; bookmarknum:integer; - CalendarOffline:array[1..300] of GSM_CalendarNote; - CalendarOfflineNumber:integer; - function Inttostr2(I: Longint;digits:integer): string; { Convert any integer type to a string } @@ -520,6 +565,63 @@ begin end; end; +procedure ReadPBKOffline; +var F:file of GSM_PhonebookEntry; +begin + AssignFile(F, 'gnokiipbk'); + Reset(F); + if (ioresult=0) then + begin + phonebackup.PhonePhonebookUsed:=0; + pbkofflinenumber:=0; + while not eof(f) do + begin + pbkofflinenumber:=pbkofflinenumber+1; + read(f,PhoneBackup.PhonePhonebook[pbkofflinenumber]); + end; + CloseFile(F); + end; +end; + +procedure SavePBKOffline; +var F:file of GSM_PhonebookEntry; + i:integer; +begin + AssignFile(F, 'gnokiipbk'); + Rewrite(F); + for i:=1 to PBKOfflineNumber do + begin + Write(f,PhoneBackup.PhonePhonebook[i]); + end; + CloseFile(F); +end; + +procedure AddSMSEditSenderList; +var i,j:integer; +begin + ReadPBKOffline; + SMSEditForm.ComboBox9.Items.Clear; + SMSEditForm.ComboBox9.Sorted:=false; + for i:=1 to PBKOfflineNumber do + begin + if (PhoneBackup.PhonePhonebook[i].Number[1]<>chr(0)) then + begin + SMSEditForm.ComboBox9.Items.Add(PhoneBackup.PhonePhonebook[i].Name); + end else + begin + for j:=1 to PhoneBackup.PhonePhonebook[i].SubEntriesCount do + begin + if PhoneBackup.PhonePhonebook[i].SubEntries[j].EntryType=GSM_Number then + begin + SMSEditForm.ComboBox9.Items.Add(PhoneBackup.PhonePhonebook[i].Name); + break; + end; + end; + end; + end; + SMSEditForm.ComboBox9.Sorted:=true; +end; + procedure ReadCallerGroup(); var logo:GSM_Bitmap; @@ -574,15 +676,20 @@ end; procedure ReadAllCallerGroups(); begin - if callerinit=false then + if (GSM_GetModelFeature(FN_CALLERGROUPS)<>0) then begin - MainForm.ListView5.Items.Clear; - callernum:=1; - while callerinit=false do + if callerinit=false then begin - ReadCallerGroup(); - if callerinit then break; + MainForm.ListView5.Items.Clear; + callernum:=1; + while callerinit=false do + begin + ReadCallerGroup(); + if callerinit then break; + end; end; + end else + begin end; end; @@ -715,15 +822,41 @@ var begin case ComboBox2.ItemIndex of 0:bittype:=GSM_CallerLogo; - 1:bittype:=GSM_OperatorLogo; + 1:begin + bittype:=GSM_OperatorLogo; + if GSMPhoneConnected then + begin + case GSM_GetModelFeature(FN_STARTUP) of + F_STA62:bittype:=GSM_7110OperatorLogo; + F_STA71:bittype:=GSM_7110OperatorLogo; + end; + end; + end; 2:bittype:=GSM_PictureImage; - 3:bittype:=GSM_StartupLogo; + 3:begin + bittype:=GSM_StartupLogo; + if GSMPhoneConnected then + begin + case GSM_GetModelFeature(FN_STARTUP) of + F_STA62:bittype:=GSM_6210StartupLogo; + F_STA71:bittype:=GSM_7110StartupLogo; + end; + end; + end; else bittype:=GSM_StartupLogo; + if GSMPhoneConnected then + begin + case GSM_GetModelFeature(FN_STARTUP) of + F_STA62:bittype:=GSM_6210StartupLogo; + F_STA71:bittype:=GSM_7110StartupLogo; + end; + end; end; GSM_ResizeBitmap(@bitma,bittype); DrawBitmap(); - if bitma.type2<>GSM_OperatorLogo then + if (bitma.type2<>GSM_OperatorLogo) and + (bitma.type2<>GSM_7110OperatorLogo) then Button8.Enabled:=false else Button8.Enabled:=true; @@ -815,8 +948,11 @@ begin case bitma.type2 of GSM_CallerLogo :ComboBox2.ItemIndex:=0; GSM_OperatorLogo:ComboBox2.ItemIndex:=1; + GSM_7110OperatorLogo:ComboBox2.ItemIndex:=1; GSM_PictureImage:ComboBox2.ItemIndex:=2; GSM_StartupLogo :ComboBox2.ItemIndex:=3; + GSM_7110StartupLogo :ComboBox2.ItemIndex:=3; + GSM_6210StartupLogo :ComboBox2.ItemIndex:=3; end; end; end; @@ -856,6 +992,68 @@ begin if (LogosRingForm.ComboBox3.Visible) then GSM_SetBitmap(@bitma); end; + GSM_7110OperatorLogo: + begin + LogosRingForm.ComboBox3.Visible:=true; + LogosRingForm.ComboBox3.Items.Add('Preview'); + //preparing network names + i:=0; + while true do + begin + GSM_GetNetworkData(i,@Name,@Data); + + // conversion problems + Label14.Caption:=Name; + if strcomp(PChar(Label14.Caption),PChar('unknown'))=0 then break; + + // conversion problems + Label14.Caption:=' - '+Label14.Caption; + for j:=6 downto 1 do + begin + Label14.Caption:=Data[j]+Label14.Caption; + end; + + LogosRingForm.ComboBox3.Items.Add(Pchar(Label14.Caption)); + i:=i+1; + end; + //looking for current network + if GSMPhoneConnected then + begin + // conversion problems + Label14.Caption:=MainForm.StatusBar1.Panels[1].Text; + Label14.Caption:=' - '+Label14.Caption; + for j:=6 downto 1 do + begin + Label14.Caption:=GSMNetworkInfo.NetworkCode[j]+Label14.Caption; + end; + + i:=1; + while true do + begin + if strcomp(pchar(LogosRingForm.ComboBox3.Items[i]),pchar(Label14.Caption))=0 + then break; + i:=i+1; + end; + LogosRingForm.ComboBox3.ItemIndex:=i; + end; + LogosRingForm.ShowModal(); + if (LogosRingForm.ComboBox3.Visible) then + begin + if LogosRingForm.ComboBox3.ItemIndex=0 then + begin + bitma.number:=255; + for i:=1 to 6 do + begin + bitma.netcode[i]:=GSMNetworkInfo.NetworkCode[i]; + end; + bitma.netcode[7]:=chr(0); + end else + begin + GSM_GetNetworkData(LogosRingForm.ComboBox3.ItemIndex-1,@Name,@bitma.netcode); + end; + GSM_SetBitmap(@bitma); + end; + end; GSM_OperatorLogo: begin LogosRingForm.ComboBox3.Visible:=true; @@ -1027,7 +1225,8 @@ begin 13: MainForm.PageControl1.ActivePage:=WAPSettTabSheet; 14: MainForm.PageControl1.ActivePage:=PCOfflineTabSheet; 15: MainForm.PageControl1.ActivePage:=PCCalendarTabSheet; - 16: MainForm.PageControl1.ActivePage:=PCSMSTabSheet; + 16: MainForm.PageControl1.ActivePage:=PCPBKTabSheet; + 17: MainForm.PageControl1.ActivePage:=PCSMSTabSheet; end; end; @@ -1063,6 +1262,7 @@ begin MainForm.PCSMSTabSheet.TabVisible:=false; MainForm.PCCalendarTabSheet.TabVisible:=false; MainForm.PCOfflineTabSheet.TabVisible:=false; + MainForm.PCPBKTabSheet.TabVisible:=false; MainForm.PageControl1.ActivePage:=PhoneTabSheet; PreviewColor:=Image2.Canvas.Pixels[70,170]; @@ -1088,7 +1288,8 @@ begin smsofflinenumber:=0; calendarofflinenumber:=0; - + pbkofflinenumber:=0; + readcalendar:=false; end; @@ -1104,6 +1305,9 @@ begin if PhonebookThread=nil then ComboBox1.Enabled:=true; + SaveBackupTofile1.Enabled:=true; + Restorebackupfromfile1.Enabled:=true; + ListView1.Enabled:=true; NetmonGroupBox.Enabled:=true; SpinEdit1.Enabled:=true; @@ -1116,10 +1320,9 @@ begin //ringtones Button16.Enabled:=true; - if Edit1.Text<>'' then - Edit1.Enabled:=true; - if Edit2.Text<>'' then - Edit2.Enabled:=true; + if Edit1.Text<>'' then Edit1.Enabled:=true; + if Edit2.Text<>'' then Edit2.Enabled:=true; + Button22.Enabled:=true; If MainForm.PageControl1.ActivePage=MainForm.NetmonitorTabSheet then NetmonitorTabSheetShow(Sender); @@ -1136,7 +1339,8 @@ begin SpeedTabSheetShow(Sender); end; - if bitma.type2<>GSM_OperatorLogo then + if (bitma.type2<>GSM_OperatorLogo) and + (bitma.type2<>GSM_7110OperatorLogo) then Button8.Enabled:=false else Button8.Enabled:=true; @@ -1171,7 +1375,8 @@ begin Button18.Enabled:=false; if bitma.type2=GSM_PictureImage then Button18.Enabled:=true; - if bitma.type2=GSM_OperatorLogo then + if (bitma.type2=GSM_OperatorLogo) or + (bitma.type2=GSM_7110OperatorLogo) then Button18.Enabled:=true; if bitma.type2=GSM_CallerLogo then Button18.Enabled:=true; @@ -1180,6 +1385,7 @@ begin WAPSettTabSheet.Enabled:=true; if GSM_GetModelFeature(FN_WAP)=0 then begin + Button23.Enabled:=false; GroupBox19.Enabled:=false; groupbox19.Ctl3D:=false; ComboBox7.enabled:=false; @@ -1220,6 +1426,8 @@ begin Edit13.Enabled:=true; Edit14.Enabled:=true; Edit15.Enabled:=true; + Button23.Enabled:=false; + if ComboBox7.ItemIndex<>0 then Button23.Enabled:=true; end; button19.Enabled:=true; @@ -1229,6 +1437,9 @@ begin // Here we should disabled interface MainForm.StatusBar1.Panels[1].Text:='Not connected'; + SaveBackupTofile1.Enabled:=false; + Restorebackupfromfile1.Enabled:=false; + callerinit:=false; MainForm.ComboBox1.Enabled:=false; @@ -1250,6 +1461,7 @@ begin Button17.Enabled:=false; Edit1.Enabled:=false; Edit2.Enabled:=false; + Button22.Enabled:=false; MainForm.NetmonitorTabSheetHide(Sender); MainForm.PhonebookTabSheetHide(Sender); @@ -1273,6 +1485,7 @@ begin Edit13.Enabled:=false; Edit14.Enabled:=false; Edit15.Enabled:=false; + Button23.Enabled:=false; button19.Enabled:=false; button20.Enabled:=false; @@ -1362,10 +1575,53 @@ begin end; end; +procedure AddPBKEntry(MyListView:TListView;x:GSM_PhonebookEntry;number:integer); +var j:integer; +begin + MyListView.Items.Item[number].Subitems.Add(x.Name); + + if (x.Number[1]<>chr(0)) then + MyListView.Items.Item[number].Subitems.Add(x.Number) + else begin + for j:=1 to x.SubEntriesCount do + begin + if x.SubEntries[j].EntryType=GSM_Number then + begin + MyListView.Items.Item[number].Subitems.Add(x.subentries[j].Number); + break; + end; + end; + end; + + case x.Group of + 0:MyListView.Items.Item[number].Subitems.Add(caller[x.Group+1].text); + 1:MyListView.Items.Item[number].Subitems.Add(caller[x.Group+1].text); + 2:MyListView.Items.Item[number].Subitems.Add(caller[x.Group+1].text); + 3:MyListView.Items.Item[number].Subitems.Add(caller[x.Group+1].text); + 4:MyListView.Items.Item[number].Subitems.Add(caller[x.Group+1].text); + else + MyListView.Items.Item[number].Subitems.Add('not set'); + end; + + for j:=1 to x.SubEntriesCount do + begin + if x.SubEntries[j].EntryType=GSM_Date then + begin + MyListView.Items.Item[number].Subitems.Add( + DayOfweek2(x.SubEntries[j].Date.Day,x.SubEntries[j].Date.Month,x.SubEntries[j].Date.Year)+' '+ + inttostr2(x.SubEntries[j].Date.Day,2)+'-'+inttostr2(x.SubEntries[j].Date.Month,2)+'-'+ + inttostr(x.SubEntries[j].Date.Year)); + MyListView.Items.Item[number].Subitems.Add( + inttostr2(x.SubEntries[j].Date.Hour,2)+':'+inttostr2(x.SubEntries[j].Date.Minute,2)+':'+ + inttostr2(x.SubEntries[j].Date.Second,2)); + break; + end; + end; +end; + procedure TPhonebookThread.Execute; var x:GSM_PhonebookEntry; - i,j:integer; begin while not Terminated do begin @@ -1385,40 +1641,21 @@ begin if (x.MemoryType=GMT_RC) then x.Location:=x.Location-1; if GSM_GetMemoryLocation(@x)=0 then begin - MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(x.Name); - if (x.Number[1]<>chr(0)) then - MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(x.Number) - else begin - for j:=1 to x.SubEntriesCount do - begin - if x.SubEntries[j].EntryType=GSM_Number then - begin - MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(x.subentries[j].Number); - break; - end; - end; + if (x.MemoryType=GMT_ME) then + begin + PhoneBackup.PhonePhonebookUsed:=PhoneBackup.PhonePhonebookUsed+1; end; - case x.Group of - 0:MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(caller[x.Group+1].text); - 1:MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(caller[x.Group+1].text); - 2:MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(caller[x.Group+1].text); - 3:MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(caller[x.Group+1].text); - 4:MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(caller[x.Group+1].text); - else - MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add('not set'); - end; + PBKOfflineNumber:=PBKOfflineNumber+1; + PhoneBackup.PhonePhonebook[PBKOfflineNumber]:=x; - for i:=1 to x.SubEntriesCount do + if (x.MemoryType=GMT_SM) then begin - if x.SubEntries[i].EntryType=GSM_Date then - begin - MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(DayOfweek2(x.SubEntries[i].Date.Day,x.SubEntries[i].Date.Month,x.SubEntries[i].Date.Year)+' '+inttostr2(x.SubEntries[i].Date.Day,2)+'-'+inttostr2(x.SubEntries[i].Date.Month,2)+'-'+inttostr(x.SubEntries[i].Date.Year)); - MainForm.ListView1.Items.Item[phonebookcur-1].Subitems.Add(inttostr2(x.SubEntries[i].Date.Hour,2)+':'+inttostr2(x.SubEntries[i].Date.Minute,2)+':'+inttostr2(x.SubEntries[i].Date.Second,2)); - break; - end; + PhoneBackup.SIMPhonebookUsed:=PhoneBackup.SIMPhonebookUsed+1; + PhoneBackup.SIMPhonebook[PhoneBackup.SIMPhonebookUsed]:=x; end; + AddPBKEntry(MainForm.ListView1,x,phonebookcur-1); if (x.Name[1]<>chr(0)) then phonebookfound:=phonebookfound+1; end; end; @@ -1471,11 +1708,24 @@ begin phonebookcur:=0; phonebookfound:=0; + PBKOfflineNumber:=0; + PhoneBackup.PhonePhonebookUsed:=0; + PhoneBackup.SIMPhonebookUsed:=0; + if (phonebookstatus.MemoryType=GMT_ME) then + begin + PhoneBackup.PhonePhonebookSize:=phonebookstatus.Free+phonebookstatus.Used; + end; + if (phonebookstatus.MemoryType=GMT_SM) then + begin + PhoneBackup.SIMPhonebookSize:=phonebookstatus.Free+phonebookstatus.Used; + end; + ComboBox1.Enabled:=false; ReadAllCallerGroups(); MainForm.ListView1.Items.Clear; + MainForm.Timer2.Enabled:=false; PhonebookThread:=TPhonebookThread.Create(false); end; @@ -1538,14 +1788,30 @@ end; procedure TMainForm.Button2Click(Sender: TObject); var i:integer; + mybinring:GSM_BinRingtone; + myring:GSM_Ringtone; begin LogosRingForm.Label1.Caption:='Do you want to set ringtone ?'; + LogosRingForm.ComboBox3.Visible:=true; LogosRingForm.ComboBox3.Items.Clear(); LogosRingForm.ComboBox3.Items.Add('Preview'); - for i:=1 to 7 do + MainForm.Timer2.Enabled:=false; + for i:=1 to GSM_GetModelFeature(FN_RINGNUMBER) do begin - LogosRingForm.ComboBox3.Items.Add('Location '+inttostr(i)); + mybinring.location:=i; + if (GSM_GetPhoneRingtone(@mybinring,@myring)=0) then + begin + if GSM_GetModelFeature(FN_RINGTONES)=F_RING_SM then + begin + LogosRingForm.ComboBox3.Items.Add(myring.name); + end else + begin + LogosRingForm.ComboBox3.Items.Add(mybinring.name); + end; + end else + LogosRingForm.ComboBox3.Items.Add('Location '+inttostr(i)); end; + MainForm.Timer2.Enabled:=true; LogosRingForm.ComboBox3.ItemIndex:=1; LogosRingForm.ShowModal; if LogosRingForm.ComboBox3.Visible then @@ -1697,6 +1963,9 @@ begin end; procedure AddCalendarNote(note:GSM_CalendarNote;myview:TListView); +var + j,z:integer; + found:boolean; begin myview.Items.Add; myview.Items.Item[myview.Items.Count-1].Caption:=inttostr(myview.Items.Count); @@ -1707,7 +1976,38 @@ begin GCN_Birthday:myview.Items.Item[myview.Items.Count-1].Subitems.Add('Birthday'); end; myview.Items.Item[myview.Items.Count-1].Subitems.Add(note.Text); - myview.Items.Item[myview.Items.Count-1].Subitems.Add(note.Phone); + + found:=false; + if note.Type2=GCN_Call then + begin + MainForm.Label14.Caption:=note.Phone; + for z:=1 to PBKOfflineNumber do + begin + if (PhoneBackup.PhonePhonebook[z].Number[1]<>chr(0)) then + begin + MainForm.Label16.Caption:=PhoneBackup.PhonePhonebook[z].Number; + if (MainForm.Label14.Caption=MainForm.Label16.Caption) then + begin + myview.Items.Item[myview.Items.Count-1].Subitems.Add(PhoneBackup.PhonePhonebook[z].Name); + found:=true; + break; + end; + end; + for j:=1 to PhoneBackup.PhonePhonebook[z].SubEntriesCount do + begin + MainForm.Label16.Caption:=PhoneBackup.PhonePhonebook[z].SubEntries[j].Number; + if (MainForm.Label14.Caption=MainForm.Label16.Caption) then + begin + myview.Items.Item[myview.Items.Count-1].Subitems.Add(PhoneBackup.PhonePhonebook[z].Name); + found:=true; + break; + end; + end; + end; + end; + if not found then + myview.Items.Item[myview.Items.Count-1].Subitems.Add(note.Phone); + myview.Items.Item[myview.Items.Count-1].Subitems.Add(DayOfweek2(note.Time.Day,note.Time.Month,note.Time.Year)+' '+inttostr2(note.Time.Day,2)+'-'+inttostr2(note.Time.Month,2)+'-'+inttostr(note.Time.Year)+' '+inttostr2(note.Time.Hour,2)+':'+inttostr2(note.Time.Minute,2)+':'+inttostr2(note.Time.Second,2)); if note.Alarm.Year<>0 then myview.Items.Item[myview.Items.Count-1].Subitems.Add(DayOfweek2(note.Alarm.Day,note.Alarm.Month,note.Alarm.Year)+' '+inttostr2(note.Alarm.Day,2)+'-'+inttostr2(note.Alarm.Month,2)+'-'+inttostr(note.Alarm.Year)+' '+inttostr2(note.Alarm.Hour,2)+':'+inttostr2(note.Alarm.Minute,2)+':'+inttostr2(note.Alarm.Second,2)) @@ -1749,6 +2049,9 @@ begin CalendarNum:=1; MainForm.Timer2.Enabled:=false; readcalendar:=false; + + ReadPBKOffline; + CalendarThread:=TCalendarThread.Create(false); end else begin @@ -1766,21 +2069,45 @@ begin end; procedure TMainForm.New1Click(Sender: TObject); +var i,j:integer; begin setcalendarnote.Location:=MainForm.ListView4.Items.Count+1; CalendarForm.ComboBox1.ItemIndex:=0; CalendarForm.ComboBox1.OnSelect(nil); CalendarForm.Edit2.Text:=''; - CalendarForm.Edit1.Text:=''; + CalendarForm.ComboBox3.Text:=''; CalendarForm.DateTimePicker1.DateTime:=Date; CalendarForm.DateTimePicker3.Time:=Time; CalendarForm.DateTimePicker2.DateTime:=Date; CalendarForm.DateTimePicker4.Time:=Time; + + ReadPBKOffline; + CalendarForm.ComboBox3.Items.Clear; + CalendarForm.ComboBox3.Sorted:=false; + for i:=1 to PBKOfflineNumber do + begin + if (PhoneBackup.PhonePhonebook[i].Number[1]<>chr(0)) then + begin + CalendarForm.ComboBox3.Items.Add(PhoneBackup.PhonePhonebook[i].Name); + end else + begin + for j:=1 to PhoneBackup.PhonePhonebook[i].SubEntriesCount do + begin + if PhoneBackup.PhonePhonebook[i].SubEntries[j].EntryType=GSM_Number then + begin + CalendarForm.ComboBox3.Items.Add(PhoneBackup.PhonePhonebook[i].Name); + break; + end; + end; + end; + end; + CalendarForm.ComboBox3.Sorted:=true; + CalendarForm.ShowModal; end; procedure EditCalendarNote; -var i:integer; +var i,j,z:integer; begin i:=0; @@ -1798,7 +2125,7 @@ begin end; CalendarForm.Edit2.Text:=setcalendarnote.Text; - CalendarForm.Edit1.Text:=setcalendarnote.Phone; + CalendarForm.ComboBox3.Text:=setcalendarnote.Phone; if setcalendarnote.Alarm.Year<>0 then begin @@ -1847,6 +2174,70 @@ begin end; CalendarForm.ComboBox1.OnSelect(nil); + ReadPBKOffline; + CalendarForm.ComboBox3.Items.Clear; + CalendarForm.ComboBox3.Sorted:=false; + for i:=1 to PBKOfflineNumber do + begin + if (PhoneBackup.PhonePhonebook[i].Number[1]<>chr(0)) then + begin + CalendarForm.ComboBox3.Items.Add(PhoneBackup.PhonePhonebook[i].Name); + end else + begin + for j:=1 to PhoneBackup.PhonePhonebook[i].SubEntriesCount do + begin + if PhoneBackup.PhonePhonebook[i].SubEntries[j].EntryType=GSM_Number then + begin + CalendarForm.ComboBox3.Items.Add(PhoneBackup.PhonePhonebook[i].Name); + break; + end; + end; + end; + end; + CalendarForm.ComboBox3.Sorted:=true; + + if setcalendarnote.Type2=GCN_Call then + begin + MainForm.Label14.Caption:=setcalendarnote.Phone; + for i:=1 to PBKOfflineNumber do + begin + if (PhoneBackup.PhonePhonebook[i].Number[1]<>chr(0)) then + begin + MainForm.Label16.Caption:=PhoneBackup.PhonePhonebook[i].Number; + if (MainForm.Label14.Caption=MainForm.Label16.Caption) then + begin + MainForm.Label14.Caption:=PhoneBackup.PhonePhonebook[i].Name; + for z:=0 to CalendarForm.ComboBox3.Items.Count do + begin + if (MainForm.Label14.Caption=CalendarForm.ComboBox3.Items[z]) then + begin + CalendarForm.ComboBox3.ItemIndex:=z; + break; + end; + end; + break; + end; + end; + for j:=1 to PhoneBackup.PhonePhonebook[i].SubEntriesCount do + begin + MainForm.Label16.Caption:=PhoneBackup.PhonePhonebook[i].SubEntries[j].Number; + if (MainForm.Label14.Caption=MainForm.Label16.Caption) then + begin + MainForm.Label14.Caption:=PhoneBackup.PhonePhonebook[i].Name; + for z:=0 to CalendarForm.ComboBox3.Items.Count do + begin + if (MainForm.Label14.Caption=CalendarForm.ComboBox3.Items[z]) then + begin + CalendarForm.ComboBox3.ItemIndex:=z; + break; + end; + end; + break; + end; + end; + end; + end; + CalendarForm.ShowModal; end; @@ -2097,14 +2488,44 @@ end; //sms procedure AddSMSInfo(myobject:TListView;mysms:GSM_SMSMessage); -var number:integer; +var number,i,z:integer; + found:boolean; begin number:=myobject.Items.Count; myobject.Items.Add; myobject.Items.Item[number].Caption:=inttostr(number+1); myobject.Items.Item[number].Subitems.Add(mysms.MessageText); - myobject.Items.Item[number].Subitems.Add(mysms.Sender); + + found:=false; + for z:=1 to PBKOfflineNumber do + begin + mainform.Label14.Caption:=mysms.Sender; + mainform.Label16.Caption:=PhoneBackup.PhonePhonebook[z].Number; + if (PhoneBackup.PhonePhonebook[z].Number[1]<>chr(0)) then + begin + if (mainform.Label14.Caption=mainform.Label16.Caption) then + begin + myobject.Items.Item[number].Subitems.Add(PhoneBackup.PhonePhonebook[z].Name); + found:=true; + break; + end; + end; + for i:=1 to PhoneBackup.PhonePhonebook[z].SubEntriesCount do + begin + mainform.Label16.Caption:=PhoneBackup.PhonePhonebook[z].SubEntries[i].Number; + if (PhoneBackup.PhonePhonebook[z].SubEntries[i].EntryType=GSM_Number) + and (mainform.Label14.Caption=mainform.Label16.Caption) then + begin + myobject.Items.Item[number].Subitems.Add(PhoneBackup.PhonePhonebook[z].Name); + found:=true; + break; + end; + end; + if found then break; + end; + if not found then myobject.Items.Item[number].Subitems.Add(mysms.Sender); + if mysms.SMSData=1 then begin myobject.Items.Item[number].Subitems.Add(DayOfweek2(mysms.Time.Day,mysms.Time.Month,mysms.Time.Year)+' '+inttostr2(mysms.Time.Day,2)+'-'+inttostr2(mysms.Time.Month,2)+'-'+inttostr(mysms.Time.Year)); @@ -2130,26 +2551,65 @@ begin end; procedure SendSaveSMS(mysms:GSM_SMSMessage); -var i:integer; +var i,j,z:integer; begin //text SMSEditForm.Memo1.Text:=mysms.MessageText; //number - SMSEditForm.Edit2.Text:=mysms.sender; - - //sms folder - SMSEditForm.ComboBox1.Items.Clear; - for i:=0 to MainForm.ComboBox3.items.count-1 do + SMSEditForm.ComboBox9.Text:=mysms.sender; + AddSMSEditSenderList; + MainForm.Label14.Caption:=mysms.sender; + for i:=1 to PBKOfflineNumber do begin - SMSEditForm.ComboBox1.Items.Add(MainForm.ComboBox3.Items.Strings[i]); - end; - SMSEditForm.ComboBox1.ItemIndex:=MainForm.ComboBox3.ItemIndex; - - //smsc - SetSMSC(1); - SMSEditForm.ComboBox2.Items.Clear; - SMSEditForm.ComboBox2.Items.Add('custom'); + if (PhoneBackup.PhonePhonebook[i].Number[1]<>chr(0)) then + begin + MainForm.Label16.Caption:=PhoneBackup.PhonePhonebook[i].Number; + if (MainForm.Label14.Caption=MainForm.Label16.Caption) then + begin + MainForm.Label14.Caption:=PhoneBackup.PhonePhonebook[i].Name; + for z:=0 to SMSEditForm.ComboBox9.Items.Count do + begin + if (MainForm.Label14.Caption=SMSEditForm.ComboBox9.Items[z]) then + begin + SMSEditForm.ComboBox9.ItemIndex:=z; + break; + end; + end; + break; + end; + end; + for j:=1 to PhoneBackup.PhonePhonebook[i].SubEntriesCount do + begin + MainForm.Label16.Caption:=PhoneBackup.PhonePhonebook[i].SubEntries[j].Number; + if (MainForm.Label14.Caption=MainForm.Label16.Caption) then + begin + MainForm.Label14.Caption:=PhoneBackup.PhonePhonebook[i].Name; + for z:=0 to SMSEditForm.ComboBox9.Items.Count do + begin + if (MainForm.Label14.Caption=SMSEditForm.ComboBox9.Items[z]) then + begin + SMSEditForm.ComboBox9.ItemIndex:=z; + break; + end; + end; + break; + end; + end; + end; + + //sms folder + SMSEditForm.ComboBox1.Items.Clear; + for i:=0 to MainForm.ComboBox3.items.count-1 do + begin + SMSEditForm.ComboBox1.Items.Add(MainForm.ComboBox3.Items.Strings[i]); + end; + SMSEditForm.ComboBox1.ItemIndex:=MainForm.ComboBox3.ItemIndex; + + //smsc + SetSMSC(1); + SMSEditForm.ComboBox2.Items.Clear; + SMSEditForm.ComboBox2.Items.Add('custom'); for i:=1 to smscnum-1 do begin if SMSC2[i].Name[1]<>chr(0) then @@ -2178,6 +2638,8 @@ begin SMSEditForm.BitmapSMSTabSheet.TabVisible:=false; SMSEditForm.RingtoneSMSTabSheet.TabVisible:=false; SMSEditForm.CalendarSMSTabSheet.TabVisible:=false; + SMSEditForm.WAPBookTabSheet.TabVisible:=false; + SMSEditForm.WAPSettTabSheet.TabVisible:=false; SMSEditForm.PbkSMSTabSheet.TabVisible:=false; SMSEditForm.SMSEditPageControl.ActivePage:=Smseditform.TextSMSTabSheet; @@ -2209,7 +2671,8 @@ begin SMSEditForm.Memo1.Text:=''; //number - SMSEditForm.Edit2.Text:=''; + SMSEditForm.ComboBox9.Text:=''; + AddSMSEditSenderList; //folders SMSEditForm.ComboBox1.Items.Clear; @@ -2236,6 +2699,8 @@ begin SMSEditForm.BitmapSMSTabSheet.TabVisible:=false; SMSEditForm.RingtoneSMSTabSheet.TabVisible:=false; SMSEditForm.CalendarSMSTabSheet.TabVisible:=false; + SMSEditForm.WAPBookTabSheet.TabVisible:=false; + SMSEditForm.WAPSettTabSheet.TabVisible:=false; SMSEditForm.PBKSMSTabSheet.TabVisible:=false; SMSEditForm.SMSEditPageControl.ActivePage:=Smseditform.TextSMSTabSheet; @@ -2335,12 +2800,14 @@ begin smsnum2:=1; MainForm.ListView2.Items.Clear; MainForm.Timer2.Enabled:=false; + ReadPBKOffline; SMSThread:=TSMSThread.Create(false); end; end; procedure TMainForm.ComboBox3Change(Sender: TObject); begin + ReadPBKOffline; DisplaySMSfolder(); end; @@ -2369,12 +2836,12 @@ begin ch:=' (reply via the same SMSC) '+ch; firstmemo.Lines.Add('SMSC: '+ch); - if mysms.type2=GST_DR then + if (mysms.type2=GST_DR) and (mysms.MessageText[1]='D') then begin firstmemo.Lines.Add(pchar('Date & time: '+ DayOfweek2(mysms.Time.Day,mysms.Time.Month,mysms.Time.Year)+' '+inttostr2(mysms.Time.Day,2)+'-'+inttostr2(mysms.Time.Month,2)+'-'+inttostr(mysms.Time.Year)+' '+ inttostr2(mysms.Time.Hour,2)+':'+inttostr2(mysms.Time.Minute,2)+':'+inttostr2(mysms.Time.Second,2))+ - ' SMSC desponse date & time: '+ + ' SMSC response date & time: '+ DayOfweek2(mysms.SMSCTime.Day,mysms.SMSCTime.Month,mysms.SMSCTime.Year)+' '+inttostr2(mysms.SMSCTime.Day,2)+'-'+inttostr2(mysms.SMSCTime.Month,2)+'-'+inttostr(mysms.SMSCTime.Year)+' '+ inttostr2(mysms.SMSCTime.Hour,2)+':'+inttostr2(mysms.SMSCTime.Minute,2)+':'+inttostr2(mysms.SMSCTime.Second,2)); end else @@ -2554,8 +3021,8 @@ var current:integer; i:integer; begin - if listview1.Selected<>nil then - begin +// if listview1.Selected<>nil then +// begin pbk.Location:=pbknumberentry; case ComboBox1.ItemIndex of 1:begin pbk.MemoryType:=GMT_DC;pbk.Location:=pbk.Location-1;end; @@ -2585,6 +3052,7 @@ begin case pbk.SubEntries[i].EntryType of GSM_Number:case pbk.SubEntries[i].NumberType of GSM_General :pbkform.ListView1.Items.Item[current].Caption:='General number'; + GSM_General2:pbkform.ListView1.Items.Item[current].Caption:='General number'; GSM_Mobile :pbkform.ListView1.Items.Item[current].Caption:='Mobile'; GSM_Work :pbkform.ListView1.Items.Item[current].Caption:='Work'; GSM_Fax :pbkform.ListView1.Items.Item[current].Caption:='Fax'; @@ -2603,6 +3071,7 @@ begin if (pbk.SubEntries[i].EntryType<>GSM_Date) then pbkform.ListView1.Items.Item[current].SubItems.Add(pbk.SubEntries[i].Number); end; + if (pbk.Group>=0) and (pbk.Group<=4) then begin current:=current+1; @@ -2611,7 +3080,7 @@ begin pbkform.ListView1.Items.Item[current].SubItems.Add(caller[pbk.Group+1].text); end; pbkform.showmodal; - end; +// end; end; procedure TMainForm.Button18Click(Sender: TObject); @@ -2634,8 +3103,9 @@ begin SMSEditForm.Memo1.Text:=''; //number - SMSEditForm.Edit2.Text:=''; - + SMSEditForm.ComboBox9.Text:=''; + AddSMSEditSenderList; + //folders GSM_GetSMSFolders(@SMSfolders); SMSEditForm.ComboBox1.Items.Clear; @@ -2662,6 +3132,8 @@ begin SMSEditForm.BitmapSMSTabSheet.TabVisible:=false; SMSEditForm.RingtoneSMSTabSheet.TabVisible:=false; SMSEditForm.CalendarSMSTabSheet.TabVisible:=false; + SMSEditForm.WAPBookTabSheet.TabVisible:=false; + SMSEditForm.WAPSettTabSheet.TabVisible:=false; SMSEditForm.PBKSMSTabSheet.TabVisible:=false; SMSEditForm.SMSEditPageControl.ActivePage:=Smseditform.BitmapSMSTabSheet; @@ -2763,8 +3235,9 @@ begin SMSEditForm.Memo1.Text:=''; //number - SMSEditForm.Edit2.Text:=''; - + SMSEditForm.ComboBox9.Text:=''; + AddSMSEditSenderList; + //folders GSM_GetSMSFolders(@SMSfolders); SMSEditForm.ComboBox1.Items.Clear; @@ -2791,6 +3264,8 @@ begin SMSEditForm.BitmapSMSTabSheet.TabVisible:=false; SMSEditForm.RingtoneSMSTabSheet.TabVisible:=false; SMSEditForm.CalendarSMSTabSheet.TabVisible:=false; + SMSEditForm.WAPBookTabSheet.TabVisible:=false; + SMSEditForm.WAPSettTabSheet.TabVisible:=false; SMSEditForm.PBKSMSTabSheet.TabVisible:=false; SMSEditForm.SMSEditPageControl.ActivePage:=Smseditform.RingtoneSMSTabSheet; @@ -2826,8 +3301,9 @@ begin SMSEditForm.Memo1.Text:=''; //number - SMSEditForm.Edit2.Text:=''; - + SMSEditForm.ComboBox9.Text:=''; + AddSMSEditSenderList; + //folders GSM_GetSMSFolders(@SMSfolders); SMSEditForm.ComboBox1.Items.Clear; @@ -2854,6 +3330,8 @@ begin SMSEditForm.BitmapSMSTabSheet.TabVisible:=false; SMSEditForm.RingtoneSMSTabSheet.TabVisible:=false; SMSEditForm.CalendarSMSTabSheet.TabVisible:=false; + SMSEditForm.WAPBookTabSheet.TabVisible:=false; + SMSEditForm.WAPSettTabSheet.TabVisible:=false; SMSEditForm.PBKSMSTabSheet.TabVisible:=false; SMSEditForm.SMSEditPageControl.ActivePage:=Smseditform.CalendarSMSTabSheet; @@ -2894,8 +3372,9 @@ begin SMSEditForm.Memo1.Text:=''; //number - SMSEditForm.Edit2.Text:=''; - + SMSEditForm.ComboBox9.Text:=''; + AddSMSEditSenderList; + //folders GSM_GetSMSFolders(@SMSfolders); SMSEditForm.ComboBox1.Items.Clear; @@ -2922,6 +3401,8 @@ begin SMSEditForm.BitmapSMSTabSheet.TabVisible:=false; SMSEditForm.RingtoneSMSTabSheet.TabVisible:=false; SMSEditForm.CalendarSMSTabSheet.TabVisible:=false; + SMSEditForm.WAPBookTabSheet.TabVisible:=false; + SMSEditForm.WAPSettTabSheet.TabVisible:=false; SMSEditForm.PBKSMSTabSheet.TabVisible:=false; SMSEditForm.SMSEditPageControl.ActivePage:=Smseditform.PBKSMSTabSheet; @@ -2969,13 +3450,29 @@ end; procedure TMainForm.Button14Click(Sender: TObject); var i:integer; + mybinring:GSM_BinRingtone; + myring:GSM_Ringtone; begin LogosRingForm.Label1.Caption:='Do you want to set ringtone ?'; + LogosRingForm.ComboBox3.Visible:=true; LogosRingForm.ComboBox3.Items.Clear(); - for i:=1 to 7 do + MainForm.Timer2.Enabled:=false; + for i:=1 to GSM_GetModelFeature(FN_RINGNUMBER) do begin - LogosRingForm.ComboBox3.Items.Add('Location '+inttostr(i)); + mybinring.location:=i; + if (GSM_GetPhoneRingtone(@mybinring,@myring)=0) then + begin + if GSM_GetModelFeature(FN_RINGTONES)=F_RING_SM then + begin + LogosRingForm.ComboBox3.Items.Add(myring.name); + end else + begin + LogosRingForm.ComboBox3.Items.Add(mybinring.name); + end; + end else + LogosRingForm.ComboBox3.Items.Add('Location '+inttostr(i)); end; + MainForm.Timer2.Enabled:=true; LogosRingForm.ComboBox3.ItemIndex:=0; LogosRingForm.ShowModal; if LogosRingForm.ComboBox3.Visible then @@ -3052,7 +3549,7 @@ end; procedure TMainForm.Timer2Timer(Sender: TObject); begin if SparkyThread.Suspended then SparkyThread.Resume; - Timer2.Interval:=4000; + Timer2.Interval:=2000; end; procedure TMainForm.AboutTabSheetShow(Sender: TObject); @@ -3084,6 +3581,7 @@ begin Reset(F); if (ioresult=0) then begin + ReadPBKOffline; smsofflinenumber:=0; while not eof(f) do begin @@ -3178,6 +3676,9 @@ begin begin MainForm.ListView9.Items.Item[bookmarknum-1].Subitems.Add(bookmark.title); MainForm.ListView9.Items.Item[bookmarknum-1].Subitems.Add(bookmark.adress); + end else + begin + MainForm.ListView9.Items.Item[bookmarknum-1].Subitems.Add(''); end; bookmarknum:=bookmarknum+1; if bookmarknum=15 then EndWAPBookmarkThread; @@ -3515,10 +4016,624 @@ end; procedure TMainForm.PCCalendarPopupMenuPopup(Sender: TObject); begin CopyTocalendar1.Enabled:=False; - if (GSMPhoneConnected) and (GSM_GetModelFeature(FN_Calendar)<>0) then copytocalendar1.Enabled:=True; + if (GSMPhoneConnected) and (GSM_GetModelFeature(FN_Calendar)<>0) + and (listview11.selected<>nil) then copytocalendar1.Enabled:=True; Delete5.Enabled:=false; if listview11.selected<>nil then Delete5.Enabled:=True; end; +procedure TMainForm.Savebackuptofile1Click(Sender: TObject); +begin + PhoneBackup.PhonePhonebookUsed:=0; + PhoneBackup.SIMPhonebookUsed:=0; + PhoneBackup.CallerAvailable:=0; + PhoneBackup.StartupLogoAvailable:=0; + PhoneBackup.StartupText.text[1]:=chr(0); + PhoneBackup.OperatorLogoAvailable:=0; + PhoneBackup.SpeedAvailable:=0; + + BackupForm.CheckBox3.Enabled:=true; + BackupForm.CheckBox4.Enabled:=true; + BackupForm.CheckBox2.Enabled:=true; + BackupForm.CheckBox1.Enabled:=true; + BackupForm.CheckBox5.Enabled:=true; + + BackupForm.GroupBox1.Caption:=' What do you want to backup ? '; + PhoneBackupAvailable:=True; + BackupForm.ListBox1.ItemIndex:=0; + BackupForm.GroupBox2.Visible:=true; + BackupForm.ShowModal; + if PhoneBackupAvailable then + begin + BackupProgressForm.ShowModal; + end; +end; + +procedure TMainForm.Restorebackupfromfile1Click(Sender: TObject); +begin + if OpenDialog1.Execute then + begin + if GSM_ReadBackupFile(PChar(OpenDialog1.FileName),@phonebackup)=0 then + begin + BackupForm.CheckBox3.Enabled:=true; + if PhoneBackup.CallerAvailable=0 then + BackupForm.CheckBox3.Enabled:=false; + + BackupForm.CheckBox4.Enabled:=true; + if PhoneBackup.OperatorLogoAvailable=0 then + BackupForm.CheckBox4.Enabled:=false; + + BackupForm.CheckBox2.Enabled:=true; + if PhoneBackup.PhonePhonebookUsed=0 then + BackupForm.CheckBox2.Enabled:=false; + + BackupForm.CheckBox1.Enabled:=true; + if PhoneBackup.SIMPhonebookUsed=0 then + BackupForm.CheckBox1.Enabled:=false; + + BackupForm.CheckBox5.Enabled:=true; + + BackupForm.GroupBox1.Caption:=' What do you want to restore ? '; + PhoneBackupAvailable:=true; + BackupForm.GroupBox2.Visible:=false; + BackupForm.ShowModal; + if PhoneBackupAvailable then + begin + PhoneBackupAvailable:=false; + BackupProgressForm.ShowModal; + end; + end; + end; +end; + +procedure TMainForm.PBKPopupMenuPopup(Sender: TObject); +begin + Savephonebooktofileanotherapplication1.enabled:=false; + Delete4.enabled:=false; + Edit19.Enabled:=false; + Edit7.Enabled:=false; + SMSSendSave1.Enabled:=false; + copyphonebooktopc1.Enabled:=false; + if GSMPhoneConnected then + begin + if (pbkofflinenumber<>0) then copyphonebooktopc1.Enabled:=true; + if (ComboBox1.ItemIndex=4) or (ComboBox1.ItemIndex=5) then + begin + Savephonebooktofileanotherapplication1.enabled:=true; + if listview1.Selected<>nil then + begin + Delete4.enabled:=true; + Edit19.Enabled:=true; + end; + end; + if listview1.Selected<>nil then + begin + SMSSendSave1.Enabled:=true; + Edit7.Enabled:=true; + end; + end; +end; + +procedure TMainForm.Savephonebooktofileanotherapplication1Click( + Sender: TObject); +begin + PhoneBackup.CallerAvailable:=0; + PhoneBackup.StartupLogoAvailable:=0; + PhoneBackup.StartupText.text[1]:=chr(0); + PhoneBackup.OperatorLogoAvailable:=0; + + BackupForm.CheckBox3.Enabled:=false; + BackupForm.CheckBox4.Enabled:=false; + + BackupForm.CheckBox2.Enabled:=true; + if PhoneBackup.PhonePhonebookUsed=0 then + BackupForm.CheckBox2.Enabled:=false; + + BackupForm.CheckBox1.Enabled:=true; + if PhoneBackup.SIMPhonebookUsed=0 then + BackupForm.CheckBox1.Enabled:=false; + + BackupForm.CheckBox5.Enabled:=false; + + BackupForm.GroupBox1.Caption:=' What do you want to backup ? '; + PhoneBackupAvailable:=True; + BackupForm.ListBox1.ItemIndex:=0; + BackupForm.GroupBox2.Visible:=true; + BackupForm.ShowModal; + if PhoneBackupAvailable then + begin + if MainForm.SaveDialog1.Execute then + begin + GSM_SaveBackupFile(PChar(MainForm.SaveDialog1.FileName),@phonebackup); + end; + end; +end; + +procedure TMainForm.ListView4DblClick(Sender: TObject); +begin +// if (GSMPhoneConnected) and (ListView4.Selected<>nil) then +// Edit3Click(Sender); +end; + +procedure TMainForm.Edit19Click(Sender: TObject); +var + i,j:integer; + num_num,text_num:integer; +begin + if listview1.Selected<>nil then + begin + PBKEditForm.ComboBox1.ItemIndex:=1; + PBKEditForm.COmboBox2.Items:=PBKEditForm.COmboBox1.Items; + PBKEditForm.ComboBox2.ItemIndex:=1; + PBKEditForm.COmboBox3.Items:=PBKEditForm.COmboBox1.Items; + PBKEditForm.ComboBox3.ItemIndex:=1; + PBKEditForm.COmboBox4.Items:=PBKEditForm.COmboBox1.Items; + PBKEditForm.ComboBox4.ItemIndex:=1; + PBKEditForm.COmboBox5.Items:=PBKEditForm.COmboBox1.Items; + PBKEditForm.ComboBox5.ItemIndex:=1; + PBKEditForm.ComboBox6.ItemIndex:=0; + PBKEditForm.COmboBox7.Items:=PBKEditForm.COmboBox6.Items; + PBKEditForm.ComboBox7.ItemIndex:=0; + PbkEditForm.Edit2.Text:=''; + + num_num:=1; + text_num:=1; + pbk.Location:=pbknumberentry; + case ComboBox1.ItemIndex of + 4:pbk.MemoryType:=GMT_ME; + 5:pbk.MemoryType:=GMT_SM; + end; + GSM_GetMemoryLocation(@pbk); + + pbkeditform.ComboBox1.enabled:=false; + pbkeditform.ComboBox2.enabled:=false; + pbkeditform.ComboBox3.enabled:=false; + pbkeditform.ComboBox4.enabled:=false; + pbkeditform.ComboBox5.enabled:=false; + pbkeditform.ComboBox6.enabled:=false; + pbkeditform.ComboBox7.enabled:=false; + pbkeditform.Edit3.enabled:=false; + pbkeditform.Edit4.enabled:=false; + pbkeditform.Edit5.enabled:=false; + pbkeditform.Edit6.enabled:=false; + pbkeditform.Edit7.enabled:=false; + pbkeditform.Edit8.enabled:=false; + PbkEditForm.Edit3.Text:='Not available'; + PbkEditForm.Edit4.Text:='Not available'; + PbkEditForm.Edit5.Text:='Not available'; + PbkEditForm.Edit6.Text:='Not available'; + PbkEditForm.Edit7.Text:='Not available'; + PbkEditForm.Edit8.Text:='Not available'; + if (pbk.MemoryType=GMT_ME) and + (GSM_GetModelFeature(FN_PHONEBOOK)=F_PBK71INT) then + begin + pbkeditform.ComboBox1.enabled:=true; + pbkeditform.ComboBox2.enabled:=true; + pbkeditform.ComboBox3.enabled:=true; + pbkeditform.ComboBox4.enabled:=true; + pbkeditform.ComboBox5.enabled:=true; + pbkeditform.ComboBox6.enabled:=true; + pbkeditform.ComboBox7.enabled:=true; + pbkeditform.Edit3.enabled:=true; + pbkeditform.Edit4.enabled:=true; + pbkeditform.Edit5.enabled:=true; + pbkeditform.Edit6.enabled:=true; + pbkeditform.Edit7.enabled:=true; + pbkeditform.Edit8.enabled:=true; + PbkEditForm.Edit3.Text:=''; + PbkEditForm.Edit4.Text:=''; + PbkEditForm.Edit5.Text:=''; + PbkEditForm.Edit6.Text:=''; + PbkEditForm.Edit7.Text:=''; + PbkEditForm.Edit8.Text:=''; + end; + + pbkeditform.Label2.Enabled:=true; + pbkeditform.ComboBox8.Enabled:=true; + if (GSM_GetModelFeature(FN_CALLERGROUPS)=0) then + begin + pbkeditform.Label2.Enabled:=false; + pbkeditform.ComboBox8.Enabled:=false; + end; + + pbkeditform.Edit1.Text:=pbk.name; + if (pbk.Number[1]<>chr(0)) then + begin + pbkeditform.ComboBox1.ItemIndex:=1; + pbkeditform.Edit2.Text:=pbk.number; + num_num:=num_num+1; + end; + for i:=1 to pbk.SubEntriesCount do + begin + case pbk.SubEntries[i].EntryType of + GSM_Number: + begin + j:=1; + case pbk.SubEntries[i].NumberType of + GSM_General :j:=1; + GSM_General2:j:=1; + GSM_Mobile :j:=3; + GSM_Work :j:=4; + GSM_Fax :j:=0; + GSM_Home :j:=2; + end; + case num_num of + 1:begin + pbkeditform.ComboBox1.ItemIndex:=j; + pbkeditform.edit2.text:=pbk.SubEntries[i].Number; + end; + 2:begin + pbkeditform.ComboBox2.ItemIndex:=j; + pbkeditform.edit3.text:=pbk.SubEntries[i].Number; + end; + 3:begin + pbkeditform.ComboBox3.ItemIndex:=j; + pbkeditform.edit4.text:=pbk.SubEntries[i].Number; + end; + 4:begin + pbkeditform.ComboBox4.ItemIndex:=j; + pbkeditform.edit5.text:=pbk.SubEntries[i].Number; + end; + 5:begin + pbkeditform.ComboBox5.ItemIndex:=j; + pbkeditform.edit6.text:=pbk.SubEntries[i].Number; + end; + end; + num_num:=num_num+1; + end; + GSM_Note : + begin + j:=1; + case text_num of + 1:begin + pbkeditform.ComboBox6.ItemIndex:=j; + pbkeditform.edit7.text:=pbk.SubEntries[i].Number; + end; + 2:begin + pbkeditform.ComboBox7.ItemIndex:=j; + pbkeditform.edit8.text:=pbk.SubEntries[i].Number; + end; + end; + text_num:=text_num+1; + end; + GSM_Postal: + begin + j:=2; + case text_num of + 1:begin + pbkeditform.ComboBox6.ItemIndex:=j; + pbkeditform.edit7.text:=pbk.SubEntries[i].Number; + end; + 2:begin + pbkeditform.ComboBox7.ItemIndex:=j; + pbkeditform.edit8.text:=pbk.SubEntries[i].Number; + end; + end; + text_num:=text_num+1; + end; + GSM_Email : + begin + j:=0; + case text_num of + 1:begin + pbkeditform.ComboBox6.ItemIndex:=j; + pbkeditform.edit7.text:=pbk.SubEntries[i].Number; + end; + 2:begin + pbkeditform.ComboBox7.ItemIndex:=j; + pbkeditform.edit8.text:=pbk.SubEntries[i].Number; + end; + end; + text_num:=text_num+1; + end; + + end; + end; + + pbkeditform.ComboBox8.items.clear; + pbkeditform.ComboBox8.items.add('Not assigned'); + for i:=1 to 5 do + begin + pbkeditform.ComboBox8.items.add(caller[i].text); + end; + pbkeditform.ComboBox8.itemindex:=0; + if (GSM_GetModelFeature(FN_CALLERGROUPS)<>0) then + begin + if (pbk.Group>=0) and (pbk.Group<=4) then + begin + pbkeditform.ComboBox8.itemindex:=pbk.Group+1; + end; + end; + + PbkEditForm.ShowModal; + end; + +end; + +procedure TMainForm.Delete4Click(Sender: TObject); +begin + if Application.MessageBox('Do you want to delete this phonebook entry ?','Question',MB_YESNO)=IDYES then + begin + + pbk.Location:=pbknumberentry; + case ComboBox1.ItemIndex of + 4:pbk.MemoryType:=GMT_ME; + 5:pbk.MemoryType:=GMT_SM; + end; + + MainForm.Timer2.Enabled:=false; + GSM_GetMemoryLocation(@pbk); + + pbk.SubEntriesCount:=0; + pbk.Name[1]:=chr(0); + pbk.Number[1]:=chr(0); + GSM_WritePhonebookLocation(@pbk); + MainForm.Timer2.Enabled:=true; + MainForm.ComboBox1Change(nil); + end; +end; + + +procedure TMainForm.Button22Click(Sender: TObject); +var + i:integer; + mybinring:GSM_BinRingtone; + myring:GSM_Ringtone; +begin + LogosRingForm.Label1.Caption:='Do you want to get ringtone ?'; + LogosRingForm.ComboBox3.Visible:=true; + LogosRingForm.ComboBox3.Items.Clear(); + MainForm.Timer2.Enabled:=false; + for i:=1 to GSM_GetModelFeature(FN_RINGNUMBER) do + begin + mybinring.location:=i; + if (GSM_GetPhoneRingtone(@mybinring,@myring)=0) then + begin + if GSM_GetModelFeature(FN_RINGTONES)=F_RING_SM then + begin + LogosRingForm.ComboBox3.Items.Add(myring.name); + end else + begin + LogosRingForm.ComboBox3.Items.Add(mybinring.name); + end; + end else + LogosRingForm.ComboBox3.Items.Add('Location '+inttostr(i)); + end; + MainForm.Timer2.Enabled:=true; + LogosRingForm.ComboBox3.ItemIndex:=0; + LogosRingForm.ShowModal; + if LogosRingForm.ComboBox3.Visible then + begin + mybinring.location:=LogosRingForm.ComboBox3.ItemIndex+1; + MainForm.Timer2.Enabled:=false; + if (GSM_GetPhoneRingtone(@mybinring,@myring)=0) then + begin + MainForm.Timer2.Enabled:=true; + if GSM_GetModelFeature(FN_RINGTONES)=F_RING_SM then + begin + application.MessageBox('Smart Messaging format','',0); + if SaveDialog1.Execute then + begin + GSM_SaveRingtoneFile(PChar(SaveDialog1.FileName),@myring); + end; + end else + begin + application.MessageBox('Binary format','',0); + if SaveDialog1.Execute then + begin + GSM_SaveBinRingtoneFile(PChar(SaveDialog1.FileName),@mybinring); + end; + end; + end; + + MainForm.Timer2.Enabled:=true; + end; + +end; + +procedure TMainForm.New20Click(Sender: TObject); +begin + bookmarknum:=65535; + WAPBookForm.Edit1.Text:=''; + WAPBookForm.Edit2.Text:=''; + WAPBookForm.ShowModal; +end; + +procedure TMainForm.ListView9SelectItem(Sender: TObject; Item: TListItem; + Selected: Boolean); +begin + if Selected then bookmarknum2:=item.Index+1; +end; + +procedure TMainForm.Edit20Click(Sender: TObject); +var + bookmark:GSM_WAPBookmark; +begin + bookmark.location:=bookmarknum2; + mainform.Timer2.Enabled:=false; + GSM_GetWAPBookmark(@bookmark); + mainform.Timer2.Enabled:=true; + WAPBookForm.Edit1.Text:=bookmark.title; + WAPBookForm.Edit2.Text:=bookmark.adress; + WAPBookForm.ShowModal; +end; + +procedure TMainForm.WAPBookPopupMenuPopup(Sender: TObject); +begin + New20.Enabled:=false; + Edit20.Enabled:=false; + SMSSendSave2.Enabled:=false; + if (WAPBookmarkThread=nil) and (GSMPhoneConnected) then + begin + New20.Enabled:=true; + if (ListView9.Selected<>nil) and + (ListView9.Selected.SubItems[0]<>'') then + begin + Edit20.Enabled:=true; + SMSSendSave2.Enabled:=true; + end; + end; +end; + +procedure TMainForm.SMSSendSave2Click(Sender: TObject); +var + i:integer; +begin + if smscinit=false then + begin + MainForm.ListView6.Items.Clear; + smscnum:=1; + while true do + begin + ReadSMSC; + if smscinit then break; + end; + end; + + //sms text + SMSEditForm.Memo1.Text:=''; + + //number + SMSEditForm.ComboBox9.Text:=''; + AddSMSEditSenderList; + + //folders + GSM_GetSMSFolders(@SMSfolders); + SMSEditForm.ComboBox1.Items.Clear; + for i:=1 to SMSFolders.number do + begin + SMSEditForm.ComboBox1.Items.Add(SMSfolders.folder[i].Name); + end; + SMSEditForm.ComboBox1.ItemIndex:=0; + + //smsc + SetSMSC(1); + SMSEditForm.ComboBox2.Items.Clear; + SMSEditForm.ComboBox2.Items.Add('custom'); + for i:=1 to smscnum-1 do + begin + if SMSC2[i].Name[1]<>chr(0) then + SMSEditForm.ComboBox2.Items.Add('set '+inttostr(i)+' - '+SMSC2[i].Name) + else + SMSEditForm.ComboBox2.Items.Add('set '+inttostr(i)); + end; + SMSEditForm.ComboBox2.ItemIndex:=1; + + SMSEditForm.TextSMSTabSheet.TabVisible:=false; + SMSEditForm.BitmapSMSTabSheet.TabVisible:=false; + SMSEditForm.RingtoneSMSTabSheet.TabVisible:=false; + SMSEditForm.CalendarSMSTabSheet.TabVisible:=false; + SMSEditForm.WAPBookTabSheet.TabVisible:=false; + SMSEditForm.WAPSettTabSheet.TabVisible:=false; + SMSEditForm.PBKSMSTabSheet.TabVisible:=false; + SMSEditForm.SMSEditPageControl.ActivePage:=Smseditform.WAPBookTabSheet; + + bookma.location:=bookmarknum2; + mainform.Timer2.Enabled:=false; + GSM_GetWAPBookmark(@bookma); + mainform.Timer2.Enabled:=true; + + if (GSM_GetModelFeature(FN_SMS)=F_SMS71) then + begin + SMSEditForm.edit3.Visible:=true; + SMSEditForm.label14.Visible:=true; + end else + begin + SMSEditForm.edit3.Visible:=false; + SMSEditForm.label14.Visible:=false; + end; + + SMSEditForm.ShowModal; +end; + +procedure TMainForm.Button23Click(Sender: TObject); +var + i:integer; +begin + if smscinit=false then + begin + MainForm.ListView6.Items.Clear; + smscnum:=1; + while true do + begin + ReadSMSC; + if smscinit then break; + end; + end; + + //sms text + SMSEditForm.Memo1.Text:=''; + + //number + SMSEditForm.ComboBox9.Text:=''; + AddSMSEditSenderList; + + //folders + GSM_GetSMSFolders(@SMSfolders); + SMSEditForm.ComboBox1.Items.Clear; + for i:=1 to SMSFolders.number do + begin + SMSEditForm.ComboBox1.Items.Add(SMSfolders.folder[i].Name); + end; + SMSEditForm.ComboBox1.ItemIndex:=0; + + //smsc + SetSMSC(1); + SMSEditForm.ComboBox2.Items.Clear; + SMSEditForm.ComboBox2.Items.Add('custom'); + for i:=1 to smscnum-1 do + begin + if SMSC2[i].Name[1]<>chr(0) then + SMSEditForm.ComboBox2.Items.Add('set '+inttostr(i)+' - '+SMSC2[i].Name) + else + SMSEditForm.ComboBox2.Items.Add('set '+inttostr(i)); + end; + SMSEditForm.ComboBox2.ItemIndex:=1; + + SMSEditForm.TextSMSTabSheet.TabVisible:=false; + SMSEditForm.BitmapSMSTabSheet.TabVisible:=false; + SMSEditForm.RingtoneSMSTabSheet.TabVisible:=false; + SMSEditForm.CalendarSMSTabSheet.TabVisible:=false; + SMSEditForm.WAPBookTabSheet.TabVisible:=false; + SMSEditForm.WAPSettTabSheet.TabVisible:=false; + SMSEditForm.PBKSMSTabSheet.TabVisible:=false; + SMSEditForm.SMSEditPageControl.ActivePage:=Smseditform.WAPSettTabSheet; + + Wapset.location:=combobox7.ItemIndex; + MainForm.Timer2.Enabled:=false; + GSM_GetWAPSettings(@wapset); + MainForm.Timer2.Enabled:=true; + + if (GSM_GetModelFeature(FN_SMS)=F_SMS71) then + begin + SMSEditForm.edit3.Visible:=true; + SMSEditForm.label14.Visible:=true; + end else + begin + SMSEditForm.edit3.Visible:=false; + SMSEditForm.label14.Visible:=false; + end; + + SMSEditForm.ShowModal; +end; + +procedure TMainForm.CopyphonebooktoPC1Click(Sender: TObject); +begin + SavePBKOffline; +end; + +procedure TMainForm.PCPBKTabSheetShow(Sender: TObject); +var i:integer; +begin + ReadPBKOffline; + ListView12.Items.Clear; + for i:=1 to PBKOfflineNumber do + begin + MainForm.ListView12.Items.Add; + MainForm.ListView12.Items.Item[i-1].Caption:=inttostr(PhoneBackup.PhonePhonebook[i].Location); + AddPBKEntry(ListView12,PhoneBackup.PhonePhonebook[i],i-1); + end; +end; + end.