aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/contact-editor
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@helixcode.com>2000-07-14 03:22:42 +0800
committerChris Lahey <clahey@src.gnome.org>2000-07-14 03:22:42 +0800
commita5fc85f2f49c04d8b0344c8e967c2bf18856a46a (patch)
tree6fc8f6893ebefb2fbc5433bac058356860363d38 /addressbook/contact-editor
parent906c46112c18cab409eeb06aaaf4616c24e026b5 (diff)
downloadgsoc2013-evolution-a5fc85f2f49c04d8b0344c8e967c2bf18856a46a.tar.gz
gsoc2013-evolution-a5fc85f2f49c04d8b0344c8e967c2bf18856a46a.tar.zst
gsoc2013-evolution-a5fc85f2f49c04d8b0344c8e967c2bf18856a46a.zip
Switched the order of compilation of printing and contact-editor.
2000-07-13 Christopher James Lahey <clahey@helixcode.com> * Makefile.am: Switched the order of compilation of printing and contact-editor. * contact-editor/Makefile.am: Added printing libraries and a confirm delete dialog glade file. * contact-editor/e-contact-editor.c, contact-editor/e-contact-editor.h: Enabled the delete and print functions as well as providing a confirm delete dialog to the outside world. * gui/component/addressbook.c: Made the delete button on new cards active. * gui/minicard/Makefile.am: Added printing libraries to a number of test programs. * gui/minicard/e-minicard.c: Added print and delete to the right click menu. Made the delete button on the card editor active. * printing/e-contact-print.c, printing/e-contact-print.h: Added a function to print a single card. svn path=/trunk/; revision=4151
Diffstat (limited to 'addressbook/contact-editor')
-rw-r--r--addressbook/contact-editor/Makefile.am7
-rw-r--r--addressbook/contact-editor/e-contact-editor.c76
-rw-r--r--addressbook/contact-editor/e-contact-editor.h4
3 files changed, 79 insertions, 8 deletions
diff --git a/addressbook/contact-editor/Makefile.am b/addressbook/contact-editor/Makefile.am
index b487f96fe2..f51a0109ac 100644
--- a/addressbook/contact-editor/Makefile.am
+++ b/addressbook/contact-editor/Makefile.am
@@ -33,6 +33,7 @@ contact_editor_test_SOURCES = \
contact_editor_test_LDADD = \
libecontacteditor.a \
$(top_builddir)/e-util/libeutil.la \
+ $(top_builddir)/addressbook/printing/libecontactprint.a \
$(top_builddir)/addressbook/backend/ebook/libebook.la \
$(top_builddir)/addressbook/ename/libename.la \
$(top_builddir)/libversit/libversit.la \
@@ -53,10 +54,12 @@ gladedir = $(datadir)/evolution/glade
glade_DATA = \
contact-editor.glade \
fullname.glade \
- categories.glade
+ categories.glade \
+ e-contact-editor-confirm-delete.glade
EXTRA_DIST = $(evolution_DATA) \
$(glade_DATA) \
e-contact-editor-strings.h \
fullname-strings.h \
- categories-strings.h
+ categories-strings.h \
+ e-contact-editor-confirm-delete.glade.h
diff --git a/addressbook/contact-editor/e-contact-editor.c b/addressbook/contact-editor/e-contact-editor.c
index c318dc7605..6793713f65 100644
--- a/addressbook/contact-editor/e-contact-editor.c
+++ b/addressbook/contact-editor/e-contact-editor.c
@@ -29,11 +29,13 @@
#include <gdk-pixbuf/gnome-canvas-pixbuf.h>
#include <e-util/e-gui-utils.h>
#include <e-contact-save-as.h>
+#include "addressbook/printing/e-contact-print.h"
/* Signal IDs */
enum {
ADD_CARD,
COMMIT_CARD,
+ DELETE_CARD,
EDITOR_CLOSED,
LAST_SIGNAL
};
@@ -130,6 +132,15 @@ e_contact_editor_class_init (EContactEditorClass *klass)
GTK_TYPE_NONE, 1,
GTK_TYPE_OBJECT);
+ contact_editor_signals[DELETE_CARD] =
+ gtk_signal_new ("delete_card",
+ GTK_RUN_FIRST,
+ object_class->type,
+ GTK_SIGNAL_OFFSET (EContactEditorClass, delete_card),
+ gtk_marshal_NONE__OBJECT,
+ GTK_TYPE_NONE, 1,
+ GTK_TYPE_OBJECT);
+
contact_editor_signals[EDITOR_CLOSED] =
gtk_signal_new ("editor_closed",
GTK_RUN_FIRST,
@@ -573,6 +584,59 @@ file_save_as_cb (GtkWidget *widget, gpointer data)
e_contact_save_as("Save as VCard", card);
}
+gboolean
+e_contact_editor_confirm_delete(void)
+{
+ GnomeDialog *dialog;
+ GladeXML *gui;
+ int result;
+
+ gui = glade_xml_new (EVOLUTION_GLADEDIR "/e-contact-editor-confirm-delete.glade", NULL);
+
+ dialog = GNOME_DIALOG(glade_xml_get_widget(gui, "confirm-dialog"));
+
+ result = gnome_dialog_run_and_close(dialog);
+
+ gtk_object_unref(GTK_OBJECT(gui));
+
+ return !result;
+}
+
+static void
+delete_cb (GtkWidget *widget, gpointer data)
+{
+ EContactEditor *ce;
+
+ if (e_contact_editor_confirm_delete()) {
+
+ ce = E_CONTACT_EDITOR (data);
+
+ extract_info (ce);
+ e_card_simple_sync_card (ce->simple);
+
+ if (!ce->is_new_card)
+ gtk_signal_emit (GTK_OBJECT (ce), contact_editor_signals[DELETE_CARD],
+ ce->card);
+
+ file_close_cb(widget, data);
+ }
+}
+
+/* Emits the signal to request printing a card */
+static void
+print_cb (GtkWidget *widget, gpointer data)
+{
+ EContactEditor *ce;
+
+ ce = E_CONTACT_EDITOR (data);
+
+ extract_info (ce);
+ e_card_simple_sync_card (ce->simple);
+
+ gtk_widget_show(e_contact_print_card_dialog_new(ce->card));
+}
+
+
/* Menu bar */
static GnomeUIInfo file_new_menu[] = {
@@ -606,13 +670,13 @@ static GnomeUIInfo file_menu[] = {
GNOMEUIINFO_MENU_SAVE_AS_ITEM (file_save_as_cb, NULL),
GNOMEUIINFO_ITEM_NONE (N_("FIXME: Save Attac_hments..."), NULL, NULL),
GNOMEUIINFO_SEPARATOR,
- GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Delete"), NULL, NULL),
+ GNOMEUIINFO_ITEM_NONE (N_("_Delete"), NULL, delete_cb),
GNOMEUIINFO_ITEM_NONE (N_("FIXME: _Move to Folder..."), NULL, NULL),
GNOMEUIINFO_ITEM_NONE (N_("FIXME: Cop_y to Folder..."), NULL, NULL),
GNOMEUIINFO_SEPARATOR,
GNOMEUIINFO_SUBTREE (N_("Page Set_up"), file_page_setup_menu),
GNOMEUIINFO_ITEM_NONE (N_("FIXME: Print Pre_view"), NULL, NULL),
- GNOMEUIINFO_MENU_PRINT_ITEM (NULL, NULL),
+ GNOMEUIINFO_MENU_PRINT_ITEM (print_cb, NULL),
GNOMEUIINFO_SEPARATOR,
GNOMEUIINFO_MENU_PROPERTIES_ITEM (NULL, NULL),
GNOMEUIINFO_SEPARATOR,
@@ -777,16 +841,16 @@ static GnomeUIInfo toolbar[] = {
tb_save_and_close_cb,
GNOME_STOCK_PIXMAP_SAVE),
GNOMEUIINFO_SEPARATOR,
- GNOMEUIINFO_ITEM_STOCK (N_("FIXME: Print..."),
- N_("Print this item"), NULL,
+ GNOMEUIINFO_ITEM_STOCK (N_("Print..."),
+ N_("Print this item"), print_cb,
GNOME_STOCK_PIXMAP_PRINT),
#if 0
GNOMEUIINFO_ITEM_NONE (N_("FIXME: Insert File..."),
N_("Insert a file as an attachment"), NULL),
#endif
GNOMEUIINFO_SEPARATOR,
- GNOMEUIINFO_ITEM_STOCK (N_("FIXME: Delete"),
- N_("Delete this item"), NULL,
+ GNOMEUIINFO_ITEM_STOCK (N_("Delete"),
+ N_("Delete this item"), delete_cb,
GNOME_STOCK_PIXMAP_TRASH),
GNOMEUIINFO_SEPARATOR,
GNOMEUIINFO_ITEM_STOCK (N_("FIXME: Previous"),
diff --git a/addressbook/contact-editor/e-contact-editor.h b/addressbook/contact-editor/e-contact-editor.h
index 8eae2bf1b5..de14b84ca3 100644
--- a/addressbook/contact-editor/e-contact-editor.h
+++ b/addressbook/contact-editor/e-contact-editor.h
@@ -95,6 +95,7 @@ struct _EContactEditorClass
void (* add_card) (EContactEditor *ce, ECard *card);
void (* commit_card) (EContactEditor *ce, ECard *card);
+ void (* delete_card) (EContactEditor *ce, ECard *card);
void (* editor_closed) (EContactEditor *ce);
};
@@ -102,6 +103,9 @@ struct _EContactEditorClass
EContactEditor *e_contact_editor_new (ECard *card, gboolean is_new_card);
GtkType e_contact_editor_get_type (void);
+
+gboolean e_contact_editor_confirm_delete(void);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */