projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Having created and used uxsel, it actually turns out to be
[u/mdw/putty]
/
unix
/
gtkdlg.c
diff --git
a/unix/gtkdlg.c
b/unix/gtkdlg.c
index
6745ba0
..
328e1d3
100644
(file)
--- a/
unix/gtkdlg.c
+++ b/
unix/gtkdlg.c
@@
-207,6
+207,10
@@
void *dlg_alloc_privdata(union control *ctrl, void *dlg, size_t size)
{
struct dlgparam *dp = (struct dlgparam *)dlg;
struct uctrl *uc = dlg_find_byctrl(dp, ctrl);
{
struct dlgparam *dp = (struct dlgparam *)dlg;
struct uctrl *uc = dlg_find_byctrl(dp, ctrl);
+ /*
+ * This is an internal allocation routine, so it's allowed to
+ * use smalloc directly.
+ */
uc->privdata = smalloc(size);
uc->privdata_needs_free = FALSE;
return uc->privdata;
uc->privdata = smalloc(size);
uc->privdata_needs_free = FALSE;
return uc->privdata;
@@
-323,7
+327,7
@@
void dlg_listbox_del(union control *ctrl, void *dlg, int index)
void dlg_listbox_add(union control *ctrl, void *dlg, char const *text)
{
void dlg_listbox_add(union control *ctrl, void *dlg, char const *text)
{
- dlg_listbox_addwithi
ndex
(ctrl, dlg, text, 0);
+ dlg_listbox_addwithi
d
(ctrl, dlg, text, 0);
}
/*
}
/*
@@
-333,8
+337,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.
*/
* strings in any listbox then you MUST not assign them different
* IDs and expect to get meaningful results back.
*/
-void dlg_listbox_addwithi
ndex
(union control *ctrl, void *dlg,
-
char const *text, int id)
+void dlg_listbox_addwithi
d
(union control *ctrl, void *dlg,
+ char const *text, int id)
{
struct dlgparam *dp = (struct dlgparam *)dlg;
struct uctrl *uc = dlg_find_byctrl(dp, ctrl);
{
struct dlgparam *dp = (struct dlgparam *)dlg;
struct uctrl *uc = dlg_find_byctrl(dp, ctrl);
@@
-379,7
+383,7
@@
void dlg_listbox_addwithindex(union control *ctrl, void *dlg,
assert(ncols <=
(uc->ctrl->listbox.ncols ? uc->ctrl->listbox.ncols : 1));
assert(ncols <=
(uc->ctrl->listbox.ncols ? uc->ctrl->listbox.ncols : 1));
- percents = s
malloc(ncols * sizeof(gint)
);
+ percents = s
newn(ncols, gint
);
percents[ncols-1] = 100;
for (i = 0; i < ncols-1; i++) {
percents[i] = uc->ctrl->listbox.percentages[i];
percents[ncols-1] = 100;
for (i = 0; i < ncols-1; i++) {
percents[i] = uc->ctrl->listbox.percentages[i];
@@
-712,7
+716,7
@@
void dlg_end(void *dlg, int value)
{
struct dlgparam *dp = (struct dlgparam *)dlg;
dp->retval = value;
{
struct dlgparam *dp = (struct dlgparam *)dlg;
dp->retval = value;
- gtk_
main_quit(
);
+ gtk_
widget_destroy(dp->window
);
}
void dlg_refresh(union control *ctrl, void *dlg)
}
void dlg_refresh(union control *ctrl, void *dlg)
@@
-906,7
+910,6
@@
static int listitem_key(GtkWidget *item, GdkEventKey *event, gpointer data,
event->keyval==GDK_Page_Up || event->keyval==GDK_KP_Page_Up)
? 2 : 1;
int i, n;
event->keyval==GDK_Page_Up || event->keyval==GDK_KP_Page_Up)
? 2 : 1;
int i, n;
- GtkWidget *thisitem;
GList *children, *chead;
chead = children = gtk_container_children(GTK_CONTAINER(list));
GList *children, *chead;
chead = children = gtk_container_children(GTK_CONTAINER(list));
@@
-960,13
+963,13
@@
static int listitem_key(GtkWidget *item, GdkEventKey *event, gpointer data,
static int listitem_single_key(GtkWidget *item, GdkEventKey *event,
gpointer data)
{
static int listitem_single_key(GtkWidget *item, GdkEventKey *event,
gpointer data)
{
- listitem_key(item, event, data, FALSE);
+
return
listitem_key(item, event, data, FALSE);
}
static int listitem_multi_key(GtkWidget *item, GdkEventKey *event,
gpointer data)
{
}
static int listitem_multi_key(GtkWidget *item, GdkEventKey *event,
gpointer data)
{
- listitem_key(item, event, data, TRUE);
+
return
listitem_key(item, event, data, TRUE);
}
static int listitem_button(GtkWidget *item, GdkEventButton *event,
}
static int listitem_button(GtkWidget *item, GdkEventButton *event,
@@
-1039,7
+1042,7
@@
static void draglist_down(GtkButton *button, gpointer data)
static void filesel_ok(GtkButton *button, gpointer data)
{
static void filesel_ok(GtkButton *button, gpointer data)
{
- struct dlgparam *dp = (struct dlgparam *)data;
+ /* struct dlgparam *dp = (struct dlgparam *)data; */
gpointer filesel = gtk_object_get_data(GTK_OBJECT(button), "user-data");
struct uctrl *uc = gtk_object_get_data(GTK_OBJECT(filesel), "user-data");
char *name = gtk_file_selection_get_filename(GTK_FILE_SELECTION(filesel));
gpointer filesel = gtk_object_get_data(GTK_OBJECT(button), "user-data");
struct uctrl *uc = gtk_object_get_data(GTK_OBJECT(filesel), "user-data");
char *name = gtk_file_selection_get_filename(GTK_FILE_SELECTION(filesel));
@@
-1048,7
+1051,7
@@
static void filesel_ok(GtkButton *button, gpointer data)
static void fontsel_ok(GtkButton *button, gpointer data)
{
static void fontsel_ok(GtkButton *button, gpointer data)
{
- struct dlgparam *dp = (struct dlgparam *)data;
+ /* struct dlgparam *dp = (struct dlgparam *)data; */
gpointer fontsel = gtk_object_get_data(GTK_OBJECT(button), "user-data");
struct uctrl *uc = gtk_object_get_data(GTK_OBJECT(fontsel), "user-data");
char *name = gtk_font_selection_dialog_get_font_name
gpointer fontsel = gtk_object_get_data(GTK_OBJECT(button), "user-data");
struct uctrl *uc = gtk_object_get_data(GTK_OBJECT(fontsel), "user-data");
char *name = gtk_font_selection_dialog_get_font_name
@@
-1244,7
+1247,7
@@
GtkWidget *layout_ctrls(struct dlgparam *dp, struct Shortcuts *scs,
continue; /* no actual control created */
}
continue; /* no actual control created */
}
- uc = s
malloc(sizeof(struct uctrl)
);
+ uc = s
new(struct uctrl
);
uc->ctrl = ctrl;
uc->privdata = NULL;
uc->privdata_needs_free = FALSE;
uc->ctrl = ctrl;
uc->privdata = NULL;
uc->privdata_needs_free = FALSE;
@@
-1309,7
+1312,7
@@
GtkWidget *layout_ctrls(struct dlgparam *dp, struct Shortcuts *scs,
group = NULL;
uc->nbuttons = ctrl->radio.nbuttons;
group = NULL;
uc->nbuttons = ctrl->radio.nbuttons;
- uc->buttons = s
malloc(uc->nbuttons * sizeof(GtkWidget *)
);
+ uc->buttons = s
newn(uc->nbuttons, GtkWidget *
);
for (i = 0; i < ctrl->radio.nbuttons; i++) {
GtkWidget *b;
for (i = 0; i < ctrl->radio.nbuttons; i++) {
GtkWidget *b;
@@
-1804,7
+1807,7
@@
int tree_key_press(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
GtkWidget *w = dp->treeitems[i];
int vis = TRUE;
{
GtkWidget *w = dp->treeitems[i];
int vis = TRUE;
- while (w &&
GTK_IS_TREE_ITEM(w) || GTK_IS_TREE(w
)) {
+ while (w &&
(GTK_IS_TREE_ITEM(w) || GTK_IS_TREE(w)
)) {
if (!GTK_WIDGET_VISIBLE(w)) {
vis = FALSE;
break;
if (!GTK_WIDGET_VISIBLE(w)) {
vis = FALSE;
break;
@@
-1821,7
+1824,6
@@
int tree_key_press(GtkWidget *widget, GdkEventKey *event, gpointer data)
gtk_signal_emit_stop_by_name(GTK_OBJECT(widget),
"key_press_event");
if (j >= 0) {
gtk_signal_emit_stop_by_name(GTK_OBJECT(widget),
"key_press_event");
if (j >= 0) {
- gint return_val;
gtk_signal_emit_by_name(GTK_OBJECT(dp->treeitems[j]), "toggle");
gtk_widget_grab_focus(dp->treeitems[j]);
}
gtk_signal_emit_by_name(GTK_OBJECT(dp->treeitems[j]), "toggle");
gtk_widget_grab_focus(dp->treeitems[j]);
}
@@
-1888,7
+1890,7
@@
void shortcut_add(struct Shortcuts *scs, GtkWidget *labelw,
}
}
}
}
-int do_config_box(const char *title)
+int do_config_box(const char *title
, Config *cfg
)
{
GtkWidget *window, *hbox, *vbox, *cols, *label,
*tree, *treescroll, *panels, *panelvbox;
{
GtkWidget *window, *hbox, *vbox, *cols, *label,
*tree, *treescroll, *panels, *panelvbox;
@@
-1897,7
+1899,6
@@
int do_config_box(const char *title)
char *path;
GtkTreeItem *treeitemlevels[8];
GtkTree *treelevels[8];
char *path;
GtkTreeItem *treeitemlevels[8];
GtkTree *treelevels[8];
- Config cfg;
struct dlgparam dp;
struct sesslist sl;
struct Shortcuts scs;
struct dlgparam dp;
struct sesslist sl;
struct Shortcuts scs;
@@
-1905,7
+1906,7
@@
int do_config_box(const char *title)
struct selparam *selparams = NULL;
int nselparams = 0, selparamsize = 0;
struct selparam *selparams = NULL;
int nselparams = 0, selparamsize = 0;
- do_defaults(NULL,
&
cfg);
+ do_defaults(NULL, cfg);
dlg_init(&dp);
dlg_init(&dp);
@@
-2038,8
+2039,8
@@
int do_config_box(const char *title)
if (nselparams >= selparamsize) {
selparamsize += 16;
if (nselparams >= selparamsize) {
selparamsize += 16;
- selparams = sre
alloc(selparams
,
-
selparamsize * sizeof(*selparams)
);
+ selparams = sre
size(selparams, selparamsize
,
+
struct selparam
);
}
selparams[nselparams].dp = &dp;
selparams[nselparams].panels = PANELS(panels);
}
selparams[nselparams].dp = &dp;
selparams[nselparams].panels = PANELS(panels);
@@
-2059,7
+2060,7
@@
int do_config_box(const char *title)
}
dp.ntreeitems = nselparams;
}
dp.ntreeitems = nselparams;
- dp.treeitems = s
malloc(dp.ntreeitems * sizeof(GtkWidget *)
);
+ dp.treeitems = s
newn(dp.ntreeitems, GtkWidget *
);
for (index = 0; index < nselparams; index++) {
gtk_signal_connect(GTK_OBJECT(selparams[index].treeitem), "select",
for (index = 0; index < nselparams; index++) {
gtk_signal_connect(GTK_OBJECT(selparams[index].treeitem), "select",
@@
-2068,7
+2069,7
@@
int do_config_box(const char *title)
dp.treeitems[index] = selparams[index].treeitem;
}
dp.treeitems[index] = selparams[index].treeitem;
}
- dp.data =
&
cfg;
+ dp.data = cfg;
dlg_refresh(NULL, &dp);
dp.shortcuts = &selparams[0].shortcuts;
dlg_refresh(NULL, &dp);
dp.shortcuts = &selparams[0].shortcuts;
@@
-2214,8
+2215,9
@@
char *x_get_default(const char *key)
int main(int argc, char **argv)
{
int main(int argc, char **argv)
{
+ Config cfg;
gtk_init(&argc, &argv);
gtk_init(&argc, &argv);
- printf("returned %d\n", do_config_box("PuTTY Configuration"));
+ printf("returned %d\n", do_config_box("PuTTY Configuration"
, &cfg
));
return 0;
}
return 0;
}