/*
* An edit control on the right hand side, with a static to its left.
*/
-static void staticedit(struct ctlpos *cp, char *stext, int sid, int eid) {
+static void staticedit(struct ctlpos *cp, char *stext,
+ int sid, int eid, int percentedit) {
const int height = (EDITHEIGHT > STATICHEIGHT ?
EDITHEIGHT : STATICHEIGHT);
RECT r;
int lwid, rwid, rpos;
- rpos = GAPBETWEEN + (cp->width + GAPBETWEEN) / 2;
+ rpos = GAPBETWEEN + (100-percentedit) * (cp->width + GAPBETWEEN) / 100;
lwid = rpos - 2*GAPBETWEEN;
rwid = cp->width + GAPBETWEEN - rpos;
IDC0_SESSLOAD,
IDC0_SESSSAVE,
IDC0_SESSDEL,
- IDC0_CLOSEEXIT,
- IDC0_CLOSEWARN,
+ IDC0_PINGSTATIC,
+ IDC0_PINGEDIT,
connectionpanelend,
keyboardpanelstart,
IDC1_FUNCTILDE,
IDC1_FUNCLINUX,
IDC1_FUNCXTERM,
+ IDC1_FUNCVT400,
IDC1_KPSTATIC,
IDC1_KPNORMAL,
IDC1_KPAPPLIC,
IDC3_LOCKSIZE,
IDC3_WINTITLE,
IDC3_WINEDIT,
+ IDC3_CLOSEEXIT,
+ IDC3_CLOSEWARN,
windowpanelend,
telnetpanelstart,
CheckRadioButton (hwnd, IDC0_PROTRAW, IDC0_PROTSSH,
cfg.protocol==PROT_SSH ? IDC0_PROTSSH :
cfg.protocol==PROT_TELNET ? IDC0_PROTTELNET : IDC0_PROTRAW );
- CheckDlgButton (hwnd, IDC0_CLOSEEXIT, cfg.close_on_exit);
- CheckDlgButton (hwnd, IDC0_CLOSEWARN, cfg.warn_on_close);
+ SetDlgItemInt (hwnd, IDC0_PINGEDIT, cfg.ping_interval, FALSE);
CheckRadioButton (hwnd, IDC1_DEL008, IDC1_DEL127,
cfg.bksp_is_delete ? IDC1_DEL127 : IDC1_DEL008);
CheckRadioButton (hwnd, IDC1_HOMETILDE, IDC1_HOMERXVT,
cfg.rxvt_homeend ? IDC1_HOMERXVT : IDC1_HOMETILDE);
CheckRadioButton (hwnd, IDC1_FUNCTILDE, IDC1_FUNCXTERM,
- cfg.funky_type ?
- (cfg.funky_type==2 ? IDC1_FUNCXTERM
- : IDC1_FUNCLINUX )
- : IDC1_FUNCTILDE);
+ cfg.funky_type == 0 ? IDC1_FUNCTILDE :
+ cfg.funky_type == 1 ? IDC1_FUNCLINUX :
+ cfg.funky_type == 2 ? IDC1_FUNCXTERM :
+ cfg.funky_type == 3 ? IDC1_FUNCVT400 :
+ IDC1_FUNCTILDE );
CheckRadioButton (hwnd, IDC1_CURNORMAL, IDC1_CURAPPLIC,
cfg.app_cursor ? IDC1_CURAPPLIC : IDC1_CURNORMAL);
CheckRadioButton (hwnd, IDC1_KPNORMAL, IDC1_KPNH,
CheckDlgButton (hwnd, IDC3_BLINKCUR, cfg.blink_cur);
CheckDlgButton (hwnd, IDC3_SCROLLBAR, cfg.scrollbar);
CheckDlgButton (hwnd, IDC3_LOCKSIZE, cfg.locksize);
+ CheckDlgButton (hwnd, IDC3_CLOSEEXIT, cfg.close_on_exit);
+ CheckDlgButton (hwnd, IDC3_CLOSEWARN, cfg.warn_on_close);
SetDlgItemText (hwnd, IDC4_TTEDIT, cfg.termtype);
SetDlgItemText (hwnd, IDC4_TSEDIT, cfg.termspeed);
"&Save", IDC0_SESSSAVE,
"&Delete", IDC0_SESSDEL, NULL);
}
- checkbox(&cp, "Close Window on E&xit", IDC0_CLOSEEXIT);
- checkbox(&cp, "&Warn on Close", IDC0_CLOSEWARN);
+ staticedit(&cp, "Keepalive inter&val (minutes)",
+ IDC0_PINGSTATIC, IDC0_PINGEDIT, 25);
tab.mask = TCIF_TEXT; tab.pszText = "Connection";
TabCtrl_InsertItem (tabctl, i++, &tab);
radioline(&cp, "Action of Home and End:", IDC1_HOMESTATIC, 2,
"&Standard", IDC1_HOMETILDE,
"&rxvt", IDC1_HOMERXVT, NULL);
- radioline(&cp, "Function key and keypad layout:", IDC1_FUNCSTATIC, 3,
+ radioline(&cp, "Function key and keypad layout:", IDC1_FUNCSTATIC, 4,
"&VT400", IDC1_FUNCTILDE,
"&Linux", IDC1_FUNCLINUX,
- "&Xterm R6", IDC1_FUNCXTERM, NULL);
+ "&Xterm R6", IDC1_FUNCXTERM,
+ "&VT400", IDC1_FUNCVT400, NULL);
radioline(&cp, "Initial state of cursor keys:", IDC1_CURSTATIC, 2,
"&Normal", IDC1_CURNORMAL,
"A&pplication", IDC1_CURAPPLIC, NULL);
TabCtrl_InsertItem (tabctl, i++, &tab);
}
- /* The Terminal panel. Accelerators used: [aco] dghlmnprsw */
+ /* The Terminal panel. Accelerators used: [aco] dghlmnprsvw */
{
struct ctlpos cp;
ctlposinit(&cp, hwnd, 6, 30);
checkbox(&cp, "&Blinking cursor", IDC3_BLINKCUR);
checkbox(&cp, "Displa&y scrollbar", IDC3_SCROLLBAR);
checkbox(&cp, "Loc&k Window size", IDC3_LOCKSIZE);
+ checkbox(&cp, "Close Window on E&xit", IDC3_CLOSEEXIT);
+ checkbox(&cp, "&Warn on Close", IDC3_CLOSEWARN);
tab.mask = TCIF_TEXT; tab.pszText = "Window";
TabCtrl_InsertItem (tabctl, i++, &tab);
}
struct ctlpos cp;
ctlposinit(&cp, hwnd, 6, 30);
if (dlgtype == 0) {
- staticedit(&cp, "Terminal-&type string", IDC4_TTSTATIC, IDC4_TTEDIT);
- staticedit(&cp, "Terminal-&speed string", IDC4_TSSTATIC, IDC4_TSEDIT);
- staticedit(&cp, "Auto-login &username", IDC4_LOGSTATIC, IDC4_LOGEDIT);
+ staticedit(&cp, "Terminal-&type string", IDC4_TTSTATIC, IDC4_TTEDIT, 50);
+ staticedit(&cp, "Terminal-&speed string", IDC4_TSSTATIC, IDC4_TSEDIT, 50);
+ staticedit(&cp, "Auto-login &username", IDC4_LOGSTATIC, IDC4_LOGEDIT, 50);
envsetter(&cp, "Environment variables:", IDC4_ENVSTATIC,
"&Variable", IDC4_VARSTATIC, IDC4_VAREDIT,
"Va&lue", IDC4_VALSTATIC, IDC4_VALEDIT,
struct ctlpos cp;
ctlposinit(&cp, hwnd, 6, 30);
if (dlgtype == 0) {
- staticedit(&cp, "Terminal-&type string", IDC5_TTSTATIC, IDC5_TTEDIT);
- staticedit(&cp, "Auto-login &username", IDC5_LOGSTATIC, IDC5_LOGEDIT);
+ staticedit(&cp, "Terminal-&type string", IDC5_TTSTATIC, IDC5_TTEDIT, 50);
+ staticedit(&cp, "Auto-login &username", IDC5_LOGSTATIC, IDC5_LOGEDIT, 50);
multiedit(&cp,
"&Remote command:", IDC5_CMDSTATIC, IDC5_CMDEDIT, 100,
NULL);
{
HWND ctl;
ctl = GetDlgItem(hwnd, IDC0_HOST);
- if (!ctl) ctl = GetDlgItem(hwnd, IDC0_CLOSEEXIT);
+ if (!ctl) ctl = GetDlgItem(hwnd, IDC0_PINGEDIT);
SetFocus(ctl);
}
if (HIWORD(wParam) == EN_CHANGE)
MyGetDlgItemInt (hwnd, IDC0_PORT, &cfg.port);
break;
- case IDC0_CLOSEEXIT:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.close_on_exit = IsDlgButtonChecked (hwnd, IDC0_CLOSEEXIT);
- break;
- case IDC0_CLOSEWARN:
- if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.warn_on_close = IsDlgButtonChecked (hwnd, IDC0_CLOSEWARN);
- break;
case IDC0_SESSEDIT:
if (HIWORD(wParam) == EN_CHANGE) {
SendDlgItemMessage (hwnd, IDC0_SESSLIST, LB_SETCURSEL,
SendDlgItemMessage (hwnd, IDC0_SESSLIST, LB_SETCURSEL,
(WPARAM) -1, 0);
}
+ case IDC0_PINGEDIT:
+ if (HIWORD(wParam) == EN_CHANGE)
+ MyGetDlgItemInt (hwnd, IDC0_PINGEDIT, &cfg.ping_interval);
+ break;
case IDC1_DEL008:
case IDC1_DEL127:
if (HIWORD(wParam) == BN_CLICKED ||
HIWORD(wParam) == BN_DOUBLECLICKED)
cfg.funky_type = 2;
break;
+ case IDC1_FUNCVT400:
+ if (HIWORD(wParam) == BN_CLICKED ||
+ HIWORD(wParam) == BN_DOUBLECLICKED)
+ cfg.funky_type = 3;
+ break;
case IDC1_FUNCTILDE:
case IDC1_FUNCLINUX:
if (HIWORD(wParam) == BN_CLICKED ||
GetDlgItemText (hwnd, IDC3_WINEDIT, cfg.wintitle,
sizeof(cfg.wintitle)-1);
break;
+ case IDC3_CLOSEEXIT:
+ if (HIWORD(wParam) == BN_CLICKED ||
+ HIWORD(wParam) == BN_DOUBLECLICKED)
+ cfg.close_on_exit = IsDlgButtonChecked (hwnd, IDC3_CLOSEEXIT);
+ break;
+ case IDC3_CLOSEWARN:
+ if (HIWORD(wParam) == BN_CLICKED ||
+ HIWORD(wParam) == BN_DOUBLECLICKED)
+ cfg.warn_on_close = IsDlgButtonChecked (hwnd, IDC3_CLOSEWARN);
+ break;
case IDC4_TTEDIT:
if (HIWORD(wParam) == EN_CHANGE)
GetDlgItemText (hwnd, IDC4_TTEDIT, cfg.termtype,