aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/gui/widgets/e-contact-map.h
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2012-12-13 02:11:13 +0800
committerMatthew Barnes <mbarnes@redhat.com>2012-12-13 03:33:47 +0800
commitbed06d9ec3914ba39975a58797e79ff2ad028768 (patch)
tree4ef95beedaf96fa078e985c8cfb6211bf0e3b219 /addressbook/gui/widgets/e-contact-map.h
parentd09d8de870b6697c8a8b262e7e077b871a69b315 (diff)
downloadgsoc2013-evolution-bed06d9ec3914ba39975a58797e79ff2ad028768.tar
gsoc2013-evolution-bed06d9ec3914ba39975a58797e79ff2ad028768.tar.gz
gsoc2013-evolution-bed06d9ec3914ba39975a58797e79ff2ad028768.tar.bz2
gsoc2013-evolution-bed06d9ec3914ba39975a58797e79ff2ad028768.tar.lz
gsoc2013-evolution-bed06d9ec3914ba39975a58797e79ff2ad028768.tar.xz
gsoc2013-evolution-bed06d9ec3914ba39975a58797e79ff2ad028768.tar.zst
gsoc2013-evolution-bed06d9ec3914ba39975a58797e79ff2ad028768.zip
Move the contact map widgets to addressbook/gui/widgets.
Move the supporting widgets for the contact maps feature alongside EABContactDisplay. Removing them from libeutil helps isolate our usage of libchamplain so it's not imposed on the entire application, and even 3rd party software. That libchamplain is an optional dependency only further complicates the matter. Ideally I'd like to somehow isolate this feature in an extension module, but we currently lack sufficient hooks for such an extension. So this arrangement will have to suffice for now.
Diffstat (limited to 'addressbook/gui/widgets/e-contact-map.h')
-rw-r--r--addressbook/gui/widgets/e-contact-map.h106
1 files changed, 106 insertions, 0 deletions
diff --git a/addressbook/gui/widgets/e-contact-map.h b/addressbook/gui/widgets/e-contact-map.h
new file mode 100644
index 0000000000..d9503e2c9b
--- /dev/null
+++ b/addressbook/gui/widgets/e-contact-map.h
@@ -0,0 +1,106 @@
+/*
+ * e-contact-map.h
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
+ * Copyright (C) 2011 Dan Vratil <dvratil@redhat.com>
+ *
+ */
+
+#ifndef E_CONTACT_MAP_H
+#define E_CONTACT_MAP_H
+
+#ifdef WITH_CONTACT_MAPS
+
+#include <gtk/gtk.h>
+
+#include <champlain/champlain.h>
+#include <champlain-gtk/champlain-gtk.h>
+
+#include <libebook/libebook.h>
+
+/* Standard GObject macros */
+#define E_TYPE_CONTACT_MAP \
+ (e_contact_map_get_type ())
+#define E_CONTACT_MAP(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST \
+ ((obj), E_TYPE_CONTACT_MAP, EContactMap))
+#define E_CONTACT_MAP_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_CAST \
+ ((cls), E_TYPE_CONTACT_MAP, EContactMapClass))
+#define E_IS_CONTACT_MAP(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE \
+ ((obj), E_TYPE_CONTACT_MAP))
+#define E_IS_CONTACT_MAP_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_TYPE \
+ ((cls), E_TYPE_CONTACT_MAP))
+#define E_CONTACT_MAP_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS \
+ ((obj), E_TYPE_CONTACT_MAP, EContactMapClass))
+
+G_BEGIN_DECLS
+
+typedef struct _EContactMap EContactMap;
+typedef struct _EContactMapClass EContactMapClass;
+typedef struct _EContactMapPrivate EContactMapPrivate;
+
+struct _EContactMap {
+ GtkChamplainEmbed parent;
+ EContactMapPrivate *priv;
+};
+
+struct _EContactMapClass {
+ GtkWindowClass parent_class;
+
+ void (*contact_added) (EContactMap *map,
+ ClutterActor *marker);
+
+ void (*contact_removed) (EContactMap *map,
+ const gchar *name);
+
+ void (*geocoding_started) (EContactMap *map,
+ ClutterActor *marker);
+
+ void (*geocoding_failed) (EContactMap *map,
+ const gchar *name);
+};
+
+GType e_contact_map_get_type (void) G_GNUC_CONST;
+GtkWidget * e_contact_map_new (void);
+
+void e_contact_map_add_contact (EContactMap *map,
+ EContact *contact);
+
+void e_contact_map_add_marker (EContactMap *map,
+ const gchar *name,
+ const gchar *contact_uid,
+ EContactAddress *address,
+ EContactPhoto *photo);
+
+void e_contact_map_remove_contact (EContactMap *map,
+ const gchar *name);
+
+void e_contact_map_remove_marker (EContactMap *map,
+ ClutterActor *marker);
+
+void e_contact_map_zoom_on_marker (EContactMap *map,
+ ClutterActor *marker);
+
+ChamplainView * e_contact_map_get_view (EContactMap *map);
+
+G_END_DECLS
+
+#endif /* WITH_CONTACT_MAPS */
+
+#endif