static gboolean gnc_tree_view_commodity_filter_helper (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { gnc_commodity_namespace *name_space; gnc_commodity *commodity; filter_user_data *fd = data; g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), FALSE); g_return_val_if_fail (iter != NULL, FALSE); if (gnc_tree_model_commodity_iter_is_namespace (GNC_TREE_MODEL_COMMODITY(model), iter)) { if (fd->user_ns_fn) { name_space = gnc_tree_model_commodity_get_namespace (GNC_TREE_MODEL_COMMODITY(model), iter); return fd->user_ns_fn(name_space, fd->user_data); } return TRUE; } if (gnc_tree_model_commodity_iter_is_commodity (GNC_TREE_MODEL_COMMODITY(model), iter)) { if (fd->user_cm_fn) { commodity = gnc_tree_model_commodity_get_commodity (GNC_TREE_MODEL_COMMODITY(model), iter); return fd->user_cm_fn(commodity, fd->user_data); } return TRUE; } return FALSE; }
gboolean gnc_tree_model_commodity_iter_is_commodity (GncTreeModelCommodity *model, GtkTreeIter *iter) { g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), FALSE); g_return_val_if_fail (iter != NULL, FALSE); g_return_val_if_fail (iter->user_data != NULL, FALSE); g_return_val_if_fail (iter->stamp == model->stamp, FALSE); return (iter->user_data == ITER_IS_COMMODITY); }
gnc_commodity * gnc_tree_model_commodity_get_commodity (GncTreeModelCommodity *model, GtkTreeIter *iter) { g_return_val_if_fail (GNC_IS_TREE_MODEL_COMMODITY (model), NULL); g_return_val_if_fail (iter != NULL, NULL); g_return_val_if_fail (iter->user_data != NULL, NULL); g_return_val_if_fail (iter->stamp == model->stamp, NULL); if (iter->user_data != ITER_IS_COMMODITY) return NULL; return (gnc_commodity *)iter->user_data2; }
static void gnc_tree_model_commodity_finalize (GObject *object) { GncTreeModelCommodity *model; GncTreeModelCommodityPrivate *priv; g_return_if_fail (object != NULL); g_return_if_fail (GNC_IS_TREE_MODEL_COMMODITY (object)); ENTER("model %p", object); model = GNC_TREE_MODEL_COMMODITY (object); priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model); priv->book = NULL; priv->commodity_table = NULL; G_OBJECT_CLASS (parent_class)->finalize (object); LEAVE(" "); }
static void gnc_tree_model_commodity_dispose (GObject *object) { GncTreeModelCommodity *model; GncTreeModelCommodityPrivate *priv; g_return_if_fail (object != NULL); g_return_if_fail (GNC_IS_TREE_MODEL_COMMODITY (object)); ENTER("model %p", object); model = GNC_TREE_MODEL_COMMODITY (object); priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model); if (priv->event_handler_id) { qof_event_unregister_handler (priv->event_handler_id); priv->event_handler_id = 0; } if (G_OBJECT_CLASS (parent_class)->dispose) G_OBJECT_CLASS (parent_class)->dispose (object); LEAVE(" "); }