* box.
*/
-#include <windows.h>
-
#include <assert.h>
#include <stdlib.h>
{
struct controlset *s;
union control *c;
+ char *str;
if (!midsession) {
/*
dlg_stdcheckbox_handler, I(offsetof(Config,ctrlaltkeys)));
/*
- * Windows allows an arbitrary .WAV to be played as a bell. For
- * this we must search the existing controlset for the
- * radio-button set controlling the `beep' option, and add an
- * extra button to it.
+ * Windows allows an arbitrary .WAV to be played as a bell, and
+ * also the use of the PC speaker. For this we must search the
+ * existing controlset for the radio-button set controlling the
+ * `beep' option, and add extra buttons to it.
*
* Note that although this _looks_ like a hideous hack, it's
* actually all above board. The well-defined interface to the
if (c->generic.type == CTRL_RADIO &&
c->generic.context.i == offsetof(Config, beep)) {
assert(c->generic.handler == dlg_stdradiobutton_handler);
- c->radio.nbuttons++;
+ c->radio.nbuttons += 2;
c->radio.buttons =
- srealloc(c->radio.buttons,
- c->radio.nbuttons * sizeof(*c->radio.buttons));
+ sresize(c->radio.buttons, c->radio.nbuttons, char *);
c->radio.buttons[c->radio.nbuttons-1] =
dupstr("Play a custom sound file");
+ c->radio.buttons[c->radio.nbuttons-2] =
+ dupstr("Beep using the PC speaker");
c->radio.buttondata =
- srealloc(c->radio.buttondata,
- c->radio.nbuttons * sizeof(*c->radio.buttondata));
+ sresize(c->radio.buttondata, c->radio.nbuttons, intorptr);
c->radio.buttondata[c->radio.nbuttons-1] = I(BELL_WAVEFILE);
+ c->radio.buttondata[c->radio.nbuttons-2] = I(BELL_PCSPEAKER);
if (c->radio.shortcuts) {
c->radio.shortcuts =
- srealloc(c->radio.shortcuts,
- (c->radio.nbuttons *
- sizeof(*c->radio.shortcuts)));
+ sresize(c->radio.shortcuts, c->radio.nbuttons, char);
c->radio.shortcuts[c->radio.nbuttons-1] = NO_SHORTCUT;
+ c->radio.shortcuts[c->radio.nbuttons-2] = NO_SHORTCUT;
}
break;
}
* additional options when working with line-drawing
* characters.
*/
- s = ctrl_getset(b, "Window/Translation", "linedraw",
- "Adjust how PuTTY displays line drawing characters");
+ str = dupprintf("Adjust how %s displays line drawing characters", appname);
+ s = ctrl_getset(b, "Window/Translation", "linedraw", str);
+ sfree(str);
{
int i;
for (i = 0; i < s->ncontrols; i++) {
if (c->generic.type == CTRL_RADIO &&
c->generic.context.i == offsetof(Config, vtmode)) {
assert(c->generic.handler == dlg_stdradiobutton_handler);
- c->radio.nbuttons += 2;
+ c->radio.nbuttons += 3;
c->radio.buttons =
- srealloc(c->radio.buttons,
- c->radio.nbuttons * sizeof(*c->radio.buttons));
+ sresize(c->radio.buttons, c->radio.nbuttons, char *);
+ c->radio.buttons[c->radio.nbuttons-3] =
+ dupstr("Font has XWindows encoding");
c->radio.buttons[c->radio.nbuttons-2] =
dupstr("Use font in both ANSI and OEM modes");
c->radio.buttons[c->radio.nbuttons-1] =
dupstr("Use font in OEM mode only");
c->radio.buttondata =
- srealloc(c->radio.buttondata,
- c->radio.nbuttons * sizeof(*c->radio.buttondata));
+ sresize(c->radio.buttondata, c->radio.nbuttons, intorptr);
+ c->radio.buttondata[c->radio.nbuttons-3] = I(VT_XWINDOWS);
c->radio.buttondata[c->radio.nbuttons-2] = I(VT_OEMANSI);
c->radio.buttondata[c->radio.nbuttons-1] = I(VT_OEMONLY);
if (!c->radio.shortcuts) {
int j;
- c->radio.shortcuts =
- smalloc((c->radio.nbuttons *
- sizeof(*c->radio.shortcuts)));
+ c->radio.shortcuts = snewn(c->radio.nbuttons, char);
for (j = 0; j < c->radio.nbuttons; j++)
c->radio.shortcuts[j] = NO_SHORTCUT;
} else {
- c->radio.shortcuts =
- srealloc(c->radio.shortcuts,
- (c->radio.nbuttons *
- sizeof(*c->radio.shortcuts)));
+ c->radio.shortcuts = sresize(c->radio.shortcuts,
+ c->radio.nbuttons, char);
}
+ c->radio.shortcuts[c->radio.nbuttons-3] = 'x';
c->radio.shortcuts[c->radio.nbuttons-2] = 'b';
c->radio.shortcuts[c->radio.nbuttons-1] = 'e';
break;
/*
* RTF paste is Windows-specific.
*/
- s = ctrl_getset(b, "Window/Selection", "trans",
- "Translation of pasted characters");
+ s = ctrl_getset(b, "Window/Selection", "format",
+ "Formatting of pasted characters");
ctrl_checkbox(s, "Paste to clipboard in RTF as well as plain text", 'f',
HELPCTX(selection_rtf),
dlg_stdcheckbox_handler, I(offsetof(Config,rtf_paste)));
*/
s = ctrl_getset(b, "Window/Selection", "mouse",
"Control use of mouse");
- ctrl_radiobuttons(s, "Action of mouse buttons:", NO_SHORTCUT, 1,
+ ctrl_radiobuttons(s, "Action of mouse buttons:", 'm', 1,
HELPCTX(selection_buttons),
dlg_stdradiobutton_handler,
I(offsetof(Config, mouse_is_xterm)),
- "Windows (Right pastes, Middle extends)", 'w', I(0),
- "xterm (Right extends, Middle pastes)", 'x', I(1), NULL);
+ "Windows (Middle extends, Right brings up menu)", I(2),
+ "Compromise (Middle extends, Right pastes)", I(0),
+ "xterm (Right extends, Middle pastes)", I(1), NULL);
/*
* This really ought to go at the _top_ of its box, not the
* bottom, so we'll just do some shuffling now we've set it
ctrl_checkbox(s, "Attempt to use logical palettes", 'l',
HELPCTX(colours_logpal),
dlg_stdcheckbox_handler, I(offsetof(Config,try_palette)));
+ ctrl_checkbox(s, "Use system colours", 's',
+ HELPCTX(colours_system),
+ dlg_stdcheckbox_handler, I(offsetof(Config,system_colour)));
+
/*
* Resize-by-changing-font is a Windows insanity.