aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calendar/gui/week-view.c100
-rw-r--r--calendar/gui/week-view.h63
-rw-r--r--calendar/timeutil.h2
-rw-r--r--calendar/week-view.c100
-rw-r--r--calendar/week-view.h63
5 files changed, 327 insertions, 1 deletions
diff --git a/calendar/gui/week-view.c b/calendar/gui/week-view.c
new file mode 100644
index 0000000000..89e489a92d
--- /dev/null
+++ b/calendar/gui/week-view.c
@@ -0,0 +1,100 @@
+/* Week view display for gncal
+ *
+ * Copyright (C) 1998 The Free Software Foundation
+ *
+ * Author: Federico Mena <federico@nuclecu.unam.mx>
+ */
+
+#include <config.h>
+#include "year-view.h"
+
+
+static void week_view_class_init (WeekViewClass *class);
+static void week_view_init (WeekView *wv);
+
+
+GtkType
+week_view_get_type (void)
+{
+ static GtkType week_view_type = 0;
+
+ if (!week_view_type) {
+ GtkTypeInfo week_view_info = {
+ "WeekView",
+ sizeof (WeekView),
+ sizeof (WeekViewClass),
+ (GtkClassInitFunc) week_view_class_init,
+ (GtkObjectInitFunc) week_view_init,
+ NULL, /* reserved_1 */
+ NULL, /* reserved_2 */
+ (GtkClassInitFunc) NULL
+ };
+
+ week_view_type = gtk_type_unique (gnome_canvas_get_type (), &week_view_info);
+ }
+
+ return week_view_type;
+}
+
+static void
+week_view_class_init (WeekViewClass *class)
+{
+ /* FIXME */
+}
+
+static void
+week_view_init (WeekView *wv)
+{
+ GnomeCanvasGroup *root;
+
+ root = gnome_canvas_root (GNOME_CANVAS (wv));
+
+ /* Title */
+
+ wv->title = gnome_canvas_item_new (root,
+ gnome_canvas_text_get_type (),
+ "anchor", GTK_ANCHOR_N,
+ "font", HEADING_FONT,
+ "fill_color", "black",
+ NULL);
+}
+
+GtkWidget *
+week_view_new (GnomeCalendar *calendar, time_t week)
+{
+ WeekView *wv;
+
+ g_return_val_if_fail (calendar != NULL, NULL);
+ g_return_val_if_fail (GNOME_IS_CALENDAR (calendar), NULL);
+
+ wv = gtk_type_new (week_view_get_type ());
+ wv->calendar = calendar;
+
+ week_view_colors_changed (wv);
+ week_view_set (wv, week);
+ return GTK_WIDGET (wv);
+}
+
+void
+week_view_update (WeekView *wv, iCalObject *ico, int flags)
+{
+ /* FIXME */
+}
+
+void
+week_view_set (WeekView *wv, time_t week)
+{
+ /* FIXME */
+}
+
+void
+week_view_time_format_changed (WeekView *wv)
+{
+ /* FIXME */
+}
+
+void
+week_view_colors_changed (WeekView *wv)
+{
+ /* FIXME */
+}
diff --git a/calendar/gui/week-view.h b/calendar/gui/week-view.h
new file mode 100644
index 0000000000..1bf6a4ed02
--- /dev/null
+++ b/calendar/gui/week-view.h
@@ -0,0 +1,63 @@
+/* Week view display for gncal
+ *
+ * Copyright (C) 1998 The Free Software Foundation
+ *
+ * Author: Federico Mena <federico@nuclecu.unam.mx>
+ */
+
+#ifndef WEEK_VIEW_H
+#define WEEK_VIEW_H
+
+#include <libgnome/gnome-defs.h>
+#include "gnome-cal.h"
+
+BEGIN_GNOME_DECLS
+
+
+#define TYPE_WEEK_VIEW (week_view_get_type ())
+#define WEEK_VIEW(obj) (GTK_CHECK_CAST ((obj), TYPE_WEEK_VIEW, WeekView))
+#define WEEK_VIEW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), TYPE_WEEK_VIEW, WeekViewClass))
+#define IS_WEEK_VIEW(obj) (GTK_CHECK_TYPE ((obj), TYPE_WEEK_VIEW))
+#define IS_WEEK_VIEW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), TYPE_WEEK_VIEW))
+
+
+typedef struct _WeekView WeekView;
+typedef struct _WeekViewClass WeekViewClass;
+
+struct _WeekView {
+ GnomeCanvas canvas;
+
+ GnomeCalendar *calendar; /* The calendar we are associated to */
+
+ time_t week; /* Start of the week we are viewing */
+
+ GnomeCanvasItem *title; /* The title of the week view */
+};
+
+struct _WeekViewClass {
+ GnomeCanvasClass parent_class;
+};
+
+
+/* Standard Gtk function */
+GtkType week_view_get_type (void);
+
+/* Creates a new week view associated to the specified calendar */
+GtkWidget *week_view_new (GnomeCalendar *calendar, time_t week);
+
+/* Notifies the week view that a calendar object has changed */
+void week_view_update (WeekView *wv, iCalObject *ico, int flags);
+
+/* Notifies the week view about a change of date */
+void week_view_set (WeekView *wv, time_t week);
+
+/* Notifies the week view that the time format has changed */
+void week_view_time_format_changed (WeekView *wv);
+
+/* Notifies the week view that the colors have changed */
+void week_view_colors_changed (WeekView *wv);
+
+
+END_GNOME_DECLS
+
+#endif
diff --git a/calendar/timeutil.h b/calendar/timeutil.h
index 2c2ddfcbac..407213d7f8 100644
--- a/calendar/timeutil.h
+++ b/calendar/timeutil.h
@@ -62,7 +62,7 @@ time_t time_month_begin (time_t t);
time_t time_month_end (time_t t);
/* These functions take a time value and return the beginning or end of the corresponding week,
- * respectively.
+ * respectively. This takes into account the global week_starts_on_monday flag.
*/
time_t time_week_begin (time_t t);
time_t time_week_end (time_t t);
diff --git a/calendar/week-view.c b/calendar/week-view.c
new file mode 100644
index 0000000000..89e489a92d
--- /dev/null
+++ b/calendar/week-view.c
@@ -0,0 +1,100 @@
+/* Week view display for gncal
+ *
+ * Copyright (C) 1998 The Free Software Foundation
+ *
+ * Author: Federico Mena <federico@nuclecu.unam.mx>
+ */
+
+#include <config.h>
+#include "year-view.h"
+
+
+static void week_view_class_init (WeekViewClass *class);
+static void week_view_init (WeekView *wv);
+
+
+GtkType
+week_view_get_type (void)
+{
+ static GtkType week_view_type = 0;
+
+ if (!week_view_type) {
+ GtkTypeInfo week_view_info = {
+ "WeekView",
+ sizeof (WeekView),
+ sizeof (WeekViewClass),
+ (GtkClassInitFunc) week_view_class_init,
+ (GtkObjectInitFunc) week_view_init,
+ NULL, /* reserved_1 */
+ NULL, /* reserved_2 */
+ (GtkClassInitFunc) NULL
+ };
+
+ week_view_type = gtk_type_unique (gnome_canvas_get_type (), &week_view_info);
+ }
+
+ return week_view_type;
+}
+
+static void
+week_view_class_init (WeekViewClass *class)
+{
+ /* FIXME */
+}
+
+static void
+week_view_init (WeekView *wv)
+{
+ GnomeCanvasGroup *root;
+
+ root = gnome_canvas_root (GNOME_CANVAS (wv));
+
+ /* Title */
+
+ wv->title = gnome_canvas_item_new (root,
+ gnome_canvas_text_get_type (),
+ "anchor", GTK_ANCHOR_N,
+ "font", HEADING_FONT,
+ "fill_color", "black",
+ NULL);
+}
+
+GtkWidget *
+week_view_new (GnomeCalendar *calendar, time_t week)
+{
+ WeekView *wv;
+
+ g_return_val_if_fail (calendar != NULL, NULL);
+ g_return_val_if_fail (GNOME_IS_CALENDAR (calendar), NULL);
+
+ wv = gtk_type_new (week_view_get_type ());
+ wv->calendar = calendar;
+
+ week_view_colors_changed (wv);
+ week_view_set (wv, week);
+ return GTK_WIDGET (wv);
+}
+
+void
+week_view_update (WeekView *wv, iCalObject *ico, int flags)
+{
+ /* FIXME */
+}
+
+void
+week_view_set (WeekView *wv, time_t week)
+{
+ /* FIXME */
+}
+
+void
+week_view_time_format_changed (WeekView *wv)
+{
+ /* FIXME */
+}
+
+void
+week_view_colors_changed (WeekView *wv)
+{
+ /* FIXME */
+}
diff --git a/calendar/week-view.h b/calendar/week-view.h
new file mode 100644
index 0000000000..1bf6a4ed02
--- /dev/null
+++ b/calendar/week-view.h
@@ -0,0 +1,63 @@
+/* Week view display for gncal
+ *
+ * Copyright (C) 1998 The Free Software Foundation
+ *
+ * Author: Federico Mena <federico@nuclecu.unam.mx>
+ */
+
+#ifndef WEEK_VIEW_H
+#define WEEK_VIEW_H
+
+#include <libgnome/gnome-defs.h>
+#include "gnome-cal.h"
+
+BEGIN_GNOME_DECLS
+
+
+#define TYPE_WEEK_VIEW (week_view_get_type ())
+#define WEEK_VIEW(obj) (GTK_CHECK_CAST ((obj), TYPE_WEEK_VIEW, WeekView))
+#define WEEK_VIEW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), TYPE_WEEK_VIEW, WeekViewClass))
+#define IS_WEEK_VIEW(obj) (GTK_CHECK_TYPE ((obj), TYPE_WEEK_VIEW))
+#define IS_WEEK_VIEW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), TYPE_WEEK_VIEW))
+
+
+typedef struct _WeekView WeekView;
+typedef struct _WeekViewClass WeekViewClass;
+
+struct _WeekView {
+ GnomeCanvas canvas;
+
+ GnomeCalendar *calendar; /* The calendar we are associated to */
+
+ time_t week; /* Start of the week we are viewing */
+
+ GnomeCanvasItem *title; /* The title of the week view */
+};
+
+struct _WeekViewClass {
+ GnomeCanvasClass parent_class;
+};
+
+
+/* Standard Gtk function */
+GtkType week_view_get_type (void);
+
+/* Creates a new week view associated to the specified calendar */
+GtkWidget *week_view_new (GnomeCalendar *calendar, time_t week);
+
+/* Notifies the week view that a calendar object has changed */
+void week_view_update (WeekView *wv, iCalObject *ico, int flags);
+
+/* Notifies the week view about a change of date */
+void week_view_set (WeekView *wv, time_t week);
+
+/* Notifies the week view that the time format has changed */
+void week_view_time_format_changed (WeekView *wv);
+
+/* Notifies the week view that the colors have changed */
+void week_view_colors_changed (WeekView *wv);
+
+
+END_GNOME_DECLS
+
+#endif