📄 phone.c
字号:
Exit = 0; i = 0; Temp[0]=0; nl(); while (!Exit) switch(getstring(PhoneScreen, LINES/2,Center+1,Temp,ValidEdit,"\n\e\t",21,-1,Temp)){ case '\e': Exit = 1; break; case '\n': Tmp = (tTermPhoneRec *)PhoneBook->Base->Next; for (i=0;i<TermHeader.Num;i++) { PasToChar(Tmp->Name, TempStr); if (nocasestrstr(TempStr, Temp) != NULL){ TermCurrentPos = Tmp; TermCurrentNumber = i+1; TermHeader.ScrPos = 0; delete Win; ShowTermBook(1); Win = new tWindow(PhoneScreen, Center, (LINES/2)-1, Center+22, (LINES/2)+1, Integers[cInfoBold] >> 4, Integers[cInfoBold] % 16); Win->Frame(2, Integers[cInfoBold]); Win->Headline("Speed search", Integers[cInfoBold]); wrefresh(PhoneScreen); break; } else Tmp = (tTermPhoneRec *)Tmp->Next; } break; case '\t': Tmp = (tTermPhoneRec *)TermCurrentPos->Next; for (i=TermCurrentNumber;i<TermHeader.Num;i++) { PasToChar(Tmp->Name, TempStr); if (nocasestrstr(TempStr, Temp) != NULL){ TermCurrentPos = Tmp; TermCurrentNumber = i+1; TermHeader.ScrPos = 0; delete Win; ShowTermBook(1); Win = new tWindow(PhoneScreen, Center, (LINES/2)-1, Center+22, (LINES/2)+1, Integers[cInfoBold] >> 4, Integers[cInfoBold] % 16); Win->Frame(2, Integers[cInfoBold]); Win->Headline("Speed search", Integers[cInfoBold]); clearok(PhoneScreen, TRUE); wrefresh(PhoneScreen); break; } else Tmp = (tTermPhoneRec *)Tmp->Next; } break; default:break; } delete Win;}void EnterPassword(char *Putin){ tWindow *Win; int Center, Exit, i; char Temp[20]; Center = findCenter(1,COLS,24); Win = new tWindow(PhoneScreen, Center, (LINES/2)-1, Center+25, (LINES/2)+1, Integers[cInfoBold] >> 4, Integers[cInfoBold] % 16); Win->Frame(2, Integers[cInfoBold]); Win->Headline("Enter password", Integers[cInfoBold]); wrefresh(PhoneScreen); textAttr(PhoneScreen, Integers[cInfoBold]); Exit = 0; i = 0; Temp[0]=0; switch(getstring(PhoneScreen, LINES/2,Center+1,Temp,ValidEdit,"\n\e\t",24,-1,Temp)){ case '\e': Exit = 1; break; case '\n': Exit = 2; break; default:break; } if (Exit == 2) strcpy(Putin, Temp); delete Win;}void TermGlobalDefs(){ int Key, i, j, x, OnlyTag; tTermPhoneRec *Tmp; char Temp[256]; tWindow *Win; tMenu *Menu; Win = new tWindow(PhoneScreen, 40, 0, 70, 17, Integers[cMenu] >> 4, Integers[cMenu] % 16); Win->Frame(1, Integers[cMenu]); Win->Headline("Global definitions", Integers[cMenuTitle]); Menu = new tMenu(PhoneScreen, Integers[cMenuText], Integers[cMenuHot], Integers[cMenuBar], Integers[cMenuText], ALIGNLEFT); Menu->Add("Set range", 41, 70, 1); Menu->Add("Only tagged", 41, 70, 2); Menu->Add("Find/Replace baud", 41, 70, 3); Menu->Add("Change bauds", 41, 70, 4); Menu->Add("Change device", 41, 70, 5); Menu->Add("Username", 41, 70, 6); Menu->Add("Colors", 41, 70, 7); Menu->Add("Terminal", 41, 70, 8); Menu->Add("Prefix", 41, 70, 9); Menu->Add("Suffix", 41, 70, 10); Menu->Add("Tag range", 41, 70, 11); Menu->Add("Tag all with password", 41, 70, 12); Menu->Add("Copy password", 41, 70, 13); Menu->Add("Clear costs", 41, 70, 14); Menu->Add("Clear time", 41, 70, 15); Menu->Add("Clear connects", 41, 70, 16); Menu->Show(); sprintf(Temp, "%04d-%04d", TermHeader.RangeStart, TermHeader.RangeStop); textAttr(PhoneScreen, Integers[cMenuBar]); mvwaddstr(PhoneScreen, 1, 61, Temp); textAttr(PhoneScreen, Integers[cMenuOptions]); OnlyTag = 0; mvwaddstr(PhoneScreen, 2, 67, "No"); wrefresh(PhoneScreen); Key = 0; nl(); while (Key != '\e') { Key = getEscChar(); if (Key == '\n') switch(Menu->Focus){ case 0: Menu->Focus = 128; Menu->Show(); textAttr(PhoneScreen, Integers[cEdit]); sprintf(Temp, "%04d", TermHeader.RangeStart); if (getstring(PhoneScreen, 1,61,Temp,NumberEdit,"\e\n",4,-1,Temp) == '\n') if (i=atoi(Temp), i >= 1 && i <=TermHeader.Num) TermHeader.RangeStart = atoi(Temp); sprintf(Temp, "%04d", TermHeader.RangeStop); if (getstring(PhoneScreen, 1,66,Temp,NumberEdit,"\e\n",4,-1,Temp) == '\n') if (i=atoi(Temp),i >=1 && i >= TermHeader.RangeStart && i <=TermHeader.Num) TermHeader.RangeStop = i; if (TermHeader.RangeStop > TermHeader.Num) TermHeader.RangeStop = TermHeader.Num; Menu->Focus = 0; Menu->Show(); break; case 1: OnlyTag = OnlyTag ^ 1; break; case 2: x = ChooseBaud(PhoneScreen, 300); j = ChooseBaud(PhoneScreen, 300); if (ChooseYesno(PhoneScreen, "Do you want to change the baud?")){ Tmp = (tTermPhoneRec *)PhoneBook->Base->Next; for (i=1;i<TermHeader.RangeStart;i++) Tmp = (tTermPhoneRec *)Tmp->Next; for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){ if (OnlyTag) if (Tmp->Baud == x && Tmp->Tag == 1) Tmp->Baud = j; if (!OnlyTag) if (Tmp->Baud == x) Tmp->Baud = j; Tmp = (tTermPhoneRec *)Tmp->Next; } } break; case 3: j = ChooseBaud(PhoneScreen, 300); if (ChooseYesno(PhoneScreen, "Do you want to change the baud?")){ Tmp = (tTermPhoneRec *)PhoneBook->Base->Next; for (i=1;i<TermHeader.RangeStart;i++) Tmp = (tTermPhoneRec *)Tmp->Next; for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){ if (OnlyTag) if (Tmp->Tag == 1) Tmp->Baud = j; if (!OnlyTag) Tmp->Baud = j; Tmp = (tTermPhoneRec *)Tmp->Next; } } break; case 4: j = ChooseDevice(PhoneScreen, 0, 0); if (ChooseYesno(PhoneScreen, "Do you want to change the device?")){ Tmp = (tTermPhoneRec *)PhoneBook->Base->Next; for (i=1;i<TermHeader.RangeStart;i++) Tmp = (tTermPhoneRec *)Tmp->Next; for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){ if (OnlyTag) if (Tmp->Tag == 1) Tmp->Device = j; if (!OnlyTag) Tmp->Device = j; Tmp = (tTermPhoneRec *)Tmp->Next; } } break; case 5: j = ChooseUser(PhoneScreen); if (ChooseYesno(PhoneScreen, "Do you want to change the user?")){ Tmp = (tTermPhoneRec *)PhoneBook->Base->Next; for (i=1;i<TermHeader.RangeStart;i++) Tmp = (tTermPhoneRec *)Tmp->Next; for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){ if (OnlyTag) if (Tmp->Tag == 1) Tmp->User = j; if (!OnlyTag) Tmp->User = j; Tmp = (tTermPhoneRec *)Tmp->Next; } } break; case 6: j = ColorChoose(PhoneScreen, 0); if (ChooseYesno(PhoneScreen, "Do you want to change the color?")){ Tmp = (tTermPhoneRec *)PhoneBook->Base->Next; for (i=1;i<TermHeader.RangeStart;i++) Tmp = (tTermPhoneRec *)Tmp->Next; for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){ if (OnlyTag) if (Tmp->Tag == 1) Tmp->Color = j; if (!OnlyTag) Tmp->Color = j; Tmp = (tTermPhoneRec *)Tmp->Next; } } break; case 7: j = ChooseTerminal(PhoneScreen, 0); if (ChooseYesno(PhoneScreen, "Do you want to change the terminal?")){ Tmp = (tTermPhoneRec *)PhoneBook->Base->Next; for (i=1;i<TermHeader.RangeStart;i++) Tmp = (tTermPhoneRec *)Tmp->Next; for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){ if (OnlyTag) if (Tmp->Tag == 1) Tmp->Terminal = j; if (!OnlyTag) Tmp->Terminal = j; Tmp = (tTermPhoneRec *)Tmp->Next; } } break; case 8: j = ChoosePrefix(PhoneScreen, 0); if (ChooseYesno(PhoneScreen, "Do you want to change the prefix?")){ Tmp = (tTermPhoneRec *)PhoneBook->Base->Next; for (i=1;i<TermHeader.RangeStart;i++) Tmp = (tTermPhoneRec *)Tmp->Next; for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){ if (OnlyTag) if (Tmp->Tag == 1) Tmp->DialPrefix = j; if (!OnlyTag) Tmp->DialPrefix = j; Tmp = (tTermPhoneRec *)Tmp->Next; } } break; case 9: j = ChooseSuffix(PhoneScreen, 0); if (ChooseYesno(PhoneScreen, "Do you want to change the suffix?")){ Tmp = (tTermPhoneRec *)PhoneBook->Base->Next; for (i=1;i<TermHeader.RangeStart;i++) Tmp = (tTermPhoneRec *)Tmp->Next; for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){ if (OnlyTag) if (Tmp->Tag == 1) Tmp->DialSuffix = j; if (!OnlyTag) Tmp->DialSuffix = j; Tmp = (tTermPhoneRec *)Tmp->Next; } } break; case 10: Tmp = (tTermPhoneRec *)PhoneBook->Base->Next; for (i=1;i<TermHeader.RangeStart;i++) Tmp = (tTermPhoneRec *)Tmp->Next; for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){ Tmp->Tag = 1; Tmp = (tTermPhoneRec *)Tmp->Next; } break; case 11: Tmp = (tTermPhoneRec *)PhoneBook->Base->Next; for (i=1;i<TermHeader.RangeStart;i++) Tmp = (tTermPhoneRec *)Tmp->Next; for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){ if (Tmp->Password[0] != 0) Tmp->Tag = 1; Tmp = (tTermPhoneRec *)Tmp->Next; } break; case 12: Temp[0] = 0; EnterPassword(Temp); if (Temp[0] != 0){ Tmp = (tTermPhoneRec *)PhoneBook->Base->Next; for (i=1;i<TermHeader.RangeStart;i++) Tmp = (tTermPhoneRec *)Tmp->Next; for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){ if (OnlyTag && Tmp->Tag == 1) CharToPas(Tmp->Password, Temp); if (!OnlyTag) CharToPas(Tmp->Password, Temp); Tmp = (tTermPhoneRec *)Tmp->Next; } } break; case 13: if (ChooseYesno(PhoneScreen, "Do you want to clear the costs?")){ Tmp = (tTermPhoneRec *)PhoneBook->Base->Next; for (i=1;i<TermHeader.RangeStart;i++) Tmp = (tTermPhoneRec *)Tmp->Next; for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){ if (OnlyTag) if (Tmp->Tag == 1) {Tmp->Costs = 0; Tmp->LastCosts = 0;} if (!OnlyTag) {Tmp->Costs = 0; Tmp->LastCosts = 0;} Tmp = (tTermPhoneRec *)Tmp->Next; } } break; case 14: if (ChooseYesno(PhoneScreen, "Do you want to clear the times?")){ Tmp = (tTermPhoneRec *)PhoneBook->Base->Next; for (i=1;i<TermHeader.RangeStart;i++) Tmp = (tTermPhoneRec *)Tmp->Next; for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){ if (OnlyTag) if (Tmp->Tag == 1) {Tmp->Calcmin = 0; Tmp->SecUsed = 0;} if (!OnlyTag) {Tmp->Calcmin = 0; Tmp->SecUsed = 0;} Tmp = (tTermPhoneRec *)Tmp->Next; } } break; case 15: if (ChooseYesno(PhoneScreen, "Do you want to clear the connects count?")){ Tmp = (tTermPhoneRec *)PhoneBook->Base->Next; for (i=1;i<TermHeader.RangeStart;i++) Tmp = (tTermPhoneRec *)Tmp->Next; for (i=TermHeader.RangeStart;i<=TermHeader.RangeStop;i++){ if (OnlyTag) if (Tmp->Tag == 1) Tmp->Connects = 0; if (!OnlyTag) Tmp->Connects = 0; Tmp = (tTermPhoneRec *)Tmp->Next; } } break; default:break; } Menu->GetInput(Key); if (Menu->Focus == 0){ textAttr(PhoneScreen, Integers[cMenuBar]); } else { textAttr(PhoneScreen, Integers[cMenuOptions]); } sprintf(Temp, "%04d-%04d", TermHeader.RangeStart, TermHeader.RangeStop); mvwaddstr(PhoneScreen, 1, 61, Temp); if (Menu->Focus == 1){ textAttr(PhoneScreen, Integers[cMenuBar]); } else { textAttr(PhoneScreen, Integers[cMenuOptions]); } if (!OnlyTag) mvwaddstr(PhoneScreen, 2, 67, "No "); else mvwaddstr(PhoneScreen, 2, 67, "Yes"); wrefresh(PhoneScreen); } delete Menu; delete Win; ShowTermBook(1); nonl();}void Sort(){ int Key, i, Exit; char Temp[256]; tWindow *Win; tMenu *Menu; Win = new tWindow(PhoneScreen, 40, 0, 70, 10, Integers[cMenu] >> 4, Integers[cMenu] % 16); Win->Frame(1, Integers[cMenu]); Win->Headline("Sort phonebook", Integers[cMenuTitle]); Menu = new tMenu(PhoneScreen, Integers[cMenuText], Integers[cMenuHot], Integers[cMenuBar], Integers[cMenuText], ALIGNLEFT); Menu->Add("Set range", 41, 70, 1); Menu->Add("Ascending names", 41, 70, 2); Menu->Add("Descending names", 41, 70, 3); Menu->Add("Ascending numbers", 41, 70, 4); Menu->Add("Descending numbers", 41, 70, 5); Menu->Add("Most connects", 41, 70, 6); Menu->Add("Last called", 41, 70, 7); Menu->Add("Comment 1", 41, 70, 8); Menu->Add("Comment 2", 41, 70, 9); Menu->Show(); sprintf(Temp, "%04d-%04d", TermHeader.RangeStart, TermHeader.RangeStop); textAttr(PhoneScreen, Integers[cMenuBar]); mvwaddstr(PhoneScreen, 1, 61, Temp); wrefresh(PhoneScreen); Key = 0; Exit = 0; nl(); while (Key != '\e' && !Exit) { Key = getEscChar(); if (Key == '\n') switch(Menu->Focus){ case 0: Menu->Focus = 128; Menu->Show(); textAttr(PhoneScreen, Integers[cEdit]); sprintf(Temp, "%04d", TermHeader.RangeStart); if (getstring(PhoneScreen, 1,61,Temp,NumberEdit,"\e\n",4,-1,Temp) == '\n') if (i=atoi(Temp), i >= 1 && i <=TermHeader.Num) TermHeader.RangeStart = atoi(Temp); sprintf(Temp, "%04d", TermHeader.RangeStop); if (getstring(PhoneScreen, 1,66,Temp,NumberEdit,"\e\n",4,-1,Temp) == '\n') if (i=atoi(Temp),i >=1 && i >= TermHeader.RangeStart && i <=TermHeader.Num) TermHeader.RangeStop = i; if (TermHeader.RangeStop > TermHeader.Num) TermHeader.RangeStop = TermHeader.Num; Menu->Focus = 0; Menu->Show(); break; case 1: SortAscending(TermHeader.RangeStart, TermHeader.RangeStop, NameCompare); Exit = 1; break; case 2: SortDescending(TermHeader.RangeStart, TermHeader.RangeStop, NameCompare); Exit = 1; break; case 3: SortAscending(TermHeader.RangeStart, TermHeader.RangeStop, NumberCompare); Exit = 1; break; case 4: SortDescending(TermHeader.RangeStart, TermHeader.RangeStop, NumberCompare); Exit = 1; break; case 5: SortDescending(TermHeader.RangeStart, TermHeader.RangeStop, ConnectsCompare); Exit = 1; break; case 6: break; case 7: SortAscending(TermHeader.RangeStart, TermHeader.RangeStop, Comment1Compare); Exit = 1; break; case 8: SortAscending(TermHeader.RangeStart, TermHeader.RangeStop, Comment2Compare); Exit = 1; break; default:break; } Menu->GetInput(Key); if (Menu->Focus == 0){ textAttr(PhoneScreen, Integers[cMenuBar]); } else { textAttr(PhoneScreen, Integers[cMenuOptions]); } sprintf(Temp, "%04d-%04d", TermHeader.RangeStart, TermHeader.RangeStop); mvwaddstr(PhoneScreen, 1, 61, Temp); wrefresh(PhoneScreen); } ShowTerm(); nonl();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -