Changeset 575

Show
Ignore:
Timestamp:
05/19/08 03:42:20 (8 months ago)
Author:
kickback
Message:

sweep-unstable: unify scheme editor callback names, cleanup old menu proxy signals, add delete scheme confirmation popup

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sweep/branches/sweep-unstable/src/callbacks.c

    r540 r575  
    10521052 
    10531053void 
    1054 scheme_ed_new_clicked_cb (GtkButton *button, gpointer user_data) 
     1054schemes_ed_new_clicked_cb (GtkButton *button, gpointer user_data) 
    10551055{ 
    10561056  SweepScheme *scheme; 
     
    10621062 
    10631063void 
    1064 scheme_ed_copy_clicked_cb (GtkButton *button, gpointer user_data) 
     1064schemes_ed_copy_clicked_cb (GtkButton *button, gpointer user_data) 
    10651065{ 
    10661066     
     
    10791079 
    10801080void 
    1081 scheme_ed_delete_clicked_cb (GtkButton *button, gpointer user_data) 
    1082 
    1083      
    1084   gint index; 
     1081schemes_ed_delete_clicked_cb (GtkButton *button, gpointer user_data) 
     1082
     1083     
     1084  gint index, result; 
     1085  GtkWindow *dialog; 
    10851086  SweepScheme *scheme; 
     1087  GtkWidget *parent, *message, *icon, *hbox; 
    10861088     
    10871089  if ((index = gtk_combo_box_get_active (GTK_COMBO_BOX (user_data))) != -1) 
    10881090  { 
    1089       scheme = schemes_get_nth (index); 
    1090       if (scheme != NULL) 
    1091         schemes_remove_scheme (scheme); 
    1092   } 
    1093      
    1094 
    1095  
    1096 void 
    1097 scheme_ed_revert_clicked_cb (GtkButton *button, gpointer user_data) 
    1098 
    1099  
    1100 
    1101  
    1102 void 
    1103 scheme_ed_save_clicked_cb (GtkButton *button, gpointer user_data) 
    1104 
    1105  
    1106 
    1107  
    1108 void 
    1109 scheme_ed_close_clicked_cb (GtkButton *button, gpointer user_data) 
     1091     
     1092    if ((parent = g_object_get_data (G_OBJECT (button), "parent")) == NULL) 
     1093      return; 
     1094       
     1095    dialog = gtk_dialog_new_with_buttons (_("Confirm delete"), 
     1096                                            parent, 
     1097                                            GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, 
     1098                                            GTK_STOCK_DELETE, 
     1099                                            GTK_RESPONSE_ACCEPT, 
     1100                                            GTK_STOCK_CANCEL, 
     1101                                            GTK_RESPONSE_REJECT, 
     1102                                            NULL); 
     1103    message = gtk_label_new (_("Are you sure you want to permanently delete this scheme?")); 
     1104    gtk_misc_set_padding (GTK_MISC (message), 10, 10); 
     1105 
     1106    icon    = gtk_image_new_from_stock ("gtk-dialog-warning", GTK_ICON_SIZE_DIALOG); 
     1107    gtk_misc_set_padding (GTK_MISC (icon), 10, 10); 
     1108 
     1109    hbox    = gtk_hbox_new (FALSE, 6); 
     1110    gtk_box_pack_start_defaults (GTK_BOX (hbox), icon); 
     1111    gtk_box_pack_start_defaults (GTK_BOX (hbox), message); 
     1112    gtk_box_pack_start_defaults ((GTK_DIALOG (dialog)->vbox), hbox); 
     1113    gtk_widget_show_all (GTK_DIALOG (dialog)->vbox); 
     1114    result = gtk_dialog_run (GTK_DIALOG (dialog)); 
     1115    gtk_widget_destroy (dialog); 
     1116       
     1117    if (result != GTK_RESPONSE_ACCEPT) 
     1118      return; 
     1119 
     1120    scheme = schemes_get_nth (index); 
     1121    if (scheme != NULL) 
     1122      schemes_remove_scheme (scheme); 
     1123  } 
     1124     
     1125
     1126 
     1127void 
     1128schemes_ed_revert_clicked_cb (GtkButton *button, gpointer user_data) 
     1129
     1130 
     1131
     1132 
     1133void 
     1134schemes_ed_save_clicked_cb (GtkButton *button, gpointer user_data) 
     1135
     1136 
     1137
     1138 
     1139void 
     1140schemes_ed_close_clicked_cb (GtkButton *button, gpointer user_data) 
    11101141{ 
    11111142  GtkWidget *widget = GTK_WIDGET (user_data); 
     
    11161147 
    11171148void 
    1118 scheme_ed_combo_changed_cb (GtkComboBox *widget, gpointer user_data) 
     1149schemes_ed_combo_changed_cb (GtkComboBox *widget, gpointer user_data) 
    11191150{ 
    11201151     
     
    11831214 
    11841215void 
    1185 scheme_ed_update_default_button_cb (GtkComboBox *widget, gpointer user_data) 
     1216schemes_ed_update_default_button_cb (GtkComboBox *widget, gpointer user_data) 
    11861217{ 
    11871218    GtkToggleButton * default_check_button; 
     
    11951226      if (scheme != NULL) 
    11961227        g_signal_handlers_block_by_func (default_check_button, 
    1197                                          scheme_ed_default_button_toggled_cb, 
     1228                                         schemes_ed_default_button_toggled_cb, 
    11981229                                         widget); 
    11991230                                          
     
    12031234         
    12041235        g_signal_handlers_unblock_by_func (default_check_button, 
    1205                                          scheme_ed_default_button_toggled_cb, 
     1236                                         schemes_ed_default_button_toggled_cb, 
    12061237                                         widget); 
    12071238    } 
     
    12091240 
    12101241void 
    1211 scheme_ed_default_button_toggled_cb (GtkToggleButton *togglebutton, 
     1242schemes_ed_default_button_toggled_cb (GtkToggleButton *togglebutton, 
    12121243                                     gpointer user_data) 
    12131244{ 
  • sweep/branches/sweep-unstable/src/callbacks.h

    r540 r575  
    299299 
    300300void 
    301 scheme_ed_new_clicked_cb (GtkButton *button, gpointer user_data); 
    302 void 
    303 scheme_ed_copy_clicked_cb (GtkButton *button, gpointer user_data); 
    304  
    305 void 
    306 scheme_ed_revert_clicked_cb (GtkButton *button, gpointer user_data); 
    307  
    308 void 
    309 scheme_ed_save_clicked_cb (GtkButton *button, gpointer user_data); 
    310  
    311 void 
    312 scheme_ed_delete_clicked_cb (GtkButton *button, gpointer user_data); 
    313 void 
    314 scheme_ed_close_clicked_cb (GtkButton *button, gpointer user_data); 
    315 void 
    316 scheme_ed_combo_changed_cb (GtkComboBox *widget, gpointer user_data); 
     301schemes_ed_new_clicked_cb (GtkButton *button, gpointer user_data); 
     302void 
     303schemes_ed_copy_clicked_cb (GtkButton *button, gpointer user_data); 
     304 
     305void 
     306schemes_ed_revert_clicked_cb (GtkButton *button, gpointer user_data); 
     307 
     308void 
     309schemes_ed_save_clicked_cb (GtkButton *button, gpointer user_data); 
     310 
     311void 
     312schemes_ed_delete_clicked_cb (GtkButton *button, gpointer user_data); 
     313void 
     314schemes_ed_close_clicked_cb (GtkButton *button, gpointer user_data); 
     315void 
     316schemes_ed_combo_changed_cb (GtkComboBox *widget, gpointer user_data); 
    317317gboolean  
    318318schemes_ed_delete_event_cb (GtkWidget *widget, GdkEvent *event, gpointer data); 
     
    330330                                         gpointer user_data); 
    331331void 
    332 scheme_ed_update_default_button_cb (GtkComboBox *widget, gpointer user_data); 
    333  
    334 void 
    335 scheme_ed_default_button_toggled_cb (GtkToggleButton *togglebutton, 
     332schemes_ed_update_default_button_cb (GtkComboBox *widget, gpointer user_data); 
     333 
     334void 
     335schemes_ed_default_button_toggled_cb (GtkToggleButton *togglebutton, 
    336336                                     gpointer user_data); 
    337337 
  • sweep/branches/sweep-unstable/src/schemes.c

    r574 r575  
    474474    g_free (tmpstring); 
    475475  } 
    476   gtk_box_pack_start_defaults (GTK_BOX (GTK_DIALOG (dialog)->vbox), entry); 
     476  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), entry, TRUE, TRUE, 10); 
    477477 
    478478  gtk_widget_show_all (GTK_DIALOG (dialog)->vbox); 
     
    720720} 
    721721 
     722 
     723static void 
     724schemes_disconnect_menu (GtkObject *menuitem, gpointer user_data)  
     725{ 
     726  gint disconnected = -1; 
     727     
     728  if ((menuitem != NULL) || (GTK_IS_MENU_ITEM (menuitem))) { 
     729    disconnected =  
     730      g_signal_handlers_disconnect_matched (menu_item_proxy, 
     731                                            G_SIGNAL_MATCH_FUNC|G_SIGNAL_MATCH_DATA, 
     732                                            0, 
     733                                            0, 
     734                                            NULL, 
     735                                            schemes_refresh_color_scheme_menu_cb, 
     736                                            menuitem); 
     737    if (disconnected != 1) 
     738      g_warning ("Warning:schemes_disconnect_menu: disconnected %d menuitems. expected 1\n", disconnected); 
     739  } else 
     740    g_warning ("Warning:schemes_disconnect_menu: attempt to disconnect something not a menuitem\n"); 
     741} 
     742 
    722743void 
    723744schemes_create_menu (GtkWidget * parent_menuitem, 
     
    747768   
    748769 
    749   if (connect_signals) 
     770  if (connect_signals) { 
    750771    g_signal_connect_swapped (G_OBJECT (menu_item_proxy), 
    751772                              "event", 
    752773                              G_CALLBACK (schemes_refresh_color_scheme_menu_cb), 
    753774                              parent_menuitem); 
    754    
     775       
     776    g_signal_connect (G_OBJECT (parent_menuitem), "destroy", 
     777                      G_CALLBACK (schemes_disconnect_menu), 
     778                      NULL); 
     779  } 
    755780     
    756781  for (list = schemes_list; list; list = list->next) { 
     
    888913schemes_color_chooser_set_color (SweepScheme * scheme, gint element) 
    889914{ 
     915  SweepScheme *scheme_undo;   
     916   
    890917  if ((colorselection == NULL) || 
    891918      (scheme == NULL) || 
     
    893920      (element >= SCHEME_ELEMENT_LAST)) 
    894921    return; 
    895  
     922     
     923  scheme_undo = g_object_get_data (G_OBJECT (colorselection), "scheme-undo"); 
     924     
     925  //if (scheme != scheme_undo) 
     926                                       // } 
     927  /* could use global vars here given the single editor instance, but nm */ 
     928  //g_object_set_data (G_OBJECT (colorselection), "scheme-undo", scheme);   
     929   
    896930  g_signal_handlers_block_by_func     (colorselection,  
    897931                                       schemes_ed_color_changed_cb, 
     
    10451079  schemes_combo = GTK_COMBO_BOX (gtk_combo_box_new_text ()); 
    10461080  g_signal_connect ((gpointer) schemes_combo, "changed", 
    1047                     G_CALLBACK (scheme_ed_combo_changed_cb), 
     1081                    G_CALLBACK (schemes_ed_combo_changed_cb), 
    10481082                    NULL); 
    10491083  gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (schemes_combo), TRUE, TRUE, 0); 
     
    10621096                          _("Create a new scheme")); 
    10631097  g_signal_connect ((gpointer) button, "clicked", 
    1064                       G_CALLBACK (scheme_ed_new_clicked_cb), 
     1098                      G_CALLBACK (schemes_ed_new_clicked_cb), 
    10651099                      NULL); 
    10661100     
     
    10751109  gtk_container_add (GTK_CONTAINER (button), image); 
    10761110  g_signal_connect ((gpointer) button, "clicked", 
    1077                       G_CALLBACK (scheme_ed_copy_clicked_cb), 
     1111                      G_CALLBACK (schemes_ed_copy_clicked_cb), 
    10781112                      schemes_combo); 
    10791113     
     
    10881122  gtk_container_add (GTK_CONTAINER (button), image); 
    10891123  g_signal_connect ((gpointer) button, "clicked", 
    1090                      G_CALLBACK (scheme_ed_delete_clicked_cb), 
     1124                     G_CALLBACK (schemes_ed_delete_clicked_cb), 
    10911125                      schemes_combo); 
     1126  g_object_set_data (G_OBJECT (button), "parent", window);  
    10921127     
    10931128  /* is default toggle button */ 
     
    11001135     
    11011136  g_signal_connect ((gpointer) checkbutton, "toggled", 
    1102                     G_CALLBACK (scheme_ed_default_button_toggled_cb), 
     1137                    G_CALLBACK (schemes_ed_default_button_toggled_cb), 
    11031138                    schemes_combo); 
    11041139     /* sync with selected scheme */ 
    11051140  g_signal_connect ((gpointer) schemes_combo, "changed", 
    1106                     G_CALLBACK (scheme_ed_update_default_button_cb), 
     1141                    G_CALLBACK (schemes_ed_update_default_button_cb), 
    11071142                    checkbutton); 
    11081143     
     
    11451180  GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); 
    11461181  g_signal_connect ((gpointer) button, "clicked", 
    1147                     G_CALLBACK (scheme_ed_close_clicked_cb), 
     1182                    G_CALLBACK (schemes_ed_close_clicked_cb), 
    11481183                    scheme_editor); 
    11491184 
     
    11631198     
    11641199  g_signal_connect ((gpointer) button, "clicked", 
    1165                     G_CALLBACK (scheme_ed_revert_clicked_cb), 
     1200                    G_CALLBACK (schemes_ed_revert_clicked_cb), 
    11661201                    scheme_editor); 
    11671202  gtk_container_add (GTK_CONTAINER (hbuttonbox), button); 
     
    11781213     
    11791214  g_signal_connect ((gpointer) button, "clicked", 
    1180                     G_CALLBACK (scheme_ed_save_clicked_cb), 
     1215                    G_CALLBACK (schemes_ed_save_clicked_cb), 
    11811216                    scheme_editor); 
    11821217  gtk_container_add (GTK_CONTAINER (hbuttonbox), button);