diff options
author | Chris Toshok <toshok@ximian.com> | 2002-11-12 12:01:10 +0800 |
---|---|---|
committer | Chris Toshok <toshok@src.gnome.org> | 2002-11-12 12:01:10 +0800 |
commit | d7aee7e7edfe1d76beba4246f50510479af955a7 (patch) | |
tree | db6f952d40cf95964810b1467d15ebcb8fc1460e /addressbook/gui | |
parent | b5d027f4285267d769975ab7fc4ec95959375b26 (diff) | |
download | gsoc2013-evolution-d7aee7e7edfe1d76beba4246f50510479af955a7.tar gsoc2013-evolution-d7aee7e7edfe1d76beba4246f50510479af955a7.tar.gz gsoc2013-evolution-d7aee7e7edfe1d76beba4246f50510479af955a7.tar.bz2 gsoc2013-evolution-d7aee7e7edfe1d76beba4246f50510479af955a7.tar.lz gsoc2013-evolution-d7aee7e7edfe1d76beba4246f50510479af955a7.tar.xz gsoc2013-evolution-d7aee7e7edfe1d76beba4246f50510479af955a7.tar.zst gsoc2013-evolution-d7aee7e7edfe1d76beba4246f50510479af955a7.zip |
change signature to that of a weak ref notify function. (main): ::destroy
2002-11-11 Chris Toshok <toshok@ximian.com>
* gui/widgets/test-reflow.c (destroy_callback): change signature
to that of a weak ref notify function.
(main): ::destroy -> weak_ref.
* gui/widgets/test-minicard.c (destroy_callback): change signature
to that of a weak ref notify function.
(main): ::destroy -> weak_ref.
* gui/widgets/test-minicard-view.c (destroy_callback): change
signature to that of a weak ref notify function.
(main): ::destroy -> weak_ref.
* gui/widgets/test-minicard-label.c (destroy_callback): change
signature to that of a weak ref notify function.
(main): ::destroy -> weak_ref.
* gui/widgets/e-minicard-widget.c (e_minicard_widget_init): ifdef
out the call to gnome_canvas_set_scroll_region. It doesn't seem
necessary judging from the rest of the code, and it also crashes
the addressbook if it's in.
* gui/widgets/e-minicard-widget-test.c (destroy_callback): change
signature to that of a weak ref notify function.
(main): ::destroy -> weak_ref.
* gui/widgets/e-minicard-control.c (free_struct): change signature
to that of a weak ref notify function.
(e_minicard_control_factory): ::destroy -> weak_ref.
* gui/widgets/e-addressbook-view.c (e_addressbook_view_init):
::destroy -> weak_ref.
(e_addressbook_view_print): same.
(free_closure): change signature to that of a weak ref notify
function.
(e_contact_print_destroy): same.
(invisible_destroyed): same.
* gui/widgets/e-addressbook-util.c
(e_addressbook_prompt_save_dialog): convert from GnomeDialog to
GtkDialog.
(e_addressbook_show_multiple_cards): same.
* gui/contact-list-editor/e-contact-list-editor.c
(prompt_to_save_changes): change response ids to use
GTK_RESPONSE_.
* gui/component/select-names/e-select-names-manager.c
(clear_widget): new function.
(e_select_names_manager_activate_dialog): ::destroy -> weak_ref.
* gui/component/select-names/e-select-names.c (clear_widget):
change signature to that of a weak ref notify function.
(e_select_names_init): ::destroy -> weak_ref.
* gui/component/e-address-popup.c (mini_wizard_destroy_cb): change
signature to that of a weak ref notify function.
(mini_wizard_new): ::destroy -> weak_ref.
* gui/component/addressbook-config.c
(addressbook_source_dialog_destroy): change signature to that of a
weak ref notify function.
(ldap_config_control_destroy_callback): same.
(addressbook_add_server_druid): ::destroy -> weak_ref.
(addressbook_edit_server_dialog): same.
(ldap_config_control_new): same.
* gui/component/addressbook.c (destroy_callback): change signature
to that of a a weak ref notify function.
(addressbook_factory_new_control): ::destroy -> weak_ref.
* gui/merging/e-card-merging.c (response): rename clicked to this,
and destroy the dialog here.
(match_query_callback): ::clicked -> ::response
* gui/merging/e-card-merging-book-commit-duplicate-detected.glade:
convert.
* gui/merging/e-card-duplicate-detected.glade: same.
svn path=/trunk/; revision=18719
Diffstat (limited to 'addressbook/gui')
18 files changed, 497 insertions, 609 deletions
diff --git a/addressbook/gui/component/addressbook-config.c b/addressbook/gui/component/addressbook-config.c index 4bfc49e9e1..ce515e1b00 100644 --- a/addressbook/gui/component/addressbook-config.c +++ b/addressbook/gui/component/addressbook-config.c @@ -317,8 +317,9 @@ addressbook_source_dialog_set_source (AddressbookSourceDialog *dialog, Addressbo } static void -addressbook_source_dialog_destroy (GtkWidget *widget, AddressbookSourceDialog *dialog) +addressbook_source_dialog_destroy (gpointer data, GObject *where_object_was) { + AddressbookSourceDialog *dialog = data; #ifdef NEW_ADVANCED_UI #define IF_UNREF(x) if (x) g_object_unref ((x)) @@ -1080,8 +1081,8 @@ addressbook_add_server_druid (AddressbookDialog *dialog) G_CALLBACK(addressbook_add_server_druid_finish), sdialog); g_signal_connect (sdialog->druid, "cancel", G_CALLBACK(addressbook_add_server_druid_cancel), sdialog); - g_signal_connect (sdialog->window, "destroy", - G_CALLBACK(addressbook_source_dialog_destroy), sdialog); + g_object_weak_ref (G_OBJECT (sdialog->window), + addressbook_source_dialog_destroy, sdialog); /* make sure we fill in the default values */ addressbook_source_dialog_set_source (sdialog, NULL); @@ -1416,8 +1417,8 @@ addressbook_edit_server_dialog (AddressbookDialog *dialog, int model_row) "clicked", G_CALLBACK(edit_dialog_apply_clicked), sdialog); g_signal_connect (sdialog->close_button, "clicked", G_CALLBACK(edit_dialog_close_clicked), sdialog); - g_signal_connect (sdialog->window, "destroy", - G_CALLBACK(addressbook_source_dialog_destroy), sdialog); + g_object_weak_ref (G_OBJECT (sdialog->window), + addressbook_source_dialog_destroy, sdialog); gtk_widget_set_sensitive (sdialog->ok_button, FALSE); gtk_widget_set_sensitive (sdialog->apply_button, FALSE); @@ -1498,8 +1499,8 @@ delete_source_clicked (GtkWidget *widget, AddressbookDialog *dialog) } static void -ldap_config_control_destroy_callback (EvolutionConfigControl *config_control, - void *data) +ldap_config_control_destroy_callback (gpointer data, + GObject *where_object_was) { AddressbookDialog *dialog; @@ -1659,8 +1660,8 @@ ldap_config_control_new (GNOME_Evolution_Shell shell) dialog->config_control = control; g_signal_connect (dialog->config_control, "apply", G_CALLBACK (ldap_config_control_apply_callback), dialog); - g_signal_connect (dialog->config_control, "destroy", - G_CALLBACK (ldap_config_control_destroy_callback), dialog); + g_object_weak_ref (G_OBJECT (dialog->config_control), + ldap_config_control_destroy_callback, dialog); gtk_widget_unref (dialog->page); #endif diff --git a/addressbook/gui/component/addressbook.c b/addressbook/gui/component/addressbook.c index 51314199e4..e97c79d091 100644 --- a/addressbook/gui/component/addressbook.c +++ b/addressbook/gui/component/addressbook.c @@ -539,7 +539,7 @@ book_open_cb (EBook *book, EBookStatus status, gpointer closure) } static void -destroy_callback(GtkWidget *widget, gpointer data) +destroy_callback(gpointer data, GObject *where_object_was) { AddressbookView *view = data; if (view->view && view->view->model && view->view->model->book_view) @@ -1111,9 +1111,7 @@ addressbook_factory_new_control (void) view->vbox = gtk_vbox_new (FALSE, 0); - g_signal_connect (view->vbox, "destroy", - G_CALLBACK (destroy_callback), - (gpointer) view); + g_object_weak_ref (G_OBJECT (view->vbox), destroy_callback, view); /* Create the control. */ view->control = bonobo_control_new (view->vbox); diff --git a/addressbook/gui/component/e-address-popup.c b/addressbook/gui/component/e-address-popup.c index 7b8e3b4411..a0581c6dcf 100644 --- a/addressbook/gui/component/e-address-popup.c +++ b/addressbook/gui/component/e-address-popup.c @@ -114,7 +114,7 @@ mini_wizard_cancel_cb (GtkWidget *b, gpointer closure) } static void -mini_wizard_destroy_cb (GtkWidget *w, gpointer closure) +mini_wizard_destroy_cb (gpointer closure, GObject *where_object_was) { MiniWizard *wiz = (MiniWizard *) closure; if (wiz->cleanup_cb) @@ -158,10 +158,10 @@ mini_wizard_new (void) "clicked", G_CALLBACK (mini_wizard_cancel_cb), wiz); - g_signal_connect (wiz->body, - "destroy", - G_CALLBACK (mini_wizard_destroy_cb), - wiz); + + g_object_weak_ref (G_OBJECT (wiz->body), + mini_wizard_destroy_cb, + wiz); return wiz; diff --git a/addressbook/gui/component/select-names/e-select-names-manager.c b/addressbook/gui/component/select-names/e-select-names-manager.c index 120fc25f97..9d26dc4dc5 100644 --- a/addressbook/gui/component/select-names/e-select-names-manager.c +++ b/addressbook/gui/component/select-names/e-select-names-manager.c @@ -573,6 +573,13 @@ e_select_names_clicked(ESelectNames *dialog, gint button, ESelectNamesManager *m } } +static void +clear_widget (gpointer data, GObject *where_object_was) +{ + GtkWidget **widget_ref = data; + *widget_ref = NULL; +} + void e_select_names_manager_activate_dialog (ESelectNamesManager *manager, const char *id) @@ -605,10 +612,7 @@ e_select_names_manager_activate_dialog (ESelectNamesManager *manager, G_CALLBACK(e_select_names_clicked), manager); - g_signal_connect(manager->names, - "destroy", - G_CALLBACK(gtk_widget_destroyed), - &manager->names); + g_object_weak_ref (manager->names, clear_widget, &manager->names); gtk_widget_show(GTK_WIDGET(manager->names)); } diff --git a/addressbook/gui/component/select-names/e-select-names.c b/addressbook/gui/component/select-names/e-select-names.c index 162343675d..7120537070 100644 --- a/addressbook/gui/component/select-names/e-select-names.c +++ b/addressbook/gui/component/select-names/e-select-names.c @@ -457,9 +457,9 @@ e_select_names_create_categories (gchar *name, } static void -clear_widget (GtkWidget *w, gpointer user_data) +clear_widget (gpointer data, GObject *where_object_was) { - GtkWidget **widget_ref = user_data; + GtkWidget **widget_ref = data; *widget_ref = NULL; } @@ -511,8 +511,7 @@ e_select_names_init (ESelectNames *e_select_names) if (e_select_names->status_message) { g_signal_connect (e_select_names->model, "status_message", G_CALLBACK (status_message), e_select_names); - g_signal_connect(e_select_names->status_message, "destroy", - G_CALLBACK(clear_widget), &e_select_names->status_message); + g_object_weak_ref (e_select_names->status_message, clear_widget, &e_select_names->status_message); } e_select_names->categories = glade_xml_get_widget (gui, "custom-categories"); @@ -521,8 +520,7 @@ e_select_names_init (ESelectNames *e_select_names) if (e_select_names->categories) { g_signal_connect(e_select_names->categories, "changed", G_CALLBACK(categories_changed), e_select_names); - g_signal_connect(e_select_names->categories, "destroy", - G_CALLBACK(clear_widget), &e_select_names->categories); + g_object_weak_ref (e_select_names->categories, clear_widget, &e_select_names->categories); } e_select_names->select_entry = glade_xml_get_widget (gui, "entry-select"); @@ -533,8 +531,7 @@ e_select_names_init (ESelectNames *e_select_names) G_CALLBACK(select_entry_changed), e_select_names); g_signal_connect(e_select_names->select_entry, "activate", G_CALLBACK(update_query), e_select_names); - g_signal_connect(e_select_names->select_entry, "destroy", - G_CALLBACK(clear_widget), &e_select_names->select_entry); + g_object_weak_ref (e_select_names->select_entry, clear_widget, &e_select_names->select_entry); } button = glade_xml_get_widget (gui, "button-find"); diff --git a/addressbook/gui/contact-list-editor/e-contact-list-editor.c b/addressbook/gui/contact-list-editor/e-contact-list-editor.c index 9c696f9040..1605a69ae4 100644 --- a/addressbook/gui/contact-list-editor/e-contact-list-editor.c +++ b/addressbook/gui/contact-list-editor/e-contact-list-editor.c @@ -413,12 +413,12 @@ prompt_to_save_changes (EContactListEditor *editor) return TRUE; switch (e_addressbook_prompt_save_dialog (GTK_WINDOW(editor->app))) { - case 0: /* Save */ + case GTK_RESPONSE_YES: save_card (editor, FALSE); return TRUE; - case 1: /* Discard */ + case GTK_RESPONSE_NO: return TRUE; - case 2: /* Cancel */ + case GTK_RESPONSE_CANCEL: default: return FALSE; } diff --git a/addressbook/gui/merging/e-card-duplicate-detected.glade b/addressbook/gui/merging/e-card-duplicate-detected.glade index bc6624e8fd..67536bf7cf 100644 --- a/addressbook/gui/merging/e-card-duplicate-detected.glade +++ b/addressbook/gui/merging/e-card-duplicate-detected.glade @@ -1,255 +1,210 @@ -<?xml version="1.0"?> -<GTK-Interface> +<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> +<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> -<project> - <name>e-card-duplicate-detected</name> - <program_name>e-card-duplicate-detected</program_name> - <directory></directory> - <source_directory>src</source_directory> - <pixmaps_directory>pixmaps</pixmaps_directory> - <language>C</language> - <gnome_support>True</gnome_support> - <gettext_support>True</gettext_support> - <use_widget_names>True</use_widget_names> - <output_main_file>False</output_main_file> - <output_support_files>False</output_support_files> - <output_build_files>False</output_build_files> - <gnome_help_support>True</gnome_help_support> -</project> +<glade-interface> -<widget> - <class>GnomeDialog</class> - <name>dialog-duplicate-contact</name> - <title>Duplicate Contact Detected</title> - <type>GTK_WINDOW_POPUP</type> - <position>GTK_WIN_POS_NONE</position> - <modal>False</modal> - <allow_shrink>False</allow_shrink> - <allow_grow>True</allow_grow> - <auto_shrink>False</auto_shrink> - <auto_close>False</auto_close> - <hide_on_close>False</hide_on_close> +<widget class="GtkDialog" id="dialog-duplicate-contact"> + <property name="visible">True</property> + <property name="title" translatable="yes">Duplicate Contact Detected</property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_NONE</property> + <property name="modal">False</property> + <property name="resizable">True</property> + <property name="destroy_with_parent">False</property> + <property name="has_separator">True</property> - <widget> - <class>GtkVBox</class> - <child_name>GnomeDialog:vbox</child_name> - <name>dialog-vbox1</name> - <homogeneous>False</homogeneous> - <spacing>8</spacing> - <child> - <padding>4</padding> - <expand>True</expand> - <fill>True</fill> - </child> + <child internal-child="vbox"> + <widget class="GtkVBox" id="dialog-vbox1"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">8</property> - <widget> - <class>GtkHButtonBox</class> - <child_name>GnomeDialog:action_area</child_name> - <name>dialog-action_area1</name> - <layout_style>GTK_BUTTONBOX_END</layout_style> - <spacing>8</spacing> - <child_min_width>85</child_min_width> - <child_min_height>27</child_min_height> - <child_ipad_x>7</child_ipad_x> - <child_ipad_y>0</child_ipad_y> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>True</fill> - <pack>GTK_PACK_END</pack> - </child> + <child internal-child="action_area"> + <widget class="GtkHButtonBox" id="dialog-action_area1"> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> - <widget> - <class>GtkButton</class> - <name>button3</name> - <can_default>True</can_default> - <can_focus>True</can_focus> - <label>Add Anyway</label> - <stock_pixmap>GNOME_STOCK_PIXMAP_ADD</stock_pixmap> - </widget> + <child> + <widget class="GtkButton" id="button3"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Add Anyway</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="response_id">0</property> + </widget> + </child> - <widget> - <class>GtkButton</class> - <name>button4</name> - <can_default>True</can_default> - <can_focus>True</can_focus> - <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button> - </widget> - </widget> + <child> + <widget class="GtkButton" id="button4"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-cancel</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="response_id">1</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack_type">GTK_PACK_END</property> + </packing> + </child> - <widget> - <class>GtkTable</class> - <name>table1</name> - <rows>5</rows> - <columns>2</columns> - <homogeneous>False</homogeneous> - <row_spacing>6</row_spacing> - <column_spacing>6</column_spacing> <child> - <padding>0</padding> - <expand>True</expand> - <fill>True</fill> - </child> + <widget class="GtkTable" id="table1"> + <property name="visible">True</property> + <property name="n_rows">5</property> + <property name="n_columns">2</property> + <property name="homogeneous">False</property> + <property name="row_spacing">6</property> + <property name="column_spacing">6</property> - <widget> - <class>Custom</class> - <name>custom-old-card</name> - <creation_function>e_card_merging_create_old_card</creation_function> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Fri, 08 Jun 2001 01:33:22 GMT</last_modification_time> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>4</top_attach> - <bottom_attach>5</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>True</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <child> + <widget class="Custom" id="custom-old-card"> + <property name="visible">True</property> + <property name="creation_function">e_card_merging_create_old_card</property> + <property name="int1">0</property> + <property name="int2">0</property> + <property name="last_modification_time">Fri, 08 Jun 2001 01:33:22 GMT</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + </packing> + </child> - <widget> - <class>GtkLabel</class> - <name>label1</name> - <label>The name or email address of this contact already exists -in this folder. Would you like to add it anyway?</label> - <justify>GTK_JUSTIFY_LEFT</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>0</top_attach> - <bottom_attach>1</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <child> + <widget class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="label" translatable="yes">The name or email address of this contact already exists +in this folder. Would you like to add it anyway?</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="y_options">fill</property> + </packing> + </child> - <widget> - <class>GtkLabel</class> - <name>label3</name> - <label>Original Contact:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>3</top_attach> - <bottom_attach>4</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <child> + <widget class="GtkLabel" id="label3"> + <property name="visible">True</property> + <property name="label" translatable="yes">Original Contact:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="y_options">fill</property> + </packing> + </child> - <widget> - <class>GtkLabel</class> - <name>label4</name> - <label>New Contact:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>1</top_attach> - <bottom_attach>2</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <child> + <widget class="GtkLabel" id="label4"> + <property name="visible">True</property> + <property name="label" translatable="yes">New Contact:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> - <widget> - <class>Custom</class> - <name>custom-new-card</name> - <creation_function>e_card_merging_create_old_card</creation_function> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Fri, 08 Jun 2001 01:33:22 GMT</last_modification_time> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>2</top_attach> - <bottom_attach>3</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>True</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <child> + <widget class="Custom" id="custom-new-card"> + <property name="visible">True</property> + <property name="creation_function">e_card_merging_create_old_card</property> + <property name="int1">0</property> + <property name="int2">0</property> + <property name="last_modification_time">Fri, 08 Jun 2001 01:33:22 GMT</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + </packing> + </child> - <widget> - <class>GtkAlignment</class> - <name>alignment1</name> - <xalign>0.5</xalign> - <yalign>0</yalign> - <xscale>1</xscale> - <yscale>0</yscale> - <child> - <left_attach>0</left_attach> - <right_attach>1</right_attach> - <top_attach>0</top_attach> - <bottom_attach>5</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> + <child> + <widget class="GtkAlignment" id="alignment1"> + <property name="visible">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0</property> + <property name="xscale">1</property> + <property name="yscale">0</property> - <widget> - <class>Custom</class> - <name>custom2</name> - <creation_function>e_create_image_widget</creation_function> - <string1>malehead.png</string1> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Fri, 08 Jun 2001 00:18:39 GMT</last_modification_time> + <child> + <widget class="Custom" id="custom2"> + <property name="visible">True</property> + <property name="creation_function">e_create_image_widget</property> + <property name="string1">malehead.png</property> + <property name="int1">0</property> + <property name="int2">0</property> + <property name="last_modification_time">Fri, 08 Jun 2001 00:18:39 GMT</property> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">5</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> </widget> - </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> </widget> - </widget> + </child> </widget> -</GTK-Interface> +</glade-interface> diff --git a/addressbook/gui/merging/e-card-merging-book-commit-duplicate-detected.glade b/addressbook/gui/merging/e-card-merging-book-commit-duplicate-detected.glade index 0bc60ba13a..89599a3f7c 100644 --- a/addressbook/gui/merging/e-card-merging-book-commit-duplicate-detected.glade +++ b/addressbook/gui/merging/e-card-merging-book-commit-duplicate-detected.glade @@ -1,255 +1,210 @@ -<?xml version="1.0"?> -<GTK-Interface> +<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> +<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> -<project> - <name>e-card-merging-book-commit-duplicate-detected</name> - <program_name>e-card-merging-book-commit-duplicate-detected</program_name> - <directory></directory> - <source_directory>src</source_directory> - <pixmaps_directory>pixmaps</pixmaps_directory> - <language>C</language> - <gnome_support>True</gnome_support> - <gettext_support>True</gettext_support> - <use_widget_names>True</use_widget_names> - <output_main_file>False</output_main_file> - <output_support_files>False</output_support_files> - <output_build_files>False</output_build_files> - <gnome_help_support>True</gnome_help_support> -</project> +<glade-interface> -<widget> - <class>GnomeDialog</class> - <name>dialog-duplicate-contact</name> - <title>Duplicate Contact Detected</title> - <type>GTK_WINDOW_POPUP</type> - <position>GTK_WIN_POS_NONE</position> - <modal>False</modal> - <allow_shrink>False</allow_shrink> - <allow_grow>True</allow_grow> - <auto_shrink>False</auto_shrink> - <auto_close>False</auto_close> - <hide_on_close>False</hide_on_close> +<widget class="GtkDialog" id="dialog-duplicate-contact"> + <property name="visible">True</property> + <property name="title" translatable="yes">Duplicate Contact Detected</property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_NONE</property> + <property name="modal">False</property> + <property name="resizable">True</property> + <property name="destroy_with_parent">False</property> + <property name="has_separator">True</property> - <widget> - <class>GtkVBox</class> - <child_name>GnomeDialog:vbox</child_name> - <name>dialog-vbox1</name> - <homogeneous>False</homogeneous> - <spacing>8</spacing> - <child> - <padding>4</padding> - <expand>True</expand> - <fill>True</fill> - </child> + <child internal-child="vbox"> + <widget class="GtkVBox" id="dialog-vbox1"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">8</property> - <widget> - <class>GtkHButtonBox</class> - <child_name>GnomeDialog:action_area</child_name> - <name>dialog-action_area1</name> - <layout_style>GTK_BUTTONBOX_END</layout_style> - <spacing>8</spacing> - <child_min_width>85</child_min_width> - <child_min_height>27</child_min_height> - <child_ipad_x>7</child_ipad_x> - <child_ipad_y>0</child_ipad_y> - <child> - <padding>0</padding> - <expand>False</expand> - <fill>True</fill> - <pack>GTK_PACK_END</pack> - </child> + <child internal-child="action_area"> + <widget class="GtkHButtonBox" id="dialog-action_area1"> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> - <widget> - <class>GtkButton</class> - <name>button3</name> - <can_default>True</can_default> - <can_focus>True</can_focus> - <label>Change Anyway</label> - <stock_pixmap>GNOME_STOCK_PIXMAP_ADD</stock_pixmap> - </widget> + <child> + <widget class="GtkButton" id="button3"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Change Anyway</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="response_id">0</property> + </widget> + </child> - <widget> - <class>GtkButton</class> - <name>button4</name> - <can_default>True</can_default> - <can_focus>True</can_focus> - <stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button> - </widget> - </widget> + <child> + <widget class="GtkButton" id="button4"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-cancel</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="response_id">1</property> + </widget> + </child> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack_type">GTK_PACK_END</property> + </packing> + </child> - <widget> - <class>GtkTable</class> - <name>table1</name> - <rows>5</rows> - <columns>2</columns> - <homogeneous>False</homogeneous> - <row_spacing>6</row_spacing> - <column_spacing>6</column_spacing> <child> - <padding>0</padding> - <expand>True</expand> - <fill>True</fill> - </child> + <widget class="GtkTable" id="table1"> + <property name="visible">True</property> + <property name="n_rows">5</property> + <property name="n_columns">2</property> + <property name="homogeneous">False</property> + <property name="row_spacing">6</property> + <property name="column_spacing">6</property> - <widget> - <class>Custom</class> - <name>custom-old-card</name> - <creation_function>e_card_merging_create_old_card</creation_function> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Fri, 08 Jun 2001 01:33:22 GMT</last_modification_time> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>4</top_attach> - <bottom_attach>5</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>True</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <child> + <widget class="Custom" id="custom-old-card"> + <property name="visible">True</property> + <property name="creation_function">e_card_merging_create_old_card</property> + <property name="int1">0</property> + <property name="int2">0</property> + <property name="last_modification_time">Fri, 08 Jun 2001 01:33:22 GMT</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + </packing> + </child> - <widget> - <class>GtkLabel</class> - <name>label1</name> - <label>The changed email or name of this contact already -exists in this folder. Would you like to add it anyway?</label> - <justify>GTK_JUSTIFY_LEFT</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>0</top_attach> - <bottom_attach>1</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <child> + <widget class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="label" translatable="yes">The changed email or name of this contact already +exists in this folder. Would you like to add it anyway?</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">0</property> + <property name="bottom_attach">1</property> + <property name="y_options">fill</property> + </packing> + </child> - <widget> - <class>GtkLabel</class> - <name>label3</name> - <label>Conflicting Contact:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>3</top_attach> - <bottom_attach>4</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <child> + <widget class="GtkLabel" id="label3"> + <property name="visible">True</property> + <property name="label" translatable="yes">Conflicting Contact:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="y_options">fill</property> + </packing> + </child> - <widget> - <class>GtkLabel</class> - <name>label4</name> - <label>Changed Contact:</label> - <justify>GTK_JUSTIFY_CENTER</justify> - <wrap>False</wrap> - <xalign>0</xalign> - <yalign>0.5</yalign> - <xpad>0</xpad> - <ypad>0</ypad> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>1</top_attach> - <bottom_attach>2</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>False</yfill> - </child> - </widget> + <child> + <widget class="GtkLabel" id="label4"> + <property name="visible">True</property> + <property name="label" translatable="yes">Changed Contact:</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">fill</property> + <property name="y_options"></property> + </packing> + </child> - <widget> - <class>Custom</class> - <name>custom-new-card</name> - <creation_function>e_card_merging_create_old_card</creation_function> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Fri, 08 Jun 2001 01:33:22 GMT</last_modification_time> - <child> - <left_attach>1</left_attach> - <right_attach>2</right_attach> - <top_attach>2</top_attach> - <bottom_attach>3</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>True</xexpand> - <yexpand>True</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> - </widget> + <child> + <widget class="Custom" id="custom-new-card"> + <property name="visible">True</property> + <property name="creation_function">e_card_merging_create_old_card</property> + <property name="int1">0</property> + <property name="int2">0</property> + <property name="last_modification_time">Fri, 08 Jun 2001 01:33:22 GMT</property> + </widget> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + </packing> + </child> - <widget> - <class>GtkAlignment</class> - <name>alignment1</name> - <xalign>0.5</xalign> - <yalign>0</yalign> - <xscale>1</xscale> - <yscale>0</yscale> - <child> - <left_attach>0</left_attach> - <right_attach>1</right_attach> - <top_attach>0</top_attach> - <bottom_attach>5</bottom_attach> - <xpad>0</xpad> - <ypad>0</ypad> - <xexpand>False</xexpand> - <yexpand>False</yexpand> - <xshrink>False</xshrink> - <yshrink>False</yshrink> - <xfill>True</xfill> - <yfill>True</yfill> - </child> + <child> + <widget class="GtkAlignment" id="alignment1"> + <property name="visible">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0</property> + <property name="xscale">1</property> + <property name="yscale">0</property> - <widget> - <class>Custom</class> - <name>custom2</name> - <creation_function>e_create_image_widget</creation_function> - <string1>malehead.png</string1> - <int1>0</int1> - <int2>0</int2> - <last_modification_time>Fri, 08 Jun 2001 00:18:39 GMT</last_modification_time> + <child> + <widget class="Custom" id="custom2"> + <property name="visible">True</property> + <property name="creation_function">e_create_image_widget</property> + <property name="string1">malehead.png</property> + <property name="int1">0</property> + <property name="int2">0</property> + <property name="last_modification_time">Fri, 08 Jun 2001 00:18:39 GMT</property> + </widget> + </child> + </widget> + <packing> + <property name="left_attach">0</property> + <property name="right_attach">1</property> + <property name="top_attach">0</property> + <property name="bottom_attach">5</property> + <property name="x_options">fill</property> + <property name="y_options">fill</property> + </packing> + </child> </widget> - </widget> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> </widget> - </widget> + </child> </widget> -</GTK-Interface> +</glade-interface> diff --git a/addressbook/gui/merging/e-card-merging.c b/addressbook/gui/merging/e-card-merging.c index 28357f2f58..1b3da3e063 100644 --- a/addressbook/gui/merging/e-card-merging.c +++ b/addressbook/gui/merging/e-card-merging.c @@ -11,7 +11,6 @@ #include <config.h> #include "e-card-merging.h" -#include <libgnomeui/gnome-dialog.h> #include <ebook/e-card-compare.h> #include <glade/glade.h> #include <gtk/gtksignal.h> @@ -53,9 +52,11 @@ cancelit (ECardMergingLookup *lookup) } static void -clicked (GnomeDialog *dialog, int button, ECardMergingLookup *lookup) +response (GtkWidget *dialog, int response, ECardMergingLookup *lookup) { - switch (button) { + gtk_widget_destroy (dialog); + + switch (response) { case 0: doit (lookup); break; @@ -64,7 +65,6 @@ clicked (GnomeDialog *dialog, int button, ECardMergingLookup *lookup) break; } g_free (lookup); - gnome_dialog_close (dialog); } static void @@ -102,8 +102,10 @@ match_query_callback (ECard *card, ECard *match, ECardMatchType type, gpointer c widget = glade_xml_get_widget (ui, "dialog-duplicate-contact"); - g_signal_connect (widget, "clicked", - G_CALLBACK (clicked), lookup); + g_signal_connect (widget, "response", + G_CALLBACK (response), lookup); + + gtk_widget_show_all (widget); } } diff --git a/addressbook/gui/widgets/e-addressbook-util.c b/addressbook/gui/widgets/e-addressbook-util.c index 93727b7e1b..76453d5616 100644 --- a/addressbook/gui/widgets/e-addressbook-util.c +++ b/addressbook/gui/widgets/e-addressbook-util.c @@ -60,19 +60,26 @@ gint e_addressbook_prompt_save_dialog (GtkWindow *parent) { GtkWidget *dialog; + gint response; - dialog = gnome_message_box_new (_("Do you want to save changes?"), - GNOME_MESSAGE_BOX_QUESTION, - GNOME_STOCK_BUTTON_YES, - GNOME_STOCK_BUTTON_NO, - GNOME_STOCK_BUTTON_CANCEL, - NULL); + dialog = gtk_message_dialog_new (parent, + (GtkDialogFlags)0, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_NONE, + _("Do you want to save changes?")); + gtk_dialog_add_buttons (GTK_DIALOG (dialog), + GTK_STOCK_YES, GTK_RESPONSE_YES, + GTK_STOCK_NO, GTK_RESPONSE_NO, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + NULL); - gnome_dialog_set_default (GNOME_DIALOG (dialog), 0); - gnome_dialog_grab_focus (GNOME_DIALOG (dialog), 0); - gnome_dialog_set_parent (GNOME_DIALOG (dialog), parent); + gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_YES); - return gnome_dialog_run_and_close (GNOME_DIALOG (dialog)); + response = gtk_dialog_run (GTK_DIALOG (dialog)); + + gtk_widget_destroy (dialog); + + return response; } static void @@ -154,12 +161,6 @@ e_addressbook_show_contact_list_editor (EBook *book, ECard *card, return ce; } -typedef struct { - EBook *book; - GList *list; - gboolean editable; -} BookAndList; - static void view_cards (EBook *book, GList *list, gboolean editable) { @@ -172,24 +173,6 @@ view_cards (EBook *book, GList *list, gboolean editable) } } -static void -view_question_clicked (GtkObject *object, int button, BookAndList *bnl) -{ - GnomeDialog *dialog = GNOME_DIALOG (object); - switch (button) { - case 0: - view_cards (bnl->book, bnl->list, bnl->editable); - break; - } - gnome_dialog_close(dialog); -} - -static void -view_question_destroyed (GtkObject *object, GList *list) -{ - gtk_main_quit(); -} - void e_addressbook_show_multiple_cards (EBook *book, GList *list, @@ -198,32 +181,22 @@ e_addressbook_show_multiple_cards (EBook *book, if (list) { int length = g_list_length (list); if (length > 5) { - char *string; GtkWidget *dialog; - BookAndList bnl; - - bnl.book = book; - bnl.list = list; - bnl.editable = editable; - - dialog = gnome_dialog_new (_("Display Cards?"), - _("Display Cards"), - GNOME_STOCK_BUTTON_CANCEL, - NULL); - - string = g_strdup_printf (_("Opening %d cards will open %d new windows as well.\n" - "Do you really want to display all of these cards?"), length, length); - gtk_box_pack_start (GTK_BOX (GNOME_DIALOG (dialog)->vbox), gtk_label_new (string), FALSE, FALSE, 0); - g_free (string); - - g_signal_connect (dialog, "destroy", - G_CALLBACK (view_question_destroyed), &bnl); - g_signal_connect (dialog, "clicked", - G_CALLBACK (view_question_clicked), &bnl); - - gtk_widget_show_all (dialog); - - gtk_main(); + gint response; + + dialog = gtk_message_dialog_new (NULL, + 0, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_YES_NO, + _("Opening %d cards will open %d new windows as well.\n" + "Do you really want to display all of these cards?"), + length, + length); + + response = gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); + if (response == GTK_RESPONSE_YES) + view_cards (book, list, editable); } else { view_cards (book, list, editable); } diff --git a/addressbook/gui/widgets/e-addressbook-view.c b/addressbook/gui/widgets/e-addressbook-view.c index 1c74a1b636..5c4cd58ac3 100644 --- a/addressbook/gui/widgets/e-addressbook-view.c +++ b/addressbook/gui/widgets/e-addressbook-view.c @@ -92,7 +92,7 @@ static void selection_received (GtkWidget *invisible, GtkSelectionData *selectio guint time, EAddressbookView *view); static void selection_get (GtkWidget *invisible, GtkSelectionData *selection_data, guint info, guint time_stamp, EAddressbookView *view); -static void invisible_destroyed (GtkWidget *invisible, EAddressbookView *view); +static void invisible_destroyed (gpointer data, GObject *where_object_was); static GtkTableClass *parent_class = NULL; @@ -303,9 +303,7 @@ e_addressbook_view_init (EAddressbookView *eav) g_signal_connect (eav->invisible, "selection_received", G_CALLBACK (selection_received), eav); - g_signal_connect (eav->invisible, "destroy", - G_CALLBACK (invisible_destroyed), - eav); + g_object_weak_ref (G_OBJECT (eav->invisible), invisible_destroyed, eav); } static void @@ -1018,8 +1016,10 @@ button_toggled(GtkWidget *button, LetterClosure *closure) } static void -free_closure(GtkWidget *button, LetterClosure *closure) +free_closure(gpointer data, GObject *where_object_was) { + GtkWidget *button = GTK_WIDGET (where_object_was); + LetterClosure *closure = data; if (button != NULL && button == closure->view->current_alphabet_widget) { closure->view->current_alphabet_widget = NULL; @@ -1074,8 +1074,7 @@ create_alphabet (EAddressbookView *view) closure->vbox = vbox; g_signal_connect(button, "toggled", G_CALLBACK (button_toggled), closure); - g_signal_connect(button, "destroy", - G_CALLBACK (free_closure), closure); + g_object_weak_ref (G_OBJECT (button), free_closure, closure); } g_strfreev (label_v); @@ -1397,13 +1396,18 @@ change_view_type (EAddressbookView *view, EAddressbookViewType view_type) command_state_change (view); } +typedef struct { + GtkWidget *table; + GObject *printable; +} EContactPrintDialogWeakData; + static void -e_contact_print_destroy(GnomeDialog *dialog, gpointer data) +e_contact_print_destroy(gpointer data, GObject *where_object_was) { - ETableScrolled *table = g_object_get_data(G_OBJECT(dialog), "table"); - EPrintable *printable = g_object_get_data(G_OBJECT(dialog), "printable"); - g_object_unref (printable); - g_object_unref (table); + EContactPrintDialogWeakData *weak_data = data; + g_object_unref (weak_data->printable); + g_object_unref (weak_data->table); + g_free (weak_data); } static void @@ -1534,6 +1538,7 @@ e_addressbook_view_print(EAddressbookView *view) GtkWidget *dialog; EPrintable *printable; ETable *etable; + EContactPrintDialogWeakData *weak_data; dialog = gnome_print_dialog_new("Print cards", GNOME_PRINT_DIALOG_RANGE | GNOME_PRINT_DIALOG_COPIES); gnome_print_dialog_construct_range_any(GNOME_PRINT_DIALOG(dialog), GNOME_PRINT_RANGE_ALL | GNOME_PRINT_RANGE_SELECTION, @@ -1549,8 +1554,14 @@ e_addressbook_view_print(EAddressbookView *view) g_signal_connect(dialog, "clicked", G_CALLBACK(e_contact_print_button), NULL); - g_signal_connect(dialog, - "destroy", G_CALLBACK(e_contact_print_destroy), NULL); + + weak_data = g_new (EContactPrintDialogWeakData, 1); + + weak_data->table = view->widget; + weak_data->printable = G_OBJECT (printable); + + g_object_weak_ref (G_OBJECT (dialog), e_contact_print_destroy, weak_data); + gtk_widget_show(dialog); } } @@ -1646,8 +1657,9 @@ e_addressbook_view_delete_selection(EAddressbookView *view) } static void -invisible_destroyed (GtkWidget *invisible, EAddressbookView *view) +invisible_destroyed (gpointer data, GObject *where_object_was) { + EAddressbookView *view = data; view->invisible = NULL; } diff --git a/addressbook/gui/widgets/e-minicard-control.c b/addressbook/gui/widgets/e-minicard-control.c index c5256f6c3e..278cfa0120 100644 --- a/addressbook/gui/widgets/e-minicard-control.c +++ b/addressbook/gui/widgets/e-minicard-control.c @@ -265,7 +265,7 @@ save_in_addressbook(GtkWidget *button, gpointer data) } static void -free_struct (GtkWidget *control, gpointer data) +free_struct (gpointer data, GObject *where_object_was) { EMinicardControl *minicard_control = data; e_free_object_list (minicard_control->card_list); @@ -317,8 +317,7 @@ e_minicard_control_factory (BonoboGenericFactory *Factory, control = bonobo_control_new (vbox); - g_signal_connect (control, "destroy", - G_CALLBACK (free_struct), minicard_control); + g_object_weak_ref (G_OBJECT (control), free_struct, minicard_control); stream = bonobo_persist_stream_new (pstream_load, pstream_save, pstream_get_content_types, diff --git a/addressbook/gui/widgets/e-minicard-widget-test.c b/addressbook/gui/widgets/e-minicard-widget-test.c index b768ff9e74..9a8d27d21c 100644 --- a/addressbook/gui/widgets/e-minicard-widget-test.c +++ b/addressbook/gui/widgets/e-minicard-widget-test.c @@ -60,7 +60,7 @@ /* This is a horrible thing to do, but it is just a test. */ -static void destroy_callback(GtkWidget *app, gpointer data) +static void destroy_callback(gpointer data, GObject *where_object_was) { exit(0); } @@ -106,9 +106,7 @@ int main( int argc, char *argv[] ) gnome_app_set_contents( GNOME_APP( app ), minicard ); /* Connect the signals */ - g_signal_connect( app, "destroy", - G_CALLBACK( destroy_callback ), - ( gpointer ) app ); + g_object_weak_ref (app, destroy_callback, app); gtk_widget_show_all( app ); diff --git a/addressbook/gui/widgets/e-minicard-widget.c b/addressbook/gui/widgets/e-minicard-widget.c index 5c8483ac88..e8f33673c3 100644 --- a/addressbook/gui/widgets/e-minicard-widget.c +++ b/addressbook/gui/widgets/e-minicard-widget.c @@ -169,10 +169,12 @@ e_minicard_widget_init (EMinicardWidget *emw) "width", (double) 100, NULL ); +#if PENDING_PORT_WORK + /* XXX this crashes since the canvas has no h/v adjustments. */ gnome_canvas_set_scroll_region ( GNOME_CANVAS( emw ), 0, 0, 100, 100 ); - +#endif emw->card = NULL; } diff --git a/addressbook/gui/widgets/test-minicard-label.c b/addressbook/gui/widgets/test-minicard-label.c index cdbebe3160..c109497628 100644 --- a/addressbook/gui/widgets/test-minicard-label.c +++ b/addressbook/gui/widgets/test-minicard-label.c @@ -32,7 +32,7 @@ GnomeCanvasItem *label; GnomeCanvasItem *rect; -static void destroy_callback(GtkWidget *app, gpointer data) +static void destroy_callback(gpointer data, GObject *where_object_was) { exit(0); } @@ -110,9 +110,7 @@ int main( int argc, char *argv[] ) /* Connect the signals */ - g_signal_connect( app, "destroy", - G_CALLBACK( destroy_callback ), - ( gpointer ) app ); + g_object_weak_ref (app, destroy_callback, app); g_signal_connect( canvas , "size_allocate", G_CALLBACK ( allocate_callback ), diff --git a/addressbook/gui/widgets/test-minicard-view.c b/addressbook/gui/widgets/test-minicard-view.c index e14443b01e..7abe611711 100644 --- a/addressbook/gui/widgets/test-minicard-view.c +++ b/addressbook/gui/widgets/test-minicard-view.c @@ -48,7 +48,7 @@ init_bonobo (int argc, char **argv) } -static void destroy_callback(GtkWidget *app, gpointer data) +static void destroy_callback(gpointer data, GObject *where_object_was) { exit(0); } @@ -188,9 +188,7 @@ int main( int argc, char *argv[] ) gnome_app_set_contents( GNOME_APP( app ), vbox ); /* Connect the signals */ - g_signal_connect( app, "destroy", - G_CALLBACK ( destroy_callback ), - ( gpointer ) app ); + g_object_weak_ref (app, destroy_callback, app); g_signal_connect( canvas, "size_allocate", G_CALLBACK ( allocate_callback ), diff --git a/addressbook/gui/widgets/test-minicard.c b/addressbook/gui/widgets/test-minicard.c index 77cc2975cb..822362d972 100644 --- a/addressbook/gui/widgets/test-minicard.c +++ b/addressbook/gui/widgets/test-minicard.c @@ -33,7 +33,7 @@ GnomeCanvasItem *card; GnomeCanvasItem *rect; -static void destroy_callback(GtkWidget *app, gpointer data) +static void destroy_callback(gpointer data, GObject *where_object_was) { exit(0); } @@ -105,9 +105,7 @@ int main( int argc, char *argv[] ) gnome_app_set_contents( GNOME_APP( app ), canvas ); /* Connect the signals */ - g_signal_connect( app, "destroy", - G_CALLBACK( destroy_callback ), - ( gpointer ) app ); + g_object_weak_ref (app, destroy_callback, app); g_signal_connect( canvas, "size_allocate", G_CALLBACK( allocate_callback ), diff --git a/addressbook/gui/widgets/test-reflow.c b/addressbook/gui/widgets/test-reflow.c index 7f4325f130..66f003fe2c 100644 --- a/addressbook/gui/widgets/test-reflow.c +++ b/addressbook/gui/widgets/test-reflow.c @@ -65,7 +65,7 @@ GnomeCanvasItem *reflow; GnomeCanvasItem *rect; GtkAllocation last_alloc; -static void destroy_callback(GtkWidget *app, gpointer data) +static void destroy_callback(gpointer data, GObject *where_object_was) { exit(0); } @@ -183,9 +183,7 @@ int main( int argc, char *argv[] ) gnome_app_set_contents( GNOME_APP( app ), scrollframe ); /* Connect the signals */ - g_signal_connect( app, "destroy", - G_CALLBACK ( destroy_callback ), - ( gpointer ) app ); + g_object_weak_ref (app, destroy_callback, app); g_signal_connect( canvas, "size_allocate", G_CALLBACK ( allocate_callback ), |