From ca3be9e5c8b44e0c1d246c567e8a64730c7d3202 Mon Sep 17 00:00:00 2001 From: Arturo Espinosa Date: Wed, 21 Oct 1998 00:19:23 +0000 Subject: Week view work in progress - Federico svn path=/trunk/; revision=455 --- calendar/gui/week-view.c | 100 +++++++++++++++++++++++++++++++++++++++++++++++ calendar/gui/week-view.h | 63 +++++++++++++++++++++++++++++ calendar/timeutil.h | 2 +- calendar/week-view.c | 100 +++++++++++++++++++++++++++++++++++++++++++++++ calendar/week-view.h | 63 +++++++++++++++++++++++++++++ 5 files changed, 327 insertions(+), 1 deletion(-) create mode 100644 calendar/gui/week-view.c create mode 100644 calendar/gui/week-view.h create mode 100644 calendar/week-view.c create mode 100644 calendar/week-view.h (limited to 'calendar') 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 + */ + +#include +#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 + */ + +#ifndef WEEK_VIEW_H +#define WEEK_VIEW_H + +#include +#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 + */ + +#include +#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 + */ + +#ifndef WEEK_VIEW_H +#define WEEK_VIEW_H + +#include +#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 -- cgit