diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2009-08-12 10:19:16 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2009-08-12 10:20:09 +0800 |
commit | 5d498956659bfe5016aa46190507203fee694ddd (patch) | |
tree | 079838444c14f184931b85be6438b4aa00b5825d /calendar/gui | |
parent | 26072c826f7a6ab84f2230b818fb6abaf9a94fa0 (diff) | |
download | gsoc2013-evolution-5d498956659bfe5016aa46190507203fee694ddd.tar.gz gsoc2013-evolution-5d498956659bfe5016aa46190507203fee694ddd.tar.zst gsoc2013-evolution-5d498956659bfe5016aa46190507203fee694ddd.zip |
Kill EMenu.
Diffstat (limited to 'calendar/gui')
-rw-r--r-- | calendar/gui/Makefile.am | 2 | ||||
-rw-r--r-- | calendar/gui/e-cal-menu.c | 293 | ||||
-rw-r--r-- | calendar/gui/e-cal-menu.h | 121 | ||||
-rw-r--r-- | calendar/gui/gnome-cal.c | 19 | ||||
-rw-r--r-- | calendar/gui/gnome-cal.h | 3 |
5 files changed, 0 insertions, 438 deletions
diff --git a/calendar/gui/Makefile.am b/calendar/gui/Makefile.am index 0c9b25269e..a8993bce0d 100644 --- a/calendar/gui/Makefile.am +++ b/calendar/gui/Makefile.am @@ -105,8 +105,6 @@ libevolution_calendar_la_SOURCES = \ e-cal-config.h \ e-cal-event.c \ e-cal-event.h \ - e-cal-menu.c \ - e-cal-menu.h \ e-cal-model-calendar.c \ e-cal-model-calendar.h \ e-cal-model.c \ diff --git a/calendar/gui/e-cal-menu.c b/calendar/gui/e-cal-menu.c deleted file mode 100644 index 30d287ff6b..0000000000 --- a/calendar/gui/e-cal-menu.c +++ /dev/null @@ -1,293 +0,0 @@ -/* - * 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/> - * - * - * Authors: - * Michael Zucchi <notzed@ximian.com> - * - * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) - * - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif - -#include <string.h> -#include <stdlib.h> - -#include <glib.h> - -#include "e-cal-menu.h" -#include "gui/e-cal-model.h" -#include "itip-utils.h" - -static void ecalm_standard_menu_factory(EMenu *emp, gpointer data); - -static GObjectClass *ecalm_parent; - -static void -ecalm_init(GObject *o) -{ - /*ECalMenu *emp = (ECalMenu *)o; */ -} - -static void -ecalm_finalise(GObject *o) -{ - ((GObjectClass *)ecalm_parent)->finalize(o); -} - -static void -ecalm_target_free(EMenu *ep, EMenuTarget *t) -{ - switch (t->type) { - case E_CAL_MENU_TARGET_SELECT: { - ECalMenuTargetSelect *s = (ECalMenuTargetSelect *)t; - gint i; - - for (i=0;i<s->events->len;i++) - e_cal_model_free_component_data(s->events->pdata[i]); - g_ptr_array_free(s->events, TRUE); - g_object_unref(s->model); - break; } - } - - ((EMenuClass *)ecalm_parent)->target_free(ep, t); -} - -static void -ecalm_class_init(GObjectClass *klass) -{ - klass->finalize = ecalm_finalise; - ((EMenuClass *)klass)->target_free = ecalm_target_free; - - e_menu_class_add_factory((EMenuClass *)klass, NULL, (EMenuFactoryFunc)ecalm_standard_menu_factory, NULL); -} - -GType -e_cal_menu_get_type(void) -{ - static GType type = 0; - - if (type == 0) { - static const GTypeInfo info = { - sizeof(ECalMenuClass), - NULL, NULL, - (GClassInitFunc)ecalm_class_init, - NULL, NULL, - sizeof(ECalMenu), 0, - (GInstanceInitFunc)ecalm_init - }; - ecalm_parent = g_type_class_ref(e_menu_get_type()); - type = g_type_register_static(e_menu_get_type(), "ECalMenu", &info, 0); - } - - return type; -} - -ECalMenu *e_cal_menu_new(const gchar *menuid) -{ - ECalMenu *emp = g_object_new(e_cal_menu_get_type(), NULL); - - e_menu_construct(&emp->menu, menuid); - - return emp; -} - -/** - * e_cal_menu_target_new_select: - * @folder: The selection will ref this for the life of it. - * @folder_uri: - * @uids: The selection will free this when done with it. - * - * Create a new selection popup target. - * - * Return value: - **/ -ECalMenuTargetSelect * -e_cal_menu_target_new_select(ECalMenu *eabp, struct _ECalModel *model, GPtrArray *events) -{ - ECalMenuTargetSelect *t = e_menu_target_new(&eabp->menu, E_CAL_MENU_TARGET_SELECT, sizeof(*t)); - guint32 mask = ~0; - ECal *client; - gboolean read_only; - - /* FIXME: This is duplicated in e-cal-popup */ - - t->model = model; - g_object_ref(t->model); - t->events = events; - - if (t->events->len == 0) { - client = e_cal_model_get_default_client(t->model); - } else { - ECalModelComponent *comp_data = (ECalModelComponent *)t->events->pdata[0]; - - mask &= ~E_CAL_MENU_SELECT_ANY; - if (t->events->len == 1) - mask &= ~E_CAL_MENU_SELECT_ONE; - else - mask &= ~E_CAL_MENU_SELECT_MANY; - - if (icalcomponent_get_first_property (comp_data->icalcomp, ICAL_URL_PROPERTY)) - mask &= ~E_CAL_MENU_SELECT_HASURL; - - if (!e_cal_get_static_capability (comp_data->client, CAL_STATIC_CAPABILITY_NO_TASK_ASSIGNMENT) - && !e_cal_get_static_capability (comp_data->client, CAL_STATIC_CAPABILITY_NO_CONV_TO_ASSIGN_TASK) - && !icalcomponent_get_first_property (comp_data->icalcomp, ICAL_ATTENDEE_PROPERTY)) - mask &= ~E_CAL_MENU_SELECT_ASSIGNABLE; - - if (!icalcomponent_get_first_property (comp_data->icalcomp, ICAL_COMPLETED_PROPERTY)) - mask &= ~ E_CAL_MENU_SELECT_NOTCOMPLETE; - - if (e_cal_util_component_has_recurrences (comp_data->icalcomp)) - mask &= ~E_CAL_MENU_SELECT_RECURRING; - else if (e_cal_util_component_is_instance (comp_data->icalcomp)) - mask &= ~E_CAL_MENU_SELECT_RECURRING; - else - mask &= ~E_CAL_MENU_SELECT_NONRECURRING; - - if (e_cal_util_component_is_instance (comp_data->icalcomp)) - mask &= ~E_CAL_MENU_SELECT_INSTANCE; - - if (e_cal_util_component_has_organizer (comp_data->icalcomp)) { - ECalComponent *comp; - - comp = e_cal_component_new (); - e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (comp_data->icalcomp)); - if (!itip_organizer_is_user (comp, comp_data->client)) - mask &= ~E_CAL_MENU_SELECT_ORGANIZER; - - g_object_unref (comp); - } else { - /* organiser is synonym for owner in this case */ - mask &= ~(E_CAL_MENU_SELECT_ORGANIZER|E_CAL_MENU_SELECT_NOTMEETING); - } - - client = comp_data->client; - } - - if (client) { - e_cal_is_read_only(client, &read_only, NULL); - if (!read_only) - mask &= ~E_CAL_MENU_SELECT_EDITABLE; - } - - /* This bit isn't implemented ... */ - mask &= ~E_CAL_MENU_SELECT_NOTEDITING; - - t->target.mask = mask; - - return t; -} - -static void -ecalm_standard_menu_factory(EMenu *emp, gpointer data) -{ - /* noop */ -} - -/* ********************************************************************** */ - -/* menu plugin handler */ - -/* -<e-plugin - class="org.gnome.mail.plugin.popup:1.0" - id="org.gnome.mail.plugin.popup.item:1.0" - type="shlib" - location="/opt/gnome2/lib/camel/1.0/libcamelimap.so" - name="imap" - description="IMAP4 and IMAP4v1 mail store"> - <hook class="org.gnome.mail.popupMenu:1.0" - handler="HandlePopup"> - <menu id="any" target="select"> - <item - type="item|toggle|radio|image|submenu|bar" - active - path="foo/bar" - label="label" - icon="foo" - mask="select_one" - activate="ecalm_view_emacs"/> - </menu> - </extension> - -*/ - -static gpointer ecalph_parent_class; -#define ecalph ((ECalMenuHook *)eph) - -static const EMenuHookTargetMask ecalph_select_masks[] = { - { "one", E_CAL_MENU_SELECT_ONE }, - { "many", E_CAL_MENU_SELECT_MANY }, - { "editable", E_CAL_MENU_SELECT_EDITABLE }, - { "recurring", E_CAL_MENU_SELECT_RECURRING }, - { "non-recurring", E_CAL_MENU_SELECT_NONRECURRING }, - { "instance", E_CAL_MENU_SELECT_INSTANCE }, - { "organizer", E_CAL_MENU_SELECT_ORGANIZER }, - { "not-editing", E_CAL_MENU_SELECT_NOTEDITING }, - { "not-meeting", E_CAL_MENU_SELECT_NOTMEETING }, - { "assignable", E_CAL_MENU_SELECT_ASSIGNABLE }, - { "hasurl", E_CAL_MENU_SELECT_HASURL }, - { "not-complete", E_CAL_MENU_SELECT_NOTCOMPLETE }, - { NULL } -}; - -static const EMenuHookTargetMap ecalph_targets[] = { - { "select", E_CAL_MENU_TARGET_SELECT, ecalph_select_masks }, - { NULL } -}; - -static void -ecalph_finalise(GObject *o) -{ - /*EPluginHook *eph = (EPluginHook *)o;*/ - - ((GObjectClass *)ecalph_parent_class)->finalize(o); -} - -static void -ecalph_class_init(EPluginHookClass *klass) -{ - gint i; - - ((GObjectClass *)klass)->finalize = ecalph_finalise; - ((EPluginHookClass *)klass)->id = "org.gnome.evolution.calendar.bonobomenu:1.0"; - - for (i = 0; ecalph_targets[i].type; i++) - e_menu_hook_class_add_target_map((EMenuHookClass *)klass, &ecalph_targets[i]); - - /* FIXME: leaks parent set class? */ - ((EMenuHookClass *)klass)->menu_class = g_type_class_ref(e_cal_menu_get_type()); -} - -GType -e_cal_menu_hook_get_type(void) -{ - static GType type = 0; - - if (!type) { - static const GTypeInfo info = { - sizeof(ECalMenuHookClass), NULL, NULL, (GClassInitFunc) ecalph_class_init, NULL, NULL, - sizeof(ECalMenuHook), 0, (GInstanceInitFunc) NULL, - }; - - ecalph_parent_class = g_type_class_ref(e_menu_hook_get_type()); - type = g_type_register_static(e_menu_hook_get_type(), "ECalMenuHook", &info, 0); - } - - return type; -} diff --git a/calendar/gui/e-cal-menu.h b/calendar/gui/e-cal-menu.h deleted file mode 100644 index 0667f92051..0000000000 --- a/calendar/gui/e-cal-menu.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - * - * 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/> - * - * - * Authors: - * Michel Zucchi <notzed@ximian.com> - * - * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) - * - */ - -#ifndef __E_CAL_MENU_H__ -#define __E_CAL_MENU_H__ - -#include <glib-object.h> - -#include "e-util/e-menu.h" - -G_BEGIN_DECLS - -typedef struct _ECalMenu ECalMenu; -typedef struct _ECalMenuClass ECalMenuClass; - -/* Current target description */ -/* Types of popup tagets */ -enum _e_cal_menu_target_t { - E_CAL_MENU_TARGET_SELECT -}; - -/** - * enum _e_cal_menu_target_select_t - ECalPopupTargetSelect qualifiers. - * - * @E_CAL_MENU_SELECT_ONE: Only one item is selected. - * @E_CAL_MENU_SELECT_MANY: More than one item selected. - * @E_CAL_MENU_SELECT_ANY: One or more items selected. - * @E_CAL_MENU_SELECT_EDITABLE: The selection is editable. - * @E_CAL_MENU_SELECT_RECURRING: Is a recurring event. - * @E_CAL_MENU_SELECT_NONRECURRING: Is not a recurring event. - * @E_CAL_MENU_SELECT_INSTANCE: This is an instance event. - * @E_CAL_MENU_SELECT_ORGANIZER: The user is the organiser of the event. - * @E_CAL_MENU_SELECT_NOTEDITING: The event is not being edited already. Not implemented. - * @E_CAL_MENU_SELECT_NOTMEETING: The event is not a meeting. - * @E_CAL_MENU_SELECT_ASSIGNABLE: An assignable task. - * @E_CAL_MENU_SELECT_HASURL: A task that contains a URL. - **/ -enum _e_cal_menu_target_select_t { - E_CAL_MENU_SELECT_ONE = 1<<0, - E_CAL_MENU_SELECT_MANY = 1<<1, - E_CAL_MENU_SELECT_ANY = 1<<2, - E_CAL_MENU_SELECT_EDITABLE = 1<<3, - E_CAL_MENU_SELECT_RECURRING = 1<<4, - E_CAL_MENU_SELECT_NONRECURRING = 1<<5, - E_CAL_MENU_SELECT_INSTANCE = 1<<6, - - E_CAL_MENU_SELECT_ORGANIZER = 1<<7, - E_CAL_MENU_SELECT_NOTEDITING = 1<<8, - E_CAL_MENU_SELECT_NOTMEETING = 1<<9, - - E_CAL_MENU_SELECT_ASSIGNABLE = 1<<10, - E_CAL_MENU_SELECT_HASURL = 1<<11, - E_CAL_MENU_SELECT_NOTCOMPLETE = 1<<12 -}; - -typedef struct _ECalMenuTargetSelect ECalMenuTargetSelect; - -struct _ECalMenuTargetSelect { - EMenuTarget target; - - struct _ECalModel *model; - GPtrArray *events; -}; - -typedef struct _EMenuItem ECalMenuItem; - -/* The object */ -struct _ECalMenu { - EMenu menu; - - struct _ECalMenuPrivate *priv; -}; - -struct _ECalMenuClass { - EMenuClass menu_class; -}; - -GType e_cal_menu_get_type(void); - -ECalMenu *e_cal_menu_new(const gchar *menuid); - -ECalMenuTargetSelect *e_cal_menu_target_new_select(ECalMenu *emp, struct _ECalModel *model, GPtrArray *events); - -/* ********************************************************************** */ - -typedef struct _ECalMenuHook ECalMenuHook; -typedef struct _ECalMenuHookClass ECalMenuHookClass; - -struct _ECalMenuHook { - EMenuHook hook; -}; - -struct _ECalMenuHookClass { - EMenuHookClass hook_class; -}; - -GType e_cal_menu_hook_get_type(void); - -G_END_DECLS - -#endif /* __E_CAL_MENU_H__ */ diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c index 4944630727..bec7a59ec9 100644 --- a/calendar/gui/gnome-cal.c +++ b/calendar/gui/gnome-cal.c @@ -68,7 +68,6 @@ /*#include "a11y/ea-calendar.h" KILL-BONOBO */ #include "common/authentication.h" #include "e-cal-popup.h" -#include "e-cal-menu.h" #define d(x) @@ -97,9 +96,6 @@ struct _GnomeCalendarPrivate { ECalendar *date_navigator; - /* plugin menu managers */ - ECalMenu *calendar_menu; - /* Calendar query for the date navigator */ GList *dn_queries; /* list of CalQueries */ gchar *sexp; @@ -1383,8 +1379,6 @@ gnome_calendar_init (GnomeCalendar *gcal) setup_widgets (gcal); - priv->calendar_menu = e_cal_menu_new("org.gnome.evolution.calendar.view"); - priv->dn_queries = NULL; priv->sexp = g_strdup ("#t"); /* Match all */ priv->todo_sexp = g_strdup ("#t"); @@ -1475,11 +1469,6 @@ gnome_calendar_destroy (GtkObject *object) priv->update_marcus_bains_line_timeout = 0; } - if (priv->calendar_menu) { - g_object_unref (priv->calendar_menu); - priv->calendar_menu = NULL; - } - /* Disconnect all handlers */ view = gnome_calendar_get_calendar_view ( gcal, GNOME_CAL_WEEK_VIEW); @@ -3008,14 +2997,6 @@ gnome_calendar_purge (GnomeCalendar *gcal, time_t older_than) } -ECalMenu * -gnome_calendar_get_calendar_menu (GnomeCalendar *gcal) -{ - g_return_val_if_fail (GNOME_IS_CALENDAR (gcal), NULL); - - return gcal->priv->calendar_menu; -} - void gnome_calendar_edit_appointment (GnomeCalendar *gcal, const gchar * src_uid, diff --git a/calendar/gui/gnome-cal.h b/calendar/gui/gnome-cal.h index 9340633acb..bb696d436b 100644 --- a/calendar/gui/gnome-cal.h +++ b/calendar/gui/gnome-cal.h @@ -34,7 +34,6 @@ #include <e-util/e-popup.h> #include <shell/e-shell-settings.h> -#include "e-cal-menu.h" #include "e-calendar-table.h" #define GNOME_TYPE_CALENDAR (gnome_calendar_get_type ()) @@ -143,8 +142,6 @@ void gnome_calendar_set_view (GnomeCalendar *gcal, GnomeCalendarViewType view_ty struct _ECalendarView *gnome_calendar_get_calendar_view (GnomeCalendar *gcal, GnomeCalendarViewType view_type); -ECalMenu *gnome_calendar_get_calendar_menu (GnomeCalendar *gcal); - void gnome_calendar_set_selected_time_range (GnomeCalendar *gcal, time_t start_time); void gnome_calendar_get_selected_time_range (GnomeCalendar *gcal, |