Index: src/callbacks.c =================================================================== RCS file: /cvs/gnome/procman/src/callbacks.c,v retrieving revision 1.106 diff -u -p -r1.106 callbacks.c --- src/callbacks.c 10 Mar 2005 18:35:28 -0000 1.106 +++ src/callbacks.c 12 Mar 2005 05:55:48 -0000 @@ -217,14 +217,14 @@ popup_menu_show_open_files (GtkMenuItem } void -cb_info_button_pressed (GtkButton *button, gpointer user_data) +cb_info_expander_clicked (GtkExpander *expander, GParamSpec *param_spec, + gpointer user_data) { ProcData * const procdata = user_data; toggle_infoview (procdata); } - void cb_search (GtkEditable *editable, gpointer data) { Index: src/callbacks.h =================================================================== RCS file: /cvs/gnome/procman/src/callbacks.h,v retrieving revision 1.38 diff -u -p -r1.38 callbacks.h --- src/callbacks.h 10 Mar 2005 18:35:28 -0000 1.38 +++ src/callbacks.h 12 Mar 2005 05:55:48 -0000 @@ -49,7 +49,9 @@ void cb_logout (GtkButton *button, gpoi void popup_menu_about_process (GtkMenuItem *menuitem, gpointer data) G_GNUC_INTERNAL; void popup_menu_show_open_files (GtkMenuItem *menuitem, gpointer data) G_GNUC_INTERNAL; -void cb_info_button_pressed (GtkButton *button, gpointer user_data) G_GNUC_INTERNAL; +void cb_info_expander_clicked (GtkExpander *expander, GParamSpec *param_spec, + gpointer user_data) G_GNUC_INTERNAL; + void cb_search (GtkEditable *editable, gpointer data) G_GNUC_INTERNAL; Index: src/infoview.c =================================================================== RCS file: /cvs/gnome/procman/src/infoview.c,v retrieving revision 1.30 diff -u -p -r1.30 infoview.c --- src/infoview.c 10 Mar 2005 18:35:28 -0000 1.30 +++ src/infoview.c 12 Mar 2005 05:55:48 -0000 @@ -54,8 +54,8 @@ make_title_label (const char *text) GtkWidget * infoview_create (ProcData *procdata) { - GtkWidget *infobox; - + GtkWidget *info_expander; + GtkWidget *main_hbox; GtkWidget *info_table, *mem_table; GtkWidget *label; @@ -64,10 +64,11 @@ infoview_create (ProcData *procdata) GtkWidget *mem_title, *mem_box; GtkWidget *spacer, *info_hbox, *mem_hbox; - infobox = gtk_vbox_new (FALSE, 0); - + info_expander = gtk_expander_new_with_mnemonic (_("Show More _Details")); + gtk_expander_set_spacing (GTK_EXPANDER (info_expander), 6); + main_hbox = gtk_hbox_new (FALSE, 18); - gtk_box_pack_start (GTK_BOX (infobox), main_hbox, FALSE, TRUE, 0); + gtk_container_add (GTK_CONTAINER (info_expander), main_hbox); /* The Process Info Area */ @@ -160,10 +161,10 @@ infoview_create (ProcData *procdata) gtk_table_attach (GTK_TABLE (mem_table), memshared_label, 1, 2, 2, 3, GTK_FILL, 0, 0, 0); - procdata->infobox = infobox; + procdata->info_expander = info_expander; - return infobox; + return info_expander; } Index: src/interface.c =================================================================== RCS file: /cvs/gnome/procman/src/interface.c,v retrieving revision 1.127 diff -u -p -r1.127 interface.c --- src/interface.c 10 Mar 2005 18:35:28 -0000 1.127 +++ src/interface.c 12 Mar 2005 05:55:48 -0000 @@ -165,7 +165,6 @@ static GnomeUIInfo popup_menu_uiinfo[] = }; -static GtkWidget *infolabel = NULL; static GtkWidget *endprocessbutton = NULL; static GtkWidget *popup_menu = NULL; static GtkWidget *sys_pane = NULL; @@ -186,10 +185,9 @@ create_proc_view (ProcData *procdata) GtkWidget *search_entry; GtkWidget *proc_combo; GtkWidget *scrolled; - GtkWidget *infobox; + GtkWidget *info_expander; GtkWidget *label; GtkWidget *hbox2; - GtkWidget *infobutton; vbox1 = gtk_vbox_new (FALSE, 18); gtk_container_set_border_width (GTK_CONTAINER (vbox1), 12); @@ -225,8 +223,10 @@ create_proc_view (ProcData *procdata) gtk_widget_show_all (hbox1); scrolled = proctable_new (procdata); + if (!scrolled) return NULL; + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled), GTK_SHADOW_IN); @@ -234,8 +234,9 @@ create_proc_view (ProcData *procdata) gtk_widget_show_all (scrolled); - infobox = infoview_create (procdata); - gtk_box_pack_start (GTK_BOX (vbox1), infobox, FALSE, FALSE, 0); + info_expander = infoview_create (procdata); + gtk_box_pack_start (GTK_BOX (vbox1), info_expander, FALSE, FALSE, 0); + gtk_widget_show_all (info_expander); hbox2 = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox1), hbox2, FALSE, FALSE, 0); @@ -244,13 +245,9 @@ create_proc_view (ProcData *procdata) gtk_box_pack_end (GTK_BOX (hbox2), endprocessbutton, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (endprocessbutton), "clicked", G_CALLBACK (cb_end_process_button_pressed), procdata); - - infolabel = gtk_label_new_with_mnemonic (_("More _Info")); - infobutton = gtk_button_new (); - gtk_container_add (GTK_CONTAINER (infobutton), infolabel); - gtk_box_pack_start (GTK_BOX (hbox2), infobutton, FALSE, FALSE, 0); - g_signal_connect (G_OBJECT (infobutton), "clicked", - G_CALLBACK (cb_info_button_pressed), procdata); + + g_signal_connect (info_expander, "notify::expanded", + G_CALLBACK (cb_info_expander_clicked), procdata); gtk_widget_show_all (hbox2); @@ -685,10 +682,6 @@ create_main_window (ProcData *procdata) update_sensitivity (procdata, FALSE); - /* We cheat and force it to set up the labels */ - procdata->config.show_more_info = !procdata->config.show_more_info; - toggle_infoview (procdata); - gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), procdata->config.current_tab); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (view1_menu_uiinfo[0].widget), procdata->config.show_tree); @@ -703,18 +696,9 @@ create_main_window (ProcData *procdata) void toggle_infoview (ProcData *procdata) { - if (procdata->config.show_more_info) - { - gtk_widget_hide (procdata->infobox); - gtk_label_set_text_with_mnemonic (GTK_LABEL (infolabel), - _("More _Info >>")); - } - else + if (! procdata->config.show_more_info) { infoview_update (procdata); - gtk_widget_show_all (procdata->infobox); - gtk_label_set_text_with_mnemonic (GTK_LABEL (infolabel), - _("<< Less _Info")); } procdata->config.show_more_info = ! procdata->config.show_more_info; @@ -744,7 +728,7 @@ update_sensitivity (ProcData *data, gboo { gtk_widget_set_sensitive (endprocessbutton, sensitivity); - gtk_widget_set_sensitive (data->infobox, sensitivity); + gtk_widget_set_sensitive (data->info_expander, sensitivity); /*Edit->End Process*/ gtk_widget_set_sensitive (edit1_menu_uiinfo[0].widget, sensitivity); /*Edit->Kill Process*/ Index: src/procman.c =================================================================== RCS file: /cvs/gnome/procman/src/procman.c,v retrieving revision 1.76 diff -u -p -r1.76 procman.c --- src/procman.c 10 Mar 2005 18:35:28 -0000 1.76 +++ src/procman.c 12 Mar 2005 05:55:48 -0000 @@ -195,7 +195,7 @@ procman_data_new (GConfClient *client) pd = g_new0 (ProcData, 1); pd->tree = NULL; - pd->infobox = NULL; + pd->info_expander = NULL; pd->info = NULL; pd->pids = g_hash_table_new(g_direct_hash, g_direct_equal); pd->selected_process = NULL; Index: src/procman.h =================================================================== RCS file: /cvs/gnome/procman/src/procman.h,v retrieving revision 1.60 diff -u -p -r1.60 procman.h --- src/procman.h 10 Mar 2005 18:35:28 -0000 1.60 +++ src/procman.h 12 Mar 2005 05:55:48 -0000 @@ -145,7 +145,7 @@ struct _ProcInfo struct _ProcData { GtkWidget *tree; - GtkWidget *infobox; + GtkWidget *info_expander; GtkWidget *disk_list; ProcConfig config; LoadGraph *cpu_graph;