From 1b92eea9f43d08e724c831ae6807b39b2ba73f4e Mon Sep 17 00:00:00 2001 From: jacob berkman Date: Wed, 22 Aug 2001 22:12:12 +0000 Subject: emit an event from our event source (contact_editor_cb): emit a destroy 2001-08-22 jacob berkman * gui/component/e-address-popup.c (emit_event): emit an event from our event source (contact_editor_cb): emit a destroy event so our control frame can be destroyed. (edit_contact_info_cb): emit a hide event so our control frame can be hidden (e_address_popup_cardify): (add_contacts_cb): emit the destroy event (e_address_popup_factory_new_control): don't unref our object at widget destroy time as that was really really broken (e_address_popup_factory_new_control): create an event source and aggregate ourself with it * gui/contact-editor/e-contact-editor.c (enable_writable_fields): display a nicer warning when we can't find a widget for a given field (e_contact_editor_raise): only raise if there is a window * gui/contact-editor/contact-editor.glade: name some widgets that got unnamed, and set the first entry as defaultable * gui/contact-editor/e-contact-editor.c: envelope printing is disabled in 1.0 2001-08-22 jacob berkman * mail-display.c: rework how the e-card-popup thing has its life managed. we now hide the window on the Hide event and destroy it on the Destroy event emitted from its event source svn path=/trunk/; revision=12402 --- addressbook/gui/contact-editor/e-contact-editor.c | 32 ++++++++++++++++++----- 1 file changed, 25 insertions(+), 7 deletions(-) (limited to 'addressbook/gui/contact-editor/e-contact-editor.c') diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c index 68ef1f6a6d..843f1ab355 100644 --- a/addressbook/gui/contact-editor/e-contact-editor.c +++ b/addressbook/gui/contact-editor/e-contact-editor.c @@ -1055,8 +1055,9 @@ EPixmap pixmaps[] = { E_PIXMAP ("/commands/ContactEditorSaveAs", "save-as-16.png"), E_PIXMAP ("/commands/ContactEditorDelete", "evolution-trash-mini.png"), E_PIXMAP ("/commands/ContactEditorPrint", "print.xpm"), +#if 0 /* Envelope printing is disabled for Evolution 1.0. */ E_PIXMAP ("/commands/ContactEditorPrintEnvelope", "print.xpm"), - +#endif E_PIXMAP ("/Toolbar/ContactEditorSave", "buttons/save-24.png"), E_PIXMAP ("/Toolbar/ContactEditorDelete", "buttons/delete-message.png"), E_PIXMAP ("/Toolbar/ContactEditorPrint", "buttons/print.png"), @@ -1341,6 +1342,9 @@ e_contact_editor_new (EBook *book, { EContactEditor *ce; + g_return_val_if_fail (E_IS_BOOK (book), NULL); + g_return_val_if_fail (E_IS_CARD (card), NULL); + ce = E_CONTACT_EDITOR (gtk_type_new (E_CONTACT_EDITOR_TYPE)); gtk_object_set (GTK_OBJECT (ce), @@ -2185,11 +2189,23 @@ enable_writable_fields(EContactEditor *editor) /* handle the label next to the dropdown widgets */ for (i = 0; i < num_widget_field_mappings; i ++) { - gboolean enabled = g_hash_table_lookup (supported_hash, - e_card_simple_get_ecard_field (simple, - widget_field_mappings[i].field_id)) != NULL; - gtk_widget_set_sensitive (glade_xml_get_widget(editor->gui, - widget_field_mappings[i].widget_name), enabled); + gboolean enabled; + GtkWidget *w; + const char *field; + + w = glade_xml_get_widget(editor->gui, widget_field_mappings[i].widget_name); + if (!w) { + g_warning (_("Could not find widget for a field: `%s'"), + widget_field_mappings[i].widget_name); + continue; + } + + field = e_card_simple_get_ecard_field (simple, + widget_field_mappings[i].field_id); + + enabled = (g_hash_table_lookup (supported_hash, field) != NULL); + + gtk_widget_set_sensitive (w, enabled); } g_hash_table_destroy (dropdown_hash); @@ -2464,7 +2480,9 @@ extract_info(EContactEditor *editor) void e_contact_editor_raise (EContactEditor *editor) { - gdk_window_raise (GTK_WIDGET (editor->app)->window); + /* FIXME: perhaps we should raise at realize time */ + if (GTK_WIDGET (editor->app)->window) + gdk_window_raise (GTK_WIDGET (editor->app)->window); } /** -- cgit