static char **events = NULL;
static int nevents = 0, negsize = 0;
-static HWND logbox = NULL, abtbox = NULL;
-
static int readytogo;
void force_normal(HWND hwnd)
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDOK:
+ case IDCANCEL:
logbox = NULL;
+ SetActiveWindow(GetParent(hwnd));
DestroyWindow (hwnd);
return 0;
case IDN_COPY:
return 0;
case WM_CLOSE:
logbox = NULL;
+ SetActiveWindow(GetParent(hwnd));
DestroyWindow (hwnd);
return 0;
}
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDOK:
- abtbox = NULL;
- DestroyWindow (hwnd);
+ case IDCANCEL:
+ EndDialog(hwnd, TRUE);
return 0;
case IDA_LICENCE:
EnableWindow(hwnd, 0);
}
return 0;
case WM_CLOSE:
- abtbox = NULL;
- DestroyWindow (hwnd);
+ EndDialog(hwnd, TRUE);
return 0;
}
return 0;
IDC_CLOSEEXIT,
sessionpanelend,
+ loggingpanelstart,
+ IDC_BOX_LOGGING1,
+ IDC_LSTATSTATIC,
+ IDC_LSTATOFF,
+ IDC_LSTATASCII,
+ IDC_LSTATRAW,
+ IDC_LGFSTATIC,
+ IDC_LGFEDIT,
+ IDC_LGFBUTTON,
+ loggingpanelend,
+
keyboardpanelstart,
IDC_TITLE_KEYBOARD,
IDC_BOX_KEYBOARD1,
IDC_BEEP,
IDC_BCE,
IDC_BLINKTEXT,
- IDC_LDISCTERM,
- IDC_LSTATSTATIC,
- IDC_LSTATOFF,
- IDC_LSTATASCII,
- IDC_LSTATRAW,
- IDC_LGFSTATIC,
- IDC_LGFEDIT,
- IDC_LGFBUTTON,
+ IDC_ECHOSTATIC,
+ IDC_ECHOBACKEND,
+ IDC_ECHOYES,
+ IDC_ECHONO,
+ IDC_EDITSTATIC,
+ IDC_EDITBACKEND,
+ IDC_EDITYES,
+ IDC_EDITNO,
terminalpanelend,
windowpanelstart,
CheckDlgButton (hwnd, IDC_ALTSPACE, cfg.alt_space);
CheckDlgButton (hwnd, IDC_ALTONLY, cfg.alt_only);
CheckDlgButton (hwnd, IDC_COMPOSEKEY, cfg.compose_key);
- CheckDlgButton (hwnd, IDC_LDISCTERM, cfg.ldisc_term);
+ CheckRadioButton (hwnd, IDC_ECHOBACKEND, IDC_ECHONO,
+ cfg.localecho == LD_BACKEND ? IDC_ECHOBACKEND:
+ cfg.localecho == LD_YES ? IDC_ECHOYES : IDC_ECHONO);
+ CheckRadioButton (hwnd, IDC_EDITBACKEND, IDC_EDITNO,
+ cfg.localedit == LD_BACKEND ? IDC_EDITBACKEND:
+ cfg.localedit == LD_YES ? IDC_EDITYES : IDC_EDITNO);
CheckDlgButton (hwnd, IDC_ALWAYSONTOP, cfg.alwaysontop);
CheckDlgButton (hwnd, IDC_SCROLLKEY, cfg.scroll_on_key);
CheckDlgButton (hwnd, IDC_SCROLLDISP, cfg.scroll_on_disp);
endbox(&cp);
}
+ if (panel == loggingpanelstart) {
+ /* The Logging panel. Accelerators used: [acgo] lpt */
+ struct ctlpos cp;
+ ctlposinit(&cp, hwnd, 80, 3, 13);
+ bartitle(&cp, "Options controlling session logging",
+ IDC_TITLE_TERMINAL);
+ beginbox(&cp, NULL, IDC_BOX_LOGGING1);
+ radiobig(&cp,
+ "Session logging:", IDC_LSTATSTATIC,
+ "Logging &turned off completely", IDC_LSTATOFF,
+ "Log &printable output only", IDC_LSTATASCII,
+ "&Log all session output", IDC_LSTATRAW, NULL);
+ editbutton(&cp, "Log &file name:",
+ IDC_LGFSTATIC, IDC_LGFEDIT, "Bro&wse...",
+ IDC_LGFBUTTON);
+ endbox(&cp);
+ }
+
if (panel == terminalpanelstart) {
- /* The Terminal panel. Accelerators used: [acgo] &dflbenuw */
+ /* The Terminal panel. Accelerators used: [acgo] &dflbentuw */
struct ctlpos cp;
ctlposinit(&cp, hwnd, 80, 3, 13);
bartitle(&cp, "Options controlling the terminal emulation",
checkbox(&cp, "&Beep enabled", IDC_BEEP);
checkbox(&cp, "Use background colour to &erase screen", IDC_BCE);
checkbox(&cp, "Enable bli&nking text", IDC_BLINKTEXT);
- checkbox(&cp, "&Use local terminal line discipline", IDC_LDISCTERM);
endbox(&cp);
- beginbox(&cp, "Control session logging",
+ beginbox(&cp, "Line discipline options",
IDC_BOX_TERMINAL2);
- radiobig(&cp,
- "Session logging:", IDC_LSTATSTATIC,
- "Logging turned &off completely", IDC_LSTATOFF,
- "Log printable output only", IDC_LSTATASCII,
- "Log all session output", IDC_LSTATRAW, NULL);
- editbutton(&cp, "Log &file name:",
- IDC_LGFSTATIC, IDC_LGFEDIT, "Bro&wse...",
- IDC_LGFBUTTON);
+ radioline(&cp, "Local echo:", IDC_ECHOSTATIC, 3,
+ "A&uto", IDC_ECHOBACKEND,
+ "Force on", IDC_ECHOYES,
+ "Force off", IDC_ECHONO, NULL);
+ radioline(&cp, "Local line editing:", IDC_EDITSTATIC, 3,
+ "Au&to", IDC_EDITBACKEND,
+ "Force on", IDC_EDITYES,
+ "Force off", IDC_EDITNO, NULL);
endbox(&cp);
}
* Set up the tree view contents.
*/
hsession = treeview_insert(&tvfaff, 0, "Session");
+ treeview_insert(&tvfaff, 1, "Logging");
treeview_insert(&tvfaff, 0, "Terminal");
treeview_insert(&tvfaff, 1, "Keyboard");
treeview_insert(&tvfaff, 0, "Window");
if (dlgtype == 0) {
treeview_insert(&tvfaff, 1, "Telnet");
treeview_insert(&tvfaff, 1, "Rlogin");
- if (backends[3].backend != NULL)
+ if (backends[3].backend != NULL) {
treeview_insert(&tvfaff, 1, "SSH");
- treeview_insert(&tvfaff, 2, "Tunnels");
+ treeview_insert(&tvfaff, 2, "Tunnels");
+ }
}
/*
}
if (!strcmp(buffer, "Session"))
create_controls(hwnd, dlgtype, sessionpanelstart);
+ if (!strcmp(buffer, "Logging"))
+ create_controls(hwnd, dlgtype, loggingpanelstart);
if (!strcmp(buffer, "Keyboard"))
create_controls(hwnd, dlgtype, keyboardpanelstart);
if (!strcmp(buffer, "Terminal"))
HIWORD(wParam) == BN_DOUBLECLICKED)
cfg.alt_only = IsDlgButtonChecked (hwnd, IDC_ALTONLY);
break;
- case IDC_LDISCTERM:
+ case IDC_ECHOBACKEND:
+ case IDC_ECHOYES:
+ case IDC_ECHONO:
if (HIWORD(wParam) == BN_CLICKED ||
- HIWORD(wParam) == BN_DOUBLECLICKED)
- cfg.ldisc_term = IsDlgButtonChecked (hwnd, IDC_LDISCTERM);
+ 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 ||
of.lpstrFilter = "All Files\0*\0\0\0";
of.lpstrCustomFilter = NULL;
of.nFilterIndex = 1;
- of.lpstrFile = filename; strcpy(filename, cfg.keyfile);
+ 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.keyfile, filename);
- SetDlgItemText (hwnd, IDC_LGFEDIT, cfg.keyfile);
+ strcpy(cfg.logfilename, filename);
+ SetDlgItemText (hwnd, IDC_LGFEDIT, cfg.logfilename);
}
break;
case IDC_LSTATOFF:
hwnd, LogProc);
ShowWindow (logbox, SW_SHOWNORMAL);
}
+ SetActiveWindow(logbox);
}
void showabout (HWND hwnd) {
- if (!abtbox) {
- abtbox = CreateDialog (hinst, MAKEINTRESOURCE(IDD_ABOUTBOX),
- hwnd, AboutProc);
- ShowWindow (abtbox, SW_SHOWNORMAL);
- }
+ DialogBox(hinst, MAKEINTRESOURCE(IDD_ABOUTBOX),hwnd, AboutProc);
}
void verify_ssh_host_key(char *host, int port, char *keytype,