diff options
author | Radek Doulik <rodo@ximian.com> | 2004-01-15 21:46:47 +0800 |
---|---|---|
committer | Radek Doulik <rodo@src.gnome.org> | 2004-01-15 21:46:47 +0800 |
commit | f9377c48533c15010ef9a76c8d6126ebe4732f88 (patch) | |
tree | c55b25b4f1c84f7367698c8f9a74b7cce794f9b9 /calendar/gui/e-cal-view.c | |
parent | 4edeba938a920fe2501776031090a479bc9dee67 (diff) | |
download | gsoc2013-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-cal-view.c')
-rw-r--r-- | calendar/gui/e-cal-view.c | 40 |
1 files changed, 25 insertions, 15 deletions
diff --git a/calendar/gui/e-cal-view.c b/calendar/gui/e-cal-view.c index 9ff5f500e3..59322d6be0 100644 --- a/calendar/gui/e-cal-view.c +++ b/calendar/gui/e-cal-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); } /** |