From 6e7deface20c1518ea19c47083c27081f16e2c1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Erick=20P=C3=A9rez=20Castellanos?= Date: Thu, 20 Jun 2013 10:37:38 -0400 Subject: [PATCH] gcal-day-view: implemented GtkContainer:remove --- src/gcal-day-view.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/gcal-day-view.c b/src/gcal-day-view.c index 93167059..b934af25 100644 --- a/src/gcal-day-view.c +++ b/src/gcal-day-view.c @@ -71,6 +71,9 @@ static void gcal_day_view_get_property (GObject *objec static void gcal_day_view_add (GtkContainer *container, GtkWidget *widget); +static void gcal_day_view_remove (GtkContainer *container, + GtkWidget *widget); + static icaltimetype* gcal_day_view_get_initial_date (GcalView *view); static icaltimetype* gcal_day_view_get_final_date (GcalView *view); @@ -130,9 +133,8 @@ gcal_day_view_class_init (GcalDayViewClass *klass) container_class = GTK_CONTAINER_CLASS (klass); container_class->add = gcal_day_view_add; + container_class->remove = gcal_day_view_remove; /* FIXME: Uncomment stuff here */ - /* container_class->remove = gcal_day_view_remove; */ - /* container_class->forall = gcal_day_view_forall; */ /* gtk_container_class_handle_border_width (container_class); */ g_object_class_override_property (object_class, PROP_DATE, "active-date"); @@ -342,6 +344,26 @@ gcal_day_view_add (GtkContainer *container, g_free (summ); } +static void +gcal_day_view_remove (GtkContainer *container, + GtkWidget *widget) +{ + GcalDayViewPrivate *priv; + + priv = GCAL_DAY_VIEW (container)->priv; + + if (gtk_widget_get_parent (widget) == (GtkWidget*) container) + { + GTK_CONTAINER_CLASS (gcal_day_view_parent_class)->remove (container, + widget); + } + else + { + gtk_container_remove (GTK_CONTAINER (priv->all_day_grid), widget); + gtk_container_remove (GTK_CONTAINER (priv->day_grid), widget); + } +} + /* GcalView API */ static icaltimetype* gcal_day_view_get_initial_date (GcalView *view)