diff options
Diffstat (limited to 'calendar/gui/gnome-cal.h')
-rw-r--r-- | calendar/gui/gnome-cal.h | 118 |
1 files changed, 35 insertions, 83 deletions
diff --git a/calendar/gui/gnome-cal.h b/calendar/gui/gnome-cal.h index a3a171701f..6201c0d524 100644 --- a/calendar/gui/gnome-cal.h +++ b/calendar/gui/gnome-cal.h @@ -20,87 +20,27 @@ BEGIN_GNOME_DECLS -/* These must match the page numbers in the GtkNotebook. */ -typedef enum { - GNOME_CALENDAR_VIEW_DAY = 0, - GNOME_CALENDAR_VIEW_WORK_WEEK = 1, - GNOME_CALENDAR_VIEW_WEEK = 2, - GNOME_CALENDAR_VIEW_MONTH = 3, - - GNOME_CALENDAR_VIEW_NOT_SET = 9 -} GnomeCalendarViewType; - - -#define GNOME_CALENDAR(obj) GTK_CHECK_CAST(obj, gnome_calendar_get_type(), GnomeCalendar) -#define GNOME_CALENDAR_CLASS(class) GTK_CHECK_CAST_CLASS(class, gnome_calendar_get_type(), GnomeCalendarClass) -#define GNOME_IS_CALENDAR(obj) GTK_CHECK_TYPE(obj, gnome_calendar_get_type()) - -typedef struct { - GtkVBox vbox; - - CalClient *client; - - BonoboPropertyBag *properties; - BonoboControl *control; - - GHashTable *object_editor_hash; - - /* This is the last selection explicitly selected by the user. We try - to keep it the same when we switch views, but we may have to alter - it depending on the view (e.g. the week views only select days, so - any times are lost. */ - time_t selection_start_time; - time_t selection_end_time; - - GtkWidget *hpane; - GtkWidget *notebook; - GtkWidget *vpane; - ECalendar *date_navigator; - GtkWidget *todo; - - GtkWidget *day_view; - GtkWidget *work_week_view; - GtkWidget *week_view; - GtkWidget *month_view; - - /* These are the toolbar radio buttons for switching views. */ - GtkWidget *day_button; - GtkWidget *work_week_button; - GtkWidget *week_button; - GtkWidget *month_button; - - /* This is the view currently shown. We use it to keep track of the - positions of the panes. range_selected is TRUE if a range of dates - was selected in the date navigator to show the view. */ - GnomeCalendarViewType current_view_type; - gboolean range_selected; - - /* These are the saved positions of the panes. They are multiples of - calendar month widths & heights in the date navigator, so that they - will work OK after theme changes. */ - gfloat hpane_pos; - gfloat vpane_pos; - gfloat hpane_pos_month_view; - gfloat vpane_pos_month_view; - - /* This is TRUE when we just want to set the state of the toolbar - radio buttons without causing any related code to be executed. - The "clicked" signal handlers just return when this is set. */ - gboolean ignore_view_button_clicks; - - /* The signal handler id for our GtkCalendar "day_selected" handler. */ - guint day_selected_id; - - /* Alarm ID for the midnight refresh function */ - gpointer midnight_alarm_refresh_id; - - /* UID->alarms hash */ - GHashTable *alarms; -} GnomeCalendar; - -typedef struct { +#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)) + +typedef struct _GnomeCalendar GnomeCalendar; +typedef struct _GnomeCalendarClass GnomeCalendarClass; +typedef struct _GnomeCalendarPrivate GnomeCalendarPrivate; + +struct _GnomeCalendar { + GtkVBox vbox; + + /* Private data */ + GnomeCalendarPrivate *priv; +}; + +struct _GnomeCalendarClass { GtkVBoxClass parent_class; -} GnomeCalendarClass; +}; typedef enum { @@ -108,10 +48,12 @@ typedef enum { CALENDAR_OPEN_OR_CREATE } GnomeCalendarOpenMode; -guint gnome_calendar_get_type (void); +GtkType gnome_calendar_get_type (void); GtkWidget *gnome_calendar_construct (GnomeCalendar *gcal); -GtkWidget *gnome_calendar_new (char *title); +GtkWidget *gnome_calendar_new (void); + +CalClient *gnome_calendar_get_cal_client (GnomeCalendar *gcal); int gnome_calendar_open (GnomeCalendar *gcal, char *file, @@ -133,11 +75,15 @@ void gnome_calendar_tag_calendar (GnomeCalendar *gcal, char *gnome_calendar_get_current_view_name (GnomeCalendar *gcal); void gnome_calendar_set_view (GnomeCalendar *gcal, char *page_name, - gboolean reset_range_shown); + gboolean reset_range_shown, + gboolean focus); 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); @@ -165,6 +111,12 @@ void gnome_calendar_colors_changed (GnomeCalendar *gcal); void gnome_calendar_todo_properties_changed (GnomeCalendar *gcal); +void gnome_calendar_set_view_buttons (GnomeCalendar *gcal, + GtkWidget *day_button, + GtkWidget *work_week_button, + GtkWidget *week_button, + GtkWidget *month_button); + /* This makes the appropriate radio button in the toolbar active. It sets the ignore_view_button_clicks flag so the "clicked" signal handlers just return without doing anything. */ |