sample plugin added to mark a calendar to be available offline or revert

availability

svn path=/trunk/; revision=27681
This commit is contained in:
Harish Krishnaswamy
2004-10-21 17:13:35 +00:00
parent 6c4af7d1fc
commit 7aba0ba1d5
4 changed files with 79 additions and 9 deletions

View File

@ -1,6 +1,6 @@
2004-10-20 JP Rosevear <jpr@novell.com>
* select-one-source.c: implement a plugin that allows the user to
limit the displayed task lists or calendars to the current
calendar or task list
2004-10-22 Harish Krishnaswamy <kharish@novell.com>
* mark-calendar-offline.c: implement a plugin that lets the user mark a
calendar to be available for off-line use, if it is not already set to be so
and vice versa

View File

@ -4,8 +4,8 @@ INCLUDES = \
@EVO_PLUGIN_RULE@
plugin_DATA = org-gnome-select-one-source.eplug
plugin_LTLIBRARIES = liborg-gnome-select-one-source.la
plugin_DATA = org-gnome-mark-calendar-offline.eplug
plugin_LTLIBRARIES = liborg-gnome-mark-calendar-offline.la
liborg_gnome_select_one_source_la_SOURCES = select-one-source.c
liborg_gnome_select_one_source_la_LDFLAGS = -module -avoid-version
liborg_gnome_mark_calendar_offline_la_SOURCES = mark-calendar-offline.c
liborg_gnome_mark_calendar_offline_la_LDFLAGS = -module -avoid-version

View File

@ -0,0 +1,54 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
* Authors: Harish Krishnaswamy (kharish@novell.com)
*
* Copyright 2004 Novell, Inc. (www.novell.com)
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of version 2 of the GNU General Public
* License as published by the Free Software Foundation.
*
* 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 Street #330, Boston, MA 02111-1307, USA.
*
*/
/* This is prototype code only, this may, or may not, use undocumented
* unstable or private internal function calls.
* This code has been derived from the source of the sample eplugin
* select_one_source.
*/
#include <glib.h>
#include <glib/gi18n.h>
#include <libedataserver/e-source.h>
#include <libedataserverui/e-source-selector.h>
#include <calendar/gui/e-cal-popup.h>
void org_gnome_mark_calendar_offline (EPlugin *ep, ECalPopupTargetSource *target);
void org_gnome_mark_calendar_no_offline (EPlugin *ep, ECalPopupTargetSource *target);
void
org_gnome_mark_calendar_no_offline (EPlugin *ep, ECalPopupTargetSource *target)
{
ESource *source;
source = e_source_selector_peek_primary_selection (target->selector);
e_source_set_property (source, "offline", "0");
}
void
org_gnome_mark_calendar_offline (EPlugin *ep, ECalPopupTargetSource *target)
{
ESource *source;
source = e_source_selector_peek_primary_selection (target->selector);
e_source_set_property (source, "offline", "1");
}

View File

@ -0,0 +1,16 @@
<e-plugin-list>
<e-plugin id="org.gnome.evolution.mark_calendar_offline" type="shlib" name="Mark calendar offline" description="Marks the selected calendar for offline viewing"
location="@PLUGINDIR@/liborg-gnome-mark-calendar-offline.so">
<hook class="org.gnome.evolution.calendar.popup:1.0">
<menu id="org.gnome.evolution.calendar.source.popup" target="source">
<item type="item" path="28.mark_calendar_offline" label="_Mark Calendar for offline use" icon="stock_disconnect" visible="offline" activate="org_gnome_mark_calendar_offline"/>
</menu>
</hook>
<hook class="org.gnome.evolution.calendar.popup:1.0">
<menu id="org.gnome.evolution.calendar.source.popup" target="source">
<item type="item" path="28.mark_calendar_no_offline" label="_Do not make this available offline" icon="stock_connect" visible="no-offline" activate="org_gnome_mark_calendar_no_offline"/>
</menu>
</hook>
</e-plugin>
</e-plugin-list>