Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mRemoteNG/PuTTYNG.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'DIALOG.C')
-rw-r--r--DIALOG.C156
1 files changed, 79 insertions, 77 deletions
diff --git a/DIALOG.C b/DIALOG.C
index 7409daaa..b9306982 100644
--- a/DIALOG.C
+++ b/DIALOG.C
@@ -204,31 +204,31 @@ void *ctrl_alloc(struct controlbox *b, size_t size)
return ctrl_alloc_with_free(b, size, ctrl_default_free);
}
-static union control *ctrl_new(struct controlset *s, int type,
- intorptr helpctx, handler_fn handler,
- intorptr context)
+static dlgcontrol *ctrl_new(struct controlset *s, int type,
+ HelpCtx helpctx, handler_fn handler,
+ intorptr context)
{
- union control *c = snew(union control);
+ dlgcontrol *c = snew(dlgcontrol);
sgrowarray(s->ctrls, s->ctrlsize, s->ncontrols);
s->ctrls[s->ncontrols++] = c;
/*
* Fill in the standard fields.
*/
- c->generic.type = type;
- c->generic.tabdelay = false;
- c->generic.column = COLUMN_FIELD(0, s->ncolumns);
- c->generic.helpctx = helpctx;
- c->generic.handler = handler;
- c->generic.context = context;
- c->generic.label = NULL;
- c->generic.align_next_to = NULL;
+ c->type = type;
+ c->delay_taborder = false;
+ c->column = COLUMN_FIELD(0, s->ncolumns);
+ c->helpctx = helpctx;
+ c->handler = handler;
+ c->context = context;
+ c->label = NULL;
+ c->align_next_to = NULL;
return c;
}
/* `ncolumns' is followed by that many percentages, as integers. */
-union control *ctrl_columns(struct controlset *s, int ncolumns, ...)
+dlgcontrol *ctrl_columns(struct controlset *s, int ncolumns, ...)
{
- union control *c = ctrl_new(s, CTRL_COLUMNS, P(NULL), NULL, P(NULL));
+ dlgcontrol *c = ctrl_new(s, CTRL_COLUMNS, NULL_HELPCTX, NULL, P(NULL));
assert(s->ncolumns == 1 || ncolumns == 1);
c->columns.ncols = ncolumns;
s->ncolumns = ncolumns;
@@ -246,33 +246,33 @@ union control *ctrl_columns(struct controlset *s, int ncolumns, ...)
return c;
}
-union control *ctrl_editbox(struct controlset *s, const char *label,
- char shortcut, int percentage,
- intorptr helpctx, handler_fn handler,
- intorptr context, intorptr context2)
+dlgcontrol *ctrl_editbox(struct controlset *s, const char *label,
+ char shortcut, int percentage,
+ HelpCtx helpctx, handler_fn handler,
+ intorptr context, intorptr context2)
{
- union control *c = ctrl_new(s, CTRL_EDITBOX, helpctx, handler, context);
- c->editbox.label = label ? dupstr(label) : NULL;
+ dlgcontrol *c = ctrl_new(s, CTRL_EDITBOX, helpctx, handler, context);
+ c->label = label ? dupstr(label) : NULL;
c->editbox.shortcut = shortcut;
c->editbox.percentwidth = percentage;
c->editbox.password = false;
c->editbox.has_list = false;
- c->editbox.context2 = context2;
+ c->context2 = context2;
return c;
}
-union control *ctrl_combobox(struct controlset *s, const char *label,
- char shortcut, int percentage,
- intorptr helpctx, handler_fn handler,
- intorptr context, intorptr context2)
+dlgcontrol *ctrl_combobox(struct controlset *s, const char *label,
+ char shortcut, int percentage,
+ HelpCtx helpctx, handler_fn handler,
+ intorptr context, intorptr context2)
{
- union control *c = ctrl_new(s, CTRL_EDITBOX, helpctx, handler, context);
- c->editbox.label = label ? dupstr(label) : NULL;
+ dlgcontrol *c = ctrl_new(s, CTRL_EDITBOX, helpctx, handler, context);
+ c->label = label ? dupstr(label) : NULL;
c->editbox.shortcut = shortcut;
c->editbox.percentwidth = percentage;
c->editbox.password = false;
c->editbox.has_list = true;
- c->editbox.context2 = context2;
+ c->context2 = context2;
return c;
}
@@ -282,14 +282,14 @@ union control *ctrl_combobox(struct controlset *s, const char *label,
* title is expected to be followed by a shortcut _iff_ `shortcut'
* is NO_SHORTCUT.
*/
-union control *ctrl_radiobuttons(struct controlset *s, const char *label,
- char shortcut, int ncolumns, intorptr helpctx,
+dlgcontrol *ctrl_radiobuttons_fn(struct controlset *s, const char *label,
+ char shortcut, int ncolumns, HelpCtx helpctx,
handler_fn handler, intorptr context, ...)
{
va_list ap;
int i;
- union control *c = ctrl_new(s, CTRL_RADIO, helpctx, handler, context);
- c->radio.label = label ? dupstr(label) : NULL;
+ dlgcontrol *c = ctrl_new(s, CTRL_RADIO, helpctx, handler, context);
+ c->label = label ? dupstr(label) : NULL;
c->radio.shortcut = shortcut;
c->radio.ncolumns = ncolumns;
/*
@@ -328,24 +328,24 @@ union control *ctrl_radiobuttons(struct controlset *s, const char *label,
return c;
}
-union control *ctrl_pushbutton(struct controlset *s, const char *label,
- char shortcut, intorptr helpctx,
- handler_fn handler, intorptr context)
+dlgcontrol *ctrl_pushbutton(struct controlset *s, const char *label,
+ char shortcut, HelpCtx helpctx,
+ handler_fn handler, intorptr context)
{
- union control *c = ctrl_new(s, CTRL_BUTTON, helpctx, handler, context);
- c->button.label = label ? dupstr(label) : NULL;
+ dlgcontrol *c = ctrl_new(s, CTRL_BUTTON, helpctx, handler, context);
+ c->label = label ? dupstr(label) : NULL;
c->button.shortcut = shortcut;
c->button.isdefault = false;
c->button.iscancel = false;
return c;
}
-union control *ctrl_listbox(struct controlset *s, const char *label,
- char shortcut, intorptr helpctx,
- handler_fn handler, intorptr context)
+dlgcontrol *ctrl_listbox(struct controlset *s, const char *label,
+ char shortcut, HelpCtx helpctx,
+ handler_fn handler, intorptr context)
{
- union control *c = ctrl_new(s, CTRL_LISTBOX, helpctx, handler, context);
- c->listbox.label = label ? dupstr(label) : NULL;
+ dlgcontrol *c = ctrl_new(s, CTRL_LISTBOX, helpctx, handler, context);
+ c->label = label ? dupstr(label) : NULL;
c->listbox.shortcut = shortcut;
c->listbox.height = 5; /* *shrug* a plausible default */
c->listbox.draglist = false;
@@ -357,12 +357,12 @@ union control *ctrl_listbox(struct controlset *s, const char *label,
return c;
}
-union control *ctrl_droplist(struct controlset *s, const char *label,
- char shortcut, int percentage, intorptr helpctx,
- handler_fn handler, intorptr context)
+dlgcontrol *ctrl_droplist(struct controlset *s, const char *label,
+ char shortcut, int percentage, HelpCtx helpctx,
+ handler_fn handler, intorptr context)
{
- union control *c = ctrl_new(s, CTRL_LISTBOX, helpctx, handler, context);
- c->listbox.label = label ? dupstr(label) : NULL;
+ dlgcontrol *c = ctrl_new(s, CTRL_LISTBOX, helpctx, handler, context);
+ c->label = label ? dupstr(label) : NULL;
c->listbox.shortcut = shortcut;
c->listbox.height = 0; /* means it's a drop-down list */
c->listbox.draglist = false;
@@ -374,12 +374,12 @@ union control *ctrl_droplist(struct controlset *s, const char *label,
return c;
}
-union control *ctrl_draglist(struct controlset *s, const char *label,
- char shortcut, intorptr helpctx,
- handler_fn handler, intorptr context)
+dlgcontrol *ctrl_draglist(struct controlset *s, const char *label,
+ char shortcut, HelpCtx helpctx,
+ handler_fn handler, intorptr context)
{
- union control *c = ctrl_new(s, CTRL_LISTBOX, helpctx, handler, context);
- c->listbox.label = label ? dupstr(label) : NULL;
+ dlgcontrol *c = ctrl_new(s, CTRL_LISTBOX, helpctx, handler, context);
+ c->label = label ? dupstr(label) : NULL;
c->listbox.shortcut = shortcut;
c->listbox.height = 5; /* *shrug* a plausible default */
c->listbox.draglist = true;
@@ -391,61 +391,63 @@ union control *ctrl_draglist(struct controlset *s, const char *label,
return c;
}
-union control *ctrl_filesel(struct controlset *s, const char *label,
- char shortcut, const char *filter, bool write,
- const char *title, intorptr helpctx,
- handler_fn handler, intorptr context)
+dlgcontrol *ctrl_filesel(struct controlset *s, const char *label,
+ char shortcut, const char *filter, bool write,
+ const char *title, HelpCtx helpctx,
+ handler_fn handler, intorptr context)
{
- union control *c = ctrl_new(s, CTRL_FILESELECT, helpctx, handler, context);
- c->fileselect.label = label ? dupstr(label) : NULL;
+ dlgcontrol *c = ctrl_new(s, CTRL_FILESELECT, helpctx, handler, context);
+ c->label = label ? dupstr(label) : NULL;
c->fileselect.shortcut = shortcut;
c->fileselect.filter = filter;
c->fileselect.for_writing = write;
c->fileselect.title = dupstr(title);
+ c->fileselect.just_button = false;
return c;
}
-union control *ctrl_fontsel(struct controlset *s, const char *label,
- char shortcut, intorptr helpctx,
- handler_fn handler, intorptr context)
+dlgcontrol *ctrl_fontsel(struct controlset *s, const char *label,
+ char shortcut, HelpCtx helpctx,
+ handler_fn handler, intorptr context)
{
- union control *c = ctrl_new(s, CTRL_FONTSELECT, helpctx, handler, context);
- c->fontselect.label = label ? dupstr(label) : NULL;
+ dlgcontrol *c = ctrl_new(s, CTRL_FONTSELECT, helpctx, handler, context);
+ c->label = label ? dupstr(label) : NULL;
c->fontselect.shortcut = shortcut;
return c;
}
-union control *ctrl_tabdelay(struct controlset *s, union control *ctrl)
+dlgcontrol *ctrl_tabdelay(struct controlset *s, dlgcontrol *ctrl)
{
- union control *c = ctrl_new(s, CTRL_TABDELAY, P(NULL), NULL, P(NULL));
+ dlgcontrol *c = ctrl_new(s, CTRL_TABDELAY, NULL_HELPCTX, NULL, P(NULL));
c->tabdelay.ctrl = ctrl;
return c;
}
-union control *ctrl_text(struct controlset *s, const char *text,
- intorptr helpctx)
+dlgcontrol *ctrl_text(struct controlset *s, const char *text,
+ HelpCtx helpctx)
{
- union control *c = ctrl_new(s, CTRL_TEXT, helpctx, NULL, P(NULL));
- c->text.label = dupstr(text);
+ dlgcontrol *c = ctrl_new(s, CTRL_TEXT, helpctx, NULL, P(NULL));
+ c->label = dupstr(text);
+ c->text.wrap = true;
return c;
}
-union control *ctrl_checkbox(struct controlset *s, const char *label,
- char shortcut, intorptr helpctx,
- handler_fn handler, intorptr context)
+dlgcontrol *ctrl_checkbox(struct controlset *s, const char *label,
+ char shortcut, HelpCtx helpctx,
+ handler_fn handler, intorptr context)
{
- union control *c = ctrl_new(s, CTRL_CHECKBOX, helpctx, handler, context);
- c->checkbox.label = label ? dupstr(label) : NULL;
+ dlgcontrol *c = ctrl_new(s, CTRL_CHECKBOX, helpctx, handler, context);
+ c->label = label ? dupstr(label) : NULL;
c->checkbox.shortcut = shortcut;
return c;
}
-void ctrl_free(union control *ctrl)
+void ctrl_free(dlgcontrol *ctrl)
{
int i;
- sfree(ctrl->generic.label);
- switch (ctrl->generic.type) {
+ sfree(ctrl->label);
+ switch (ctrl->type) {
case CTRL_RADIO:
for (i = 0; i < ctrl->radio.nbuttons; i++)
sfree(ctrl->radio.buttons[i]);