aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/gui
diff options
context:
space:
mode:
authorJason Leach <jleach@ximian.com>2001-06-06 06:00:16 +0800
committerJacob Leach <jleach@src.gnome.org>2001-06-06 06:00:16 +0800
commit07a23dc4a63443eba04c3991e3cf8619981bdb22 (patch)
treec6596adf7d361f8aa7478bfa77b40ab60cd3f33f /addressbook/gui
parentda148869da031cec7331322223744bab9b0f6192 (diff)
downloadgsoc2013-evolution-07a23dc4a63443eba04c3991e3cf8619981bdb22.tar
gsoc2013-evolution-07a23dc4a63443eba04c3991e3cf8619981bdb22.tar.gz
gsoc2013-evolution-07a23dc4a63443eba04c3991e3cf8619981bdb22.tar.bz2
gsoc2013-evolution-07a23dc4a63443eba04c3991e3cf8619981bdb22.tar.lz
gsoc2013-evolution-07a23dc4a63443eba04c3991e3cf8619981bdb22.tar.xz
gsoc2013-evolution-07a23dc4a63443eba04c3991e3cf8619981bdb22.tar.zst
gsoc2013-evolution-07a23dc4a63443eba04c3991e3cf8619981bdb22.zip
(Fix bug #655: SelectNames doesn't let you remove addresses after you add
2001-06-05 Jason Leach <jleach@ximian.com> (Fix bug #655: SelectNames doesn't let you remove addresses after you add them) * gui/component/select-names/e-select-names.c (section_right_click_cb): New function, provides a popup menu with just "Remove" in it. (remove_cb): New callback to do the remove. (e_select_names_add_section): Attach the "right_click" signal to the section_right_click_cb above. svn path=/trunk/; revision=10123
Diffstat (limited to 'addressbook/gui')
-rw-r--r--addressbook/gui/component/select-names/e-select-names.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/addressbook/gui/component/select-names/e-select-names.c b/addressbook/gui/component/select-names/e-select-names.c
index 84ef76f9e0..94c613b274 100644
--- a/addressbook/gui/component/select-names/e-select-names.c
+++ b/addressbook/gui/component/select-names/e-select-names.c
@@ -496,6 +496,40 @@ remove_address(ETable *table, int row, int col, GdkEvent *event, ESelectNamesChi
e_select_names_model_delete (child->source, row);
}
+#include <gal/widgets/e-popup-menu.h>
+struct _RightClickData {
+ int row;
+ ESelectNamesChild *child;
+};
+typedef struct _RightClickData RightClickData;
+
+static void
+remove_cb (GtkWidget *widget, void *data)
+{
+ RightClickData *rcdata = (RightClickData *)data;
+
+ remove_address (NULL, rcdata->row, 0, NULL, rcdata->child);
+
+ g_free (rcdata);
+}
+
+static void
+section_right_click_cb (ETable *table, gint row, gint col, GdkEvent *event, ESelectNamesChild *child)
+{
+ EPopupMenu right_click_menu[] = {
+ { N_("Remove"), NULL,
+ GTK_SIGNAL_FUNC (remove_cb), NULL, 0 },
+ { NULL, NULL, NULL, 0 }
+ };
+
+ RightClickData *rcdata = g_new0 (RightClickData, 1);
+ rcdata->row = row;
+ rcdata->child = child;
+
+ e_popup_menu_run (right_click_menu, event, 0, 0,
+ rcdata);
+}
+
void
e_select_names_add_section(ESelectNames *e_select_names, char *name, char *id, ESelectNamesModel *source)
{
@@ -546,6 +580,8 @@ e_select_names_add_section(ESelectNames *e_select_names, char *name, char *id, E
model = e_select_names_table_model_new(source);
etable = e_table_scrolled_new (model, NULL, SPEC2, NULL);
+ gtk_signal_connect(GTK_OBJECT(e_table_scrolled_get_table(E_TABLE_SCROLLED(etable))), "right_click",
+ GTK_SIGNAL_FUNC(section_right_click_cb), child);
gtk_signal_connect(GTK_OBJECT(e_table_scrolled_get_table(E_TABLE_SCROLLED(etable))), "double_click",
GTK_SIGNAL_FUNC(remove_address), child);