aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui')
-rw-r--r--calendar/gui/calendar-commands.c39
-rw-r--r--calendar/gui/calendar-component.c1
-rw-r--r--calendar/gui/component-factory.c1
-rw-r--r--calendar/gui/e-day-view.c20
-rw-r--r--calendar/gui/e-day-view.h5
-rw-r--r--calendar/gui/e-week-view.c21
-rw-r--r--calendar/gui/e-week-view.h4
-rw-r--r--calendar/gui/gnome-cal.c69
-rw-r--r--calendar/gui/gnome-cal.h5
9 files changed, 163 insertions, 2 deletions
diff --git a/calendar/gui/calendar-commands.c b/calendar/gui/calendar-commands.c
index 3167e002f6..a16b280a13 100644
--- a/calendar/gui/calendar-commands.c
+++ b/calendar/gui/calendar-commands.c
@@ -365,6 +365,41 @@ properties_cmd (BonoboUIComponent *uic, gpointer data, const char *path)
cal_prefs_dialog_show (preferences_dialog);
}
+static void
+cut_event_cmd (BonoboUIComponent *uic, gpointer data, const gchar *path)
+{
+ GnomeCalendar *gcal;
+
+ gcal = GNOME_CALENDAR (data);
+ set_clock_cursor (gcal);
+ gnome_calendar_cut_clipboard (gcal);
+ set_normal_cursor (gcal);
+}
+
+static void
+copy_event_cmd (BonoboUIComponent *uic, gpointer data, const gchar *path)
+{
+ GnomeCalendar *gcal;
+
+ gcal = GNOME_CALENDAR (data);
+
+ set_clock_cursor (gcal);
+ gnome_calendar_copy_clipboard (gcal);
+ set_normal_cursor (gcal);
+}
+
+static void
+paste_event_cmd (BonoboUIComponent *uic, gpointer data, const gchar *path)
+{
+ GnomeCalendar *gcal;
+
+ gcal = GNOME_CALENDAR (data);
+
+ set_clock_cursor (gcal);
+ gnome_calendar_paste_clipboard (gcal);
+ set_normal_cursor (gcal);
+}
+
static BonoboUIVerb verbs [] = {
BONOBO_UI_VERB ("CalendarNew", new_calendar_cmd),
@@ -376,6 +411,10 @@ static BonoboUIVerb verbs [] = {
BONOBO_UI_VERB ("EditNewEvent", new_event_cb),
BONOBO_UI_VERB ("CalendarPreferences", properties_cmd),
+ BONOBO_UI_VERB ("CutEvent", cut_event_cmd),
+ BONOBO_UI_VERB ("CopyEvent", copy_event_cmd),
+ BONOBO_UI_VERB ("PasteEvent", paste_event_cmd),
+
BONOBO_UI_VERB ("CalendarPrev", previous_clicked),
BONOBO_UI_VERB ("CalendarToday", today_clicked),
BONOBO_UI_VERB ("CalendarNext", next_clicked),
diff --git a/calendar/gui/calendar-component.c b/calendar/gui/calendar-component.c
index d29f3bbc5d..bd11244f85 100644
--- a/calendar/gui/calendar-component.c
+++ b/calendar/gui/calendar-component.c
@@ -310,7 +310,6 @@ factory_fn (BonoboGenericFactory *factory,
EvolutionShellComponent *shell_component;
shell_component = evolution_shell_component_new (folder_types,
- NULL,
create_view,
create_folder,
remove_folder,
diff --git a/calendar/gui/component-factory.c b/calendar/gui/component-factory.c
index d29f3bbc5d..bd11244f85 100644
--- a/calendar/gui/component-factory.c
+++ b/calendar/gui/component-factory.c
@@ -310,7 +310,6 @@ factory_fn (BonoboGenericFactory *factory,
EvolutionShellComponent *shell_component;
shell_component = evolution_shell_component_new (folder_types,
- NULL,
create_view,
create_folder,
remove_folder,
diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c
index 682e2df9c1..155506f516 100644
--- a/calendar/gui/e-day-view.c
+++ b/calendar/gui/e-day-view.c
@@ -2538,6 +2538,26 @@ e_day_view_set_week_start_day (EDayView *day_view,
e_day_view_recalc_work_week (day_view);
}
+void
+e_day_view_cut_clipboard (EDayView *day_view)
+{
+ g_return_if_fail (E_IS_DAY_VIEW (day_view));
+ e_day_view_on_cut (NULL, day_view);
+}
+
+void
+e_day_view_copy_clipboard (EDayView *day_view)
+{
+ g_return_if_fail (E_IS_DAY_VIEW (day_view));
+ e_day_view_on_copy (NULL, day_view);
+}
+
+void
+e_day_view_paste_clipboard (EDayView *day_view)
+{
+ g_return_if_fail (E_IS_DAY_VIEW (day_view));
+ e_day_view_on_paste (NULL, day_view);
+}
static void
e_day_view_recalc_work_week (EDayView *day_view)
diff --git a/calendar/gui/e-day-view.h b/calendar/gui/e-day-view.h
index 6f34b590ec..2d3f5104fb 100644
--- a/calendar/gui/e-day-view.h
+++ b/calendar/gui/e-day-view.h
@@ -561,6 +561,11 @@ gint e_day_view_get_week_start_day (EDayView *day_view);
void e_day_view_set_week_start_day (EDayView *day_view,
gint week_start_day);
+/* Clipboard-related functions */
+void e_day_view_cut_clipboard (EDayView *day_view);
+void e_day_view_copy_clipboard (EDayView *day_view);
+void e_day_view_paste_clipboard (EDayView *day_view);
+
/*
* Internal functions called by the associated canvas items.
*/
diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c
index 70fc937437..7d0f2e1641 100644
--- a/calendar/gui/e-week-view.c
+++ b/calendar/gui/e-week-view.c
@@ -1643,6 +1643,27 @@ e_week_view_set_24_hour_format (EWeekView *week_view,
gtk_widget_queue_draw (week_view->main_canvas);
}
+void
+e_week_view_cut_clipboard (EWeekView *week_view)
+{
+ g_return_if_fail (E_IS_WEEK_VIEW (week_view));
+ e_week_view_on_cut (NULL, week_view);
+}
+
+void
+e_week_view_copy_clipboard (EWeekView *week_view)
+{
+ g_return_if_fail (E_IS_WEEK_VIEW (week_view));
+ e_week_view_on_copy (NULL, week_view);
+}
+
+void
+e_week_view_paste_clipboard (EWeekView *week_view)
+{
+ g_return_if_fail (E_IS_WEEK_VIEW (week_view));
+ e_week_view_on_paste (NULL, week_view);
+}
+
static gboolean
e_week_view_recalc_display_start_day (EWeekView *week_view)
diff --git a/calendar/gui/e-week-view.h b/calendar/gui/e-week-view.h
index 059cedb18c..cf1986b3bb 100644
--- a/calendar/gui/e-week-view.h
+++ b/calendar/gui/e-week-view.h
@@ -418,6 +418,10 @@ gboolean e_week_view_get_24_hour_format (EWeekView *week_view);
void e_week_view_set_24_hour_format (EWeekView *week_view,
gboolean use_24_hour);
+/* Clipboard related functions */
+void e_week_view_cut_clipboard (EWeekView *week_view);
+void e_week_view_copy_clipboard (EWeekView *week_view);
+void e_week_view_paste_clipboard (EWeekView *week_view);
/*
diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c
index 16afc47bd1..3aade08afa 100644
--- a/calendar/gui/gnome-cal.c
+++ b/calendar/gui/gnome-cal.c
@@ -1960,3 +1960,72 @@ gnome_calendar_update_view_buttons (GnomeCalendar *gcal)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
gtk_signal_handler_unblock_by_data (GTK_OBJECT (button), gcal);
}
+
+void
+gnome_calendar_cut_clipboard (GnomeCalendar *gcal)
+{
+ GnomeCalendarPrivate *priv;
+
+ priv = gcal->priv;
+
+ switch (priv->current_view_type) {
+ case GNOME_CAL_DAY_VIEW :
+ e_day_view_cut_clipboard (priv->day_view);
+ break;
+ case GNOME_CAL_WORK_WEEK_VIEW :
+ e_day_view_cut_clipboard (priv->work_week_view);
+ break;
+ case GNOME_CAL_WEEK_VIEW :
+ e_week_view_cut_clipboard (priv->week_view);
+ break;
+ case GNOME_CAL_MONTH_VIEW :
+ e_week_view_cut_clipboard (priv->month_view);
+ break;
+ }
+}
+
+void
+gnome_calendar_copy_clipboard (GnomeCalendar *gcal)
+{
+ GnomeCalendarPrivate *priv;
+
+ priv = gcal->priv;
+
+ switch (priv->current_view_type) {
+ case GNOME_CAL_DAY_VIEW :
+ e_day_view_copy_clipboard (priv->day_view);
+ break;
+ case GNOME_CAL_WORK_WEEK_VIEW :
+ e_day_view_copy_clipboard (priv->work_week_view);
+ break;
+ case GNOME_CAL_WEEK_VIEW :
+ e_week_view_copy_clipboard (priv->week_view);
+ break;
+ case GNOME_CAL_MONTH_VIEW :
+ e_week_view_copy_clipboard (priv->month_view);
+ break;
+ }
+}
+
+void
+gnome_calendar_paste_clipboard (GnomeCalendar *gcal)
+{
+ GnomeCalendarPrivate *priv;
+
+ priv = gcal->priv;
+
+ switch (priv->current_view_type) {
+ case GNOME_CAL_DAY_VIEW :
+ e_day_view_paste_clipboard (priv->day_view);
+ break;
+ case GNOME_CAL_WORK_WEEK_VIEW :
+ e_day_view_paste_clipboard (priv->work_week_view);
+ break;
+ case GNOME_CAL_WEEK_VIEW :
+ e_week_view_paste_clipboard (priv->week_view);
+ break;
+ case GNOME_CAL_MONTH_VIEW :
+ e_week_view_paste_clipboard (priv->month_view);
+ break;
+ }
+}
diff --git a/calendar/gui/gnome-cal.h b/calendar/gui/gnome-cal.h
index 308095e2f7..d7721acec4 100644
--- a/calendar/gui/gnome-cal.h
+++ b/calendar/gui/gnome-cal.h
@@ -134,6 +134,11 @@ void gnome_calendar_set_view_buttons (GnomeCalendar *gcal,
just return without doing anything. */
void gnome_calendar_update_view_buttons (GnomeCalendar *gcal);
+/* Clipboard operations */
+void gnome_calendar_cut_clibpoard (GnomeCalendar *gcal);
+void gnome_calendar_copy_clipboard (GnomeCalendar *gcal);
+void gnome_calendar_paste_clipboard (GnomeCalendar *gcal);
+
END_GNOME_DECLS