From 5df4d67be220866f4dd6121cb26158cf5299193f Mon Sep 17 00:00:00 2001 From: Christopher James Lahey Date: Tue, 23 Apr 2002 19:42:37 +0000 Subject: Removed e_addressbook_reflow_adapter_right_click and 2002-04-23 Christopher James Lahey * gui/widgets/e-addressbook-reflow-adapter.c, gui/widgets/e-addressbook-reflow-adapter.h: Removed e_addressbook_reflow_adapter_right_click and e_addressbook_reflow_adapter_base_right_click. * gui/widgets/e-addressbook-view.c: Handle right click menu for both types of view. Merged right click on white space with right click on main area. General clean up. * gui/widgets/e-minicard-view-widget.c, gui/widgets/e-minicard-view-widget.h: Removed a couple unnecessary functions. Added e_minicard_view_widget_get_view. Added right_click signal. * gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h: Added the right_click signal and the e_minicard_view_get_card_list function. svn path=/trunk/; revision=16567 --- .../gui/widgets/e-addressbook-reflow-adapter.c | 303 --------------------- 1 file changed, 303 deletions(-) (limited to 'addressbook/gui/widgets/e-addressbook-reflow-adapter.c') diff --git a/addressbook/gui/widgets/e-addressbook-reflow-adapter.c b/addressbook/gui/widgets/e-addressbook-reflow-adapter.c index 793a9a4bc5..16e61a2d89 100644 --- a/addressbook/gui/widgets/e-addressbook-reflow-adapter.c +++ b/addressbook/gui/widgets/e-addressbook-reflow-adapter.c @@ -94,309 +94,6 @@ text_height (GnomeCanvas *canvas, const gchar *text) return height; } -typedef struct { - EAddressbookReflowAdapter *adapter; - ESelectionModel *selection; - GtkWidget *widget; -} ModelAndSelection; - -static void -model_and_selection_free (ModelAndSelection *mns) -{ - if (mns->adapter) - gtk_object_unref(GTK_OBJECT(mns->adapter)); - if (mns->selection) { - e_selection_model_right_click_up(mns->selection); - gtk_object_unref(GTK_OBJECT(mns->selection)); - } - if (mns->widget) - gtk_object_unref(GTK_OBJECT(mns->widget)); - g_free(mns); -} - -static void -add_to_list (int model_row, gpointer closure) -{ - GList **list = closure; - *list = g_list_prepend (*list, GINT_TO_POINTER (model_row)); -} - -static GList * -get_card_list (ModelAndSelection *mns) -{ - EAddressbookReflowAdapterPrivate *priv = mns->adapter->priv; - GList *list; - GList *iterator; - - list = NULL; - e_selection_model_foreach (mns->selection, add_to_list, &list); - - for (iterator = list; iterator; iterator = iterator->next) { - iterator->data = e_addressbook_model_card_at (priv->model, GPOINTER_TO_INT (iterator->data)); - gtk_object_ref (GTK_OBJECT (iterator->data)); - } - list = g_list_reverse (list); - return list; -} - -static void -save_as (GtkWidget *widget, ModelAndSelection *mns) -{ - GList *list; - - list = get_card_list (mns); - if (list) - e_contact_list_save_as (_("Save as VCard"), list); - e_free_object_list (list); -} - -static void -send_as (GtkWidget *widget, ModelAndSelection *mns) -{ - GList *list; - - list = get_card_list (mns); - if (list) - e_card_list_send (list, E_CARD_DISPOSITION_AS_ATTACHMENT); - e_free_object_list (list); -} - -static void -send_to (GtkWidget *widget, ModelAndSelection *mns) -{ - GList *list; - - list = get_card_list (mns); - if (list) - e_card_list_send (list, E_CARD_DISPOSITION_AS_TO); - e_free_object_list (list); -} - -static void -print (GtkWidget *widget, ModelAndSelection *mns) -{ - GList *list; - - list = get_card_list (mns); - if (list) - gtk_widget_show (e_contact_print_card_list_dialog_new (list)); - e_free_object_list (list); -} - -#if 0 /* Envelope printing is disabled for Evolution 1.0. */ -static void -print_envelope (GtkWidget *widget, ModelAndSelection *mns) -{ - GList *list; - - list = get_card_list (mns); - if (list) - gtk_widget_show (e_contact_print_envelope_list_dialog_new (list)); - e_free_object_list (list); -} -#endif - -static void -card_changed_cb (EBook* book, EBookStatus status, gpointer user_data) -{ - d(g_print ("%s: %s(): a card was changed with status %d\n", __FILE__, __FUNCTION__, status)); -} - -static void -copy (GtkWidget *widget, ModelAndSelection *mns) -{ - EAddressbookView *view = gtk_object_get_data (GTK_OBJECT (mns->adapter), "view"); - e_addressbook_view_copy (view); -} - -static void -cut (GtkWidget *widget, ModelAndSelection *mns) -{ - EAddressbookView *view = gtk_object_get_data (GTK_OBJECT (mns->adapter), "view"); - e_addressbook_view_copy (view); - e_addressbook_view_delete_selection (view); -} - -static void -paste (GtkWidget *widget, ModelAndSelection *mns) -{ - EAddressbookView *view = gtk_object_get_data (GTK_OBJECT (mns->adapter), "view"); - e_addressbook_view_paste (view); -} - -static void -delete (GtkWidget *widget, ModelAndSelection *mns) -{ - EAddressbookReflowAdapterPrivate *priv = mns->adapter->priv; - GList *list; - - list = get_card_list (mns); - if (list) { - - if (e_contact_editor_confirm_delete(NULL)) { /*FIXME: Give a GtkWindow here. */ - GList *iterator; - EBook *book = e_addressbook_model_get_ebook(priv->model); - - for (iterator = list; iterator; iterator = iterator->next) { - ECard *card = iterator->data; - - gtk_object_ref(GTK_OBJECT(card)); - - e_book_remove_card (book, - card, - card_changed_cb, - NULL); - - gtk_object_unref(GTK_OBJECT(card)); - } - } - } - - e_free_object_list (list); -} - -static void -open_card (GtkWidget *widget, ModelAndSelection *mns) -{ - EAddressbookReflowAdapterPrivate *priv = mns->adapter->priv; - GList *list; - EBook *book = e_addressbook_model_get_ebook(priv->model); - - list = get_card_list (mns); - - e_addressbook_show_multiple_cards (book, list, e_addressbook_model_editable (priv->model)); - e_free_object_list (list); -} - -static void -transfer_cards (ModelAndSelection *mns, gboolean delete_from_source) -{ - EBook *book; - GList *cards; - GtkWindow *parent_window; - - book = e_addressbook_model_get_ebook(mns->adapter->priv->model); - cards = get_card_list (mns); - if (mns->widget) - parent_window = GTK_WINDOW (gtk_widget_get_toplevel (mns->widget)); - else - parent_window = NULL; - - e_addressbook_transfer_cards (book, cards, delete_from_source, parent_window); -} - -static void -copy_to_folder (GtkWidget *widget, ModelAndSelection *mns) -{ - transfer_cards (mns, FALSE); -} - -static void -move_to_folder (GtkWidget *widget, ModelAndSelection *mns) -{ - transfer_cards (mns, TRUE); -} - -static void -free_popup_info (GtkWidget *w, ModelAndSelection *mns) -{ - model_and_selection_free (mns); -} - -#define POPUP_READONLY_MASK 0x01 -gint -e_addressbook_reflow_adapter_right_click (EAddressbookReflowAdapter *adapter, GdkEvent *event, ESelectionModel *selection) -{ - EAddressbookReflowAdapterPrivate *priv = adapter->priv; - ModelAndSelection *mns = g_new(ModelAndSelection, 1); - GtkMenu *popup; - EPopupMenu menu[] = { - E_POPUP_ITEM (N_("Open"), GTK_SIGNAL_FUNC(open_card), 0), - E_POPUP_ITEM (N_("Save as VCard"), GTK_SIGNAL_FUNC(save_as), 0), - E_POPUP_ITEM (N_("Forward Contact"), GTK_SIGNAL_FUNC(send_as), 0), - E_POPUP_ITEM (N_("Send Message to Contact"), GTK_SIGNAL_FUNC(send_to), 0), - E_POPUP_ITEM (N_("Print"), GTK_SIGNAL_FUNC(print), 0), -#if 0 /* Envelope printing is disabled for Evolution 1.0. */ - E_POPUP_ITEM (N_("Print Envelope"), GTK_SIGNAL_FUNC(print_envelope), 0), -#endif - E_POPUP_SEPARATOR, - - E_POPUP_ITEM (N_("Copy to folder..."), GTK_SIGNAL_FUNC(copy_to_folder), 0), - E_POPUP_ITEM (N_("Move to folder..."), GTK_SIGNAL_FUNC(move_to_folder), POPUP_READONLY_MASK), - E_POPUP_SEPARATOR, - - E_POPUP_ITEM (N_("Cut"), GTK_SIGNAL_FUNC (cut), POPUP_READONLY_MASK), - E_POPUP_ITEM (N_("Copy"), GTK_SIGNAL_FUNC (copy), 0), - E_POPUP_ITEM (N_("Paste"), GTK_SIGNAL_FUNC (paste), POPUP_READONLY_MASK), - E_POPUP_ITEM (N_("Delete"), GTK_SIGNAL_FUNC (delete), POPUP_READONLY_MASK), - E_POPUP_TERMINATOR - }; - - mns->adapter = adapter; - mns->selection = selection; - mns->widget = gtk_get_event_widget (event); - gtk_object_ref(GTK_OBJECT(mns->adapter)); - gtk_object_ref(GTK_OBJECT(mns->selection)); - if (mns->widget) - gtk_object_ref(GTK_OBJECT(mns->widget)); - popup = e_popup_menu_create (menu, e_addressbook_model_editable(priv->model) ? 0 : POPUP_READONLY_MASK, 0, mns); - - gtk_signal_connect (GTK_OBJECT (popup), "selection-done", - GTK_SIGNAL_FUNC (free_popup_info), mns); - e_popup_menu (popup, event); - - return TRUE; -} - -static void -new_card (GtkWidget *widget, ModelAndSelection *mns) -{ - EBook *book; - - book = e_addressbook_model_get_ebook(mns->adapter->priv->model); - - e_addressbook_show_contact_editor (book, e_card_new(""), TRUE, TRUE); -} - -static void -new_list (GtkWidget *widget, ModelAndSelection *mns) -{ - EBook *book; - - book = e_addressbook_model_get_ebook(mns->adapter->priv->model); - - e_addressbook_show_contact_list_editor (book, e_card_new(""), TRUE, TRUE); -} - -gint -e_addressbook_reflow_adapter_base_right_click (EAddressbookReflowAdapter *adapter, GdkEvent *event) -{ - EAddressbookReflowAdapterPrivate *priv = adapter->priv; - ModelAndSelection *mns = g_new(ModelAndSelection, 1); - GtkMenu *popup; - EPopupMenu menu[] = { - E_POPUP_ITEM (N_("New Contact..."), GTK_SIGNAL_FUNC(new_card), POPUP_READONLY_MASK), - E_POPUP_ITEM (N_("New Contact List..."), GTK_SIGNAL_FUNC(new_list), POPUP_READONLY_MASK), - E_POPUP_SEPARATOR, - E_POPUP_ITEM (N_("Paste"), GTK_SIGNAL_FUNC (paste), POPUP_READONLY_MASK), - E_POPUP_TERMINATOR - }; - - mns->adapter = adapter; - mns->selection = NULL; - mns->widget = gtk_get_event_widget (event); - gtk_object_ref(GTK_OBJECT(mns->adapter)); - if (mns->widget) - gtk_object_ref(GTK_OBJECT(mns->widget)); - popup = e_popup_menu_create (menu, e_addressbook_model_editable(priv->model) ? 0 : POPUP_READONLY_MASK, 0, mns); - - gtk_signal_connect (GTK_OBJECT (popup), "selection-done", - GTK_SIGNAL_FUNC (free_popup_info), mns); - e_popup_menu (popup, event); - - return TRUE; -} - static void addressbook_finalize(GtkObject *object) { -- cgit v1.2.3