subscriber-view: add ::clear_state to reset widget

GcalSubscriberView::clear_state is implemented by descendants to reset
the state of the drawing
This commit is contained in:
Erick Pérez Castellanos
2015-01-05 10:33:26 -05:00
parent a5fe4c5ef0
commit 6989eb36c5
2 changed files with 19 additions and 3 deletions
+16 -1
View File
@@ -56,6 +56,8 @@ static gboolean gcal_subscriber_view_is_child_multicell (GcalSubscr
static guint gcal_subscriber_view_get_child_cell (GcalSubscriberView *subscriber,
GcalEventWidget *child);
static void gcal_subscriber_view_clear_state (GcalSubscriberView *subscriber_view);
static void gcal_subscriber_view_component_added (ECalDataModelSubscriber *subscriber,
ECalClient *client,
ECalComponent *comp);
@@ -82,7 +84,8 @@ static void
event_activated (GcalEventWidget *widget,
gpointer user_data)
{
/* FIXME: clear_widget marks + popover + any state */
/* FIXME: implement clear_state vfunc in descendants */
gcal_subscriber_view_clear_state (GCAL_SUBSCRIBER_VIEW (user_data));
g_signal_emit (GCAL_SUBSCRIBER_VIEW (user_data), signals[EVENT_ACTIVATED], 0, widget);
}
@@ -320,6 +323,18 @@ gcal_subscriber_view_get_child_cell (GcalSubscriberView *subscriber,
return 0;
}
static void
gcal_subscriber_view_clear_state (GcalSubscriberView *subscriber_view)
{
GcalSubscriberViewClass *klass;
g_return_if_fail (GCAL_IS_SUBSCRIBER_VIEW (subscriber_view));
klass = GCAL_SUBSCRIBER_VIEW_GET_CLASS (subscriber_view);
if (klass->clear_state)
klass->clear_state (subscriber_view);
}
/* ECalDataModelSubscriber interface API */
static void
gcal_subscriber_view_component_added (ECalDataModelSubscriber *subscriber,
+3 -2
View File
@@ -53,8 +53,9 @@ struct _GcalSubscriberViewClass
void (*event_activated) (GcalSubscriberView *subscriber_view, GcalEventWidget *event_widget);
/*< public >*/
gboolean (*is_child_multicell) (GcalSubscriberView *subscriber, GcalEventWidget *child);
guint (*get_child_cell) (GcalSubscriberView *subscriber, GcalEventWidget *child);
gboolean (*is_child_multicell) (GcalSubscriberView *subscriber_view, GcalEventWidget *child);
guint (*get_child_cell) (GcalSubscriberView *subscriber_view, GcalEventWidget *child);
void (*clear_state) (GcalSubscriberView *subscriber_view);
/* gcal-view replacements */
GtkWidget* (*get_child_by_uuid) (GcalSubscriberView *subscriber_view, const gchar *uuid);