/** Finalize the GncPeriodSelect object. This function is called from * the G_Object level to complete the destruction of the object. It * should release any memory not previously released by the destroy * function (i.e. the private data structure), then chain up to the * parent's destroy function. * * @param object The object being destroyed. * * @internal */ static void gnc_period_select_finalize (GObject *object) { GncPeriodSelectPrivate *priv; GncPeriodSelect *period; g_return_if_fail (object != NULL); g_return_if_fail (GNC_IS_PERIOD_SELECT (object)); period = GNC_PERIOD_SELECT(object); priv = GNC_PERIOD_SELECT_GET_PRIVATE(period); /* Stop tracking changes to date formatting */ gnc_prefs_remove_cb_by_func (GNC_PREFS_GROUP_GENERAL, GNC_PREF_DATE_FORMAT, gnc_period_sample_new_date_format, period); /* The selector and date_label were added to the hbox. They will be * freed automatically. */ if (priv->fy_end) g_date_free(priv->fy_end); if (priv->date_base) g_date_free(priv->date_base); /* Do not free the private data structure. It is part of a larger * memory block allocated by the type system. */ if (G_OBJECT_CLASS(parent_class)->finalize) (* G_OBJECT_CLASS(parent_class)->finalize) (object); }
static void gnc_tree_model_owner_dispose (GObject *object) { GncTreeModelOwnerPrivate *priv; GncTreeModelOwner *model; g_return_if_fail (object != NULL); g_return_if_fail (GNC_IS_TREE_MODEL_OWNER (object)); ENTER("model %p", object); model = GNC_TREE_MODEL_OWNER (object); priv = GNC_TREE_MODEL_OWNER_GET_PRIVATE(model); if (priv->event_handler_id) { qof_event_unregister_handler (priv->event_handler_id); priv->event_handler_id = 0; } gnc_prefs_remove_cb_by_func(GNC_PREFS_GROUP_GENERAL, GNC_PREF_NEGATIVE_IN_RED, gnc_tree_model_owner_update_color, model); if (G_OBJECT_CLASS (parent_class)->dispose) G_OBJECT_CLASS (parent_class)->dispose (object); LEAVE(" "); }
/** Finalize the register for this window. This function is * called as part of the destruction of a window. * * @param plugin A pointer to the gnc-plugin object responsible for * adding/removing the register. It stops listening for * changes in the register preferences. * * @param window A pointer the gnc-main-window that is being destroyed. * * @param type Unused */ static void gnc_plugin_register2_remove_from_window (GncPlugin *plugin, GncMainWindow *window, GQuark type) { gnc_prefs_remove_cb_by_func (GNC_PREFS_GROUP_GENERAL_REGISTER, NULL, gnc_plugin_register2_pref_changed, window); }
static void gnc_plugin_page_invoice_destroy_widget (GncPluginPage *plugin_page) { GncPluginPageInvoice *page; GncPluginPageInvoicePrivate *priv; ENTER("page %p", plugin_page); page = GNC_PLUGIN_PAGE_INVOICE (plugin_page); priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(page); gnc_prefs_remove_cb_by_func (GNC_PREFS_GROUP_GENERAL, GNC_PREF_SUMMARYBAR_POSITION_TOP, gnc_plugin_page_invoice_summarybar_position_changed, page); gnc_prefs_remove_cb_by_func (GNC_PREFS_GROUP_GENERAL, GNC_PREF_SUMMARYBAR_POSITION_BOTTOM, gnc_plugin_page_invoice_summarybar_position_changed, page); // Remove the page focus idle function if present g_idle_remove_by_data (priv->iw); if (priv->widget == NULL) { LEAVE(""); return; } if (priv->component_manager_id) { gnc_unregister_gui_component(priv->component_manager_id); priv->component_manager_id = 0; } gtk_widget_hide(priv->widget); gnc_invoice_window_destroy_cb(priv->widget, priv->iw); priv->widget = NULL; LEAVE(""); }