gcal-view: added :clear vfunc

Added to prevent the need of a troubling implementation
of GtkContainer:forall method in DayView and WeekView composited widgets
This commit is contained in:
Erick Pérez Castellanos
2014-12-04 17:10:27 -05:00
parent 9da7e71eed
commit fcef0d64d1
2 changed files with 21 additions and 0 deletions
+18
View File
@@ -266,3 +266,21 @@ gcal_view_get_by_uuid (GcalView *view,
return GCAL_VIEW_GET_INTERFACE (view)->get_by_uuid (view, uuid);
}
/**
* gcal_view_clear:
* @view: a #GcalView object
*
* Destroy every children inside the view.
*
* Note: this is a hack because of not-working container code
* for day and week view composited widgets.
**/
void
gcal_view_clear (GcalView *view)
{
g_return_if_fail (GCAL_IS_VIEW (view));
g_return_if_fail (GCAL_VIEW_GET_INTERFACE (view)->clear);
GCAL_VIEW_GET_INTERFACE (view)->clear (view);
}
+3
View File
@@ -72,6 +72,7 @@ struct _GcalViewIface
/* Container functions related API */
gboolean (*draw_event) (GcalView *view, icaltimetype *start_date, icaltimetype *end_date);
GtkWidget* (*get_by_uuid) (GcalView *view, const gchar *uuid);
void (*clear) (GcalView *view);
};
GType gcal_view_get_type (void);
@@ -108,6 +109,8 @@ gboolean gcal_view_draw_event (GcalView *view,
GtkWidget* gcal_view_get_by_uuid (GcalView *view,
const gchar *uuid);
void gcal_view_clear (GcalView *view);
G_END_DECLS
#endif /* __GCAL_MONTH_VIEW_H__ */