aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/calendar-view-factory.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/calendar-view-factory.c')
-rw-r--r--calendar/gui/calendar-view-factory.c215
1 files changed, 98 insertions, 117 deletions
diff --git a/calendar/gui/calendar-view-factory.c b/calendar/gui/calendar-view-factory.c
index d975e491de..f23c997fb0 100644
--- a/calendar/gui/calendar-view-factory.c
+++ b/calendar/gui/calendar-view-factory.c
@@ -1,5 +1,5 @@
/*
- * Evolution calendar - Generic view factory for calendar views
+ * calendar-view-factory.c
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -14,159 +14,140 @@
* You should have received a copy of the GNU Lesser General Public
* License along with the program; if not, see <http://www.gnu.org/licenses/>
*
- *
- * Authors:
- * Federico Mena-Quintero <federico@ximian.com>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
*/
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "calendar-view-factory.h"
+#include <config.h>
#include <glib/gi18n.h>
-#include "calendar-view-factory.h"
+
#include "calendar-view.h"
-#define CALENDAR_VIEW_FACTORY_GET_PRIVATE(obj) \
- (G_TYPE_INSTANCE_GET_PRIVATE \
- ((obj), TYPE_CALENDAR_VIEW_FACTORY, CalendarViewFactoryPrivate))
+G_DEFINE_TYPE (
+ GalViewFactoryCalendarDay,
+ gal_view_factory_calendar_day,
+ GAL_TYPE_VIEW_FACTORY)
-struct _CalendarViewFactoryPrivate {
- /* Type of views created by this factory */
- GnomeCalendarViewType view_type;
-};
+G_DEFINE_TYPE (
+ GalViewFactoryCalendarWorkWeek,
+ gal_view_factory_calendar_work_week,
+ GAL_TYPE_VIEW_FACTORY)
-static const gchar *
- calendar_view_factory_get_type_code
- (GalViewFactory *factory);
-static GalView *
- calendar_view_factory_new_view (GalViewFactory *factory,
- const gchar *name);
+G_DEFINE_TYPE (
+ GalViewFactoryCalendarWeek,
+ gal_view_factory_calendar_week,
+ GAL_TYPE_VIEW_FACTORY)
G_DEFINE_TYPE (
- CalendarViewFactory,
- calendar_view_factory,
+ GalViewFactoryCalendarMonth,
+ gal_view_factory_calendar_month,
GAL_TYPE_VIEW_FACTORY)
-static void
-calendar_view_factory_class_init (CalendarViewFactoryClass *class)
+static const gchar *
+gal_view_factory_calendar_day_get_type_code (GalViewFactory *factory)
{
- GalViewFactoryClass *gal_view_factory_class;
+ return "day_view";
+}
- g_type_class_add_private (class, sizeof (CalendarViewFactoryPrivate));
+static GalView *
+gal_view_factory_calendar_day_new_view (GalViewFactory *factory,
+ const gchar *title)
+{
+ return g_object_new (
+ GAL_TYPE_VIEW_CALENDAR_DAY,
+ "title", title, NULL);
+}
- gal_view_factory_class = GAL_VIEW_FACTORY_CLASS (class);
- gal_view_factory_class->get_type_code = calendar_view_factory_get_type_code;
- gal_view_factory_class->new_view = calendar_view_factory_new_view;
+static void
+gal_view_factory_calendar_day_class_init (GalViewFactoryClass *class)
+{
+ class->get_type_code = gal_view_factory_calendar_day_get_type_code;
+ class->new_view = gal_view_factory_calendar_day_new_view;
}
static void
-calendar_view_factory_init (CalendarViewFactory *cal_view_factory)
+gal_view_factory_calendar_day_init (GalViewFactory *factory)
{
- cal_view_factory->priv =
- CALENDAR_VIEW_FACTORY_GET_PRIVATE (cal_view_factory);
}
-/* get_type_code method for the calendar view factory */
static const gchar *
-calendar_view_factory_get_type_code (GalViewFactory *factory)
+gal_view_factory_calendar_work_week_get_type_code (GalViewFactory *factory)
{
- CalendarViewFactory *cal_view_factory;
- CalendarViewFactoryPrivate *priv;
-
- cal_view_factory = CALENDAR_VIEW_FACTORY (factory);
- priv = cal_view_factory->priv;
-
- switch (priv->view_type) {
- case GNOME_CAL_DAY_VIEW:
- return "day_view";
+ return "work_week_view";
+}
- case GNOME_CAL_WORK_WEEK_VIEW:
- return "work_week_view";
+static GalView *
+gal_view_factory_calendar_work_week_new_view (GalViewFactory *factory,
+ const gchar *title)
+{
+ return g_object_new (
+ GAL_TYPE_VIEW_CALENDAR_WORK_WEEK,
+ "title", title, NULL);
+}
- case GNOME_CAL_WEEK_VIEW:
- return "week_view";
+static void
+gal_view_factory_calendar_work_week_class_init (GalViewFactoryClass *class)
+{
+ class->get_type_code = gal_view_factory_calendar_work_week_get_type_code;
+ class->new_view = gal_view_factory_calendar_work_week_new_view;
+}
- case GNOME_CAL_MONTH_VIEW:
- return "month_view";
+static void
+gal_view_factory_calendar_work_week_init (GalViewFactory *factory)
+{
+}
- default:
- g_return_val_if_reached (NULL);
- }
+static const gchar *
+gal_view_factory_calendar_week_get_type_code (GalViewFactory *factory)
+{
+ return "week_view";
}
-/* new_view method for the calendar view factory */
static GalView *
-calendar_view_factory_new_view (GalViewFactory *factory,
- const gchar *title)
-{
- CalendarViewFactory *cal_view_factory;
- GType type;
-
- cal_view_factory = CALENDAR_VIEW_FACTORY (factory);
-
- switch (cal_view_factory->priv->view_type) {
- case GNOME_CAL_DAY_VIEW:
- type = GAL_TYPE_VIEW_CALENDAR_DAY;
- break;
- case GNOME_CAL_WORK_WEEK_VIEW:
- type = GAL_TYPE_VIEW_CALENDAR_WORK_WEEK;
- break;
- case GNOME_CAL_WEEK_VIEW:
- type = GAL_TYPE_VIEW_CALENDAR_WEEK;
- break;
- case GNOME_CAL_MONTH_VIEW:
- type = GAL_TYPE_VIEW_CALENDAR_MONTH;
- break;
- default:
- g_return_val_if_reached (NULL);
- }
-
- return g_object_new (type, "title", title, NULL);
-}
-
-/**
- * calendar_view_factory_construct:
- * @cal_view_factory: A calendar view factory.
- * @view_type: Type of calendar views that the factory will create.
- *
- * Constructs a calendar view factory by setting the type of views it will
- * create.
- *
- * Return value: The same value as @cal_view_factory.
- **/
-GalViewFactory *
-calendar_view_factory_construct (CalendarViewFactory *cal_view_factory,
- GnomeCalendarViewType view_type)
+gal_view_factory_calendar_week_new_view (GalViewFactory *factory,
+ const gchar *title)
{
- CalendarViewFactoryPrivate *priv;
+ return g_object_new (
+ GAL_TYPE_VIEW_CALENDAR_WEEK,
+ "title", title, NULL);
+}
- g_return_val_if_fail (cal_view_factory != NULL, NULL);
- g_return_val_if_fail (IS_CALENDAR_VIEW_FACTORY (cal_view_factory), NULL);
+static void
+gal_view_factory_calendar_week_class_init (GalViewFactoryClass *class)
+{
+ class->get_type_code = gal_view_factory_calendar_week_get_type_code;
+ class->new_view = gal_view_factory_calendar_week_new_view;
+}
- priv = cal_view_factory->priv;
+static void
+gal_view_factory_calendar_week_init (GalViewFactory *factory)
+{
+}
- priv->view_type = view_type;
+static const gchar *
+gal_view_factory_calendar_month_get_type_code (GalViewFactory *factory)
+{
+ return "month_view";
+}
- return GAL_VIEW_FACTORY (cal_view_factory);
+static GalView *
+gal_view_factory_calendar_month_new_view (GalViewFactory *factory,
+ const gchar *title)
+{
+ return g_object_new (
+ GAL_TYPE_VIEW_CALENDAR_MONTH,
+ "title", title, NULL);
}
-/**
- * calendar_view_factory_new:
- * @view_type: Type of calendar views that the factory will create.
- *
- * Creates a new factory for calendar views.
- *
- * Return value: A newly-created calendar view factory.
- **/
-GalViewFactory *
-calendar_view_factory_new (GnomeCalendarViewType view_type)
+static void
+gal_view_factory_calendar_month_class_init (GalViewFactoryClass *class)
{
- CalendarViewFactory *cal_view_factory;
+ class->get_type_code = gal_view_factory_calendar_month_get_type_code;
+ class->new_view = gal_view_factory_calendar_month_new_view;
+}
- cal_view_factory = g_object_new (TYPE_CALENDAR_VIEW_FACTORY, NULL);
- return calendar_view_factory_construct (cal_view_factory, view_type);
+static void
+gal_view_factory_calendar_month_init (GalViewFactory *factory)
+{
}
+