aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/e-calendar-view.c
diff options
context:
space:
mode:
authorRadek Doulik <rodo@ximian.com>2004-01-15 21:46:47 +0800
committerRadek Doulik <rodo@src.gnome.org>2004-01-15 21:46:47 +0800
commitf9377c48533c15010ef9a76c8d6126ebe4732f88 (patch)
treec55b25b4f1c84f7367698c8f9a74b7cce794f9b9 /calendar/gui/e-calendar-view.c
parent4edeba938a920fe2501776031090a479bc9dee67 (diff)
downloadgsoc2013-evolution-f9377c48533c15010ef9a76c8d6126ebe4732f88.tar
gsoc2013-evolution-f9377c48533c15010ef9a76c8d6126ebe4732f88.tar.gz
gsoc2013-evolution-f9377c48533c15010ef9a76c8d6126ebe4732f88.tar.bz2
gsoc2013-evolution-f9377c48533c15010ef9a76c8d6126ebe4732f88.tar.lz
gsoc2013-evolution-f9377c48533c15010ef9a76c8d6126ebe4732f88.tar.xz
gsoc2013-evolution-f9377c48533c15010ef9a76c8d6126ebe4732f88.tar.zst
gsoc2013-evolution-f9377c48533c15010ef9a76c8d6126ebe4732f88.zip
fixes #23281, some refactoring and list view get_selected_time_range
implementation 2004-01-15 Radek Doulik <rodo@ximian.com> * gui/calendar-component.c (impl_requestCreateItem): merge with JP's changes 2004-01-14 Radek Doulik <rodo@ximian.com> * gui/e-cal-list-view.c (e_cal_list_view_get_selected_time_range): new implementation, use time range from selected event * gui/e-cal-view.c (e_calendar_view_get_selected_time_range): return gboolean, TRUE if requested time was set, FALSE otherwise (e_calendar_view_new_appointment_full): use current time if time range is unavailable * gui/calendar-component.c (impl_requestCreateItem): use e_calendar_view_new_appointment_full instead of cal_comp_event_new_with_current_time * gui/e-cal-view.c (e_calendar_view_new_appointment_full): new helper function * gui/comp-editor-factory.c (edit_new): use cal_comp_event_new_with_current_time * gui/calendar-component.c (impl_requestCreateItem): use cal_comp_event_new_with_current_time * gui/comp-util.c (cal_comp_event_new_with_current_time): new function, cut'n'pasted from get_default_event (calendar-component.c and comp-editor-factory.c) svn path=/trunk/; revision=24238
Diffstat (limited to 'calendar/gui/e-calendar-view.c')
-rw-r--r--calendar/gui/e-calendar-view.c40
1 files changed, 25 insertions, 15 deletions
diff --git a/calendar/gui/e-calendar-view.c b/calendar/gui/e-calendar-view.c
index 9ff5f500e3..59322d6be0 100644
--- a/calendar/gui/e-calendar-view.c
+++ b/calendar/gui/e-calendar-view.c
@@ -23,6 +23,7 @@
#include <config.h>
#include <string.h>
+#include <time.h>
#include <gtk/gtkimage.h>
#include <gtk/gtkstock.h>
#include <gdk/gdkkeysyms.h>
@@ -617,15 +618,17 @@ e_calendar_view_get_selected_events (ECalendarView *cal_view)
return NULL;
}
-void
+gboolean
e_calendar_view_get_selected_time_range (ECalendarView *cal_view, time_t *start_time, time_t *end_time)
{
- g_return_if_fail (E_IS_CALENDAR_VIEW (cal_view));
+ g_return_val_if_fail (E_IS_CALENDAR_VIEW (cal_view), FALSE);
if (E_CALENDAR_VIEW_CLASS (G_OBJECT_GET_CLASS (cal_view))->get_selected_time_range) {
- E_CALENDAR_VIEW_CLASS (G_OBJECT_GET_CLASS (cal_view))->get_selected_time_range (
+ return E_CALENDAR_VIEW_CLASS (G_OBJECT_GET_CLASS (cal_view))->get_selected_time_range (
cal_view, start_time, end_time);
}
+
+ return FALSE;
}
void
@@ -935,21 +938,17 @@ on_new_appointment (GtkWidget *widget, gpointer user_data)
static void
on_new_event (GtkWidget *widget, gpointer user_data)
{
- time_t dtstart, dtend;
ECalendarView *cal_view = (ECalendarView *) user_data;
- e_calendar_view_get_selected_time_range (cal_view, &dtstart, &dtend);
- e_calendar_view_new_appointment_for (cal_view, dtstart, dtend, TRUE, FALSE);
+ e_calendar_view_new_appointment_full (cal_view, TRUE, FALSE);
}
static void
on_new_meeting (GtkWidget *widget, gpointer user_data)
{
- time_t dtstart, dtend;
ECalendarView *cal_view = (ECalendarView *) user_data;
- e_calendar_view_get_selected_time_range (cal_view, &dtstart, &dtend);
- e_calendar_view_new_appointment_for (cal_view, dtstart, dtend, FALSE, TRUE);
+ e_calendar_view_new_appointment_full (cal_view, FALSE, TRUE);
}
static void
@@ -1417,9 +1416,9 @@ e_calendar_view_open_event (ECalendarView *cal_view)
*/
void
e_calendar_view_new_appointment_for (ECalendarView *cal_view,
- time_t dtstart, time_t dtend,
- gboolean all_day,
- gboolean meeting)
+ time_t dtstart, time_t dtend,
+ gboolean all_day,
+ gboolean meeting)
{
ECalendarViewPrivate *priv;
struct icaltimetype itt;
@@ -1489,14 +1488,25 @@ e_calendar_view_new_appointment_for (ECalendarView *cal_view,
* the calendar view.
*/
void
-e_calendar_view_new_appointment (ECalendarView *cal_view)
+e_calendar_view_new_appointment_full (ECalendarView *cal_view, gboolean all_day, gboolean meeting)
{
time_t dtstart, dtend;
g_return_if_fail (E_IS_CALENDAR_VIEW (cal_view));
- e_calendar_view_get_selected_time_range (cal_view, &dtstart, &dtend);
- e_calendar_view_new_appointment_for (cal_view, dtstart, dtend, FALSE, FALSE);
+ if (!e_calendar_view_get_selected_time_range (cal_view, &dtstart, &dtend)) {
+ dtstart = time (NULL);
+ dtend = dtstart + 3600;
+ }
+ e_calendar_view_new_appointment_for (cal_view, dtstart, dtend, all_day, meeting);
+}
+
+void
+e_calendar_view_new_appointment (ECalendarView *cal_view)
+{
+ g_return_if_fail (E_IS_CALENDAR_VIEW (cal_view));
+
+ e_calendar_view_new_appointment_full (cal_view, FALSE, FALSE);
}
/**