aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/gui/component/addressbook-component.c
diff options
context:
space:
mode:
authorHans Petter Jansson <hpj@ximian.com>2003-11-09 13:41:00 +0800
committerHans Petter <hansp@src.gnome.org>2003-11-09 13:41:00 +0800
commit55e9c607f0bac0a0333552885d97d45c5122bd59 (patch)
treefd145deecfc68b387b7bb658f9068d638d4f1503 /addressbook/gui/component/addressbook-component.c
parent77fc7820e6af22ad574ca3bb90d450b66088018d (diff)
downloadgsoc2013-evolution-55e9c607f0bac0a0333552885d97d45c5122bd59.tar
gsoc2013-evolution-55e9c607f0bac0a0333552885d97d45c5122bd59.tar.gz
gsoc2013-evolution-55e9c607f0bac0a0333552885d97d45c5122bd59.tar.bz2
gsoc2013-evolution-55e9c607f0bac0a0333552885d97d45c5122bd59.tar.lz
gsoc2013-evolution-55e9c607f0bac0a0333552885d97d45c5122bd59.tar.xz
gsoc2013-evolution-55e9c607f0bac0a0333552885d97d45c5122bd59.tar.zst
gsoc2013-evolution-55e9c607f0bac0a0333552885d97d45c5122bd59.zip
Add new-addressbook.[ch]. (glade_DATA): Add new-addressbook.glade.
2003-11-08 Hans Petter Jansson <hpj@ximian.com> * gui/component/Makefile.am (libevolution_addressbook_la_SOURCES): Add new-addressbook.[ch]. (glade_DATA): Add new-addressbook.glade. * gui/component/addressbook-component.c (add_popup_menu_item): Implement. (new_addressbook_cb): Implement. (delete_addressbook_cb): Implement (skeletal). (fill_popup_menu_callback): Implement. (impl_createControls): Hook up fill_popup_menu_callback(). * gui/component/new-addressbook.[ch]: New files. * gui/component/new-addressbook.glade: New file. svn path=/trunk/; revision=23238
Diffstat (limited to 'addressbook/gui/component/addressbook-component.c')
-rw-r--r--addressbook/gui/component/addressbook-component.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/addressbook/gui/component/addressbook-component.c b/addressbook/gui/component/addressbook-component.c
index 25d94f1f6c..7f0ca913ed 100644
--- a/addressbook/gui/component/addressbook-component.c
+++ b/addressbook/gui/component/addressbook-component.c
@@ -28,10 +28,17 @@
#include "addressbook-component.h"
#include "addressbook.h"
+#include "new-addressbook.h"
#include "widgets/misc/e-source-selector.h"
+#include <bonobo/bonobo-i18n.h>
#include <gtk/gtkscrolledwindow.h>
+#include <gtk/gtkmenu.h>
+#include <gtk/gtkimage.h>
+#include <gtk/gtkimagemenuitem.h>
+#include <gtk/gtkmessagedialog.h>
+#include <gtk/gtkstock.h>
#include <gconf/gconf-client.h>
@@ -59,6 +66,45 @@ load_uri_for_selection (ESourceSelector *selector,
}
}
+static void
+add_popup_menu_item (GtkMenu *menu, const char *label, const char *pixmap,
+ GCallback callback, gpointer user_data)
+{
+ GtkWidget *item, *image;
+
+ if (pixmap) {
+ item = gtk_image_menu_item_new_with_label (label);
+
+ /* load the image */
+ image = gtk_image_new_from_file (pixmap);
+ if (!image)
+ image = gtk_image_new_from_stock (pixmap, GTK_ICON_SIZE_MENU);
+
+ if (image)
+ gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
+ } else {
+ item = gtk_menu_item_new_with_label (label);
+ }
+
+ if (callback)
+ g_signal_connect (G_OBJECT (item), "activate", callback, user_data);
+
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
+ gtk_widget_show (item);
+}
+
+/* Folder popup menu callbacks */
+
+static void
+new_addressbook_cb (GtkWidget *widget, ESourceSelector *selector)
+{
+ new_addressbook_dialog (GTK_WINDOW (gtk_widget_get_toplevel (widget)));
+}
+
+static void
+delete_addressbook_cb (GtkWidget *widget, AddressbookComponent *comp)
+{
+}
/* Callbacks. */
@@ -69,6 +115,13 @@ primary_source_selection_changed_callback (ESourceSelector *selector,
load_uri_for_selection (selector, view_control);
}
+static void
+fill_popup_menu_callback (ESourceSelector *selector, GtkMenu *menu, AddressbookComponent *comp)
+{
+ add_popup_menu_item (menu, _("New Addressbook"), NULL, G_CALLBACK (new_addressbook_cb), comp);
+ add_popup_menu_item (menu, _("Delete"), GTK_STOCK_DELETE, G_CALLBACK (delete_addressbook_cb), comp);
+ add_popup_menu_item (menu, _("Rename"), NULL, NULL, NULL);
+}
/* Evolution::Component CORBA methods. */
@@ -101,6 +154,9 @@ impl_createControls (PortableServer_Servant servant,
g_signal_connect_object (selector, "primary_selection_changed",
G_CALLBACK (primary_source_selection_changed_callback),
G_OBJECT (view_control), 0);
+ g_signal_connect_object (selector, "fill_popup_menu",
+ G_CALLBACK (fill_popup_menu_callback),
+ G_OBJECT (addressbook_component), 0);
load_uri_for_selection (E_SOURCE_SELECTOR (selector), view_control);
*corba_sidebar_control = CORBA_Object_duplicate (BONOBO_OBJREF (sidebar_control), ev);