/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include #include "callbacks.h" #include "interface.h" #include "support.h" #define GLADE_HOOKUP_OBJECT(component,widget,name) \ g_object_set_data_full (G_OBJECT (component), name, \ gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ g_object_set_data (G_OBJECT (component), name, widget) GtkWidget* create_main (void) { GtkWidget *main; GdkPixbuf *main_icon_pixbuf; GtkWidget *vbox7; GtkWidget *menubar1; GtkWidget *menuitem1; GtkWidget *menuitem1_menu; GtkWidget *browse_source; GtkWidget *image50; GtkWidget *browse_destination; GtkWidget *image51; GtkWidget *switch_source_with_destination1; GtkWidget *image52; GtkWidget *separator2; GtkWidget *simulation; GtkWidget *image53; GtkWidget *execute; GtkWidget *image54; GtkWidget *preferences1; GtkWidget *separator1; GtkWidget *quit1; GtkWidget *menuitem3; GtkWidget *menuitem3_menu; GtkWidget *add1; GtkWidget *delete1; GtkWidget *import1; GtkWidget *image55; GtkWidget *export1; GtkWidget *image56; GtkWidget *menuitem4; GtkWidget *menuitem4_menu; GtkWidget *about1; GtkWidget *rsync_info; GtkWidget *image57; GtkWidget *vbox2; GtkWidget *frame1; GtkWidget *alignment5; GtkWidget *hbox13; GtkWidget *combo_session; GtkWidget *session_add; GtkWidget *session_del; GtkWidget *label22; GtkWidget *frame2; GtkWidget *alignment6; GtkWidget *hbox15; GtkWidget *table3; GtkWidget *button_browse_source; GtkWidget *alignment1; GtkWidget *hbox1; GtkWidget *image1; GtkWidget *label2; GtkWidget *button_browse_dest; GtkWidget *alignment4; GtkWidget *hbox14; GtkWidget *image4; GtkWidget *label18; GtkWidget *text_source; GtkWidget *text_dest; GtkWidget *button_switch; GtkWidget *image5; GtkWidget *label23; GtkWidget *notebook1; GtkWidget *table1; GtkWidget *check_group; GtkWidget *check_time; GtkWidget *check_perm; GtkWidget *check_owner; GtkWidget *check_onefs; GtkWidget *check_delete; GtkWidget *check_verbose; GtkWidget *check_progr; GtkWidget *check_exist; GtkWidget *check_size; GtkWidget *hseparator2; GtkWidget *check_skipnew; GtkWidget *check_windows; GtkWidget *Basic; GtkWidget *table2; GtkWidget *check_sum; GtkWidget *check_symlink; GtkWidget *check_dev; GtkWidget *check_update; GtkWidget *check_keepart; GtkWidget *check_mapuser; GtkWidget *check_compr; GtkWidget *check_backup; GtkWidget *label17; GtkWidget *entry_additional; GtkWidget *Advanced; GtkWidget *table5; GtkWidget *check_com_before; GtkWidget *entry_com_before; GtkWidget *check_com_after; GtkWidget *entry_com_after; GtkWidget *check_browse_files; GtkWidget *label28; GtkWidget *hbuttonbox1; GtkWidget *cancel; GtkWidget *dryrun; GtkWidget *alignment3; GtkWidget *hbox3; GtkWidget *image3; GtkWidget *label7; GtkWidget *play; GtkAccelGroup *accel_group; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); accel_group = gtk_accel_group_new (); main = gtk_window_new (GTK_WINDOW_TOPLEVEL); GTK_WIDGET_SET_FLAGS (main, GTK_CAN_FOCUS); GTK_WIDGET_SET_FLAGS (main, GTK_CAN_DEFAULT); gtk_window_set_title (GTK_WINDOW (main), _("Grsync")); main_icon_pixbuf = create_pixbuf ("grsync.png"); if (main_icon_pixbuf) { gtk_window_set_icon (GTK_WINDOW (main), main_icon_pixbuf); gdk_pixbuf_unref (main_icon_pixbuf); } vbox7 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox7); gtk_container_add (GTK_CONTAINER (main), vbox7); menubar1 = gtk_menu_bar_new (); gtk_widget_show (menubar1); gtk_box_pack_start (GTK_BOX (vbox7), menubar1, FALSE, FALSE, 0); menuitem1 = gtk_menu_item_new_with_mnemonic (_("_File")); gtk_widget_show (menuitem1); gtk_container_add (GTK_CONTAINER (menubar1), menuitem1); menuitem1_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem1), menuitem1_menu); browse_source = gtk_image_menu_item_new_with_mnemonic (_("Browse S_ource")); gtk_widget_show (browse_source); gtk_container_add (GTK_CONTAINER (menuitem1_menu), browse_source); gtk_widget_add_accelerator (browse_source, "activate", accel_group, GDK_s, (GdkModifierType) GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); image50 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_MENU); gtk_widget_show (image50); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (browse_source), image50); browse_destination = gtk_image_menu_item_new_with_mnemonic (_("Browse _Destination")); gtk_widget_show (browse_destination); gtk_container_add (GTK_CONTAINER (menuitem1_menu), browse_destination); gtk_widget_add_accelerator (browse_destination, "activate", accel_group, GDK_d, (GdkModifierType) GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); image51 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_MENU); gtk_widget_show (image51); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (browse_destination), image51); switch_source_with_destination1 = gtk_image_menu_item_new_with_mnemonic (_("S_witch source with destination")); gtk_widget_show (switch_source_with_destination1); gtk_container_add (GTK_CONTAINER (menuitem1_menu), switch_source_with_destination1); gtk_widget_add_accelerator (switch_source_with_destination1, "activate", accel_group, GDK_w, (GdkModifierType) GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); image52 = gtk_image_new_from_stock ("gtk-refresh", GTK_ICON_SIZE_MENU); gtk_widget_show (image52); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (switch_source_with_destination1), image52); separator2 = gtk_separator_menu_item_new (); gtk_widget_show (separator2); gtk_container_add (GTK_CONTAINER (menuitem1_menu), separator2); gtk_widget_set_sensitive (separator2, FALSE); simulation = gtk_image_menu_item_new_with_mnemonic (_("_Simulation")); gtk_widget_show (simulation); gtk_container_add (GTK_CONTAINER (menuitem1_menu), simulation); gtk_widget_add_accelerator (simulation, "activate", accel_group, GDK_s, (GdkModifierType) GDK_MOD1_MASK, GTK_ACCEL_VISIBLE); image53 = gtk_image_new_from_stock ("gtk-dialog-info", GTK_ICON_SIZE_MENU); gtk_widget_show (image53); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (simulation), image53); execute = gtk_image_menu_item_new_with_mnemonic (_("_Execute")); gtk_widget_show (execute); gtk_container_add (GTK_CONTAINER (menuitem1_menu), execute); gtk_widget_add_accelerator (execute, "activate", accel_group, GDK_e, (GdkModifierType) GDK_MOD1_MASK, GTK_ACCEL_VISIBLE); image54 = gtk_image_new_from_stock ("gtk-execute", GTK_ICON_SIZE_MENU); gtk_widget_show (image54); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (execute), image54); preferences1 = gtk_image_menu_item_new_from_stock ("gtk-preferences", accel_group); gtk_widget_show (preferences1); gtk_container_add (GTK_CONTAINER (menuitem1_menu), preferences1); separator1 = gtk_separator_menu_item_new (); gtk_widget_show (separator1); gtk_container_add (GTK_CONTAINER (menuitem1_menu), separator1); gtk_widget_set_sensitive (separator1, FALSE); quit1 = gtk_image_menu_item_new_from_stock ("gtk-quit", accel_group); gtk_widget_show (quit1); gtk_container_add (GTK_CONTAINER (menuitem1_menu), quit1); menuitem3 = gtk_menu_item_new_with_mnemonic (_("S_essions")); gtk_widget_show (menuitem3); gtk_container_add (GTK_CONTAINER (menubar1), menuitem3); menuitem3_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem3), menuitem3_menu); add1 = gtk_image_menu_item_new_from_stock ("gtk-add", accel_group); gtk_widget_show (add1); gtk_container_add (GTK_CONTAINER (menuitem3_menu), add1); delete1 = gtk_image_menu_item_new_from_stock ("gtk-delete", accel_group); gtk_widget_show (delete1); gtk_container_add (GTK_CONTAINER (menuitem3_menu), delete1); import1 = gtk_image_menu_item_new_with_mnemonic (_("_Import")); gtk_widget_show (import1); gtk_container_add (GTK_CONTAINER (menuitem3_menu), import1); image55 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_MENU); gtk_widget_show (image55); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (import1), image55); export1 = gtk_image_menu_item_new_with_mnemonic (_("_Export")); gtk_widget_show (export1); gtk_container_add (GTK_CONTAINER (menuitem3_menu), export1); image56 = gtk_image_new_from_stock ("gtk-save", GTK_ICON_SIZE_MENU); gtk_widget_show (image56); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (export1), image56); menuitem4 = gtk_menu_item_new_with_mnemonic (_("_Help")); gtk_widget_show (menuitem4); gtk_container_add (GTK_CONTAINER (menubar1), menuitem4); menuitem4_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem4), menuitem4_menu); about1 = gtk_image_menu_item_new_from_stock ("gtk-about", accel_group); gtk_widget_show (about1); gtk_container_add (GTK_CONTAINER (menuitem4_menu), about1); rsync_info = gtk_image_menu_item_new_with_mnemonic (_("_Rsync info")); gtk_widget_show (rsync_info); gtk_container_add (GTK_CONTAINER (menuitem4_menu), rsync_info); image57 = gtk_image_new_from_stock ("gtk-info", GTK_ICON_SIZE_MENU); gtk_widget_show (image57); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (rsync_info), image57); vbox2 = gtk_vbox_new (FALSE, 12); gtk_widget_show (vbox2); gtk_box_pack_start (GTK_BOX (vbox7), vbox2, FALSE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox2), 12); frame1 = gtk_frame_new (NULL); gtk_widget_show (frame1); gtk_box_pack_start (GTK_BOX (vbox2), frame1, FALSE, FALSE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_NONE); alignment5 = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_widget_show (alignment5); gtk_container_add (GTK_CONTAINER (frame1), alignment5); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment5), 0, 0, 12, 0); hbox13 = gtk_hbox_new (FALSE, 6); gtk_widget_show (hbox13); gtk_container_add (GTK_CONTAINER (alignment5), hbox13); gtk_container_set_border_width (GTK_CONTAINER (hbox13), 6); combo_session = gtk_combo_box_new_text (); gtk_widget_show (combo_session); gtk_box_pack_start (GTK_BOX (hbox13), combo_session, TRUE, TRUE, 0); session_add = gtk_button_new_from_stock ("gtk-add"); gtk_widget_show (session_add); gtk_box_pack_start (GTK_BOX (hbox13), session_add, FALSE, TRUE, 0); gtk_tooltips_set_tip (tooltips, session_add, _("Click to add a new session"), NULL); session_del = gtk_button_new_from_stock ("gtk-delete"); gtk_widget_show (session_del); gtk_box_pack_start (GTK_BOX (hbox13), session_del, FALSE, TRUE, 0); gtk_tooltips_set_tip (tooltips, session_del, _("Click to delete the current session"), NULL); label22 = gtk_label_new (_("Sessions")); gtk_widget_show (label22); gtk_frame_set_label_widget (GTK_FRAME (frame1), label22); gtk_label_set_use_markup (GTK_LABEL (label22), TRUE); frame2 = gtk_frame_new (NULL); gtk_widget_show (frame2); gtk_box_pack_start (GTK_BOX (vbox2), frame2, FALSE, TRUE, 0); gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_NONE); alignment6 = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_widget_show (alignment6); gtk_container_add (GTK_CONTAINER (frame2), alignment6); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment6), 0, 0, 12, 0); hbox15 = gtk_hbox_new (FALSE, 6); gtk_widget_show (hbox15); gtk_container_add (GTK_CONTAINER (alignment6), hbox15); gtk_container_set_border_width (GTK_CONTAINER (hbox15), 6); table3 = gtk_table_new (2, 2, FALSE); gtk_widget_show (table3); gtk_box_pack_start (GTK_BOX (hbox15), table3, TRUE, TRUE, 0); gtk_table_set_row_spacings (GTK_TABLE (table3), 6); gtk_table_set_col_spacings (GTK_TABLE (table3), 6); button_browse_source = gtk_button_new (); gtk_widget_show (button_browse_source); gtk_table_attach (GTK_TABLE (table3), button_browse_source, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, button_browse_source, _("Click to open the file browser"), NULL); alignment1 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment1); gtk_container_add (GTK_CONTAINER (button_browse_source), alignment1); hbox1 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox1); gtk_container_add (GTK_CONTAINER (alignment1), hbox1); image1 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image1); gtk_box_pack_start (GTK_BOX (hbox1), image1, FALSE, FALSE, 0); label2 = gtk_label_new_with_mnemonic (_("Browse")); gtk_widget_show (label2); gtk_box_pack_start (GTK_BOX (hbox1), label2, FALSE, FALSE, 0); button_browse_dest = gtk_button_new (); gtk_widget_show (button_browse_dest); gtk_table_attach (GTK_TABLE (table3), button_browse_dest, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, button_browse_dest, _("Click to open the file browser"), NULL); alignment4 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment4); gtk_container_add (GTK_CONTAINER (button_browse_dest), alignment4); hbox14 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox14); gtk_container_add (GTK_CONTAINER (alignment4), hbox14); image4 = gtk_image_new_from_stock ("gtk-open", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image4); gtk_box_pack_start (GTK_BOX (hbox14), image4, FALSE, FALSE, 0); label18 = gtk_label_new_with_mnemonic (_("Browse")); gtk_widget_show (label18); gtk_box_pack_start (GTK_BOX (hbox14), label18, FALSE, FALSE, 0); text_source = gtk_entry_new (); gtk_widget_show (text_source); gtk_table_attach (GTK_TABLE (table3), text_source, 0, 1, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, text_source, _("Source directory"), NULL); gtk_entry_set_max_length (GTK_ENTRY (text_source), 200); text_dest = gtk_entry_new (); gtk_widget_show (text_dest); gtk_table_attach (GTK_TABLE (table3), text_dest, 0, 1, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, text_dest, _("Destination directory"), NULL); gtk_entry_set_max_length (GTK_ENTRY (text_dest), 200); button_switch = gtk_button_new (); gtk_widget_show (button_switch); gtk_box_pack_start (GTK_BOX (hbox15), button_switch, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, button_switch, _("Click here to switch the source with the destination directory"), NULL); image5 = gtk_image_new_from_stock ("gtk-refresh", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image5); gtk_container_add (GTK_CONTAINER (button_switch), image5); label23 = gtk_label_new (_("Source and Destination (directories need a trailing \"/\")")); gtk_widget_show (label23); gtk_frame_set_label_widget (GTK_FRAME (frame2), label23); gtk_label_set_use_markup (GTK_LABEL (label23), TRUE); notebook1 = gtk_notebook_new (); gtk_widget_show (notebook1); gtk_box_pack_start (GTK_BOX (vbox2), notebook1, FALSE, TRUE, 0); table1 = gtk_table_new (7, 2, FALSE); gtk_widget_show (table1); gtk_container_add (GTK_CONTAINER (notebook1), table1); gtk_container_set_border_width (GTK_CONTAINER (table1), 5); gtk_table_set_row_spacings (GTK_TABLE (table1), 6); gtk_table_set_col_spacings (GTK_TABLE (table1), 6); check_group = gtk_check_button_new_with_mnemonic (_("Preserve group")); gtk_widget_show (check_group); gtk_table_attach (GTK_TABLE (table1), check_group, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); check_time = gtk_check_button_new_with_mnemonic (_("Preserve time")); gtk_widget_show (check_time); gtk_table_attach (GTK_TABLE (table1), check_time, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_time), TRUE); check_perm = gtk_check_button_new_with_mnemonic (_("Preserve permissions")); gtk_widget_show (check_perm); gtk_table_attach (GTK_TABLE (table1), check_perm, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); check_owner = gtk_check_button_new_with_mnemonic (_("Preserve owner")); gtk_widget_show (check_owner); gtk_table_attach (GTK_TABLE (table1), check_owner, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); check_onefs = gtk_check_button_new_with_mnemonic (_("Do not leave filesystem")); gtk_widget_show (check_onefs); gtk_table_attach (GTK_TABLE (table1), check_onefs, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_onefs, _("Do not cross filesystem boundaries"), NULL); check_delete = gtk_check_button_new_with_mnemonic (_("Delete on destination")); gtk_widget_show (check_delete); gtk_table_attach (GTK_TABLE (table1), check_delete, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_delete, _("Delete files in destination which are not present in the source"), NULL); check_verbose = gtk_check_button_new_with_mnemonic (_("Verbose")); gtk_widget_show (check_verbose); gtk_table_attach (GTK_TABLE (table1), check_verbose, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_verbose, _("Show more information"), NULL); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_verbose), TRUE); check_progr = gtk_check_button_new_with_mnemonic (_("Show transfer progress")); gtk_widget_show (check_progr); gtk_table_attach (GTK_TABLE (table1), check_progr, 1, 2, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_progr), TRUE); check_exist = gtk_check_button_new_with_mnemonic (_("Ignore existing")); gtk_widget_show (check_exist); gtk_table_attach (GTK_TABLE (table1), check_exist, 0, 1, 5, 6, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_exist, _("Ignore files which already exist in the destination"), NULL); check_size = gtk_check_button_new_with_mnemonic (_("Size only")); gtk_widget_show (check_size); gtk_table_attach (GTK_TABLE (table1), check_size, 1, 2, 5, 6, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_size, _("Check size only, ignore time and checksum"), NULL); hseparator2 = gtk_hseparator_new (); gtk_widget_show (hseparator2); gtk_table_attach (GTK_TABLE (table1), hseparator2, 0, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_widget_set_size_request (hseparator2, -1, 10); check_skipnew = gtk_check_button_new_with_mnemonic (_("Skip newer")); gtk_widget_show (check_skipnew); gtk_table_attach (GTK_TABLE (table1), check_skipnew, 0, 1, 6, 7, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_skipnew, _("Do not update newer files"), NULL); check_windows = gtk_check_button_new_with_mnemonic (_("Windows compatibility")); gtk_widget_show (check_windows); gtk_table_attach (GTK_TABLE (table1), check_windows, 1, 2, 6, 7, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_windows, _("Provides workaround for a windows FAT filesystem limitation"), NULL); Basic = gtk_label_new (_("Basic options")); gtk_widget_show (Basic); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), Basic); table2 = gtk_table_new (6, 2, FALSE); gtk_widget_show (table2); gtk_container_add (GTK_CONTAINER (notebook1), table2); gtk_container_set_border_width (GTK_CONTAINER (table2), 5); gtk_table_set_row_spacings (GTK_TABLE (table2), 6); gtk_table_set_col_spacings (GTK_TABLE (table2), 6); check_sum = gtk_check_button_new_with_mnemonic (_("Always checksum")); gtk_widget_show (check_sum); gtk_table_attach (GTK_TABLE (table2), check_sum, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_sum, _("Always compare file contents (by checksum)"), NULL); check_symlink = gtk_check_button_new_with_mnemonic (_("Copy symlinks as symlinks")); gtk_widget_show (check_symlink); gtk_table_attach (GTK_TABLE (table2), check_symlink, 1, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_symlink, _("Symbolic links are copied as such, do not copy link target file"), NULL); check_dev = gtk_check_button_new_with_mnemonic (_("Preserve devices")); gtk_widget_show (check_dev); gtk_table_attach (GTK_TABLE (table2), check_dev, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); check_update = gtk_check_button_new_with_mnemonic (_("Only update existing files")); gtk_widget_show (check_update); gtk_table_attach (GTK_TABLE (table2), check_update, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); check_keepart = gtk_check_button_new_with_mnemonic (_("Keep partially transferred files")); gtk_widget_show (check_keepart); gtk_table_attach (GTK_TABLE (table2), check_keepart, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); check_mapuser = gtk_check_button_new_with_mnemonic (_("Don't map uid/gid values")); gtk_widget_show (check_mapuser); gtk_table_attach (GTK_TABLE (table2), check_mapuser, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_mapuser, _("Keep numeric uid/gid instead of mapping user names and group names"), NULL); check_compr = gtk_check_button_new_with_mnemonic (_("Compress file data")); gtk_widget_show (check_compr); gtk_table_attach (GTK_TABLE (table2), check_compr, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_compr, _("Compress file data when transferring"), NULL); check_backup = gtk_check_button_new_with_mnemonic (_("Make backups")); gtk_widget_show (check_backup); gtk_table_attach (GTK_TABLE (table2), check_backup, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_backup, _("Make backups of existing files on the destination"), NULL); label17 = gtk_label_new (_("Additional options:")); gtk_widget_show (label17); gtk_table_attach (GTK_TABLE (table2), label17, 0, 2, 4, 5, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_label_set_use_markup (GTK_LABEL (label17), TRUE); gtk_misc_set_alignment (GTK_MISC (label17), 0, 0.5); entry_additional = gtk_entry_new (); gtk_widget_show (entry_additional); gtk_table_attach (GTK_TABLE (table2), entry_additional, 0, 2, 5, 6, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, entry_additional, _("Additional command line options to pass to the rsync program"), NULL); gtk_entry_set_max_length (GTK_ENTRY (entry_additional), 200); Advanced = gtk_label_new (_("Advanced options")); gtk_widget_show (Advanced); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), Advanced); table5 = gtk_table_new (5, 2, FALSE); gtk_widget_show (table5); gtk_container_add (GTK_CONTAINER (notebook1), table5); gtk_container_set_border_width (GTK_CONTAINER (table5), 5); gtk_table_set_row_spacings (GTK_TABLE (table5), 6); gtk_table_set_col_spacings (GTK_TABLE (table5), 6); check_com_before = gtk_check_button_new_with_mnemonic (_("Execute this command before rsync:")); gtk_widget_show (check_com_before); gtk_table_attach (GTK_TABLE (table5), check_com_before, 0, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_com_before, _("Click on this item if you want to run a command before syncing. Can be useful, for instance, to mount a filesystem before starting or to do some cleanup."), NULL); entry_com_before = gtk_entry_new (); gtk_widget_show (entry_com_before); gtk_table_attach (GTK_TABLE (table5), entry_com_before, 0, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_entry_set_max_length (GTK_ENTRY (entry_com_before), 200); check_com_after = gtk_check_button_new_with_mnemonic (_("Execute this command after rsync:")); gtk_widget_show (check_com_after); gtk_table_attach (GTK_TABLE (table5), check_com_after, 0, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_com_after, _("Click on this item if you want to run a command after syncing. Can be useful, for instance, to unmount a filesystem at the end or to do some cleanup."), NULL); entry_com_after = gtk_entry_new (); gtk_widget_show (entry_com_after); gtk_table_attach (GTK_TABLE (table5), entry_com_after, 0, 2, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_entry_set_max_length (GTK_ENTRY (entry_com_after), 200); check_browse_files = gtk_check_button_new_with_mnemonic (_("Browse files instead of folders")); gtk_widget_show (check_browse_files); gtk_table_attach (GTK_TABLE (table5), check_browse_files, 0, 2, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_browse_files, _("By setting this switch, the browse source and destination buttons will open a dialog for selecting files instead of folders"), NULL); label28 = gtk_label_new (_("Extra options")); gtk_widget_show (label28); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 2), label28); hbuttonbox1 = gtk_hbutton_box_new (); gtk_widget_show (hbuttonbox1); gtk_box_pack_start (GTK_BOX (vbox2), hbuttonbox1, FALSE, TRUE, 6); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox1), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox1), 6); cancel = gtk_button_new_from_stock ("gtk-quit"); gtk_widget_show (cancel); gtk_container_add (GTK_CONTAINER (hbuttonbox1), cancel); dryrun = gtk_button_new (); gtk_widget_show (dryrun); gtk_container_add (GTK_CONTAINER (hbuttonbox1), dryrun); gtk_tooltips_set_tip (tooltips, dryrun, _("Show what would have been done, but actually do nothing (\"dry-run\" in rsync language)"), NULL); alignment3 = gtk_alignment_new (0.5, 0.5, 0, 0); gtk_widget_show (alignment3); gtk_container_add (GTK_CONTAINER (dryrun), alignment3); hbox3 = gtk_hbox_new (FALSE, 2); gtk_widget_show (hbox3); gtk_container_add (GTK_CONTAINER (alignment3), hbox3); image3 = gtk_image_new_from_stock ("gtk-dialog-info", GTK_ICON_SIZE_BUTTON); gtk_widget_show (image3); gtk_box_pack_start (GTK_BOX (hbox3), image3, FALSE, FALSE, 0); label7 = gtk_label_new_with_mnemonic (_("_Simulation")); gtk_widget_show (label7); gtk_box_pack_start (GTK_BOX (hbox3), label7, FALSE, FALSE, 0); play = gtk_button_new_from_stock ("gtk-execute"); gtk_widget_show (play); gtk_container_add (GTK_CONTAINER (hbuttonbox1), play); gtk_tooltips_set_tip (tooltips, play, _("Make a full run (go!)"), NULL); g_signal_connect ((gpointer) main, "destroy", G_CALLBACK (on_main_destroy), NULL); g_signal_connect ((gpointer) main, "show", G_CALLBACK (on_main_create), NULL); g_signal_connect ((gpointer) browse_source, "activate", G_CALLBACK (show_browse_source), NULL); g_signal_connect ((gpointer) browse_destination, "activate", G_CALLBACK (show_browse_dest), NULL); g_signal_connect ((gpointer) switch_source_with_destination1, "activate", G_CALLBACK (on_button_switch_clicked), NULL); g_signal_connect ((gpointer) simulation, "activate", G_CALLBACK (on_dryrun_clicked), NULL); g_signal_connect ((gpointer) execute, "activate", G_CALLBACK (on_play_clicked), NULL); g_signal_connect ((gpointer) preferences1, "activate", G_CALLBACK (on_preferences1_activate), NULL); g_signal_connect ((gpointer) quit1, "activate", G_CALLBACK (on_main_destroy), NULL); g_signal_connect ((gpointer) add1, "activate", G_CALLBACK (on_session_add_clicked), NULL); g_signal_connect ((gpointer) delete1, "activate", G_CALLBACK (on_session_del_clicked), NULL); g_signal_connect ((gpointer) import1, "activate", G_CALLBACK (on_import1_activate), NULL); g_signal_connect ((gpointer) export1, "activate", G_CALLBACK (on_export1_activate), NULL); g_signal_connect ((gpointer) about1, "activate", G_CALLBACK (on_button_about_clicked), NULL); g_signal_connect ((gpointer) rsync_info, "activate", G_CALLBACK (on_rsync_info_activate), NULL); g_signal_connect ((gpointer) combo_session, "changed", G_CALLBACK (on_combo_session_changed), NULL); g_signal_connect ((gpointer) session_add, "clicked", G_CALLBACK (on_session_add_clicked), NULL); g_signal_connect ((gpointer) session_del, "clicked", G_CALLBACK (on_session_del_clicked), NULL); g_signal_connect ((gpointer) button_browse_source, "clicked", G_CALLBACK (show_browse_source), NULL); g_signal_connect ((gpointer) button_browse_dest, "clicked", G_CALLBACK (show_browse_dest), NULL); g_signal_connect ((gpointer) button_switch, "clicked", G_CALLBACK (on_button_switch_clicked), NULL); g_signal_connect ((gpointer) cancel, "clicked", G_CALLBACK (on_main_destroy), NULL); g_signal_connect ((gpointer) dryrun, "clicked", G_CALLBACK (on_dryrun_clicked), NULL); g_signal_connect ((gpointer) play, "clicked", G_CALLBACK (on_play_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (main, main, "main"); GLADE_HOOKUP_OBJECT (main, vbox7, "vbox7"); GLADE_HOOKUP_OBJECT (main, menubar1, "menubar1"); GLADE_HOOKUP_OBJECT (main, menuitem1, "menuitem1"); GLADE_HOOKUP_OBJECT (main, menuitem1_menu, "menuitem1_menu"); GLADE_HOOKUP_OBJECT (main, browse_source, "browse_source"); GLADE_HOOKUP_OBJECT (main, image50, "image50"); GLADE_HOOKUP_OBJECT (main, browse_destination, "browse_destination"); GLADE_HOOKUP_OBJECT (main, image51, "image51"); GLADE_HOOKUP_OBJECT (main, switch_source_with_destination1, "switch_source_with_destination1"); GLADE_HOOKUP_OBJECT (main, image52, "image52"); GLADE_HOOKUP_OBJECT (main, separator2, "separator2"); GLADE_HOOKUP_OBJECT (main, simulation, "simulation"); GLADE_HOOKUP_OBJECT (main, image53, "image53"); GLADE_HOOKUP_OBJECT (main, execute, "execute"); GLADE_HOOKUP_OBJECT (main, image54, "image54"); GLADE_HOOKUP_OBJECT (main, preferences1, "preferences1"); GLADE_HOOKUP_OBJECT (main, separator1, "separator1"); GLADE_HOOKUP_OBJECT (main, quit1, "quit1"); GLADE_HOOKUP_OBJECT (main, menuitem3, "menuitem3"); GLADE_HOOKUP_OBJECT (main, menuitem3_menu, "menuitem3_menu"); GLADE_HOOKUP_OBJECT (main, add1, "add1"); GLADE_HOOKUP_OBJECT (main, delete1, "delete1"); GLADE_HOOKUP_OBJECT (main, import1, "import1"); GLADE_HOOKUP_OBJECT (main, image55, "image55"); GLADE_HOOKUP_OBJECT (main, export1, "export1"); GLADE_HOOKUP_OBJECT (main, image56, "image56"); GLADE_HOOKUP_OBJECT (main, menuitem4, "menuitem4"); GLADE_HOOKUP_OBJECT (main, menuitem4_menu, "menuitem4_menu"); GLADE_HOOKUP_OBJECT (main, about1, "about1"); GLADE_HOOKUP_OBJECT (main, rsync_info, "rsync_info"); GLADE_HOOKUP_OBJECT (main, image57, "image57"); GLADE_HOOKUP_OBJECT (main, vbox2, "vbox2"); GLADE_HOOKUP_OBJECT (main, frame1, "frame1"); GLADE_HOOKUP_OBJECT (main, alignment5, "alignment5"); GLADE_HOOKUP_OBJECT (main, hbox13, "hbox13"); GLADE_HOOKUP_OBJECT (main, combo_session, "combo_session"); GLADE_HOOKUP_OBJECT (main, session_add, "session_add"); GLADE_HOOKUP_OBJECT (main, session_del, "session_del"); GLADE_HOOKUP_OBJECT (main, label22, "label22"); GLADE_HOOKUP_OBJECT (main, frame2, "frame2"); GLADE_HOOKUP_OBJECT (main, alignment6, "alignment6"); GLADE_HOOKUP_OBJECT (main, hbox15, "hbox15"); GLADE_HOOKUP_OBJECT (main, table3, "table3"); GLADE_HOOKUP_OBJECT (main, button_browse_source, "button_browse_source"); GLADE_HOOKUP_OBJECT (main, alignment1, "alignment1"); GLADE_HOOKUP_OBJECT (main, hbox1, "hbox1"); GLADE_HOOKUP_OBJECT (main, image1, "image1"); GLADE_HOOKUP_OBJECT (main, label2, "label2"); GLADE_HOOKUP_OBJECT (main, button_browse_dest, "button_browse_dest"); GLADE_HOOKUP_OBJECT (main, alignment4, "alignment4"); GLADE_HOOKUP_OBJECT (main, hbox14, "hbox14"); GLADE_HOOKUP_OBJECT (main, image4, "image4"); GLADE_HOOKUP_OBJECT (main, label18, "label18"); GLADE_HOOKUP_OBJECT (main, text_source, "text_source"); GLADE_HOOKUP_OBJECT (main, text_dest, "text_dest"); GLADE_HOOKUP_OBJECT (main, button_switch, "button_switch"); GLADE_HOOKUP_OBJECT (main, image5, "image5"); GLADE_HOOKUP_OBJECT (main, label23, "label23"); GLADE_HOOKUP_OBJECT (main, notebook1, "notebook1"); GLADE_HOOKUP_OBJECT (main, table1, "table1"); GLADE_HOOKUP_OBJECT (main, check_group, "check_group"); GLADE_HOOKUP_OBJECT (main, check_time, "check_time"); GLADE_HOOKUP_OBJECT (main, check_perm, "check_perm"); GLADE_HOOKUP_OBJECT (main, check_owner, "check_owner"); GLADE_HOOKUP_OBJECT (main, check_onefs, "check_onefs"); GLADE_HOOKUP_OBJECT (main, check_delete, "check_delete"); GLADE_HOOKUP_OBJECT (main, check_verbose, "check_verbose"); GLADE_HOOKUP_OBJECT (main, check_progr, "check_progr"); GLADE_HOOKUP_OBJECT (main, check_exist, "check_exist"); GLADE_HOOKUP_OBJECT (main, check_size, "check_size"); GLADE_HOOKUP_OBJECT (main, hseparator2, "hseparator2"); GLADE_HOOKUP_OBJECT (main, check_skipnew, "check_skipnew"); GLADE_HOOKUP_OBJECT (main, check_windows, "check_windows"); GLADE_HOOKUP_OBJECT (main, Basic, "Basic"); GLADE_HOOKUP_OBJECT (main, table2, "table2"); GLADE_HOOKUP_OBJECT (main, check_sum, "check_sum"); GLADE_HOOKUP_OBJECT (main, check_symlink, "check_symlink"); GLADE_HOOKUP_OBJECT (main, check_dev, "check_dev"); GLADE_HOOKUP_OBJECT (main, check_update, "check_update"); GLADE_HOOKUP_OBJECT (main, check_keepart, "check_keepart"); GLADE_HOOKUP_OBJECT (main, check_mapuser, "check_mapuser"); GLADE_HOOKUP_OBJECT (main, check_compr, "check_compr"); GLADE_HOOKUP_OBJECT (main, check_backup, "check_backup"); GLADE_HOOKUP_OBJECT (main, label17, "label17"); GLADE_HOOKUP_OBJECT (main, entry_additional, "entry_additional"); GLADE_HOOKUP_OBJECT (main, Advanced, "Advanced"); GLADE_HOOKUP_OBJECT (main, table5, "table5"); GLADE_HOOKUP_OBJECT (main, check_com_before, "check_com_before"); GLADE_HOOKUP_OBJECT (main, entry_com_before, "entry_com_before"); GLADE_HOOKUP_OBJECT (main, check_com_after, "check_com_after"); GLADE_HOOKUP_OBJECT (main, entry_com_after, "entry_com_after"); GLADE_HOOKUP_OBJECT (main, check_browse_files, "check_browse_files"); GLADE_HOOKUP_OBJECT (main, label28, "label28"); GLADE_HOOKUP_OBJECT (main, hbuttonbox1, "hbuttonbox1"); GLADE_HOOKUP_OBJECT (main, cancel, "cancel"); GLADE_HOOKUP_OBJECT (main, dryrun, "dryrun"); GLADE_HOOKUP_OBJECT (main, alignment3, "alignment3"); GLADE_HOOKUP_OBJECT (main, hbox3, "hbox3"); GLADE_HOOKUP_OBJECT (main, image3, "image3"); GLADE_HOOKUP_OBJECT (main, label7, "label7"); GLADE_HOOKUP_OBJECT (main, play, "play"); GLADE_HOOKUP_OBJECT_NO_REF (main, tooltips, "tooltips"); gtk_widget_grab_focus (main); gtk_widget_grab_default (main); gtk_window_add_accel_group (GTK_WINDOW (main), accel_group); return main; } GtkWidget* create_dialog_new_session (void) { GtkWidget *dialog_new_session; GtkWidget *dialog_vbox1; GtkWidget *label27; GtkWidget *entry_session_name; GtkWidget *dialog_action_area1; GtkWidget *cancelbutton1; GtkWidget *okbutton1; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); dialog_new_session = gtk_dialog_new (); gtk_container_set_border_width (GTK_CONTAINER (dialog_new_session), 12); gtk_window_set_title (GTK_WINDOW (dialog_new_session), _("Add session")); gtk_window_set_modal (GTK_WINDOW (dialog_new_session), TRUE); gtk_window_set_resizable (GTK_WINDOW (dialog_new_session), FALSE); gtk_window_set_skip_taskbar_hint (GTK_WINDOW (dialog_new_session), TRUE); gtk_window_set_skip_pager_hint (GTK_WINDOW (dialog_new_session), TRUE); gtk_window_set_type_hint (GTK_WINDOW (dialog_new_session), GDK_WINDOW_TYPE_HINT_DIALOG); gtk_dialog_set_has_separator (GTK_DIALOG (dialog_new_session), FALSE); dialog_vbox1 = GTK_DIALOG (dialog_new_session)->vbox; gtk_widget_show (dialog_vbox1); label27 = gtk_label_new (_("Enter session name you want to create:")); gtk_widget_show (label27); gtk_box_pack_start (GTK_BOX (dialog_vbox1), label27, FALSE, FALSE, 0); entry_session_name = gtk_entry_new (); gtk_widget_show (entry_session_name); gtk_box_pack_start (GTK_BOX (dialog_vbox1), entry_session_name, FALSE, FALSE, 0); gtk_widget_set_size_request (entry_session_name, 200, -1); gtk_tooltips_set_tip (tooltips, entry_session_name, _("Enter the name of the new session to create"), NULL); gtk_entry_set_max_length (GTK_ENTRY (entry_session_name), 50); gtk_entry_set_activates_default (GTK_ENTRY (entry_session_name), TRUE); dialog_action_area1 = GTK_DIALOG (dialog_new_session)->action_area; gtk_widget_show (dialog_action_area1); gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END); cancelbutton1 = gtk_button_new_from_stock ("gtk-cancel"); gtk_widget_show (cancelbutton1); gtk_dialog_add_action_widget (GTK_DIALOG (dialog_new_session), cancelbutton1, GTK_RESPONSE_CANCEL); GTK_WIDGET_SET_FLAGS (cancelbutton1, GTK_CAN_DEFAULT); okbutton1 = gtk_button_new_from_stock ("gtk-ok"); gtk_widget_show (okbutton1); gtk_dialog_add_action_widget (GTK_DIALOG (dialog_new_session), okbutton1, GTK_RESPONSE_OK); GTK_WIDGET_SET_FLAGS (okbutton1, GTK_CAN_DEFAULT); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (dialog_new_session, dialog_new_session, "dialog_new_session"); GLADE_HOOKUP_OBJECT_NO_REF (dialog_new_session, dialog_vbox1, "dialog_vbox1"); GLADE_HOOKUP_OBJECT (dialog_new_session, label27, "label27"); GLADE_HOOKUP_OBJECT (dialog_new_session, entry_session_name, "entry_session_name"); GLADE_HOOKUP_OBJECT_NO_REF (dialog_new_session, dialog_action_area1, "dialog_action_area1"); GLADE_HOOKUP_OBJECT (dialog_new_session, cancelbutton1, "cancelbutton1"); GLADE_HOOKUP_OBJECT (dialog_new_session, okbutton1, "okbutton1"); GLADE_HOOKUP_OBJECT_NO_REF (dialog_new_session, tooltips, "tooltips"); gtk_widget_grab_default (okbutton1); return dialog_new_session; } GtkWidget* create_dialog_config (void) { GtkWidget *dialog_config; GtkWidget *dialog_vbox2; GtkWidget *table4; GtkWidget *check_output; GtkWidget *check_remember; GtkWidget *check_errorlist; GtkWidget *check_log; GtkWidget *entry_command; GtkWidget *label20; GtkWidget *dialog_action_area2; GtkWidget *cancelbutton2; GtkWidget *okbutton2; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); dialog_config = gtk_dialog_new (); gtk_container_set_border_width (GTK_CONTAINER (dialog_config), 12); gtk_window_set_title (GTK_WINDOW (dialog_config), _("Grsync preferences")); gtk_window_set_modal (GTK_WINDOW (dialog_config), TRUE); gtk_window_set_skip_taskbar_hint (GTK_WINDOW (dialog_config), TRUE); gtk_window_set_skip_pager_hint (GTK_WINDOW (dialog_config), TRUE); gtk_window_set_type_hint (GTK_WINDOW (dialog_config), GDK_WINDOW_TYPE_HINT_DIALOG); gtk_dialog_set_has_separator (GTK_DIALOG (dialog_config), FALSE); dialog_vbox2 = GTK_DIALOG (dialog_config)->vbox; gtk_widget_show (dialog_vbox2); table4 = gtk_table_new (4, 2, FALSE); gtk_widget_show (table4); gtk_box_pack_start (GTK_BOX (dialog_vbox2), table4, TRUE, TRUE, 0); gtk_table_set_row_spacings (GTK_TABLE (table4), 6); gtk_table_set_col_spacings (GTK_TABLE (table4), 12); check_output = gtk_check_button_new_with_mnemonic (_("Show rsync output by default")); gtk_widget_show (check_output); gtk_table_attach (GTK_TABLE (table4), check_output, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_output, _("Wether to show rsync output by default or hide it (show graphical information only)"), NULL); check_remember = gtk_check_button_new_with_mnemonic (_("Remember last used session")); gtk_widget_show (check_remember); gtk_table_attach (GTK_TABLE (table4), check_remember, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_remember, _("Whether to load the last used session at startup or use the default one"), NULL); check_errorlist = gtk_check_button_new_with_mnemonic (_("Show error list when finished")); gtk_widget_show (check_errorlist); gtk_table_attach (GTK_TABLE (table4), check_errorlist, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_errorlist, _("When rsync has finished, show all the errors encountered in a separate window"), NULL); check_log = gtk_check_button_new_with_mnemonic (_("Enable logging")); gtk_widget_show (check_log); gtk_table_attach (GTK_TABLE (table4), check_log, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, check_log, _("Whether to save rsync output to a log file, named like the session, which will be located in the grsync directory (usually \".grsync\" into your user home)"), NULL); entry_command = gtk_entry_new (); gtk_widget_show (entry_command); gtk_table_attach (GTK_TABLE (table4), entry_command, 0, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_tooltips_set_tip (tooltips, entry_command, _("Enter the rsync command to use, eventually including its full path"), NULL); gtk_entry_set_max_length (GTK_ENTRY (entry_command), 200); gtk_entry_set_activates_default (GTK_ENTRY (entry_command), TRUE); label20 = gtk_label_new (_("Rsync executable:")); gtk_widget_show (label20); gtk_table_attach (GTK_TABLE (table4), label20, 0, 2, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label20), 0, 0); dialog_action_area2 = GTK_DIALOG (dialog_config)->action_area; gtk_widget_show (dialog_action_area2); gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area2), GTK_BUTTONBOX_END); cancelbutton2 = gtk_button_new_from_stock ("gtk-cancel"); gtk_widget_show (cancelbutton2); gtk_dialog_add_action_widget (GTK_DIALOG (dialog_config), cancelbutton2, GTK_RESPONSE_CANCEL); GTK_WIDGET_SET_FLAGS (cancelbutton2, GTK_CAN_DEFAULT); okbutton2 = gtk_button_new_from_stock ("gtk-ok"); gtk_widget_show (okbutton2); gtk_dialog_add_action_widget (GTK_DIALOG (dialog_config), okbutton2, GTK_RESPONSE_OK); GTK_WIDGET_SET_FLAGS (okbutton2, GTK_CAN_DEFAULT); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (dialog_config, dialog_config, "dialog_config"); GLADE_HOOKUP_OBJECT_NO_REF (dialog_config, dialog_vbox2, "dialog_vbox2"); GLADE_HOOKUP_OBJECT (dialog_config, table4, "table4"); GLADE_HOOKUP_OBJECT (dialog_config, check_output, "check_output"); GLADE_HOOKUP_OBJECT (dialog_config, check_remember, "check_remember"); GLADE_HOOKUP_OBJECT (dialog_config, check_errorlist, "check_errorlist"); GLADE_HOOKUP_OBJECT (dialog_config, check_log, "check_log"); GLADE_HOOKUP_OBJECT (dialog_config, entry_command, "entry_command"); GLADE_HOOKUP_OBJECT (dialog_config, label20, "label20"); GLADE_HOOKUP_OBJECT_NO_REF (dialog_config, dialog_action_area2, "dialog_action_area2"); GLADE_HOOKUP_OBJECT (dialog_config, cancelbutton2, "cancelbutton2"); GLADE_HOOKUP_OBJECT (dialog_config, okbutton2, "okbutton2"); GLADE_HOOKUP_OBJECT_NO_REF (dialog_config, tooltips, "tooltips"); gtk_widget_grab_default (okbutton2); return dialog_config; } GtkWidget* create_dialog_errors (void) { GtkWidget *dialog_errors; GtkWidget *dialog_vbox3; GtkWidget *vbox10; GtkWidget *label1; GtkWidget *scrolledwindow4; GtkWidget *textview_errors; GtkWidget *dialog_action_area3; GtkWidget *closebutton1; dialog_errors = gtk_dialog_new (); gtk_window_set_title (GTK_WINDOW (dialog_errors), _("Errors list")); gtk_window_set_modal (GTK_WINDOW (dialog_errors), TRUE); gtk_window_set_skip_taskbar_hint (GTK_WINDOW (dialog_errors), TRUE); gtk_window_set_skip_pager_hint (GTK_WINDOW (dialog_errors), TRUE); gtk_window_set_type_hint (GTK_WINDOW (dialog_errors), GDK_WINDOW_TYPE_HINT_DIALOG); gtk_dialog_set_has_separator (GTK_DIALOG (dialog_errors), FALSE); dialog_vbox3 = GTK_DIALOG (dialog_errors)->vbox; gtk_widget_show (dialog_vbox3); vbox10 = gtk_vbox_new (FALSE, 12); gtk_widget_show (vbox10); gtk_box_pack_start (GTK_BOX (dialog_vbox3), vbox10, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox10), 12); label1 = gtk_label_new (_("Error list of last rsync run:")); gtk_widget_show (label1); gtk_box_pack_start (GTK_BOX (vbox10), label1, FALSE, FALSE, 0); scrolledwindow4 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow4); gtk_box_pack_start (GTK_BOX (vbox10), scrolledwindow4, TRUE, TRUE, 0); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow4), GTK_SHADOW_IN); textview_errors = gtk_text_view_new (); gtk_widget_show (textview_errors); gtk_container_add (GTK_CONTAINER (scrolledwindow4), textview_errors); gtk_widget_set_size_request (textview_errors, 400, 150); gtk_text_view_set_editable (GTK_TEXT_VIEW (textview_errors), FALSE); dialog_action_area3 = GTK_DIALOG (dialog_errors)->action_area; gtk_widget_show (dialog_action_area3); gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area3), GTK_BUTTONBOX_END); closebutton1 = gtk_button_new_from_stock ("gtk-close"); gtk_widget_show (closebutton1); gtk_dialog_add_action_widget (GTK_DIALOG (dialog_errors), closebutton1, GTK_RESPONSE_CLOSE); GTK_WIDGET_SET_FLAGS (closebutton1, GTK_CAN_DEFAULT); g_signal_connect_swapped ((gpointer) closebutton1, "clicked", G_CALLBACK (gtk_widget_destroy), GTK_OBJECT (dialog_errors)); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (dialog_errors, dialog_errors, "dialog_errors"); GLADE_HOOKUP_OBJECT_NO_REF (dialog_errors, dialog_vbox3, "dialog_vbox3"); GLADE_HOOKUP_OBJECT (dialog_errors, vbox10, "vbox10"); GLADE_HOOKUP_OBJECT (dialog_errors, label1, "label1"); GLADE_HOOKUP_OBJECT (dialog_errors, scrolledwindow4, "scrolledwindow4"); GLADE_HOOKUP_OBJECT (dialog_errors, textview_errors, "textview_errors"); GLADE_HOOKUP_OBJECT_NO_REF (dialog_errors, dialog_action_area3, "dialog_action_area3"); GLADE_HOOKUP_OBJECT (dialog_errors, closebutton1, "closebutton1"); return dialog_errors; } GtkWidget* create_dialog_rsync (void) { GtkWidget *dialog_rsync; GtkWidget *dialog_vbox4; GtkWidget *vbox11; GtkWidget *label_file; GtkWidget *progress_file; GtkWidget *label_global; GtkWidget *progress_global; GtkWidget *hseparator4; GtkWidget *expander_rsync; GtkWidget *scrolledwindow5; GtkWidget *textview_output; GtkWidget *label26; GtkWidget *dialog_action_area4; GtkWidget *button_pause; GtkWidget *close; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); dialog_rsync = gtk_dialog_new (); gtk_container_set_border_width (GTK_CONTAINER (dialog_rsync), 12); gtk_window_set_title (GTK_WINDOW (dialog_rsync), _("rsync")); gtk_window_set_modal (GTK_WINDOW (dialog_rsync), TRUE); gtk_window_set_resizable (GTK_WINDOW (dialog_rsync), FALSE); gtk_window_set_skip_taskbar_hint (GTK_WINDOW (dialog_rsync), TRUE); gtk_window_set_skip_pager_hint (GTK_WINDOW (dialog_rsync), TRUE); gtk_window_set_type_hint (GTK_WINDOW (dialog_rsync), GDK_WINDOW_TYPE_HINT_DIALOG); gtk_dialog_set_has_separator (GTK_DIALOG (dialog_rsync), FALSE); dialog_vbox4 = GTK_DIALOG (dialog_rsync)->vbox; gtk_widget_show (dialog_vbox4); vbox11 = gtk_vbox_new (FALSE, 6); gtk_widget_show (vbox11); gtk_box_pack_start (GTK_BOX (dialog_vbox4), vbox11, TRUE, TRUE, 0); label_file = gtk_label_new (_("Idle")); gtk_widget_show (label_file); gtk_box_pack_start (GTK_BOX (vbox11), label_file, FALSE, TRUE, 0); gtk_misc_set_alignment (GTK_MISC (label_file), 0, 0); progress_file = gtk_progress_bar_new (); gtk_widget_show (progress_file); gtk_box_pack_start (GTK_BOX (vbox11), progress_file, FALSE, TRUE, 3); gtk_tooltips_set_tip (tooltips, progress_file, _("Transfer progress of current file"), NULL); gtk_widget_set_events (progress_file, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progress_file), "0%"); label_global = gtk_label_new (_("Global progress")); gtk_widget_show (label_global); gtk_box_pack_start (GTK_BOX (vbox11), label_global, FALSE, FALSE, 0); gtk_label_set_line_wrap (GTK_LABEL (label_global), TRUE); gtk_misc_set_alignment (GTK_MISC (label_global), 0, 0); progress_global = gtk_progress_bar_new (); gtk_widget_show (progress_global); gtk_box_pack_start (GTK_BOX (vbox11), progress_global, FALSE, FALSE, 0); gtk_tooltips_set_tip (tooltips, progress_global, _("Global transfer progress: works only with rsync version 2.6.1 or newer, and may report wrong values depending on the ability of rsync to estimate the files to be copied in advance"), NULL); gtk_widget_set_events (progress_global, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progress_global), "0%"); hseparator4 = gtk_hseparator_new (); gtk_widget_show (hseparator4); gtk_box_pack_start (GTK_BOX (vbox11), hseparator4, FALSE, TRUE, 0); gtk_widget_set_size_request (hseparator4, 410, -1); expander_rsync = gtk_expander_new (NULL); gtk_widget_show (expander_rsync); gtk_box_pack_start (GTK_BOX (vbox11), expander_rsync, FALSE, TRUE, 0); gtk_expander_set_expanded (GTK_EXPANDER (expander_rsync), TRUE); scrolledwindow5 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow5); gtk_container_add (GTK_CONTAINER (expander_rsync), scrolledwindow5); gtk_widget_set_size_request (scrolledwindow5, -1, 250); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow5), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow5), GTK_SHADOW_IN); textview_output = gtk_text_view_new (); gtk_widget_show (textview_output); gtk_container_add (GTK_CONTAINER (scrolledwindow5), textview_output); gtk_widget_set_sensitive (textview_output, FALSE); gtk_text_view_set_editable (GTK_TEXT_VIEW (textview_output), FALSE); gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (textview_output), FALSE); label26 = gtk_label_new (_("Rsync output:")); gtk_widget_show (label26); gtk_expander_set_label_widget (GTK_EXPANDER (expander_rsync), label26); dialog_action_area4 = GTK_DIALOG (dialog_rsync)->action_area; gtk_widget_show (dialog_action_area4); gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area4), GTK_BUTTONBOX_END); button_pause = gtk_button_new_from_stock ("gtk-media-pause"); gtk_widget_show (button_pause); gtk_dialog_add_action_widget (GTK_DIALOG (dialog_rsync), button_pause, 0); gtk_tooltips_set_tip (tooltips, button_pause, _("Pause/resume rsync run"), NULL); close = gtk_button_new_from_stock ("gtk-stop"); gtk_widget_show (close); gtk_dialog_add_action_widget (GTK_DIALOG (dialog_rsync), close, 0); gtk_tooltips_set_tip (tooltips, close, _("Stops rsync and closes the window"), NULL); g_signal_connect ((gpointer) dialog_rsync, "show", G_CALLBACK (on_rsync_show), NULL); g_signal_connect ((gpointer) dialog_rsync, "destroy", G_CALLBACK (on_rsync_destroy), NULL); g_signal_connect ((gpointer) button_pause, "clicked", G_CALLBACK (on_button_pause_clicked), NULL); g_signal_connect ((gpointer) close, "clicked", G_CALLBACK (on_close_clicked), NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (dialog_rsync, dialog_rsync, "dialog_rsync"); GLADE_HOOKUP_OBJECT_NO_REF (dialog_rsync, dialog_vbox4, "dialog_vbox4"); GLADE_HOOKUP_OBJECT (dialog_rsync, vbox11, "vbox11"); GLADE_HOOKUP_OBJECT (dialog_rsync, label_file, "label_file"); GLADE_HOOKUP_OBJECT (dialog_rsync, progress_file, "progress_file"); GLADE_HOOKUP_OBJECT (dialog_rsync, label_global, "label_global"); GLADE_HOOKUP_OBJECT (dialog_rsync, progress_global, "progress_global"); GLADE_HOOKUP_OBJECT (dialog_rsync, hseparator4, "hseparator4"); GLADE_HOOKUP_OBJECT (dialog_rsync, expander_rsync, "expander_rsync"); GLADE_HOOKUP_OBJECT (dialog_rsync, scrolledwindow5, "scrolledwindow5"); GLADE_HOOKUP_OBJECT (dialog_rsync, textview_output, "textview_output"); GLADE_HOOKUP_OBJECT (dialog_rsync, label26, "label26"); GLADE_HOOKUP_OBJECT_NO_REF (dialog_rsync, dialog_action_area4, "dialog_action_area4"); GLADE_HOOKUP_OBJECT (dialog_rsync, button_pause, "button_pause"); GLADE_HOOKUP_OBJECT (dialog_rsync, close, "close"); GLADE_HOOKUP_OBJECT_NO_REF (dialog_rsync, tooltips, "tooltips"); return dialog_rsync; }