view: add :will_add_event vfunc and stub methods
Note: this commit probably won't build, but this is the right order of keeping history.
This commit is contained in:
@@ -133,6 +133,9 @@ static GtkWidget* gcal_month_view_get_by_uuid (GcalView *vie
|
||||
|
||||
static void gcal_month_view_clear (GcalView *view);
|
||||
|
||||
static gboolean gcal_month_view_will_add_event (GcalView *view,
|
||||
GcalEventWidget *event);
|
||||
|
||||
G_DEFINE_TYPE_WITH_CODE (GcalMonthView,
|
||||
gcal_month_view,
|
||||
GTK_TYPE_CONTAINER,
|
||||
@@ -214,6 +217,8 @@ gcal_view_interface_init (GcalViewIface *iface)
|
||||
iface->draw_event = gcal_month_view_draw_event;
|
||||
iface->get_by_uuid = gcal_month_view_get_by_uuid;
|
||||
iface->clear = gcal_month_view_clear;
|
||||
|
||||
iface->will_add_event = gcal_month_view_will_add_event;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1295,6 +1300,13 @@ gcal_month_view_clear (GcalView *view)
|
||||
(GtkCallback) gtk_widget_destroy, NULL);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gcal_month_view_will_add_event (GcalView *view,
|
||||
GcalEventWidget *event)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
/* Public API */
|
||||
/**
|
||||
* gcal_month_view_new:
|
||||
|
||||
@@ -289,3 +289,25 @@ gcal_view_clear (GcalView *view)
|
||||
|
||||
GCAL_VIEW_GET_INTERFACE (view)->clear (view);
|
||||
}
|
||||
|
||||
/**
|
||||
* gcal_view_will_add_event:
|
||||
* @view: a #GcalView
|
||||
* @event: a #GcalEventWidget
|
||||
*
|
||||
* Check the ranges of dates and the existence of the widget in
|
||||
* in the view already
|
||||
*
|
||||
* Returns: %TRUE if the date of the widget fall inside the range and
|
||||
* the widget isn't already on the view, %FALSE otherwise
|
||||
**/
|
||||
gboolean
|
||||
gcal_view_will_add_event (GcalView *view,
|
||||
GcalEventWidget *event)
|
||||
{
|
||||
g_return_val_if_fail (GCAL_IS_VIEW (view), FALSE);
|
||||
g_return_if_fail (GCAL_VIEW_GET_INTERFACE (view)->will_add_event);
|
||||
|
||||
return GCAL_VIEW_GET_INTERFACE (view)->will_add_event (view,
|
||||
event);
|
||||
}
|
||||
|
||||
+7
-4
@@ -20,10 +20,7 @@
|
||||
#ifndef __GCAL_VIEW_H__
|
||||
#define __GCAL_VIEW_H__
|
||||
|
||||
#include <glib-object.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include <libical/icaltime.h>
|
||||
#include "gcal-event-widget.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
@@ -73,6 +70,9 @@ struct _GcalViewIface
|
||||
gboolean (*draw_event) (GcalView *view, icaltimetype *start_date, icaltimetype *end_date);
|
||||
GtkWidget* (*get_by_uuid) (GcalView *view, const gchar *uuid);
|
||||
void (*clear) (GcalView *view);
|
||||
|
||||
/* Newer API */
|
||||
gboolean (*will_add_event) (GcalView *view, GcalEventWidget *event);
|
||||
};
|
||||
|
||||
GType gcal_view_get_type (void);
|
||||
@@ -113,6 +113,9 @@ GtkWidget* gcal_view_get_by_uuid (GcalView *view,
|
||||
|
||||
void gcal_view_clear (GcalView *view);
|
||||
|
||||
gboolean gcal_view_will_add_event (GcalView *view,
|
||||
GcalEventWidget *event);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GCAL_MONTH_VIEW_H__ */
|
||||
|
||||
@@ -156,6 +156,9 @@ static gboolean gcal_week_view_draw_event (GcalView *view
|
||||
static GtkWidget* gcal_week_view_get_by_uuid (GcalView *view,
|
||||
const gchar *uuid);
|
||||
|
||||
static gboolean gcal_week_view_will_add_event (GcalView *view,
|
||||
GcalEventWidget *event);
|
||||
|
||||
G_DEFINE_TYPE_WITH_CODE (GcalWeekView,
|
||||
gcal_week_view,
|
||||
GTK_TYPE_CONTAINER,
|
||||
@@ -234,6 +237,8 @@ gcal_view_interface_init (GcalViewIface *iface)
|
||||
iface->draw_event = gcal_week_view_draw_event;
|
||||
iface->get_by_uuid = gcal_week_view_get_by_uuid;
|
||||
/* iface->clear = gcal_week_view_clear; */
|
||||
|
||||
iface->will_add_event = gcal_week_view_will_add_event;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1410,6 +1415,13 @@ gcal_week_view_get_by_uuid (GcalView *view,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gcal_week_view_will_add_event (GcalView *view,
|
||||
GcalEventWidget *event)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
/* Public API */
|
||||
/**
|
||||
* gcal_week_view_new:
|
||||
|
||||
@@ -131,6 +131,9 @@ static GtkWidget* gcal_year_view_get_by_uuid (GcalView
|
||||
|
||||
static void gcal_year_view_clear (GcalView *view);
|
||||
|
||||
static gboolean gcal_year_view_will_add_event (GcalView *view,
|
||||
GcalEventWidget *event);
|
||||
|
||||
G_DEFINE_TYPE_WITH_CODE (GcalYearView,
|
||||
gcal_year_view,
|
||||
GTK_TYPE_CONTAINER,
|
||||
@@ -213,6 +216,8 @@ gcal_view_interface_init (GcalViewIface *iface)
|
||||
iface->draw_event = gcal_year_view_draw_event;
|
||||
iface->get_by_uuid = gcal_year_view_get_by_uuid;
|
||||
iface->clear = gcal_year_view_clear;
|
||||
|
||||
iface->will_add_event = gcal_year_view_will_add_event;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1026,6 +1031,13 @@ gcal_year_view_clear (GcalView *view)
|
||||
(GtkCallback) gtk_widget_destroy, NULL);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gcal_year_view_will_add_event (GcalView *view,
|
||||
GcalEventWidget *event)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
/* Public API */
|
||||
/**
|
||||
* gcal_year_view_new:
|
||||
|
||||
Reference in New Issue
Block a user