static void etgl_item_is_editing_changed_cb (ETableItem *item, GParamSpec *param, ETableGroupLeaf *etgl) { g_return_if_fail (E_IS_TABLE_GROUP_LEAF (etgl)); g_object_notify (G_OBJECT (etgl), "is-editing"); }
void e_table_group_apply_to_leafs (ETableGroup *etg, ETableGroupLeafFn fn, void *closure) { if (E_IS_TABLE_GROUP_CONTAINER (etg)){ ETableGroupContainer *etgc = E_TABLE_GROUP_CONTAINER (etg); GList *list = etgc->children; /* Protect from unrefs in the callback functions */ g_object_ref (etg); for (list = etgc->children; list; list = list->next){ ETableGroupContainerChildNode *child_node = list->data; e_table_group_apply_to_leafs (child_node->child, fn, closure); } g_object_unref (etg); } else if (E_IS_TABLE_GROUP_LEAF (etg)){ (*fn) (E_TABLE_GROUP_LEAF (etg)->item, closure); } else { g_error ("Unknown ETableGroup found: %s", g_type_name (G_TYPE_FROM_INSTANCE (etg))); } }