- MessageBeep (0);
- return 0;
- case IDCANCEL:
- EndDialog (hwnd, 0);
- return 0;
- case IDC_PROTTELNET:
- case IDC_PROTRLOGIN:
- case IDC_PROTSSH:
- case IDC_PROTRAW:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED) {
- int i = IsDlgButtonChecked (hwnd, IDC_PROTSSH);
- int j = IsDlgButtonChecked (hwnd, IDC_PROTTELNET);
- int k = IsDlgButtonChecked (hwnd, IDC_PROTRLOGIN);
- cfg.protocol = i ? PROT_SSH : j ? PROT_TELNET : k ? PROT_RLOGIN : PROT_RAW ;
- if ((cfg.protocol == PROT_SSH && cfg.port != 22) ||
- (cfg.protocol == PROT_TELNET && cfg.port != 23) ||
- (cfg.protocol == PROT_RLOGIN && cfg.port != 513)) {
- cfg.port = i ? 22 : j ? 23 : 513;
- SetDlgItemInt (hwnd, IDC_PORT, cfg.port, FALSE);
- }
- }
- break;
- case IDC_HOST:
- if (HIWORD(wParam) == EN_CHANGE)
- GetDlgItemText (hwnd, IDC_HOST, cfg.host,
- sizeof(cfg.host)-1);
- break;
- case IDC_PORT:
- if (HIWORD(wParam) == EN_CHANGE) {
- GetDlgItemText (hwnd, IDC_PORT, portname, 31);
- if (isdigit(portname[0]))
- MyGetDlgItemInt (hwnd, IDC_PORT, &cfg.port);
- else {
- service = getservbyname(portname, NULL);
- if (service) cfg.port = ntohs(service->s_port);
- else cfg.port = 0;
- }
- }
- break;
- case IDC_SESSEDIT:
- if (HIWORD(wParam) == EN_CHANGE) {
- SendDlgItemMessage (hwnd, IDC_SESSLIST, LB_SETCURSEL,
- (WPARAM) -1, 0);
- GetDlgItemText (hwnd, IDC_SESSEDIT,
- savedsession, sizeof(savedsession)-1);
- savedsession[sizeof(savedsession)-1] = '\0';
- }
- break;
- case IDC_SESSSAVE:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED) {
- /*
- * Save a session
- */
- char str[2048];
- GetDlgItemText (hwnd, IDC_SESSEDIT, str, sizeof(str)-1);
- if (!*str) {
- int n = SendDlgItemMessage (hwnd, IDC_SESSLIST,
- LB_GETCURSEL, 0, 0);
- if (n == LB_ERR) {
- MessageBeep(0);
- break;
- }
- strcpy (str, sessions[n]);
- }
- save_settings (str, !!strcmp(str, "Default Settings"), &cfg);
- get_sesslist (FALSE);
- get_sesslist (TRUE);
- SendDlgItemMessage (hwnd, IDC_SESSLIST, LB_RESETCONTENT,
- 0, 0);
- for (i = 0; i < nsessions; i++)
- SendDlgItemMessage (hwnd, IDC_SESSLIST, LB_ADDSTRING,
- 0, (LPARAM) (sessions[i]));
- SendDlgItemMessage (hwnd, IDC_SESSLIST, LB_SETCURSEL,
- (WPARAM) -1, 0);
- }
- break;
- case IDC_SESSLIST:
- case IDC_SESSLOAD:
- if (LOWORD(wParam) == IDC_SESSLOAD &&
- HIWORD(wParam) != BN_CLICKED &&
- HIWORD(wParam) != BN_DOUBLECLICKED)
- break;
- if (LOWORD(wParam) == IDC_SESSLIST &&
- HIWORD(wParam) != LBN_DBLCLK)
- break;
- {
- int n = SendDlgItemMessage (hwnd, IDC_SESSLIST,
- LB_GETCURSEL, 0, 0);
- int isdef;
- if (n == LB_ERR) {
- MessageBeep(0);
- break;
- }
- isdef = !strcmp(sessions[n], "Default Settings");
- load_settings (sessions[n], !isdef, &cfg);
- init_dlg_ctrls(hwnd);
- if (!isdef)
- SetDlgItemText(hwnd, IDC_SESSEDIT, sessions[n]);
- else
- SetDlgItemText(hwnd, IDC_SESSEDIT, "");
- }
- if (LOWORD(wParam) == IDC_SESSLIST) {
- /*
- * A double-click on a saved session should
- * actually start the session, not just load it.
- * Unless it's Default Settings or some other
- * host-less set of saved settings.
- */
- if (*cfg.host) {
- readytogo = TRUE;
- SetCapture(hwnd);
- }
- }
- break;
- case IDC_SESSDEL:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED) {
- int n = SendDlgItemMessage (hwnd, IDC_SESSLIST,
- LB_GETCURSEL, 0, 0);
- if (n == LB_ERR || n == 0) {
- MessageBeep(0);
- break;
- }
- del_settings(sessions[n]);
- get_sesslist (FALSE);
- get_sesslist (TRUE);
- SendDlgItemMessage (hwnd, IDC_SESSLIST, LB_RESETCONTENT,
- 0, 0);
- for (i = 0; i < nsessions; i++)
- SendDlgItemMessage (hwnd, IDC_SESSLIST, LB_ADDSTRING,
- 0, (LPARAM) (sessions[i]));
- SendDlgItemMessage (hwnd, IDC_SESSLIST, LB_SETCURSEL,
- (WPARAM) -1, 0);
- }
- case IDC_PINGEDIT:
- if (HIWORD(wParam) == EN_CHANGE)
- MyGetDlgItemInt (hwnd, IDC_PINGEDIT, &cfg.ping_interval);
- break;
- case IDC_DEL008:
- case IDC_DEL127:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.bksp_is_delete = IsDlgButtonChecked (hwnd, IDC_DEL127);
- break;
- case IDC_HOMETILDE:
- case IDC_HOMERXVT:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.rxvt_homeend = IsDlgButtonChecked (hwnd, IDC_HOMERXVT);
- break;
- case IDC_FUNCXTERM:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.funky_type = 2;
- break;
- case IDC_FUNCVT400:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.funky_type = 3;
- break;
- case IDC_FUNCTILDE:
- case IDC_FUNCLINUX:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.funky_type = IsDlgButtonChecked (hwnd, IDC_FUNCLINUX);
- break;
- case IDC_KPNORMAL:
- case IDC_KPAPPLIC:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED) {
- cfg.app_keypad = IsDlgButtonChecked (hwnd, IDC_KPAPPLIC);
- cfg.nethack_keypad = FALSE;
- }
- break;
- case IDC_KPNH:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED) {
- cfg.app_keypad = FALSE;
- cfg.nethack_keypad = TRUE;
- }
- break;
- case IDC_CURNORMAL:
- case IDC_CURAPPLIC:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.app_cursor = IsDlgButtonChecked (hwnd, IDC_CURAPPLIC);
- break;
- case IDC_NOAPPLICC:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.no_applic_c = IsDlgButtonChecked (hwnd, IDC_NOAPPLICC);
- break;
- case IDC_NOAPPLICK:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.no_applic_k = IsDlgButtonChecked (hwnd, IDC_NOAPPLICK);
- break;
- case IDC_ALTF4:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.alt_f4 = IsDlgButtonChecked (hwnd, IDC_ALTF4);
- break;
- case IDC_ALTSPACE:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.alt_space = IsDlgButtonChecked (hwnd, IDC_ALTSPACE);
- break;
- case IDC_ALTONLY:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.alt_only = IsDlgButtonChecked (hwnd, IDC_ALTONLY);
- break;
- case IDC_ECHOBACKEND:
- case IDC_ECHOYES:
- case IDC_ECHONO:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED) {
- if (LOWORD(wParam)==IDC_ECHOBACKEND) cfg.localecho=LD_BACKEND;
- if (LOWORD(wParam)==IDC_ECHOYES) cfg.localecho=LD_YES;
- if (LOWORD(wParam)==IDC_ECHONO) cfg.localecho=LD_NO;
- }
- break;
- case IDC_EDITBACKEND:
- case IDC_EDITYES:
- case IDC_EDITNO:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED) {
- if (LOWORD(wParam)==IDC_EDITBACKEND) cfg.localedit=LD_BACKEND;
- if (LOWORD(wParam)==IDC_EDITYES) cfg.localedit=LD_YES;
- if (LOWORD(wParam)==IDC_EDITNO) cfg.localedit=LD_NO;
- }
- break;
- case IDC_ALWAYSONTOP:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.alwaysontop = IsDlgButtonChecked (hwnd, IDC_ALWAYSONTOP);
- break;
- case IDC_SCROLLKEY:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.scroll_on_key = IsDlgButtonChecked (hwnd, IDC_SCROLLKEY);
- break;
- case IDC_SCROLLDISP:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.scroll_on_disp = IsDlgButtonChecked (hwnd, IDC_SCROLLDISP);
- break;
- case IDC_COMPOSEKEY:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.compose_key = IsDlgButtonChecked (hwnd, IDC_COMPOSEKEY);
- break;
- case IDC_WRAPMODE:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.wrap_mode = IsDlgButtonChecked (hwnd, IDC_WRAPMODE);
- break;
- case IDC_DECOM:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.dec_om = IsDlgButtonChecked (hwnd, IDC_DECOM);
- break;
- case IDC_LFHASCR:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.lfhascr = IsDlgButtonChecked (hwnd, IDC_LFHASCR);
- break;
- case IDC_ROWSEDIT:
- if (HIWORD(wParam) == EN_CHANGE)
- MyGetDlgItemInt (hwnd, IDC_ROWSEDIT, &cfg.height);
- break;
- case IDC_COLSEDIT:
- if (HIWORD(wParam) == EN_CHANGE)
- MyGetDlgItemInt (hwnd, IDC_COLSEDIT, &cfg.width);
- break;
- case IDC_SAVEEDIT:
- if (HIWORD(wParam) == EN_CHANGE)
- MyGetDlgItemInt (hwnd, IDC_SAVEEDIT, &cfg.savelines);
- break;
- case IDC_CHOOSEFONT:
- lf.lfHeight = cfg.fontheight;
- lf.lfWidth = lf.lfEscapement = lf.lfOrientation = 0;
- lf.lfItalic = lf.lfUnderline = lf.lfStrikeOut = 0;
- lf.lfWeight = (cfg.fontisbold ? FW_BOLD : 0);
- lf.lfCharSet = cfg.fontcharset;
- lf.lfOutPrecision = OUT_DEFAULT_PRECIS;
- lf.lfClipPrecision = CLIP_DEFAULT_PRECIS;
- lf.lfQuality = DEFAULT_QUALITY;
- lf.lfPitchAndFamily = FIXED_PITCH | FF_DONTCARE;
- strncpy (lf.lfFaceName, cfg.font, sizeof(lf.lfFaceName)-1);
- lf.lfFaceName[sizeof(lf.lfFaceName)-1] = '\0';
-
- cf.lStructSize = sizeof(cf);
- cf.hwndOwner = hwnd;
- cf.lpLogFont = &lf;
- cf.Flags = CF_FIXEDPITCHONLY | CF_FORCEFONTEXIST |
- CF_INITTOLOGFONTSTRUCT | CF_SCREENFONTS;
-
- if (ChooseFont (&cf)) {
- strncpy (cfg.font, lf.lfFaceName, sizeof(cfg.font)-1);
- cfg.font[sizeof(cfg.font)-1] = '\0';
- cfg.fontisbold = (lf.lfWeight == FW_BOLD);
- cfg.fontcharset = lf.lfCharSet;
- cfg.fontheight = lf.lfHeight;
- fmtfont (fontstatic);
- SetDlgItemText (hwnd, IDC_FONTSTATIC, fontstatic);
- }
- break;
- case IDC_BEEP:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.beep = IsDlgButtonChecked (hwnd, IDC_BEEP);
- break;
- case IDC_BLINKTEXT:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.blinktext = IsDlgButtonChecked (hwnd, IDC_BLINKTEXT);
- break;
- case IDC_BCE:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.bce = IsDlgButtonChecked (hwnd, IDC_BCE);
- break;
- case IDC_WINNAME:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.win_name_always = IsDlgButtonChecked (hwnd, IDC_WINNAME);
- break;
- case IDC_HIDEMOUSE:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.hide_mouseptr = IsDlgButtonChecked (hwnd, IDC_HIDEMOUSE);
- break;
- case IDC_CURBLOCK:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.cursor_type = 0;
- break;
- case IDC_CURUNDER:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.cursor_type = 1;
- break;
- case IDC_CURVERT:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.cursor_type = 2;
- break;
- case IDC_BLINKCUR:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.blink_cur = IsDlgButtonChecked (hwnd, IDC_BLINKCUR);
- break;
- case IDC_SCROLLBAR:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.scrollbar = IsDlgButtonChecked (hwnd, IDC_SCROLLBAR);
- break;
- case IDC_LOCKSIZE:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.locksize = IsDlgButtonChecked (hwnd, IDC_LOCKSIZE);
- break;
- case IDC_WINEDIT:
- if (HIWORD(wParam) == EN_CHANGE)
- GetDlgItemText (hwnd, IDC_WINEDIT, cfg.wintitle,
- sizeof(cfg.wintitle)-1);
- break;
- case IDC_COEALWAYS:
- case IDC_COENEVER:
- case IDC_COENORMAL:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED) {
- cfg.close_on_exit = IsDlgButtonChecked (hwnd, IDC_COEALWAYS) ? COE_ALWAYS :
- IsDlgButtonChecked (hwnd, IDC_COENEVER) ? COE_NEVER :
- COE_NORMAL;
- }
- break;
- case IDC_CLOSEWARN:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.warn_on_close = IsDlgButtonChecked (hwnd, IDC_CLOSEWARN);
- break;
- case IDC_TTEDIT:
- if (HIWORD(wParam) == EN_CHANGE)
- GetDlgItemText (hwnd, IDC_TTEDIT, cfg.termtype,
- sizeof(cfg.termtype)-1);
- break;
- case IDC_LGFEDIT:
- if (HIWORD(wParam) == EN_CHANGE)
- GetDlgItemText (hwnd, IDC_LGFEDIT, cfg.logfilename,
- sizeof(cfg.logfilename)-1);
- break;
- case IDC_LGFBUTTON:
- memset(&of, 0, sizeof(of));
-#ifdef OPENFILENAME_SIZE_VERSION_400
- of.lStructSize = OPENFILENAME_SIZE_VERSION_400;
-#else
- of.lStructSize = sizeof(of);
-#endif
- of.hwndOwner = hwnd;
- of.lpstrFilter = "All Files\0*\0\0\0";
- of.lpstrCustomFilter = NULL;
- of.nFilterIndex = 1;
- of.lpstrFile = filename; strcpy(filename, cfg.logfilename);
- of.nMaxFile = sizeof(filename);
- of.lpstrFileTitle = NULL;
- of.lpstrInitialDir = NULL;
- of.lpstrTitle = "Select session log file";
- of.Flags = 0;
- if (GetSaveFileName(&of)) {
- strcpy(cfg.logfilename, filename);
- SetDlgItemText (hwnd, IDC_LGFEDIT, cfg.logfilename);
- }
- break;
- case IDC_LSTATOFF:
- case IDC_LSTATASCII:
- case IDC_LSTATRAW:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED) {
- if (IsDlgButtonChecked (hwnd, IDC_LSTATOFF)) cfg.logtype = 0;
- if (IsDlgButtonChecked (hwnd, IDC_LSTATASCII)) cfg.logtype = 1;
- if (IsDlgButtonChecked (hwnd, IDC_LSTATRAW)) cfg.logtype = 2;
- }
- break;
- case IDC_TSEDIT:
- case IDC_R_TSEDIT:
- if (HIWORD(wParam) == EN_CHANGE)
- GetDlgItemText (hwnd, LOWORD(wParam), cfg.termspeed,
- sizeof(cfg.termspeed)-1);
- break;
- case IDC_LOGEDIT:
- if (HIWORD(wParam) == EN_CHANGE)
- GetDlgItemText (hwnd, IDC_LOGEDIT, cfg.username,
- sizeof(cfg.username)-1);
- break;
- case IDC_RLLUSEREDIT:
- if (HIWORD(wParam) == EN_CHANGE)
- GetDlgItemText (hwnd, IDC_RLLUSEREDIT, cfg.localusername,
- sizeof(cfg.localusername)-1);
- break;
- case IDC_EMBSD:
- case IDC_EMRFC:
- cfg.rfc_environ = IsDlgButtonChecked (hwnd, IDC_EMRFC);
- break;
- case IDC_ENVADD:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED) {
- char str[sizeof(cfg.environmt)];
- char *p;
- GetDlgItemText (hwnd, IDC_VAREDIT, str, sizeof(str)-1);
- if (!*str) {
- MessageBeep(0);
- break;
- }
- p = str + strlen(str);
- *p++ = '\t';
- GetDlgItemText (hwnd, IDC_VALEDIT, p, sizeof(str)-1-(p-str));
- if (!*p) {
- MessageBeep(0);
- break;
- }
- p = cfg.environmt;
- while (*p) {
- while (*p) p++;
- p++;
- }
- if ((p-cfg.environmt) + strlen(str) + 2 < sizeof(cfg.environmt)) {
- strcpy (p, str);
- p[strlen(str)+1] = '\0';
- SendDlgItemMessage (hwnd, IDC_ENVLIST, LB_ADDSTRING,
- 0, (LPARAM)str);
- SetDlgItemText (hwnd, IDC_VAREDIT, "");
- SetDlgItemText (hwnd, IDC_VALEDIT, "");
- } else {
- MessageBox(hwnd, "Environment too big", "PuTTY Error",
- MB_OK | MB_ICONERROR);
- }
- }
- break;
- case IDC_ENVREMOVE:
- if (HIWORD(wParam) != BN_CLICKED &&
- HIWORD(wParam) != BN_DOUBLECLICKED)
- break;
- i = SendDlgItemMessage (hwnd, IDC_ENVLIST, LB_GETCURSEL, 0, 0);
- if (i == LB_ERR)
- MessageBeep (0);
- else {
- char *p, *q;
-
- SendDlgItemMessage (hwnd, IDC_ENVLIST, LB_DELETESTRING,
- i, 0);
- p = cfg.environmt;
- while (i > 0) {
- if (!*p)
- goto disaster;
- while (*p) p++;
- p++;
- i--;
- }
- q = p;
- if (!*p)
- goto disaster;
- while (*p) p++;
- p++;
- while (*p) {
- while (*p)
- *q++ = *p++;
- *q++ = *p++;
- }
- *q = '\0';
- disaster:;
- }
- break;
- case IDC_NOPTY:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.nopty = IsDlgButtonChecked (hwnd, IDC_NOPTY);
- break;
- case IDC_COMPRESS:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.compression = IsDlgButtonChecked (hwnd, IDC_COMPRESS);
- break;
- case IDC_BUGGYMAC:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.buggymac = IsDlgButtonChecked (hwnd, IDC_BUGGYMAC);
- break;
- case IDC_AGENTFWD:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.agentfwd = IsDlgButtonChecked (hwnd, IDC_AGENTFWD);
- break;
- case IDC_CIPHER3DES:
- case IDC_CIPHERBLOWF:
- case IDC_CIPHERDES:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED) {
- if (IsDlgButtonChecked (hwnd, IDC_CIPHER3DES))
- cfg.cipher = CIPHER_3DES;
- else if (IsDlgButtonChecked (hwnd, IDC_CIPHERBLOWF))
- cfg.cipher = CIPHER_BLOWFISH;
- else if (IsDlgButtonChecked (hwnd, IDC_CIPHERDES))
- cfg.cipher = CIPHER_DES;
- }
- break;
- case IDC_SSHPROT1:
- case IDC_SSHPROT2:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED) {
- if (IsDlgButtonChecked (hwnd, IDC_SSHPROT1))
- cfg.sshprot = 1;
- else if (IsDlgButtonChecked (hwnd, IDC_SSHPROT2))
- cfg.sshprot = 2;
- }
- break;
- case IDC_AUTHTIS:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.try_tis_auth = IsDlgButtonChecked (hwnd, IDC_AUTHTIS);
- break;
- case IDC_PKEDIT:
- if (HIWORD(wParam) == EN_CHANGE)
- GetDlgItemText (hwnd, IDC_PKEDIT, cfg.keyfile,
- sizeof(cfg.keyfile)-1);
- break;
- case IDC_CMDEDIT:
- if (HIWORD(wParam) == EN_CHANGE)
- GetDlgItemText (hwnd, IDC_CMDEDIT, cfg.remote_cmd,
- sizeof(cfg.remote_cmd)-1);
- break;
- case IDC_PKBUTTON:
- memset(&of, 0, sizeof(of));
-#ifdef OPENFILENAME_SIZE_VERSION_400
- of.lStructSize = OPENFILENAME_SIZE_VERSION_400;
-#else
- of.lStructSize = sizeof(of);
-#endif
- of.hwndOwner = hwnd;
- of.lpstrFilter = "All Files\0*\0\0\0";
- of.lpstrCustomFilter = NULL;
- of.nFilterIndex = 1;
- of.lpstrFile = filename; strcpy(filename, cfg.keyfile);
- of.nMaxFile = sizeof(filename);
- of.lpstrFileTitle = NULL;
- of.lpstrInitialDir = NULL;
- of.lpstrTitle = "Select Public Key File";
- of.Flags = 0;
- if (GetOpenFileName(&of)) {
- strcpy(cfg.keyfile, filename);
- SetDlgItemText (hwnd, IDC_PKEDIT, cfg.keyfile);
- }
- break;
- case IDC_MBWINDOWS:
- case IDC_MBXTERM:
- cfg.mouse_is_xterm = IsDlgButtonChecked (hwnd, IDC_MBXTERM);
- break;
- case IDC_CCSET:
- {
- BOOL ok;
- int i;
- int n = GetDlgItemInt (hwnd, IDC_CCEDIT, &ok, FALSE);
-
- if (!ok)
- MessageBeep (0);
- else {
- for (i=0; i<256; i++)
- if (SendDlgItemMessage (hwnd, IDC_CCLIST, LB_GETSEL,
- i, 0)) {
- char str[100];
- cfg.wordness[i] = n;
- SendDlgItemMessage (hwnd, IDC_CCLIST,
- LB_DELETESTRING, i, 0);
- sprintf(str, "%d\t(0x%02X)\t%c\t%d", i, i,
- (i>=0x21 && i != 0x7F) ? i : ' ',
- cfg.wordness[i]);
- SendDlgItemMessage (hwnd, IDC_CCLIST,
- LB_INSERTSTRING, i,
- (LPARAM)str);
- }
- }
- }
- break;
- case IDC_BOLDCOLOUR:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED) {
- int n, i;
- cfg.bold_colour = IsDlgButtonChecked (hwnd, IDC_BOLDCOLOUR);
- n = SendDlgItemMessage (hwnd, IDC_COLOURLIST, LB_GETCOUNT, 0, 0);
- if (n != 12+10*cfg.bold_colour) {
- for (i=n; i-- >0 ;)
- SendDlgItemMessage (hwnd, IDC_COLOURLIST,
- LB_DELETESTRING, i, 0);
- for (i=0; i<22; i++)
- if (cfg.bold_colour || permcolour[i])
- SendDlgItemMessage (hwnd, IDC_COLOURLIST,
- LB_ADDSTRING, 0,
- (LPARAM) colours[i]);
- }
- }
- break;
- case IDC_PALETTE:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.try_palette = IsDlgButtonChecked (hwnd, IDC_PALETTE);
- break;
- case IDC_COLOURLIST:
- if (HIWORD(wParam) == LBN_DBLCLK ||
- HIWORD(wParam) == LBN_SELCHANGE) {
- int i = SendDlgItemMessage (hwnd, IDC_COLOURLIST, LB_GETCURSEL,
- 0, 0);
- if (!cfg.bold_colour)
- i = (i < 3 ? i*2 : i == 3 ? 5 : i*2-2);
- SetDlgItemInt (hwnd, IDC_RVALUE, cfg.colours[i][0], FALSE);
- SetDlgItemInt (hwnd, IDC_GVALUE, cfg.colours[i][1], FALSE);
- SetDlgItemInt (hwnd, IDC_BVALUE, cfg.colours[i][2], FALSE);
- }
- break;
- case IDC_CHANGE:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED) {
- static CHOOSECOLOR cc;
- static DWORD custom[16] = {0}; /* zero initialisers */
- int i = SendDlgItemMessage (hwnd, IDC_COLOURLIST, LB_GETCURSEL,
- 0, 0);
- if (!cfg.bold_colour)
- i = (i < 3 ? i*2 : i == 3 ? 5 : i*2-2);
- cc.lStructSize = sizeof(cc);
- cc.hwndOwner = hwnd;
- cc.hInstance = (HWND)hinst;
- cc.lpCustColors = custom;
- cc.rgbResult = RGB (cfg.colours[i][0], cfg.colours[i][1],
- cfg.colours[i][2]);
- cc.Flags = CC_FULLOPEN | CC_RGBINIT;
- if (ChooseColor(&cc)) {
- cfg.colours[i][0] =
- (unsigned char) (cc.rgbResult & 0xFF);
- cfg.colours[i][1] =
- (unsigned char) (cc.rgbResult >> 8) & 0xFF;
- cfg.colours[i][2] =
- (unsigned char) (cc.rgbResult >> 16) & 0xFF;
- SetDlgItemInt (hwnd, IDC_RVALUE, cfg.colours[i][0],
- FALSE);
- SetDlgItemInt (hwnd, IDC_GVALUE, cfg.colours[i][1],
- FALSE);
- SetDlgItemInt (hwnd, IDC_BVALUE, cfg.colours[i][2],
- FALSE);
- }
- }
- break;
- case IDC_NOXLAT:
- case IDC_KOI8WIN1251:
- case IDC_88592WIN1250:
- case IDC_88592CP852:
- cfg.xlat_enablekoiwin =
- IsDlgButtonChecked (hwnd, IDC_KOI8WIN1251);
- cfg.xlat_88592w1250 =
- IsDlgButtonChecked (hwnd, IDC_88592WIN1250);
- cfg.xlat_88592cp852 =
- IsDlgButtonChecked (hwnd, IDC_88592CP852);
- break;
- case IDC_CAPSLOCKCYR:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED) {
- cfg.xlat_capslockcyr =
- IsDlgButtonChecked (hwnd, IDC_CAPSLOCKCYR);
- }
- break;
- case IDC_VTXWINDOWS:
- case IDC_VTOEMANSI:
- case IDC_VTOEMONLY:
- case IDC_VTPOORMAN:
- cfg.vtmode =
- (IsDlgButtonChecked (hwnd, IDC_VTXWINDOWS) ? VT_XWINDOWS :
- IsDlgButtonChecked (hwnd, IDC_VTOEMANSI) ? VT_OEMANSI :
- IsDlgButtonChecked (hwnd, IDC_VTOEMONLY) ? VT_OEMONLY :
- VT_POORMAN);
- break;
- case IDC_X11_FORWARD:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.x11_forward = IsDlgButtonChecked (hwnd, IDC_X11_FORWARD);
- break;
- case IDC_X11_DISPLAY:
- if (HIWORD(wParam) == EN_CHANGE)
- GetDlgItemText (hwnd, IDC_X11_DISPLAY, cfg.x11_display,
- sizeof(cfg.x11_display)-1);
- break;
- }
- return 0;