📄 setup.c
字号:
Menu->Add("Dial time", 21, 38, 17); Menu->Add("Dial delay", 21, 38, 18); Menu->Add("Loop delay", 21, 38, 19); Menu->Show(); ShowModem(); wrefresh(Screen); Key = 0; while (Key != '\e'){ Key = getEscChar(); Menu->GetInput(Key); if (Key == '\n'){ textAttr(Screen, Integers[cEdit]); clearok(Screen, TRUE); switch(Menu->Focus){ case 0: i = ChooseDevice(Screen, Integers[DefaultDevice], 1); if (i > 0) Integers[DefaultDevice] = i; break; case 1:ChooseInit(Screen, 0); break; case 2:ChoosePrefix(Screen, 0); break; case 3:ChooseSuffix(Screen, 0); break; case 4: if (getstring(Screen, 10, 40, Strings[ExitStr], ValidEdit, "\e\n", 20, -1, Temp) == '\n') Strings[ExitStr] = (char *)realloc(Strings[ExitStr], strlen(Temp)+1); strcpy(Strings[ExitStr], Temp); break; case 5: if (getstring(Screen, 11, 40, Strings[ConnectStr], ValidEdit, "\e\n", 20, -1, Temp) == '\n') Strings[ConnectStr] = (char *)realloc(Strings[ConnectStr], strlen(Temp)+1); strcpy(Strings[ConnectStr], Temp); break; case 6:ChooseNoConnect(Screen, 0); break; case 7: if (getstring(Screen, 13, 40, Strings[Ring], ValidEdit, "\e\n", 20, -1, Temp) == '\n') Strings[Ring] = (char *)realloc(Strings[Ring], strlen(Temp)+1); strcpy(Strings[Ring], Temp); break; case 8: if (getstring(Screen, 14, 40, Strings[DialCancel], ValidEdit, "\e\n", 20, -1, Temp) == '\n') Strings[DialCancel] = (char *)realloc(Strings[DialCancel], strlen(Temp)+1); strcpy(Strings[DialCancel], Temp); break; case 9: if (getstring(Screen, 15, 40, Strings[AutoAnswerStr], ValidEdit, "\e\n", 20, -1, Temp) == '\n') Strings[AutoAnswerStr] = (char *)realloc(Strings[AutoAnswerStr], strlen(Temp)+1); strcpy(Strings[AutoAnswerStr], Temp); break; case 10:ChooseDeviceInit(Screen, 0); break; case 11: sprintf(Temp, "%d", Integers[DialTime]); if (getstring(Screen, 17, 40, Temp, ValidEdit, "\e\n", 20, -1, Temp) == '\n') Integers[DialTime] = atoi(Temp); break; case 12: sprintf(Temp, "%d", Integers[DialDelay]); if (getstring(Screen, 18, 40, Temp, ValidEdit, "\e\n", 20, -1, Temp) == '\n') Integers[DialDelay] = atoi(Temp); break; case 13: sprintf(Temp, "%d", Integers[LoopDelay]); if (getstring(Screen, 19, 40, Temp, ValidEdit, "\e\n", 20, -1, Temp) == '\n') Integers[LoopDelay] = atoi(Temp); break; default:break; } ShowModem(); wrefresh(Screen); } } delete Menu; delete Win; wmove(Screen, y, x); Screen->_attrs = Attr; clearok(Screen, TRUE); wrefresh(Screen);}void ShowPath(){ int i; char Temp[33], TempString[250]; for (i=0;i<32;i++) Temp[i] = ' '; Temp[32] = 0; textAttr(Screen, Integers[cMenuOptions]); mvwaddstr(Screen, 6, 38, Temp); strcpy(TempString, Strings[LogName]); TempString[32] = 0; mvwaddstr(Screen, 6, 38, TempString); mvwaddstr(Screen, 7, 38, Temp); strcpy(TempString, Strings[DownloadPath]); TempString[32] = 0; mvwaddstr(Screen, 7, 38, TempString); mvwaddstr(Screen, 8, 38, Temp); strcpy(TempString, Strings[UploadPath]); TempString[32] = 0; mvwaddstr(Screen, 8, 38, TempString); mvwaddstr(Screen, 9, 38, Temp); strcpy(TempString, Strings[CapturePath]); TempString[32] = 0; mvwaddstr(Screen, 9, 38, TempString); mvwaddstr(Screen, 10, 38, Temp); strcpy(TempString, Strings[PhonePath]); TempString[32] = 0; mvwaddstr(Screen, 10, 38, TempString); mvwaddstr(Screen, 11, 38, Temp); strcpy(TempString, Strings[LockPath]); TempString[32] = 0; mvwaddstr(Screen, 11, 38, TempString);}void SetupFile(){ tWindow *Win; tMenu *Menu; int Key, y, x, Attr; char Temp[21]; getyx(Screen, y, x); Attr = Screen->_attrs; Win = new tWindow(Screen, 20, 5, 70, 12, Integers[cMenu] >> 4, Integers[cMenu] % 16); Win->Frame(2, Integers[cMenu]); Win->Headline(" Files and Paths ", Integers[cMenuTitle]); Menu = new tMenu(Screen, Integers[cMenu], Integers[cMenuHot], Integers[cMenuBar], Integers[cMenuText], ALIGNLEFT); Menu->Add("Log file name", 21, 36, 6); Menu->Add("Download path", 21, 36, 7); Menu->Add("Upload path", 21, 36, 8); Menu->Add("Capture path", 21, 36, 9); Menu->Add("Phone path", 21, 36, 10); Menu->Add("Lock path", 21, 36, 11); Menu->Show(); ShowPath(); wrefresh(Screen); Key = 0; while (Key != '\e'){ Key = getEscChar(); Menu->GetInput(Key); if (Key == '\n'){ textAttr(Screen, Integers[cEdit]); clearok(Screen, TRUE); switch(Menu->Focus){ case 0: if (getstring(Screen, 6, 38, Strings[LogName], FileEdit, "\e\n", 32, -1, Temp) == '\n') Strings[LogName] = (char *)realloc(Strings[LogName], strlen(Temp)+1); strcpy(Strings[LogName], Temp); break; case 1: if (getstring(Screen, 7, 38, Strings[DownloadPath], FileEdit, "\e\n", 32, -1, Temp) == '\n') Strings[DownloadPath] = (char *)realloc(Strings[DownloadPath], strlen(Temp)+1); strcpy(Strings[DownloadPath], Temp); break; case 2: if (getstring(Screen, 8, 38, Strings[UploadPath], FileEdit, "\e\n", 32, -1, Temp) == '\n') Strings[UploadPath] = (char *)realloc(Strings[UploadPath], strlen(Temp)+1); strcpy(Strings[UploadPath], Temp); break; case 3: if (getstring(Screen, 9, 38, Strings[CapturePath], FileEdit, "\e\n", 32, -1, Temp) == '\n') Strings[CapturePath] = (char *)realloc(Strings[CapturePath], strlen(Temp)+1); strcpy(Strings[CapturePath], Temp); break; case 4: if (getstring(Screen, 10, 38, Strings[PhonePath], FileEdit, "\e\n", 32, -1, Temp) == '\n') Strings[PhonePath] = (char *)realloc(Strings[PhonePath], strlen(Temp)+1); strcpy(Strings[PhonePath], Temp); break; case 5: if (getstring(Screen, 11, 38, Strings[LockPath], FileEdit, "\e\n", 32, -1, Temp) == '\n') Strings[LockPath] = (char *)realloc(Strings[LockPath], strlen(Temp)+1); strcpy(Strings[LockPath], Temp); break; default:break; } ShowPath(); wrefresh(Screen); } } delete Menu; delete Win; wmove(Screen, y, x); Screen->_attrs = Attr; clearok(Screen, TRUE); wrefresh(Screen);}void ShowProtocol(int Which){ int i; char Temp[33], Yes[4], TempString[250]; strcpy(Yes, "Yes"); for (i=0;i<32;i++) Temp[i] = ' '; Temp[32] = 0; textAttr(Screen, Integers[cMenuOptions]); mvwaddstr(Screen, 6, 38, Temp); strcpy(TempString, Strings[ProtocolName1+Which]); TempString[32] = 0; mvwaddstr(Screen, 6, 38, TempString); mvwaddstr(Screen, 7, 38, Temp); strcpy(TempString, Strings[ProtocolInfo1+Which]); TempString[32] = 0; mvwaddstr(Screen, 7, 38, TempString); mvwaddstr(Screen, 8, 38, Temp); strcpy(TempString, Strings[ProtocolDlExec1+Which]); TempString[32] = 0; mvwaddstr(Screen, 8, 38, TempString); mvwaddstr(Screen, 9, 38, Temp); strcpy(TempString, Strings[ProtocolUlExec1+Which]); TempString[32] = 0; mvwaddstr(Screen, 9, 38, TempString); for (i=10;i<13;i++) mvwaddstr(Screen, i, 38, "No "); if (Integers[ProtocolAsk1+Which]) mvwaddstr(Screen, 10, 38, Yes); if (Integers[ChangeDl1+Which]) mvwaddstr(Screen, 11, 38, Yes); if (Integers[ChangeUl1+Which]) mvwaddstr(Screen, 12, 38, Yes); for (i=0;i<10;i++){ sprintf(Temp, "%02X", Signature[Which][i+2]); mvwaddstr(Screen, 13, i*2+38, Temp); }}void SetupProtocol(){ tWindow *Win; tMenu *Menu; int Key, y, x, i, Attr, WhichProtocol; char Temp[50], TempStr[50]; getyx(Screen, y, x); Attr = Screen->_attrs; Win = new tWindow(Screen, 20, 5, 70, 14, Integers[cMenu] >> 4, Integers[cMenu] % 16); Win->Frame(2, Integers[cMenu]); Win->Headline(" Protocols ", Integers[cMenuTitle]); Menu = new tMenu(Screen, Integers[cMenu], Integers[cMenuHot], Integers[cMenuBar], Integers[cMenuText], ALIGNLEFT); Menu->Add("Protocol name", 21, 37, 6); Menu->Add("Protocol info", 21, 37, 7); Menu->Add("Donwload exec", 21, 37, 8); Menu->Add("Upload exec", 21, 37, 9); Menu->Add("Ask for name", 21, 37, 10); Menu->Add("Change to ul dir", 21, 37, 11); Menu->Add("Change to dl dir", 21, 37, 12); Menu->Add("Signature", 21, 37, 13); Menu->Show(); ShowProtocol(0); WhichProtocol = 0; wrefresh(Screen); Key = 0; while (Key != '\e'){ Key = getEscChar(); Menu->GetInput(Key); if (Key > 48 && Key < 54){ WhichProtocol = Key - 49; ShowProtocol(WhichProtocol); clearok(Screen, TRUE); wrefresh(Screen); } if (Key == '\n'){ textAttr(Screen, Integers[cEdit]); clearok(Screen, TRUE); switch(Menu->Focus){ case 0: if (getstring(Screen, 6, 38, Strings[ProtocolName1+WhichProtocol], ValidEdit, "\e\n", 32, -1, Temp) == '\n') Strings[ProtocolName1+WhichProtocol] = (char *)realloc(Strings[ProtocolName1+WhichProtocol], strlen(Temp)+1); strcpy(Strings[ProtocolName1+WhichProtocol], Temp); break; case 1: if (getstring(Screen, 7, 38, Strings[ProtocolInfo1+WhichProtocol], ValidEdit, "\e\n", 32, -1, Temp) == '\n') Strings[ProtocolInfo1+WhichProtocol] = (char *)realloc(Strings[ProtocolInfo1+WhichProtocol], strlen(Temp)+1); strcpy(Strings[ProtocolInfo1+WhichProtocol], Temp); break; case 2: if (getstring(Screen, 8, 38, Strings[ProtocolDlExec1+WhichProtocol], ValidEdit, "\e\n", 32, -1, Temp) == '\n') Strings[ProtocolDlExec1+WhichProtocol] = (char *)realloc(Strings[ProtocolDlExec1+WhichProtocol], strlen(Temp)+1); strcpy(Strings[ProtocolDlExec1+WhichProtocol], Temp); break; case 3: if (getstring(Screen, 9, 38, Strings[ProtocolUlExec1+WhichProtocol], ValidEdit, "\e\n", 32, -1, Temp) == '\n') Strings[ProtocolUlExec1+WhichProtocol] = (char *)realloc(Strings[ProtocolUlExec1+WhichProtocol],strlen(Temp)+1); strcpy(Strings[ProtocolUlExec1+WhichProtocol], Temp); break; case 4: Integers[ProtocolAsk1+WhichProtocol] ^= 1; break; case 5: Integers[ChangeDl1+WhichProtocol] ^= 1; break; case 6: Integers[ChangeUl1+WhichProtocol] ^= 1; break; case 7: TempStr[0] = 0; for (i=0;i<10;i++){ sprintf(Temp, "%02X", Signature[WhichProtocol][i+2]); strcat(TempStr, Temp); } if (getstring(Screen, 13, 38, TempStr, HexEdit, "\e\n", 20, -1, Temp) == '\n'){ for (i=0;i<(int)strlen(Temp)/2;i++){ strncpy(TempStr, Temp+i*2, 2); TempStr[2]=0; Signature[WhichProtocol][i+2] = strtol(TempStr, NULL, 16); } } break; default:break; } ShowProtocol(WhichProtocol); wrefresh(Screen); } } delete Menu; delete Win; wmove(Screen, y, x); Screen->_attrs = Attr; clearok(Screen, TRUE); wrefresh(Screen);}void Setup(){ tWindow *Win; tMenu *Menu; int Key, y, x, Attr, Quit; getyx(Screen, y, x); Attr = Screen->_attrs; nl(); Win = new tWindow(Screen, 30, 5, 50, 15, Integers[cMenu] >> 4, Integers[cMenu] % 16); Win->Frame(2, Integers[cMenu]); Win->Headline(" Configuration ", Integers[cMenuTitle]); Menu = new tMenu(Screen, Integers[cMenu], Integers[cMenuHot], Integers[cMenuBar], Integers[cMenuText], ALIGNLEFT); Menu->Add("~C~olors", 31, 50, 6); Menu->Add("Stat~u~s", 31, 50, 7); Menu->Add("~T~oggles", 31, 50, 8); Menu->Add("~M~odem", 31, 50, 9); Menu->Add("~F~iles & Paths", 31, 50, 10); Menu->Add("~P~rotocols", 31, 50, 11); Menu->Add("M~a~cros", 31, 50, 12); Menu->Add("~S~ave & exit", 31, 50, 13); Menu->Add("~E~xit", 31, 50, 14); Menu->Show(); wrefresh(Screen); Key = 0; Quit = 0; while (Key != '\e' && !Quit){ Key = getEscChar(); Menu->GetInput(Key); if (Key == '\n'){ switch(Menu->Focus){ case 0: SetupColors(); break; case 1: SetupStatus(); break; case 2: SetupToggles(); break; case 3: SetupModem(); break; case 4: SetupFile(); break; case 5: SetupProtocol(); break; case 6: ChooseMacro(Screen, 0); break; case 7: if (ChooseYesno(Screen, " Write configuration to disk? ")) if (Integers[DumpVar]) DumpConfig(); else WriteConfig(); Quit = 1; break; case 8: Quit = 1; break; default:break; } wrefresh(Screen); } } delete Menu; delete Win; wmove(Screen, y, x); Screen->_attrs = Attr; nonl();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -