X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/aef05b788c268d43559a0183d1efe9c458724b94..211b4228d0268fdb1a2664d4b7fc253e92d76166:/unix/gtkdlg.c diff --git a/unix/gtkdlg.c b/unix/gtkdlg.c index b2725e44..0a870ca3 100644 --- a/unix/gtkdlg.c +++ b/unix/gtkdlg.c @@ -22,7 +22,6 @@ #include #include "gtkcols.h" -#include "gtkpanel.h" #ifdef TESTMODE #define PUTTY_DO_GLOBALS /* actually _define_ globals */ @@ -1741,7 +1740,7 @@ GtkWidget *layout_ctrls(struct dlgparam *dp, struct Shortcuts *scs, struct selparam { struct dlgparam *dp; - Panels *panels; + GtkNotebook *panels; GtkWidget *panel, *treeitem; struct Shortcuts shortcuts; }; @@ -1749,8 +1748,10 @@ struct selparam { static void treeitem_sel(GtkItem *item, gpointer data) { struct selparam *sp = (struct selparam *)data; + gint page_num; - panels_switch_to(sp->panels, sp->panel); + page_num = gtk_notebook_page_num(sp->panels, sp->panel); + gtk_notebook_set_page(sp->panels, page_num); dlg_refresh(NULL, sp->dp); @@ -2055,7 +2056,7 @@ int do_config_box(const char *title, Config *cfg, int midsession, ctrlbox = ctrl_new_box(); setup_config_box(ctrlbox, midsession, cfg->protocol, protcfginfo); - unix_setup_config_box(ctrlbox, midsession); + unix_setup_config_box(ctrlbox, midsession, cfg->protocol); gtk_setup_config_box(ctrlbox, midsession, window); gtk_window_set_title(GTK_WINDOW(window), title); @@ -2080,17 +2081,13 @@ int do_config_box(const char *title, Config *cfg, int midsession, shortcut_add(&scs, label, 'g', SHORTCUT_TREE, tree); gtk_tree_set_view_mode(GTK_TREE(tree), GTK_TREE_VIEW_ITEM); gtk_tree_set_selection_mode(GTK_TREE(tree), GTK_SELECTION_BROWSE); - gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(treescroll), - tree); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(treescroll), - GTK_POLICY_NEVER, - GTK_POLICY_AUTOMATIC); gtk_signal_connect(GTK_OBJECT(tree), "focus", GTK_SIGNAL_FUNC(tree_focus), &dp); - gtk_widget_show(tree); gtk_widget_show(treescroll); gtk_box_pack_start(GTK_BOX(vbox), treescroll, TRUE, TRUE, 0); - panels = panels_new(); + panels = gtk_notebook_new(); + gtk_notebook_set_show_tabs(GTK_NOTEBOOK(panels), FALSE); + gtk_notebook_set_show_border(GTK_NOTEBOOK(panels), FALSE); gtk_box_pack_start(GTK_BOX(hbox), panels, TRUE, TRUE, 0); gtk_widget_show(panels); @@ -2138,7 +2135,10 @@ int do_config_box(const char *title, Config *cfg, int midsession, gtk_tree_item_set_subtree (treeitemlevels[j-1], GTK_WIDGET(treelevels[j-1])); - gtk_tree_item_expand(treeitemlevels[j-1]); + if (j < 2) + gtk_tree_item_expand(treeitemlevels[j-1]); + else + gtk_tree_item_collapse(treeitemlevels[j-1]); } gtk_tree_append(treelevels[j-1], treeitem); } else { @@ -2160,9 +2160,15 @@ int do_config_box(const char *title, Config *cfg, int midsession, first = (panelvbox == NULL); panelvbox = gtk_vbox_new(FALSE, 4); - gtk_container_add(GTK_CONTAINER(panels), panelvbox); + gtk_widget_show(panelvbox); + gtk_notebook_append_page(GTK_NOTEBOOK(panels), panelvbox, + NULL); if (first) { - panels_switch_to(PANELS(panels), panelvbox); + gint page_num; + + page_num = gtk_notebook_page_num(GTK_NOTEBOOK(panels), + panelvbox); + gtk_notebook_set_page(GTK_NOTEBOOK(panels), page_num); gtk_tree_select_child(GTK_TREE(tree), treeitem); } @@ -2172,7 +2178,7 @@ int do_config_box(const char *title, Config *cfg, int midsession, struct selparam); } selparams[nselparams].dp = &dp; - selparams[nselparams].panels = PANELS(panels); + selparams[nselparams].panels = GTK_NOTEBOOK(panels); selparams[nselparams].panel = panelvbox; selparams[nselparams].shortcuts = scs; /* structure copy */ selparams[nselparams].treeitem = treeitem; @@ -2207,6 +2213,23 @@ int do_config_box(const char *title, Config *cfg, int midsession, dp.retval = 0; dp.window = window; + { + /* in gtkwin.c */ + extern void set_window_icon(GtkWidget *window, + const char *const *const *icon, + int n_icon); + extern const char *const *const cfg_icon[]; + extern const int n_cfg_icon; + set_window_icon(window, cfg_icon, n_cfg_icon); + } + + gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(treescroll), + tree); + gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(treescroll), + GTK_POLICY_NEVER, + GTK_POLICY_AUTOMATIC); + gtk_widget_show(tree); + gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_widget_show(window); @@ -2502,7 +2525,7 @@ static void licence_clicked(GtkButton *button, gpointer data) char *title; char *licence = - "Copyright 1997-2006 Simon Tatham.\n\n" + "Copyright 1997-2007 Simon Tatham.\n\n" "Portions copyright Robert de Bath, Joris van Rantwijk, Delian " "Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas " @@ -2583,7 +2606,7 @@ void about_box(void *window) w, FALSE, FALSE, 5); gtk_widget_show(w); - w = gtk_label_new("Copyright 1997-2006 Simon Tatham. All rights reserved"); + w = gtk_label_new("Copyright 1997-2007 Simon Tatham. All rights reserved"); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(aboutbox)->vbox), w, FALSE, FALSE, 5); gtk_widget_show(w); @@ -2687,7 +2710,7 @@ void eventlog_selection_get(GtkWidget *widget, GtkSelectionData *seldata, struct eventlog_stuff *es = (struct eventlog_stuff *)data; gtk_selection_data_set(seldata, seldata->target, 8, - es->seldata, es->sellen); + (unsigned char *)es->seldata, es->sellen); } gint eventlog_selection_clear(GtkWidget *widget, GdkEventSelection *seldata,