aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/gnome-cal.h
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/gnome-cal.h')
-rw-r--r--calendar/gui/gnome-cal.h279
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