void prefs_ext_prog_create_widget(PrefsPage *_page, GtkWindow *window, gpointer data) { ExtProgPage *prefs_ext_prog = (ExtProgPage *) _page; GtkWidget *table; GtkWidget *vbox; GtkWidget *hint_label; GtkWidget *table2; GtkWidget *uri_label; GtkWidget *uri_combo; GtkWidget *uri_entry; GtkWidget *printcmd_label; GtkWidget *printcmd_entry; GtkWidget *exteditor_label; GtkWidget *exteditor_combo; GtkWidget *exteditor_entry; GtkWidget *image_viewer_label; GtkWidget *image_viewer_entry; GtkWidget *audio_player_label; GtkWidget *audio_player_entry; table = gtk_table_new(2, 1, FALSE); gtk_widget_show(table); gtk_container_set_border_width(GTK_CONTAINER(table), 8); gtk_table_set_row_spacings(GTK_TABLE(table), 4); gtk_table_set_col_spacings(GTK_TABLE(table), 8); vbox = gtk_vbox_new(TRUE, 0); gtk_widget_show(vbox); gtk_table_attach(GTK_TABLE (table), vbox, 0, 1, 0, 1, (GtkAttachOptions) (GTK_SHRINK), (GtkAttachOptions) (0), 0, 0); hint_label = gtk_label_new(_("%s will be replaced with file name / URI")); gtk_widget_show(hint_label); gtk_box_pack_start(GTK_BOX (vbox), hint_label, FALSE, FALSE, 4); gtk_label_set_justify(GTK_LABEL (hint_label), GTK_JUSTIFY_LEFT); table2 = gtk_table_new(5, 2, FALSE); gtk_widget_show(table2); gtk_container_set_border_width(GTK_CONTAINER(table2), 8); gtk_table_set_row_spacings(GTK_TABLE(table2), 4); gtk_table_set_col_spacings(GTK_TABLE(table2), 8); gtk_table_attach(GTK_TABLE (table), table2, 0, 1, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); uri_label = gtk_label_new (_("Web browser")); gtk_widget_show(uri_label); gtk_table_attach(GTK_TABLE (table2), uri_label, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 2); gtk_label_set_justify(GTK_LABEL (uri_label), GTK_JUSTIFY_RIGHT); gtk_misc_set_alignment(GTK_MISC (uri_label), 1, 0.5); uri_combo = gtk_combo_new (); gtk_widget_show (uri_combo); gtk_table_attach (GTK_TABLE (table2), uri_combo, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, 0, 0, 0); gtkut_combo_set_items (GTK_COMBO (uri_combo), DEFAULT_BROWSER_CMD, "galeon --new-tab '%s'", "galeon '%s'", "mozilla -remote 'openurl(%s,new-window)'", "netscape -remote 'openURL(%s, new-window)'", "netscape '%s'", "gnome-moz-remote --newwin '%s'", "kfmclient openURL '%s'", "opera -newwindow '%s'", "rxvt -e w3m '%s'", "rxvt -e lynx '%s'", NULL); uri_entry = GTK_COMBO (uri_combo)->entry; gtk_entry_set_text(GTK_ENTRY(uri_entry), prefs_common.uri_cmd ? prefs_common.uri_cmd : ""); printcmd_label = gtk_label_new (_("Print command")); gtk_widget_show(printcmd_label); gtk_table_attach(GTK_TABLE (table2), printcmd_label, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 2); gtk_label_set_justify(GTK_LABEL (printcmd_label), GTK_JUSTIFY_RIGHT); gtk_misc_set_alignment(GTK_MISC (printcmd_label), 1, 0.5); printcmd_entry = gtk_entry_new (); gtk_widget_show (printcmd_entry); gtk_table_attach(GTK_TABLE (table2), printcmd_entry, 1, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_entry_set_text(GTK_ENTRY(printcmd_entry), prefs_common.print_cmd ? prefs_common.print_cmd : ""); exteditor_label = gtk_label_new (_("Text editor")); gtk_widget_show(exteditor_label); gtk_table_attach(GTK_TABLE (table2), exteditor_label, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 2); gtk_label_set_justify(GTK_LABEL (exteditor_label), GTK_JUSTIFY_RIGHT); gtk_misc_set_alignment(GTK_MISC (exteditor_label), 1, 0.5); exteditor_combo = gtk_combo_new (); gtk_widget_show (exteditor_combo); gtk_table_attach (GTK_TABLE (table2), exteditor_combo, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, 0, 0, 0); gtkut_combo_set_items (GTK_COMBO (exteditor_combo), "gedit %s", "kedit %s", "nedit %s", "mgedit --no-fork %s", "emacs %s", "xemacs %s", "kterm -e jed %s", "kterm -e vi %s", NULL); exteditor_entry = GTK_COMBO (exteditor_combo)->entry; gtk_entry_set_text(GTK_ENTRY(exteditor_entry), prefs_common.ext_editor_cmd ? prefs_common.ext_editor_cmd : ""); image_viewer_label = gtk_label_new (_("Image viewer")); gtk_widget_show(image_viewer_label); gtk_table_attach(GTK_TABLE (table2), image_viewer_label, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 2); gtk_label_set_justify(GTK_LABEL (image_viewer_label), GTK_JUSTIFY_RIGHT); gtk_misc_set_alignment(GTK_MISC (image_viewer_label), 1, 0.5); image_viewer_entry = gtk_entry_new (); gtk_widget_show(image_viewer_entry); gtk_table_attach(GTK_TABLE (table2), image_viewer_entry, 1, 2, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_entry_set_text(GTK_ENTRY(image_viewer_entry), prefs_common.mime_image_viewer ? prefs_common.mime_image_viewer : ""); audio_player_label = gtk_label_new (_("Audio player")); gtk_widget_show(audio_player_label); gtk_table_attach(GTK_TABLE (table2), audio_player_label, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 2); gtk_label_set_justify(GTK_LABEL (audio_player_label), GTK_JUSTIFY_RIGHT); gtk_misc_set_alignment(GTK_MISC (audio_player_label), 1, 0.5); audio_player_entry = gtk_entry_new (); gtk_widget_show(audio_player_entry); gtk_table_attach(GTK_TABLE (table2), audio_player_entry, 1, 2, 4, 5, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_entry_set_text(GTK_ENTRY(audio_player_entry), prefs_common.mime_audio_player ? prefs_common.mime_audio_player : ""); prefs_ext_prog->window = GTK_WIDGET(window); prefs_ext_prog->uri_entry = uri_entry; prefs_ext_prog->printcmd_entry = printcmd_entry; prefs_ext_prog->exteditor_entry = exteditor_entry; prefs_ext_prog->image_viewer_entry = image_viewer_entry; prefs_ext_prog->audio_player_entry = audio_player_entry; prefs_ext_prog->page.widget = table; }
static void prefs_display_header_create(void) { GtkWidget *window; GtkWidget *vbox; GtkWidget *btn_hbox; GtkWidget *confirm_area; GtkWidget *ok_btn; GtkWidget *cancel_btn; GtkWidget *vbox1; GtkWidget *hbox1; GtkWidget *hdr_label; GtkWidget *hdr_combo; GtkWidget *btn_vbox; GtkWidget *reg_btn; GtkWidget *del_btn; GtkWidget *up_btn; GtkWidget *down_btn; GtkWidget *clist_hbox; GtkWidget *clist_hbox1; GtkWidget *clist_hbox2; GtkWidget *clist_scrolledwin; GtkWidget *headers_clist; GtkWidget *hidden_headers_clist; GtkWidget *checkbtn_other_headers; gchar *title[1]; debug_print(_("Creating display header setting window...\n")); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_container_set_border_width (GTK_CONTAINER (window), 8); gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (window), TRUE); gtk_window_set_policy (GTK_WINDOW (window), FALSE, TRUE, FALSE); vbox = gtk_vbox_new (FALSE, 6); gtk_widget_show (vbox); gtk_container_add (GTK_CONTAINER (window), vbox); btn_hbox = gtk_hbox_new (FALSE, 8); gtk_widget_show (btn_hbox); gtk_box_pack_end (GTK_BOX (vbox), btn_hbox, FALSE, FALSE, 0); gtkut_stock_button_set_create(&confirm_area, &ok_btn, GTK_STOCK_OK, &cancel_btn, GTK_STOCK_CANCEL, NULL, NULL); gtk_widget_show (confirm_area); gtk_box_pack_end (GTK_BOX(btn_hbox), confirm_area, FALSE, FALSE, 0); gtk_widget_grab_default (ok_btn); gtk_window_set_title (GTK_WINDOW(window), _("Display header setting")); MANAGE_WINDOW_SIGNALS_CONNECT(window); g_signal_connect (G_OBJECT(window), "delete_event", G_CALLBACK(prefs_display_header_deleted), NULL); g_signal_connect (G_OBJECT(window), "key_press_event", G_CALLBACK(prefs_display_header_key_pressed), NULL); g_signal_connect (G_OBJECT(ok_btn), "clicked", G_CALLBACK(prefs_display_header_ok), NULL); g_signal_connect (G_OBJECT(cancel_btn), "clicked", G_CALLBACK(prefs_display_header_cancel), NULL); vbox1 = gtk_vbox_new (FALSE, VSPACING); gtk_widget_show (vbox1); gtk_box_pack_start (GTK_BOX (vbox), vbox1, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox1), 2); hbox1 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, TRUE, 0); hdr_label = gtk_label_new (_("Header name")); gtk_widget_show (hdr_label); gtk_box_pack_start (GTK_BOX (hbox1), hdr_label, FALSE, FALSE, 0); hdr_combo = gtk_combo_new (); gtk_widget_show (hdr_combo); gtk_box_pack_start (GTK_BOX (hbox1), hdr_combo, TRUE, TRUE, 0); gtk_widget_set_size_request (hdr_combo, 150, -1); gtkut_combo_set_items (GTK_COMBO (hdr_combo), "From", "To", "Cc", "Subject", "Date", "Reply-To", "Sender", "User-Agent", "X-Mailer", NULL); clist_hbox = gtk_hbox_new (FALSE, 10); gtk_widget_show (clist_hbox); gtk_box_pack_start (GTK_BOX (vbox1), clist_hbox, TRUE, TRUE, 0); /* display headers list */ clist_hbox1 = gtk_hbox_new (FALSE, 8); gtk_widget_show (clist_hbox1); gtk_box_pack_start (GTK_BOX (clist_hbox), clist_hbox1, TRUE, TRUE, 0); clist_scrolledwin = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_size_request (clist_scrolledwin, 200, 210); gtk_widget_show (clist_scrolledwin); gtk_box_pack_start (GTK_BOX (clist_hbox1), clist_scrolledwin, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (clist_scrolledwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); title[0] = _("Displayed Headers"); headers_clist = gtk_clist_new_with_titles(1, title); gtk_widget_show (headers_clist); gtk_container_add (GTK_CONTAINER (clist_scrolledwin), headers_clist); gtk_clist_set_selection_mode (GTK_CLIST (headers_clist), GTK_SELECTION_BROWSE); gtk_clist_set_reorderable (GTK_CLIST (headers_clist), TRUE); gtk_clist_set_use_drag_icons (GTK_CLIST (headers_clist), FALSE); gtkut_clist_set_redraw (GTK_CLIST (headers_clist)); GTK_WIDGET_UNSET_FLAGS (GTK_CLIST (headers_clist)->column[0].button, GTK_CAN_FOCUS); g_signal_connect_after (G_OBJECT (headers_clist), "row_move", G_CALLBACK (prefs_display_header_row_moved), NULL); btn_vbox = gtk_vbox_new (FALSE, 8); gtk_widget_show (btn_vbox); gtk_box_pack_start (GTK_BOX (clist_hbox1), btn_vbox, FALSE, FALSE, 0); reg_btn = gtk_button_new_with_label (_("Add")); gtk_widget_show (reg_btn); gtk_box_pack_start (GTK_BOX (btn_vbox), reg_btn, FALSE, TRUE, 0); g_signal_connect (G_OBJECT (reg_btn), "clicked", G_CALLBACK (prefs_display_header_register_cb), GINT_TO_POINTER(FALSE)); del_btn = gtk_button_new_with_label (_("Delete")); gtk_widget_show (del_btn); gtk_box_pack_start (GTK_BOX (btn_vbox), del_btn, FALSE, TRUE, 0); g_signal_connect (G_OBJECT (del_btn), "clicked", G_CALLBACK (prefs_display_header_delete_cb), headers_clist); up_btn = gtk_button_new_with_label (_("Up")); gtk_widget_show (up_btn); gtk_box_pack_start (GTK_BOX (btn_vbox), up_btn, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (up_btn), "clicked", G_CALLBACK (prefs_display_header_up), NULL); down_btn = gtk_button_new_with_label (_("Down")); gtk_widget_show (down_btn); gtk_box_pack_start (GTK_BOX (btn_vbox), down_btn, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (down_btn), "clicked", G_CALLBACK (prefs_display_header_down), NULL); /* hidden headers list */ clist_hbox2 = gtk_hbox_new (FALSE, 8); gtk_widget_show (clist_hbox2); gtk_box_pack_start (GTK_BOX (clist_hbox), clist_hbox2, TRUE, TRUE, 0); clist_scrolledwin = gtk_scrolled_window_new (NULL, NULL); gtk_widget_set_size_request (clist_scrolledwin, 200, 210); gtk_widget_show (clist_scrolledwin); gtk_box_pack_start (GTK_BOX (clist_hbox2), clist_scrolledwin, TRUE, TRUE, 0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (clist_scrolledwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); title[0] = _("Hidden headers"); hidden_headers_clist = gtk_clist_new_with_titles(1, title); gtk_widget_show (hidden_headers_clist); gtk_container_add (GTK_CONTAINER (clist_scrolledwin), hidden_headers_clist); gtk_clist_set_selection_mode (GTK_CLIST (hidden_headers_clist), GTK_SELECTION_BROWSE); gtk_clist_set_auto_sort(GTK_CLIST (hidden_headers_clist), TRUE); gtkut_clist_set_redraw (GTK_CLIST (hidden_headers_clist)); GTK_WIDGET_UNSET_FLAGS (GTK_CLIST (hidden_headers_clist)-> column[0].button, GTK_CAN_FOCUS); btn_vbox = gtk_vbox_new (FALSE, 8); gtk_widget_show (btn_vbox); gtk_box_pack_start (GTK_BOX (clist_hbox2), btn_vbox, FALSE, FALSE, 0); reg_btn = gtk_button_new_with_label (_("Add")); gtk_widget_show (reg_btn); gtk_box_pack_start (GTK_BOX (btn_vbox), reg_btn, FALSE, TRUE, 0); g_signal_connect (G_OBJECT (reg_btn), "clicked", G_CALLBACK (prefs_display_header_register_cb), GINT_TO_POINTER (TRUE)); del_btn = gtk_button_new_with_label (_("Delete")); gtk_widget_show (del_btn); gtk_box_pack_start (GTK_BOX (btn_vbox), del_btn, FALSE, TRUE, 0); g_signal_connect (G_OBJECT (del_btn), "clicked", G_CALLBACK (prefs_display_header_delete_cb), hidden_headers_clist); PACK_CHECK_BUTTON (btn_hbox, checkbtn_other_headers, _("Show all unspecified headers")); SET_TOGGLE_SENSITIVITY (checkbtn_other_headers, clist_hbox2); gtk_widget_show_all(window); dispheader.window = window; dispheader.confirm_area = confirm_area; dispheader.ok_btn = ok_btn; dispheader.cancel_btn = cancel_btn; dispheader.hdr_combo = hdr_combo; dispheader.hdr_entry = GTK_COMBO (hdr_combo)->entry; dispheader.headers_clist = headers_clist; dispheader.hidden_headers_clist = hidden_headers_clist; dispheader.other_headers = checkbtn_other_headers; }