diff options
Diffstat (limited to 'calendar/gui/gnome-cal.h')
-rw-r--r-- | calendar/gui/gnome-cal.h | 279 |
1 files changed, 147 insertions, 132 deletions
diff --git a/calendar/gui/gnome-cal.h b/calendar/gui/gnome-cal.h index ebad45c99f..dcb801754f 100644 --- a/calendar/gui/gnome-cal.h +++ b/calendar/gui/gnome-cal.h @@ -1,50 +1,63 @@ -/* Evolution calendar - Main calendar view widget - * - * Copyright (C) 1998 The Free Software Foundation - * Copyright (C) 2000 Ximian, Inc. - * Copyright (C) 2001 Ximian, Inc. - * - * Authors: Miguel de Icaza <miguel@ximian.com> - * Federico Mena-Quintero <federico@ximian.com> - * Seth Alves <alves@hungry.com> +/* + * Evolution calendar - Main calendar view widget * * 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. + * 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 General Public License for more details. + * 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: + * Miguel de Icaza <miguel@ximian.com> + * Federico Mena-Quintero <federico@ximian.com> + * Seth Alves <alves@hungry.com> + * + * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) * - * 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 Place, Suite 330, Boston, MA 02111-1307, USA. */ -#ifndef GNOME_CALENDAR_APP_H -#define GNOME_CALENDAR_APP_H +#ifndef GNOME_CALENDAR_H +#define GNOME_CALENDAR_H #include <time.h> -#include <libgnome/gnome-defs.h> -#include <gtk/gtkvbox.h> -#include <bonobo/bonobo-ui-component.h> -#include <gal/widgets/e-popup-menu.h> -#include <widgets/misc/e-calendar.h> -#include <cal-client/cal-client.h> - -#include "e-calendar-table.h" - -BEGIN_GNOME_DECLS - - - -#define GNOME_TYPE_CALENDAR (gnome_calendar_get_type ()) -#define GNOME_CALENDAR(obj) (GTK_CHECK_CAST ((obj), GNOME_TYPE_CALENDAR, GnomeCalendar)) -#define GNOME_CALENDAR_CLASS(klass) (GTK_CHECK_CAST_CLASS ((klass), GNOME_TYPE_CALENDAR, \ - GnomeCalendarClass)) -#define GNOME_IS_CALENDAR(obj) (GTK_CHECK_TYPE ((obj), GNOME_TYPE_CALENDAR)) -#define GNOME_IS_CALENDAR_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GNOME_TYPE_CALENDAR)) +#include <gtk/gtk.h> +#include <libecal/libecal.h> + +#include <e-util/e-util.h> + +#include "e-cal-model.h" + +/* Standard GObject macros */ +#define GNOME_TYPE_CALENDAR \ + (gnome_calendar_get_type ()) +#define GNOME_CALENDAR(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST \ + ((obj), GNOME_TYPE_CALENDAR, GnomeCalendar)) +#define GNOME_CALENDAR_CLASS(cls) \ + (G_TYPE_CHECK_INSTANCE_CAST_CLASS \ + ((cls), GNOME_TYPE_CALENDAR, GnomeCalendarClass)) +#define GNOME_IS_CALENDAR(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE \ + ((obj), GNOME_TYPE_CALENDAR)) +#define GNOME_IS_CALENDAR_CLASS(cls) \ + (G_TYPE_CHECK_CLASS_TYPE \ + ((cls), GNOME_TYPE_CALENDAR)) +#define GNOME_CALENDAR_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS \ + ((obj), GNOME_TYPE_CALENDAR, GnomeCalendarClass)) + +G_BEGIN_DECLS + +/* Avoid circular inclusion. */ +struct _ECalendarView; typedef struct _GnomeCalendar GnomeCalendar; typedef struct _GnomeCalendarClass GnomeCalendarClass; @@ -55,122 +68,124 @@ typedef enum { GNOME_CAL_DAY_VIEW, GNOME_CAL_WORK_WEEK_VIEW, GNOME_CAL_WEEK_VIEW, - GNOME_CAL_MONTH_VIEW + GNOME_CAL_MONTH_VIEW, + GNOME_CAL_LIST_VIEW, + GNOME_CAL_LAST_VIEW } GnomeCalendarViewType; -struct _GnomeCalendar { - GtkVBox vbox; +typedef enum { + GNOME_CAL_GOTO_TODAY, + GNOME_CAL_GOTO_DATE, + GNOME_CAL_GOTO_FIRST_DAY_OF_MONTH, + GNOME_CAL_GOTO_LAST_DAY_OF_MONTH, + GNOME_CAL_GOTO_FIRST_DAY_OF_WEEK, + GNOME_CAL_GOTO_LAST_DAY_OF_WEEK, + GNOME_CAL_GOTO_SAME_DAY_OF_PREVIOUS_WEEK, + GNOME_CAL_GOTO_SAME_DAY_OF_NEXT_WEEK +} GnomeCalendarGotoDateType; - /* Private data */ +struct _GnomeCalendar { + GObject parent; GnomeCalendarPrivate *priv; }; struct _GnomeCalendarClass { - GtkVBoxClass parent_class; + GObjectClass parent_class; /* Notification signals */ - void (* dates_shown_changed) (GnomeCalendar *gcal); - - void (* calendar_selection_changed) (GnomeCalendar *gcal); - void (* taskpad_selection_changed) (GnomeCalendar *gcal); - - void (* calendar_focus_change) (GnomeCalendar *gcal, gboolean in); - void (* taskpad_focus_change) (GnomeCalendar *gcal, gboolean in); -}; - - -GtkType gnome_calendar_get_type (void); -GtkWidget *gnome_calendar_construct (GnomeCalendar *gcal); + void (*dates_shown_changed) (GnomeCalendar *gcal); -GtkWidget *gnome_calendar_new (void); + void (*calendar_selection_changed) (GnomeCalendar *gcal); -void gnome_calendar_set_ui_component (GnomeCalendar *cal, - BonoboUIComponent *ui_component); + void (*calendar_focus_change) (GnomeCalendar *gcal, + gboolean in); + void (*change_view) (GnomeCalendar *gcal, + GnomeCalendarViewType view_type); -ECalendarTable *gnome_calendar_get_task_pad (GnomeCalendar *gcal); + void (*source_added) (GnomeCalendar *gcal, + ESource *source); + void (*source_removed) (GnomeCalendar *gcal, + ESource *source); -CalClient *gnome_calendar_get_cal_client (GnomeCalendar *gcal); -CalClient *gnome_calendar_get_task_pad_cal_client(GnomeCalendar *gcal); - -gboolean gnome_calendar_open (GnomeCalendar *gcal, const char *str_uri); - -void gnome_calendar_set_query (GnomeCalendar *gcal, const char *sexp); + /* Action signals */ + void (*goto_date) (GnomeCalendar *gcal, + GnomeCalendarGotoDateType date); +}; -void gnome_calendar_next (GnomeCalendar *gcal); -void gnome_calendar_previous (GnomeCalendar *gcal); -void gnome_calendar_goto (GnomeCalendar *gcal, +GType gnome_calendar_get_type (void); +GtkWidget * gnome_calendar_new (ESourceRegistry *registry); +ESourceRegistry * + gnome_calendar_get_registry (GnomeCalendar *gcal); +ECalendar * gnome_calendar_get_date_navigator + (GnomeCalendar *gcal); +void gnome_calendar_set_date_navigator + (GnomeCalendar *gcal, + ECalendar *date_navigator); +GtkWidget * gnome_calendar_get_memo_table (GnomeCalendar *gcal); +void gnome_calendar_set_memo_table (GnomeCalendar *gcal, + GtkWidget *memo_table); +GtkWidget * gnome_calendar_get_task_table (GnomeCalendar *gcal); +void gnome_calendar_set_task_table (GnomeCalendar *gcal, + GtkWidget *task_table); +ECalModel * gnome_calendar_get_model (GnomeCalendar *gcal); +void gnome_calendar_update_query (GnomeCalendar *gcal); +void gnome_calendar_set_search_query (GnomeCalendar *gcal, + const gchar *sexp, + gboolean range_search, + time_t start_range, + time_t end_range); + +void gnome_calendar_next (GnomeCalendar *gcal); +void gnome_calendar_previous (GnomeCalendar *gcal); +void gnome_calendar_goto (GnomeCalendar *gcal, time_t new_time); -void gnome_calendar_dayjump (GnomeCalendar *gcal, +void gnome_calendar_update_view_times (GnomeCalendar *gcal, + time_t start_time); +void gnome_calendar_dayjump (GnomeCalendar *gcal, time_t time); -/* Jumps to the current day */ -void gnome_calendar_goto_today (GnomeCalendar *gcal); - -GnomeCalendarViewType gnome_calendar_get_view (GnomeCalendar *gcal); -void gnome_calendar_set_view (GnomeCalendar *gcal, GnomeCalendarViewType view_type, - gboolean range_selected, gboolean grab_focus); - -void gnome_calendar_setup_view_menus (GnomeCalendar *gcal, BonoboUIComponent *uic); -void gnome_calendar_discard_view_menus (GnomeCalendar *gcal); - -EPopupMenu *gnome_calendar_setup_view_popup (GnomeCalendar *gcal); -void gnome_calendar_discard_view_popup (GnomeCalendar *gcal, EPopupMenu *popup); - -void gnome_calendar_set_selected_time_range (GnomeCalendar *gcal, - time_t start_time, - time_t end_time); -void gnome_calendar_get_selected_time_range (GnomeCalendar *gcal, - time_t *start_time, - time_t *end_time); - -void gnome_calendar_edit_object (GnomeCalendar *gcal, - CalComponent *comp, - gboolean meeting); - -void gnome_calendar_new_appointment (GnomeCalendar *gcal); -void gnome_calendar_new_appointment_for (GnomeCalendar *cal, - time_t dtstart, time_t dtend, - gboolean all_day, - gboolean meeting); - -void gnome_calendar_new_task (GnomeCalendar *gcal); +void gnome_calendar_goto_today (GnomeCalendar *gcal); + +GnomeCalendarViewType + gnome_calendar_get_view (GnomeCalendar *gcal); +void gnome_calendar_set_view (GnomeCalendar *gcal, + GnomeCalendarViewType view_type); +void gnome_calendar_display_view (GnomeCalendar *gcal, + GnomeCalendarViewType view_type); + +struct _ECalendarView * + gnome_calendar_get_calendar_view (GnomeCalendar *gcal, + GnomeCalendarViewType view_type); + +gboolean gnome_calendar_get_range_selected + (GnomeCalendar *gcal); +void gnome_calendar_set_range_selected + (GnomeCalendar *gcal, + gboolean range_selected); +void gnome_calendar_set_selected_time_range + (GnomeCalendar *gcal, + time_t start_time); +void gnome_calendar_new_task (GnomeCalendar *gcal, + time_t *dtstart, + time_t *dtend); /* Returns the selected time range for the current view. Note that this may be - different from the fields in the GnomeCalendar, since the view may clip - this or choose a more appropriate time. */ -void gnome_calendar_get_current_time_range (GnomeCalendar *gcal, - time_t *start_time, - time_t *end_time); - -/* Gets the visible time range for the current view. Returns FALSE if no - time range has been set yet. */ -gboolean gnome_calendar_get_visible_time_range (GnomeCalendar *gcal, - time_t *start_time, - time_t *end_time); - -/* Returns the number of selected events (0 or 1 at present). */ -gint gnome_calendar_get_num_events_selected (GnomeCalendar *gcal); - -/* Returns the number of selected tasks */ -gint gnome_calendar_get_num_tasks_selected (GnomeCalendar *gcal); + * different from the fields in the GnomeCalendar, since the view may clip + * this or choose a more appropriate time. */ +void gnome_calendar_get_current_time_range + (GnomeCalendar *gcal, + time_t *start_time, + time_t *end_time); -/* Tells the calendar to reload all config settings. initializing should be - TRUE when we are setting the config settings for the first time. */ -void gnome_calendar_update_config_settings (GnomeCalendar *gcal, - gboolean initializing); +void gnome_calendar_notify_dates_shown_changed + (GnomeCalendar *gcal); -/* Get the current timezone. */ -icaltimezone *gnome_calendar_get_timezone (GnomeCalendar *gcal); - - -/* Clipboard operations */ -void gnome_calendar_cut_clipboard (GnomeCalendar *gcal); -void gnome_calendar_copy_clipboard (GnomeCalendar *gcal); -void gnome_calendar_paste_clipboard (GnomeCalendar *gcal); - -void gnome_calendar_delete_selection (GnomeCalendar *gcal); +/* Returns the number of selected events (0 or 1 at present). */ +gint gnome_calendar_get_num_events_selected + (GnomeCalendar *gcal); - +void gnome_calendar_purge (GnomeCalendar *gcal, + time_t older_than); -END_GNOME_DECLS +G_END_DECLS #endif |