aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2000-07-08 16:29:07 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2000-07-08 16:29:07 +0800
commitbaad423775e9b0d94d560167286e46af677deb36 (patch)
tree32bdf0830fccdd0fcd7a498d538fafcd8b72ca5c
parent2219b51a72c7c598777a64f1b39f329c12a7e9c6 (diff)
downloadgsoc2013-evolution-baad423775e9b0d94d560167286e46af677deb36.tar
gsoc2013-evolution-baad423775e9b0d94d560167286e46af677deb36.tar.gz
gsoc2013-evolution-baad423775e9b0d94d560167286e46af677deb36.tar.bz2
gsoc2013-evolution-baad423775e9b0d94d560167286e46af677deb36.tar.lz
gsoc2013-evolution-baad423775e9b0d94d560167286e46af677deb36.tar.xz
gsoc2013-evolution-baad423775e9b0d94d560167286e46af677deb36.tar.zst
gsoc2013-evolution-baad423775e9b0d94d560167286e46af677deb36.zip
Wrap the ESelectNames stuff into a Bonobo interface, so that we can
call it from the message composer in evolution-mail. The Bonobo interface is physically implemented in evolution-addressbook. svn path=/trunk/; revision=3972
-rw-r--r--addressbook/ChangeLog25
-rw-r--r--addressbook/gui/component/addressbook-factory.c2
-rw-r--r--addressbook/gui/component/select-names/Evolution-Addressbook-SelectNames.idl37
-rw-r--r--addressbook/gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.oaf.in29
-rw-r--r--addressbook/gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.oafinfo29
-rw-r--r--addressbook/gui/component/select-names/Makefile.am28
-rw-r--r--addressbook/gui/component/select-names/e-select-names-bonobo.c272
-rw-r--r--addressbook/gui/component/select-names/e-select-names-bonobo.h71
-rw-r--r--addressbook/gui/component/select-names/e-select-names-factory.c60
-rw-r--r--addressbook/gui/component/select-names/e-select-names-factory.h31
-rw-r--r--addressbook/gui/component/select-names/e-select-names-manager.c10
-rw-r--r--addressbook/gui/component/select-names/e-select-names-manager.h10
-rw-r--r--addressbook/gui/component/select-names/evolution-addressbook-select-names.oafinfo29
13 files changed, 622 insertions, 11 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index ccbcd0535d..45057c9fea 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -1,3 +1,28 @@
+2000-07-08 Ettore Perazzoli <ettore@helixcode.com>
+
+ * gui/component/addressbook-factory.c (main): Start up the factory
+ for `Evolution::Addressbook::SelectNames'.
+
+ * gui/component/select-names/evolution-addressbook-select-names.oafinfo:
+ New.
+
+ * gui/component/select-names/e-select-names-factory.c: New.
+ * gui/component/select-names/e-select-names-factory.h: New.
+
+ * gui/component/select-names/e-select-names-bonobo.c: New.
+ * gui/component/select-names/e-select-names-bonobo.h: New.
+
+ * gui/component/addressbook-factory.c (main): Call
+ `e_select_names_factory_init()'.
+
+ * gui/component/select-names/e-select-names-manager.c
+ (e_select_names_manager_add_section): Made const-aware.
+ (e_select_names_manager_create_entry): Made const-aware.
+ (e_select_names_manager_activate_dialog): Made const-aware.
+
+ * gui/component/select-names/Evolution-Addressbook-SelectNames.idl:
+ New.
+
2000-07-08 Christopher James Lahey <clahey@helixcode.com>
* gui/component/e-addressbook-model.c,
diff --git a/addressbook/gui/component/addressbook-factory.c b/addressbook/gui/component/addressbook-factory.c
index f16c321b68..27f5adedaf 100644
--- a/addressbook/gui/component/addressbook-factory.c
+++ b/addressbook/gui/component/addressbook-factory.c
@@ -74,6 +74,8 @@ main (int argc, char **argv)
addressbook_factory_init ();
addressbook_component_factory_init ();
+ e_select_names_factory_init ();
+
e_cursors_init();
bonobo_main ();
diff --git a/addressbook/gui/component/select-names/Evolution-Addressbook-SelectNames.idl b/addressbook/gui/component/select-names/Evolution-Addressbook-SelectNames.idl
new file mode 100644
index 0000000000..2bc8154daf
--- /dev/null
+++ b/addressbook/gui/component/select-names/Evolution-Addressbook-SelectNames.idl
@@ -0,0 +1,37 @@
+/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * CORBA interface for the SelectNames dialog.
+ *
+ * Authors:
+ * Ettore Perazzoli <ettore@helixcode.com>
+ *
+ * Copyright (C) 2000 Helix Code, Inc.
+ */
+
+#include <Bonobo.idl>
+
+module Evolution {
+module Addressbook {
+
+ interface SelectNames : Bonobo::Unknown {
+ struct Section {
+ string id;
+ string title;
+ };
+
+ typedef sequence<Section> SectionList;
+
+ exception DuplicateID {};
+ exception SectionNotFound {};
+
+ void add_section (in string id, in string title)
+ raises (DuplicateID);
+
+ Bonobo::Control get_entry_for_section (in string section_id)
+ raises (SectionNotFound);
+
+ void activate_dialog (in string section_id);
+ };
+
+};
+};
diff --git a/addressbook/gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.oaf.in b/addressbook/gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.oaf.in
new file mode 100644
index 0000000000..e66c3aa38a
--- /dev/null
+++ b/addressbook/gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.oaf.in
@@ -0,0 +1,29 @@
+<oaf_info>
+
+<oaf_server iid="OAFIID:factory:addressbook:select-names:b39eb1a1-f341-4d5a-9a91-e2616e206b2e"
+ type="exe"
+ location="evolution-addressbook">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:GNOME/GenericFactory:1.0"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="description" type="string"
+ value="Factory for the Addressbook's name selection interface"/>
+
+</oaf_server>
+
+<oaf_server iid="OAFIID:addressbook:select-names:39301deb-174b-40d1-8a6e-5edc300f7b61"
+ type="factory"
+ location="OAFIID:factory:addressbook:select-names:b39eb1a1-f341-4d5a-9a91-e2616e206b2e">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:Evolution/Addressbook/SelectNames"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="description" type="string"
+ value="Evolution's addressbook name selection interface."/>
+
+</oaf_server>
+
+</oaf_info> \ No newline at end of file
diff --git a/addressbook/gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.oafinfo b/addressbook/gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.oafinfo
new file mode 100644
index 0000000000..e66c3aa38a
--- /dev/null
+++ b/addressbook/gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.oafinfo
@@ -0,0 +1,29 @@
+<oaf_info>
+
+<oaf_server iid="OAFIID:factory:addressbook:select-names:b39eb1a1-f341-4d5a-9a91-e2616e206b2e"
+ type="exe"
+ location="evolution-addressbook">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:GNOME/GenericFactory:1.0"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="description" type="string"
+ value="Factory for the Addressbook's name selection interface"/>
+
+</oaf_server>
+
+<oaf_server iid="OAFIID:addressbook:select-names:39301deb-174b-40d1-8a6e-5edc300f7b61"
+ type="factory"
+ location="OAFIID:factory:addressbook:select-names:b39eb1a1-f341-4d5a-9a91-e2616e206b2e">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:Evolution/Addressbook/SelectNames"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="description" type="string"
+ value="Evolution's addressbook name selection interface."/>
+
+</oaf_server>
+
+</oaf_info> \ No newline at end of file
diff --git a/addressbook/gui/component/select-names/Makefile.am b/addressbook/gui/component/select-names/Makefile.am
index f028eeeb89..1ed9c93498 100644
--- a/addressbook/gui/component/select-names/Makefile.am
+++ b/addressbook/gui/component/select-names/Makefile.am
@@ -1,3 +1,25 @@
+# CORBA stuff
+
+IDLS = \
+ Evolution-Addressbook-SelectNames.idl
+
+IDL_GENERATED = \
+ Evolution-Addressbook-SelectNames.h \
+ Evolution-Addressbook-SelectNames-common.c \
+ Evolution-Addressbook-SelectNames-skels.c \
+ Evolution-Addressbook-SelectNames-stubs.c
+
+Evolution-Addressbook-SelectNames-impl.o: Evolution-Addressbook-SelectNames.h
+
+$(IDL_GENERATED): $(IDLS)
+ $(ORBIT_IDL) -I$(datadir)/idl -I`$(GNOME_CONFIG) --datadir`/idl \
+ -I$(srcdir) $(srcdir)/Evolution-Addressbook-SelectNames.idl
+
+oafdir = $(datadir)/oaf
+oaf_DATA = evolution-addressbook-select-names.oafinfo
+
+#
+
CPPFLAGS = \
-DEVOLUTION_GLADEDIR=\""$(gladedir)"\"
@@ -25,6 +47,11 @@ INCLUDES = \
lib_LTLIBRARIES = libeselectnames.la
libeselectnames_la_SOURCES = \
+ $(IDL_GENERATED) \
+ e-select-names-bonobo.c \
+ e-select-names-bonobo.h \
+ e-select-names-factory.c \
+ e-select-names-factory.h \
e-select-names-manager.c \
e-select-names-manager.h \
e-select-names-model.c \
@@ -36,7 +63,6 @@ libeselectnames_la_SOURCES = \
e-select-names.c \
e-select-names.h
-
gladedir = $(datadir)/evolution/glade
glade_DATA = select-names.glade
diff --git a/addressbook/gui/component/select-names/e-select-names-bonobo.c b/addressbook/gui/component/select-names/e-select-names-bonobo.c
new file mode 100644
index 0000000000..bacba26df3
--- /dev/null
+++ b/addressbook/gui/component/select-names/e-select-names-bonobo.c
@@ -0,0 +1,272 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+/* e-select-names-bonobo.c
+ *
+ * Copyright (C) 2000 Helix Code, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * 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
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Author: Ettore Perazzoli
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <gnome.h>
+
+#include <bonobo/bonobo-property-bag.h>
+#include <bonobo/bonobo-control.h>
+
+#include "Evolution-Addressbook-SelectNames.h"
+
+#include "e-util/e-util.h"
+#include "e-select-names-manager.h"
+
+#include "e-select-names-bonobo.h"
+
+
+#define PARENT_TYPE bonobo_object_get_type ()
+static BonoboObjectClass *parent_class = NULL;
+
+struct _ESelectNamesBonoboPrivate {
+ ESelectNamesManager *manager;
+};
+
+enum _EntryPropertyID {
+ ENTRY_PROPERTY_ID_TEXT
+};
+typedef enum _EntryPropertyID EntryPropertyID;
+
+
+/* PropertyBag implementation for the entry widgets. */
+
+static void
+entry_get_property_fn (BonoboPropertyBag *bag,
+ BonoboArg *arg,
+ unsigned int arg_id,
+ void *user_data)
+{
+ GtkWidget *widget;
+ char *text;
+
+ widget = GTK_WIDGET (user_data);
+
+ switch (arg_id) {
+ case ENTRY_PROPERTY_ID_TEXT:
+ gtk_object_get (GTK_OBJECT (widget), "text", &text, NULL);
+ BONOBO_ARG_SET_STRING (arg, text);
+ break;
+ default:
+ break;
+ }
+}
+
+
+/* CORBA interface implementation. */
+
+static POA_Evolution_Addressbook_SelectNames__vepv SelectNames_vepv;
+
+static POA_Evolution_Addressbook_SelectNames *
+create_servant (void)
+{
+ POA_Evolution_Addressbook_SelectNames *servant;
+ CORBA_Environment ev;
+
+ servant = (POA_Evolution_Addressbook_SelectNames *) g_new0 (BonoboObjectServant, 1);
+ servant->vepv = &SelectNames_vepv;
+
+ CORBA_exception_init (&ev);
+
+ POA_Evolution_Addressbook_SelectNames__init ((PortableServer_Servant) servant, &ev);
+ if (ev._major != CORBA_NO_EXCEPTION) {
+ g_free (servant);
+ CORBA_exception_free (&ev);
+ return NULL;
+ }
+
+ CORBA_exception_free (&ev);
+
+ return servant;
+}
+
+static void
+impl_SelectNames_add_section (PortableServer_Servant servant,
+ const CORBA_char *id,
+ const CORBA_char *title,
+ CORBA_Environment *ev)
+{
+ BonoboObject *bonobo_object;
+ ESelectNamesBonobo *select_names;
+ ESelectNamesBonoboPrivate *priv;
+
+ bonobo_object = bonobo_object_from_servant (servant);
+ select_names = E_SELECT_NAMES_BONOBO (bonobo_object);
+ priv = select_names->priv;
+
+ e_select_names_manager_add_section (priv->manager, id, title);
+}
+
+static Bonobo_Control
+impl_SelectNames_get_entry_for_section (PortableServer_Servant servant,
+ const CORBA_char *section_id,
+ CORBA_Environment *ev)
+{
+ BonoboObject *bonobo_object;
+ ESelectNamesBonobo *select_names;
+ ESelectNamesBonoboPrivate *priv;
+ GtkWidget *entry_widget;
+ BonoboControl *control;
+ BonoboPropertyBag *property_bag;
+
+ bonobo_object = bonobo_object_from_servant (servant);
+ select_names = E_SELECT_NAMES_BONOBO (bonobo_object);
+ priv = select_names->priv;
+
+ entry_widget = e_select_names_manager_create_entry (priv->manager, section_id);
+ gtk_widget_show (entry_widget);
+
+ if (entry_widget == NULL) {
+ CORBA_exception_set (ev,
+ CORBA_USER_EXCEPTION,
+ ex_Evolution_Addressbook_SelectNames_SectionNotFound,
+ NULL);
+ return CORBA_OBJECT_NIL;
+ }
+
+ control = bonobo_control_new (entry_widget);
+
+ property_bag = bonobo_property_bag_new (entry_get_property_fn, NULL, entry_widget);
+ bonobo_property_bag_add (property_bag, "text", ENTRY_PROPERTY_ID_TEXT,
+ BONOBO_ARG_STRING, NULL, NULL, BONOBO_PROPERTY_READABLE);
+
+ bonobo_control_set_property_bag (control, property_bag);
+
+ return bonobo_object_corba_objref (BONOBO_OBJECT (control));
+}
+
+static void
+impl_SelectNames_activate_dialog (PortableServer_Servant servant,
+ const CORBA_char *section_id,
+ CORBA_Environment *ev)
+{
+ BonoboObject *bonobo_object;
+ ESelectNamesBonobo *select_names;
+ ESelectNamesBonoboPrivate *priv;
+
+ bonobo_object = bonobo_object_from_servant (servant);
+ select_names = E_SELECT_NAMES_BONOBO (bonobo_object);
+ priv = select_names->priv;
+
+ e_select_names_manager_activate_dialog (priv->manager, section_id);
+}
+
+
+/* GtkObject methods. */
+
+static void
+impl_destroy (GtkObject *object)
+{
+ ESelectNamesBonobo *select_names;
+ ESelectNamesBonoboPrivate *priv;
+
+ select_names = E_SELECT_NAMES_BONOBO (object);
+ priv = select_names->priv;
+
+ gtk_object_unref (GTK_OBJECT (priv->manager));
+
+ g_free (priv);
+}
+
+
+static void
+corba_class_init ()
+{
+ POA_Evolution_Addressbook_SelectNames__vepv *vepv;
+ POA_Evolution_Addressbook_SelectNames__epv *epv;
+ PortableServer_ServantBase__epv *base_epv;
+
+ base_epv = g_new0 (PortableServer_ServantBase__epv, 1);
+ base_epv->_private = NULL;
+ base_epv->finalize = NULL;
+ base_epv->default_POA = NULL;
+
+ epv = g_new0 (POA_Evolution_Addressbook_SelectNames__epv, 1);
+ epv->add_section = impl_SelectNames_add_section;
+ epv->get_entry_for_section = impl_SelectNames_get_entry_for_section;
+ epv->activate_dialog = impl_SelectNames_activate_dialog;
+
+ vepv = &SelectNames_vepv;
+ vepv->Bonobo_Unknown_epv = bonobo_object_get_epv ();
+ vepv->Evolution_Addressbook_SelectNames_epv = epv;
+}
+
+static void
+class_init (ESelectNamesBonoboClass *klass)
+{
+ GtkObjectClass *object_class;
+
+ object_class = GTK_OBJECT_CLASS (klass);
+ parent_class = gtk_type_class (bonobo_object_get_type ());
+
+ object_class->destroy = impl_destroy;
+
+ corba_class_init ();
+}
+
+static void
+init (ESelectNamesBonobo *select_names)
+{
+ ESelectNamesBonoboPrivate *priv;
+
+ priv = g_new (ESelectNamesBonoboPrivate, 1);
+
+ priv->manager = e_select_names_manager_new ();
+
+ select_names->priv = priv;
+}
+
+
+void
+e_select_names_bonobo_construct (ESelectNamesBonobo *select_names,
+ Evolution_Addressbook_SelectNames corba_object)
+{
+ g_return_if_fail (select_names != NULL);
+ g_return_if_fail (E_IS_SELECT_NAMES_BONOBO (select_names));
+
+ bonobo_object_construct (BONOBO_OBJECT (select_names), corba_object);
+}
+
+ESelectNamesBonobo *
+e_select_names_bonobo_new (void)
+{
+ POA_Evolution_Addressbook_SelectNames *servant;
+ Evolution_Addressbook_SelectNames corba_object;
+ ESelectNamesBonobo *select_names;
+
+ servant = create_servant ();
+ if (servant == NULL)
+ return NULL;
+
+ select_names = gtk_type_new (e_select_names_bonobo_get_type ());
+
+ corba_object = bonobo_object_activate_servant (BONOBO_OBJECT (select_names), servant);
+ e_select_names_bonobo_construct (select_names, corba_object);
+
+ return select_names;
+}
+
+
+E_MAKE_TYPE (e_select_names_bonobo, "ESelectNamesBonobo", ESelectNamesBonobo, class_init, init, PARENT_TYPE)
diff --git a/addressbook/gui/component/select-names/e-select-names-bonobo.h b/addressbook/gui/component/select-names/e-select-names-bonobo.h
new file mode 100644
index 0000000000..4531c1e024
--- /dev/null
+++ b/addressbook/gui/component/select-names/e-select-names-bonobo.h
@@ -0,0 +1,71 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+/* e-select-names-bonobo.h
+ *
+ * Copyright (C) 2000 Helix Code, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * 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
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Author: Ettore Perazzoli
+ */
+
+#ifndef __E_SELECT_NAMES_BONOBO_H__
+#define __E_SELECT_NAMES_BONOBO_H__
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <bonobo/bonobo-object.h>
+
+#include "Evolution-Addressbook-SelectNames.h"
+
+#ifdef __cplusplus
+extern "C" {
+#pragma }
+#endif /* __cplusplus */
+
+#define E_TYPE_SELECT_NAMES_BONOBO (e_select_names_bonobo_get_type ())
+#define E_SELECT_NAMES_BONOBO(obj) (GTK_CHECK_CAST ((obj), E_TYPE_SELECT_NAMES_BONOBO, ESelectNamesBonobo))
+#define E_SELECT_NAMES_BONOBO_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), E_TYPE_SELECT_NAMES_BONOBO, ESelectNamesBonoboClass))
+#define E_IS_SELECT_NAMES_BONOBO(obj) (GTK_CHECK_TYPE ((obj), E_TYPE_SELECT_NAMES_BONOBO))
+#define E_IS_SELECT_NAMES_BONOBO_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((obj), E_TYPE_SELECT_NAMES_BONOBO))
+
+
+typedef struct _ESelectNamesBonobo ESelectNamesBonobo;
+typedef struct _ESelectNamesBonoboPrivate ESelectNamesBonoboPrivate;
+typedef struct _ESelectNamesBonoboClass ESelectNamesBonoboClass;
+
+struct _ESelectNamesBonobo {
+ BonoboObject parent;
+
+ ESelectNamesBonoboPrivate *priv;
+};
+
+struct _ESelectNamesBonoboClass {
+ BonoboObjectClass parent_class;
+};
+
+
+GtkType e_select_names_bonobo_get_type (void);
+void e_select_names_bonobo_construct (ESelectNamesBonobo *select_names,
+ Evolution_Addressbook_SelectNames corba_object);
+ESelectNamesBonobo *e_select_names_bonobo_new (void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __E_SELECT_NAMES_BONOBO_H__ */
diff --git a/addressbook/gui/component/select-names/e-select-names-factory.c b/addressbook/gui/component/select-names/e-select-names-factory.c
new file mode 100644
index 0000000000..9a45692071
--- /dev/null
+++ b/addressbook/gui/component/select-names/e-select-names-factory.c
@@ -0,0 +1,60 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+/* e-select-names-factory.c
+ *
+ * Copyright (C) 2000 Helix Code, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * 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
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Author: Ettore Perazzoli
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <bonobo.h>
+
+#include "e-select-names-bonobo.h"
+
+#include "e-select-names-factory.h"
+
+
+#define COMPONENT_FACTORY_ID "OAFIID:factory:addressbook:select-names:b39eb1a1-f341-4d5a-9a91-e2616e206b2e"
+
+static BonoboGenericFactory *factory = NULL;
+
+
+static BonoboObject *
+factory_fn (BonoboGenericFactory *factory,
+ void *closure)
+{
+ return BONOBO_OBJECT (e_select_names_bonobo_new ());
+}
+
+
+gboolean
+e_select_names_factory_init (void)
+{
+ if (factory != NULL)
+ return TRUE;
+
+ factory = bonobo_generic_factory_new (COMPONENT_FACTORY_ID, factory_fn, NULL);
+
+ if (factory == NULL)
+ return FALSE;
+
+ return TRUE;
+}
diff --git a/addressbook/gui/component/select-names/e-select-names-factory.h b/addressbook/gui/component/select-names/e-select-names-factory.h
new file mode 100644
index 0000000000..f65d5aaa9e
--- /dev/null
+++ b/addressbook/gui/component/select-names/e-select-names-factory.h
@@ -0,0 +1,31 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+/* e-select-names-factory.h
+ *
+ * Copyright (C) 2000 Helix Code, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * 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
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Author: Ettore Perazzoli
+ */
+
+#ifndef _E_SECELT_NAMES_FACTORY_H
+#define _E_SECELT_NAMES_FACTORY_H
+
+#include <glib.h>
+
+gboolean e_select_names_factory_init (void);
+
+#endif
diff --git a/addressbook/gui/component/select-names/e-select-names-manager.c b/addressbook/gui/component/select-names/e-select-names-manager.c
index 51a4d889c1..77405dfe5c 100644
--- a/addressbook/gui/component/select-names/e-select-names-manager.c
+++ b/addressbook/gui/component/select-names/e-select-names-manager.c
@@ -182,8 +182,8 @@ e_select_names_manager_init (ESelectNamesManager *manager)
}
void e_select_names_manager_add_section (ESelectNamesManager *manager,
- char *id,
- char *title)
+ const char *id,
+ const char *title)
{
ESelectNamesManagerSection *section;
@@ -196,7 +196,7 @@ void e_select_names_manager_add_section (
}
GtkWidget *e_select_names_manager_create_entry (ESelectNamesManager *manager,
- char *id)
+ const char *id)
{
GtkWidget *entry;
ETextModel *model;
@@ -218,7 +218,7 @@ GtkWidget *e_select_names_manager_create_entry (
}
void e_select_names_manager_activate_dialog (ESelectNamesManager *manager,
- char *id)
+ const char *id)
{
ESelectNames *names = E_SELECT_NAMES(e_select_names_new());
EIterator *iterator;
@@ -232,7 +232,7 @@ void e_select_names_manager_activate_dialog (
/* Of type ECard */
EList *e_select_names_manager_get_cards (ESelectNamesManager *manager,
- char *id)
+ const char *id)
{
EIterator *iterator;
iterator = e_list_get_iterator(manager->sections);
diff --git a/addressbook/gui/component/select-names/e-select-names-manager.h b/addressbook/gui/component/select-names/e-select-names-manager.h
index 600644f01a..f2423e667b 100644
--- a/addressbook/gui/component/select-names/e-select-names-manager.h
+++ b/addressbook/gui/component/select-names/e-select-names-manager.h
@@ -35,16 +35,16 @@ struct _ESelectNamesManagerClass {
ESelectNamesManager *e_select_names_manager_new (void);
void e_select_names_manager_add_section (ESelectNamesManager *manager,
- char *id,
- char *title);
+ const char *id,
+ const char *title);
GtkWidget *e_select_names_manager_create_entry (ESelectNamesManager *manager,
- char *id);
+ const char *id);
void e_select_names_manager_activate_dialog (ESelectNamesManager *manager,
- char *id);
+ const char *id);
/* Of type ECard */
EList *e_select_names_manager_get_cards (ESelectNamesManager *manager,
- char *id);
+ const char *id);
/* Standard Gtk function */
GtkType e_select_names_manager_get_type (void);
diff --git a/addressbook/gui/component/select-names/evolution-addressbook-select-names.oafinfo b/addressbook/gui/component/select-names/evolution-addressbook-select-names.oafinfo
new file mode 100644
index 0000000000..e66c3aa38a
--- /dev/null
+++ b/addressbook/gui/component/select-names/evolution-addressbook-select-names.oafinfo
@@ -0,0 +1,29 @@
+<oaf_info>
+
+<oaf_server iid="OAFIID:factory:addressbook:select-names:b39eb1a1-f341-4d5a-9a91-e2616e206b2e"
+ type="exe"
+ location="evolution-addressbook">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:GNOME/GenericFactory:1.0"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="description" type="string"
+ value="Factory for the Addressbook's name selection interface"/>
+
+</oaf_server>
+
+<oaf_server iid="OAFIID:addressbook:select-names:39301deb-174b-40d1-8a6e-5edc300f7b61"
+ type="factory"
+ location="OAFIID:factory:addressbook:select-names:b39eb1a1-f341-4d5a-9a91-e2616e206b2e">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:Evolution/Addressbook/SelectNames"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="description" type="string"
+ value="Evolution's addressbook name selection interface."/>
+
+</oaf_server>
+
+</oaf_info> \ No newline at end of file