2000-08-07 Federico Mena Quintero <federico@helixcode.com> * cal-util/cal-component.c (cal_component_clone): New function. (cal_component_get_icalcomponent): Ensure that the SEQUENCE property does not need incrementing. * gui/dialogs/alarm-notify-dialog.c (alarm_notify_dialog): Use CalComponent. Deal with an empty summary property. svn path=/trunk/; revision=4589
133 lines
3.7 KiB
C
133 lines
3.7 KiB
C
/*
|
||
* GnomeCalendar widget
|
||
* Copyright (C) 1998 the Free Software Foundation
|
||
*
|
||
* Authors: Miguel de Icaza (miguel@kernel.org)
|
||
* Federico Mena-Quintero <federico@helixcode.com>
|
||
*/
|
||
|
||
#ifndef GNOME_CALENDAR_APP_H
|
||
#define GNOME_CALENDAR_APP_H
|
||
|
||
#include <time.h>
|
||
#include <gtk/gtkcalendar.h>
|
||
#include <gtk/gtkvbox.h>
|
||
#include <libgnome/gnome-defs.h>
|
||
#include <bonobo.h>
|
||
#include <cal-client/cal-client.h>
|
||
|
||
BEGIN_GNOME_DECLS
|
||
|
||
|
||
|
||
#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())
|
||
|
||
#define GNOME_CALENDAR_NUM_VIEWS 4
|
||
|
||
typedef struct {
|
||
GtkVBox vbox;
|
||
|
||
CalClient *client;
|
||
|
||
BonoboPropertyBag *properties;
|
||
BonoboControl *control;
|
||
|
||
GHashTable *object_editor_hash;
|
||
|
||
time_t selection_start_time;
|
||
time_t selection_end_time;
|
||
|
||
GtkWidget *main_notebook;
|
||
GtkWidget *sub_notebook;
|
||
GtkWidget *hpane;
|
||
GtkCalendar *gtk_calendar;
|
||
GtkWidget *todo;
|
||
|
||
GtkWidget *day_view;
|
||
GtkWidget *work_week_view;
|
||
GtkWidget *week_view;
|
||
GtkWidget *month_view;
|
||
|
||
GtkWidget *view_toolbar_buttons[GNOME_CALENDAR_NUM_VIEWS];
|
||
|
||
void *event_editor;
|
||
|
||
/* 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 {
|
||
GtkVBoxClass parent_class;
|
||
} GnomeCalendarClass;
|
||
|
||
|
||
typedef enum {
|
||
CALENDAR_OPEN,
|
||
CALENDAR_OPEN_OR_CREATE
|
||
} GnomeCalendarOpenMode;
|
||
|
||
guint gnome_calendar_get_type (void);
|
||
GtkWidget *gnome_calendar_new (char *title);
|
||
int gnome_calendar_open (GnomeCalendar *gcal,
|
||
char *file,
|
||
GnomeCalendarOpenMode gcom);
|
||
/*
|
||
int gnome_calendar_create (GnomeCalendar *gcal,
|
||
char *file);
|
||
*/
|
||
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,
|
||
time_t time);
|
||
/* Jumps to the current day */
|
||
void gnome_calendar_goto_today (GnomeCalendar *gcal);
|
||
void gnome_calendar_tag_calendar (GnomeCalendar *cal,
|
||
GtkCalendar *gtk_cal);
|
||
char *gnome_calendar_get_current_view_name (GnomeCalendar *gcal);
|
||
void gnome_calendar_set_view (GnomeCalendar *gcal,
|
||
char *page_name);
|
||
|
||
void gnome_calendar_set_selected_time_range (GnomeCalendar *gcal,
|
||
time_t start_time,
|
||
time_t end_time);
|
||
|
||
void gnome_calendar_edit_object (GnomeCalendar *gcal,
|
||
CalComponent *comp);
|
||
|
||
/* 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);
|
||
|
||
|
||
/* Notifies the calendar that the time format has changed and it must update all its views */
|
||
void gnome_calendar_time_format_changed (GnomeCalendar *gcal);
|
||
|
||
/* Notifies the calendar that the todo list properties have changed and its time
|
||
* to update the views.
|
||
*/
|
||
void gnome_calendar_colors_changed (GnomeCalendar *gcal);
|
||
|
||
/* Notifies the calendar that the todo list properties have changed and its time
|
||
* to update the views.
|
||
*/
|
||
void gnome_calendar_todo_properties_changed (GnomeCalendar *gcal);
|
||
|
||
|
||
|
||
END_GNOME_DECLS
|
||
|
||
#endif
|