1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
/*
* 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 <libgnome/gnome-defs.h>
#include <gtk/gtkcalendar.h>
#include <gtk/gtkvbox.h>
#include <cal-client/cal-client.h>
#include <bonobo.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())
typedef struct {
GtkVBox vbox;
CalClient *client;
BonoboPropertyBag *properties;
BonoboControl *control;
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 *year_view;
GtkWidget *year_view_sw;
void *event_editor;
/* The signal handler id for our GtkCalendar "day_selected" handler. */
guint day_selected_id;
} 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_add_object (GnomeCalendar *gcal,
iCalObject *obj);
void gnome_calendar_remove_object (GnomeCalendar *gcal,
iCalObject *obj);
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);
/* 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);
/* Flags is a bitmask of CalObjectChange values */
void gnome_calendar_object_changed (GnomeCalendar *gcal,
iCalObject *obj,
int flags);
void calendar_notify (time_t time, CalendarAlarm *which, void *data);
GnomeCalendar *gnome_calendar_locate (const char *pathname);
/* 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
|