X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/c6f21f1b5fbf31e9014822c480ebec6bacb22aa3..f160b7b8908cac4a7ca37b49928b7855fe0a11fe:/dialog.h diff --git a/dialog.h b/dialog.h index a124e1ab..0cabb3d3 100644 --- a/dialog.h +++ b/dialog.h @@ -209,6 +209,10 @@ union control { * has a drop-down list built in. (Note that a _non_- * editable drop-down list is done as a special case of a * list box.) + * + * Don't try setting has_list and password on the same + * control; front ends are not required to support that + * combination. */ int has_list; /* @@ -282,6 +286,11 @@ union control { * Return even if it doesn't have the input focus. */ int isdefault; + /* + * Also, the reverse of this: a default cancel-type button, + * which is implicitly pressed when you hit Escape. + */ + int iscancel; } button; struct { STANDARD_PREFIX; @@ -300,9 +309,16 @@ union control { */ int draglist; /* - * If this is set, the list can have more than one element - * selected at a time. This is not guaranteed to work on a - * drop-down list, so don't try it! + * If this is non-zero, the list can have more than one + * element selected at a time. This is not guaranteed to + * work on a drop-down list, so don't try it! + * + * Different non-zero values request slightly different + * types of multi-selection (this may well be meaningful + * only in GTK, so everyone else can ignore it if they + * want). 1 means the list box expects to have individual + * items selected, whereas 2 means it expects the user to + * want to select a large contiguous range at a time. */ int multisel; /* @@ -321,6 +337,11 @@ union control { * the respective widths of `ncols' columns, which together * will exactly fit the width of the list box. Otherwise * `percentages' must be NULL. + * + * There should never be more than one column in a + * drop-down list (one with height==0), because front ends + * may have to implement it as a special case of an + * editable combo box. */ int ncols; /* number of columns */ int *percentages; /* % width of each column */ @@ -575,8 +596,8 @@ void dlg_listbox_add(union control *ctrl, void *dlg, char const *text); * strings in any listbox then you MUST not assign them different * IDs and expect to get meaningful results back. */ -void dlg_listbox_addwithindex(union control *ctrl, void *dlg, - char const *text, int id); +void dlg_listbox_addwithid(union control *ctrl, void *dlg, + char const *text, int id); int dlg_listbox_getid(union control *ctrl, void *dlg, int index); /* dlg_listbox_index returns <0 if no single element is selected. */ int dlg_listbox_index(union control *ctrl, void *dlg); @@ -599,11 +620,16 @@ void dlg_update_done(union control *ctrl, void *dlg); */ void dlg_set_focus(union control *ctrl, void *dlg); /* - * Return the `ctrl' structure for the control that had the input - * focus before this one. This is NOT GUARANTEED to work on all - * platforms, so don't base any critical functionality on it! + * Change the label text on a control. + */ +void dlg_label_change(union control *ctrl, void *dlg, char const *text); +/* + * Return the `ctrl' structure for the most recent control that had + * the input focus apart from the one mentioned. This is NOT + * GUARANTEED to work on all platforms, so don't base any critical + * functionality on it! */ -union control *dlg_last_focused(void *dlg); +union control *dlg_last_focused(union control *ctrl, void *dlg); /* * During event processing, you might well want to give an error * indication to the user. dlg_beep() is a quick and easy generic