[Gnucash-changes] r11847 - gnucash/trunk - Convert to newer method of allocating private data structures for

David Hampton hampton at cvs.gnucash.org
Sat Nov 5 19:14:43 EST 2005


Author: hampton
Date: 2005-11-05 19:14:40 -0500 (Sat, 05 Nov 2005)
New Revision: 11847

Modified:
   gnucash/trunk/ChangeLog
   gnucash/trunk/src/business/business-gnome/gnc-plugin-business.c
   gnucash/trunk/src/business/business-gnome/gnc-plugin-business.h
   gnucash/trunk/src/business/business-gnome/gnc-plugin-page-invoice.c
   gnucash/trunk/src/business/business-gnome/gnc-plugin-page-invoice.h
   gnucash/trunk/src/business/business-gnome/search-owner.c
   gnucash/trunk/src/business/business-gnome/search-owner.h
   gnucash/trunk/src/gnome-utils/gnc-date-format.c
   gnucash/trunk/src/gnome-utils/gnc-date-format.h
   gnucash/trunk/src/gnome-utils/gnc-embedded-window.c
   gnucash/trunk/src/gnome-utils/gnc-embedded-window.h
   gnucash/trunk/src/gnome-utils/gnc-main-window.c
   gnucash/trunk/src/gnome-utils/gnc-main-window.h
   gnucash/trunk/src/gnome-utils/gnc-plugin-file-history.c
   gnucash/trunk/src/gnome-utils/gnc-plugin-file-history.h
   gnucash/trunk/src/gnome-utils/gnc-plugin-manager.c
   gnucash/trunk/src/gnome-utils/gnc-plugin-manager.h
   gnucash/trunk/src/gnome-utils/gnc-plugin-menu-additions.c
   gnucash/trunk/src/gnome-utils/gnc-plugin-menu-additions.h
   gnucash/trunk/src/gnome-utils/gnc-plugin-page.h
   gnucash/trunk/src/gnome-utils/gnc-plugin.c
   gnucash/trunk/src/gnome-utils/gnc-plugin.h
   gnucash/trunk/src/gnome-utils/gnc-query-list.c
   gnucash/trunk/src/gnome-utils/gnc-query-list.h
   gnucash/trunk/src/gnome-utils/gnc-tree-model-account-types.c
   gnucash/trunk/src/gnome-utils/gnc-tree-model-account-types.h
   gnucash/trunk/src/gnome-utils/gnc-tree-model-account.c
   gnucash/trunk/src/gnome-utils/gnc-tree-model-account.h
   gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.c
   gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.h
   gnucash/trunk/src/gnome-utils/gnc-tree-model-example-account.c
   gnucash/trunk/src/gnome-utils/gnc-tree-model-example-account.h
   gnucash/trunk/src/gnome-utils/gnc-tree-model-price.c
   gnucash/trunk/src/gnome-utils/gnc-tree-model-price.h
   gnucash/trunk/src/gnome-utils/gnc-tree-model-selection.c
   gnucash/trunk/src/gnome-utils/gnc-tree-model-selection.h
   gnucash/trunk/src/gnome-utils/gnc-tree-model.c
   gnucash/trunk/src/gnome-utils/gnc-tree-model.h
   gnucash/trunk/src/gnome-utils/gnc-tree-view-account.c
   gnucash/trunk/src/gnome-utils/gnc-tree-view-account.h
   gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.c
   gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.h
   gnucash/trunk/src/gnome-utils/gnc-tree-view-price.c
   gnucash/trunk/src/gnome-utils/gnc-tree-view-price.h
   gnucash/trunk/src/gnome-utils/gnc-tree-view.c
   gnucash/trunk/src/gnome-utils/gnc-tree-view.h
   gnucash/trunk/src/gnome-utils/search-param.c
   gnucash/trunk/src/gnome-utils/search-param.h
   gnucash/trunk/src/gnome/gnc-plugin-account-tree.c
   gnucash/trunk/src/gnome/gnc-plugin-account-tree.h
   gnucash/trunk/src/gnome/gnc-plugin-basic-commands.c
   gnucash/trunk/src/gnome/gnc-plugin-basic-commands.h
   gnucash/trunk/src/gnome/gnc-plugin-budget.c
   gnucash/trunk/src/gnome/gnc-plugin-budget.h
   gnucash/trunk/src/gnome/gnc-plugin-page-account-tree.c
   gnucash/trunk/src/gnome/gnc-plugin-page-account-tree.h
   gnucash/trunk/src/gnome/gnc-plugin-page-budget.c
   gnucash/trunk/src/gnome/gnc-plugin-page-budget.h
   gnucash/trunk/src/gnome/gnc-plugin-page-register.c
   gnucash/trunk/src/gnome/gnc-plugin-page-register.h
   gnucash/trunk/src/gnome/gnc-plugin-register.c
   gnucash/trunk/src/gnome/gnc-plugin-register.h
   gnucash/trunk/src/gnome/reconcile-list.c
   gnucash/trunk/src/import-export/hbci/gnc-plugin-hbci.c
   gnucash/trunk/src/import-export/hbci/gnc-plugin-hbci.h
   gnucash/trunk/src/import-export/log-replay/gnc-plugin-log-replay.c
   gnucash/trunk/src/import-export/log-replay/gnc-plugin-log-replay.h
   gnucash/trunk/src/import-export/mt940/gnc-plugin-mt940.c
   gnucash/trunk/src/import-export/mt940/gnc-plugin-mt940.h
   gnucash/trunk/src/import-export/ofx/gnc-plugin-ofx.c
   gnucash/trunk/src/import-export/ofx/gnc-plugin-ofx.h
   gnucash/trunk/src/import-export/qif-import/gnc-plugin-qif-import.c
   gnucash/trunk/src/import-export/qif-import/gnc-plugin-qif-import.h
   gnucash/trunk/src/report/report-gnome/gnc-plugin-page-report.h
   gnucash/trunk/src/report/stylesheets/gnc-plugin-stylesheets.c
   gnucash/trunk/src/report/stylesheets/gnc-plugin-stylesheets.h
Log:
Convert to newer method of allocating private data structures for
objects.  This allows glib to consolidate the space for all of the
various public and private data structures on an object and reduce
memory fragmentation.  Change all data structure declarations of the
parent object to be the actual name of the object instead of the
string "parent".  This makes debugging easier when looking at data
structures in gdb.



Modified: gnucash/trunk/ChangeLog
===================================================================
--- gnucash/trunk/ChangeLog	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/ChangeLog	2005-11-06 00:14:40 UTC (rev 11847)
@@ -1,3 +1,17 @@
+2005-11-05  David Hampton  <hampton at employees.org>
+
+	* Various: Convert to newer method of allocating private data
+	structures for objects.  This allows glib to consolidate the space
+	for all of the various public and private data structures on an
+	object and reduce memory fragmentation.  Change all data structure
+	declarations of the parent object to be the actual name of the
+	object instead of the string "parent".  This makes debugging
+	easier when looking at data structures in gdb.
+
+	* src/report/report-gnome/gnc-plugin-page-report.c: Same as
+	above. Also regularize the variable names used to refer to the
+	public and private data structures in this file.
+
 2005-11-05  Christian Stimming  <stimming at tuhh.de>
 
 	* autogen.sh: Replace old crufty autogen.sh script with radically

Modified: gnucash/trunk/src/business/business-gnome/gnc-plugin-business.c
===================================================================
--- gnucash/trunk/src/business/business-gnome/gnc-plugin-business.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/business/business-gnome/gnc-plugin-business.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -260,13 +260,16 @@
  *              Plugin Function Implementation              *
  ************************************************************/
 
-struct GncPluginBusinessPrivate
+typedef struct GncPluginBusinessPrivate
 {
 	GncOwner *last_customer;
 	GncOwner *last_vendor;
 	GncOwner *last_employee;
-};
+} GncPluginBusinessPrivate;
 
+#define GNC_PLUGIN_BUSINESS_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_BUSINESS, GncPluginBusinessPrivate))
+
 static GObjectClass *parent_class = NULL;
 
 GType
@@ -324,6 +327,8 @@
 	plugin_class->actions      = gnc_plugin_actions;
 	plugin_class->n_actions    = gnc_plugin_n_actions;
 	plugin_class->ui_filename  = PLUGIN_UI_FILENAME;
+
+	g_type_class_add_private(klass, sizeof(GncPluginBusinessPrivate));
 }
 
 static void
@@ -331,9 +336,7 @@
 {
 	GncPluginBusinessPrivate *priv;
 
-	priv = g_new0 (GncPluginBusinessPrivate, 1);
-	plugin->priv = priv;
-
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	priv->last_customer = gncOwnerCreate ();
 	gncOwnerInitCustomer (priv->last_customer, NULL);
 
@@ -348,14 +351,13 @@
 gnc_plugin_business_finalize (GObject *object)
 {
 	GncPluginBusiness *plugin;
+	GncPluginBusinessPrivate *priv;
 
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (object));
 
 	plugin = GNC_PLUGIN_BUSINESS (object);
-	g_return_if_fail (plugin->priv != NULL);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 
-	g_free (plugin->priv);
-
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
@@ -377,12 +379,9 @@
 gnc_plugin_business_cmd_customer_new_customer (GtkAction *action,
 					       GncMainWindowActionData *mw)
 {
-	GncPluginBusinessPrivate *priv;
-
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
 	gnc_ui_customer_new (gnc_get_current_book());
 }
 
@@ -390,13 +389,15 @@
 gnc_plugin_business_cmd_customer_find_customer (GtkAction *action,
 						GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 	GncCustomer*customer;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	customer = gncOwnerGetCustomer (priv->last_customer);
 	gnc_customer_search (customer, gnc_get_current_book());
 }
@@ -405,12 +406,14 @@
 gnc_plugin_business_cmd_customer_new_invoice (GtkAction *action,
 					      GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	last_window = mw->window;
 	gnc_ui_invoice_new (priv->last_customer, gnc_get_current_book());
 }
@@ -419,12 +422,14 @@
 gnc_plugin_business_cmd_customer_find_invoice (GtkAction *action,
 					       GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	last_window = mw->window;
 	gnc_invoice_search (NULL, priv->last_customer, gnc_get_current_book());
 }
@@ -433,12 +438,14 @@
 gnc_plugin_business_cmd_customer_new_job (GtkAction *action,
 					  GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	gnc_ui_job_new (priv->last_customer, gnc_get_current_book());
 }
 
@@ -446,12 +453,14 @@
 gnc_plugin_business_cmd_customer_find_job (GtkAction *action,
 					   GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	gnc_job_search (NULL, priv->last_customer, gnc_get_current_book());
 }
 
@@ -459,12 +468,14 @@
 gnc_plugin_business_cmd_customer_process_payment (GtkAction *action,
 						  GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	gnc_ui_payment_new (priv->last_customer, gnc_get_current_book());
 }
 
@@ -482,13 +493,15 @@
 gnc_plugin_business_cmd_vendor_find_vendor (GtkAction *action,
 					    GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 	GncVendor *vendor;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	vendor = gncOwnerGetVendor (priv->last_vendor);
 	gnc_vendor_search (vendor, gnc_get_current_book());
 }
@@ -497,12 +510,14 @@
 gnc_plugin_business_cmd_vendor_new_bill (GtkAction *action,
 					 GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	last_window = mw->window;
 	gnc_ui_invoice_new (priv->last_vendor, gnc_get_current_book());
 }
@@ -511,12 +526,14 @@
 gnc_plugin_business_cmd_vendor_find_bill (GtkAction *action,
 					  GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	last_window = mw->window;
 	gnc_invoice_search (NULL, priv->last_vendor, gnc_get_current_book());
 }
@@ -525,12 +542,14 @@
 gnc_plugin_business_cmd_vendor_new_job (GtkAction *action,
 					GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	gnc_ui_job_new (priv->last_vendor, gnc_get_current_book());
 }
 
@@ -538,12 +557,14 @@
 gnc_plugin_business_cmd_vendor_find_job (GtkAction *action,
 					 GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	gnc_job_search (NULL, priv->last_vendor, gnc_get_current_book());
 }
 
@@ -551,12 +572,14 @@
 gnc_plugin_business_cmd_vendor_process_payment (GtkAction *action,
 						GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	gnc_ui_payment_new (priv->last_vendor, gnc_get_current_book());
 }
 
@@ -574,13 +597,15 @@
 gnc_plugin_business_cmd_employee_find_employee (GtkAction *action,
 						GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 	GncEmployee *employee;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	employee = gncOwnerGetEmployee (priv->last_employee);
 	gnc_employee_search (employee, gnc_get_current_book());
 }
@@ -589,12 +614,14 @@
 gnc_plugin_business_cmd_employee_new_expense_voucher (GtkAction *action,
 						      GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	last_window = mw->window;
 	gnc_ui_invoice_new (priv->last_employee, gnc_get_current_book());
 }
@@ -603,12 +630,14 @@
 gnc_plugin_business_cmd_employee_find_expense_voucher (GtkAction *action,
 						       GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	last_window = mw->window;
 	gnc_invoice_search (NULL, priv->last_employee, gnc_get_current_book());
 }
@@ -617,12 +646,14 @@
 gnc_plugin_business_cmd_employee_process_payment (GtkAction *action,
 						  GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	gnc_ui_payment_new (priv->last_employee, gnc_get_current_book());
 }
 
@@ -630,12 +661,14 @@
 gnc_plugin_business_cmd_tax_tables (GtkAction *action,
 				    GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	gnc_ui_tax_table_window_new (gnc_get_current_book());
 }
 
@@ -643,12 +676,14 @@
 gnc_plugin_business_cmd_billing_terms (GtkAction *action,
 				       GncMainWindowActionData *mw)
 {
+	GncPluginBusiness *plugin;
 	GncPluginBusinessPrivate *priv;
 
 	g_return_if_fail (mw != NULL);
 	g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data));
 
-	priv = GNC_PLUGIN_BUSINESS (mw->data)->priv;
+	plugin = GNC_PLUGIN_BUSINESS (mw->data);
+	priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin);
 	gnc_ui_billterms_window_new (gnc_get_current_book());
 }
 

Modified: gnucash/trunk/src/business/business-gnome/gnc-plugin-business.h
===================================================================
--- gnucash/trunk/src/business/business-gnome/gnc-plugin-business.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/business/business-gnome/gnc-plugin-business.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -42,16 +42,12 @@
 #define GNC_PLUGIN_BUSINESS_NAME "gnc-plugin-business"
 
 /* typedefs & structures */
-typedef struct GncPluginBusinessPrivate GncPluginBusinessPrivate;
-
 typedef struct {
-	GncPlugin parent;
-
-	GncPluginBusinessPrivate *priv;
+	GncPlugin gnc_plugin;
 } GncPluginBusiness;
 
 typedef struct {
-	GncPluginClass parent;
+	GncPluginClass gnc_plugin;
 } GncPluginBusinessClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/business/business-gnome/gnc-plugin-page-invoice.c
===================================================================
--- gnucash/trunk/src/business/business-gnome/gnc-plugin-page-invoice.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/business/business-gnome/gnc-plugin-page-invoice.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -200,15 +200,18 @@
 /*                      Data Structures                     */
 /************************************************************/
 
-struct GncPluginPageInvoicePrivate
+typedef struct GncPluginPageInvoicePrivate
 {
 	InvoiceWindow *iw;
 
 	GtkWidget *widget;
 
 	gint component_manager_id;
-};
+} GncPluginPageInvoicePrivate;
 
+#define GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_PAGE_INVOICE, GncPluginPageInvoicePrivate))
+
 static GObjectClass *parent_class = NULL;
 
 /************************************************************/
@@ -244,6 +247,7 @@
 GncPluginPage *
 gnc_plugin_page_invoice_new (InvoiceWindow *iw)
 {
+	GncPluginPageInvoicePrivate *priv;
 	GncPluginPageInvoice *invoice_page;
 	GncPluginPage *plugin_page;
 	const GList *item;
@@ -252,18 +256,20 @@
 	item = gnc_gobject_tracking_get_list(GNC_PLUGIN_PAGE_INVOICE_NAME);
 	for ( ; item; item = g_list_next(item)) {
 	  invoice_page = (GncPluginPageInvoice *)item->data;
-	  if (invoice_page->priv->iw == iw)
+	  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(invoice_page);
+	  if (priv->iw == iw)
 	    return GNC_PLUGIN_PAGE(invoice_page);
 	}
 
 	invoice_page = g_object_new (GNC_TYPE_PLUGIN_PAGE_INVOICE, NULL);
-	invoice_page->priv->iw = iw;
+	priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(invoice_page);
+	priv->iw = iw;
 
 	plugin_page = GNC_PLUGIN_PAGE(invoice_page);
 	gnc_plugin_page_invoice_update_title(plugin_page);
 	gnc_plugin_page_set_uri(plugin_page, "default:");
 
-	invoice_page->priv->component_manager_id = 0;
+	priv->component_manager_id = 0;
 	return plugin_page;
 }
 
@@ -282,6 +288,8 @@
 	gnc_plugin_class->create_widget   = gnc_plugin_page_invoice_create_widget;
 	gnc_plugin_class->destroy_widget  = gnc_plugin_page_invoice_destroy_widget;
 	gnc_plugin_class->window_changed  = gnc_plugin_page_invoice_window_changed;
+
+	g_type_class_add_private(klass, sizeof(GncPluginPageInvoicePrivate));
 }
 
 static void
@@ -292,8 +300,7 @@
 	GtkActionGroup *action_group;
 	gboolean use_new;
 
-	priv = g_new0 (GncPluginPageInvoicePrivate, 1);
-	plugin_page->priv = priv;
+	priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
 
 	/* Init parent declared variables */
 	parent = GNC_PLUGIN_PAGE(plugin_page);
@@ -327,15 +334,14 @@
 gnc_plugin_page_invoice_finalize (GObject *object)
 {
 	GncPluginPageInvoice *page;
+	GncPluginPageInvoicePrivate *priv;
 
+	g_return_if_fail (GNC_IS_PLUGIN_PAGE_INVOICE (object));
+
 	ENTER("object %p", object);
 	page = GNC_PLUGIN_PAGE_INVOICE (object);
+	priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(page);
 
-	g_return_if_fail (GNC_IS_PLUGIN_PAGE_INVOICE (page));
-	g_return_if_fail (page->priv != NULL);
-
-	g_free (page->priv);
-
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 	LEAVE(" ");
 }
@@ -369,7 +375,7 @@
 
 	ENTER("page %p", plugin_page);
 	page = GNC_PLUGIN_PAGE_INVOICE (plugin_page);
-	priv = page->priv;
+	priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(page);
 	if (priv->widget != NULL)
 		return priv->widget;
 
@@ -405,7 +411,7 @@
 
 	ENTER("page %p", plugin_page);
 	page = GNC_PLUGIN_PAGE_INVOICE (plugin_page);
-	priv = page->priv;
+	priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(page);
 
 	if (priv->widget == NULL)
 		return;
@@ -425,11 +431,13 @@
 					GtkWidget *window)
 {
 	GncPluginPageInvoice *page;
+	GncPluginPageInvoicePrivate *priv;
 	
 	g_return_if_fail (GNC_IS_PLUGIN_PAGE_INVOICE (plugin_page));
 
 	page = GNC_PLUGIN_PAGE_INVOICE(plugin_page);
-	gnc_invoice_window_changed (page->priv->iw, window);
+	priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(page);
+	gnc_invoice_window_changed (priv->iw, window);
 }
 	
 
@@ -446,7 +454,7 @@
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
   gnc_invoice_window_new_invoice_cb(NULL, priv->iw);
   LEAVE(" ");
 }
@@ -471,7 +479,7 @@
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
   gnc_invoice_window_printCB(NULL, priv->iw);
   LEAVE(" ");
 }
@@ -485,7 +493,7 @@
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
   gnc_invoice_window_cut_cb(NULL, priv->iw);
   LEAVE(" ");
 }
@@ -499,7 +507,7 @@
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
   gnc_invoice_window_copy_cb(NULL, priv->iw);
   LEAVE(" ");
 }
@@ -513,7 +521,7 @@
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
   gnc_invoice_window_paste_cb(NULL, priv->iw);
   LEAVE(" ");
 }
@@ -527,7 +535,7 @@
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
   gnc_invoice_window_editCB(NULL, priv->iw);
   LEAVE(" ");
 }
@@ -541,7 +549,7 @@
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
   gnc_invoice_window_postCB(NULL, priv->iw);
   LEAVE(" ");
 }
@@ -555,7 +563,7 @@
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
   gnc_invoice_window_unpostCB(NULL, priv->iw);
   LEAVE(" ");
 }
@@ -575,7 +583,7 @@
   g_return_if_fail(GTK_IS_RADIO_ACTION(current));
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
   value = gtk_radio_action_get_current_value(current);
   gnc_invoice_window_sort (priv->iw, value);
   LEAVE(" ");
@@ -586,10 +594,13 @@
 gnc_plugin_page_invoice_cmd_enter (GtkAction *action,
 				   GncPluginPageInvoice *plugin_page)
 {
+  GncPluginPageInvoicePrivate *priv;
+
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
-  gnc_invoice_window_recordCB(NULL, plugin_page->priv->iw);
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
+  gnc_invoice_window_recordCB(NULL, priv->iw);
   LEAVE(" ");
 }
 
@@ -597,10 +608,13 @@
 gnc_plugin_page_invoice_cmd_cancel (GtkAction *action,
 				    GncPluginPageInvoice *plugin_page)
 {
+  GncPluginPageInvoicePrivate *priv;
+
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
-  gnc_invoice_window_cancelCB(NULL, plugin_page->priv->iw);
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
+  gnc_invoice_window_cancelCB(NULL, priv->iw);
   LEAVE(" ");
 }
 
@@ -608,10 +622,13 @@
 gnc_plugin_page_invoice_cmd_delete (GtkAction *action,
 				    GncPluginPageInvoice *plugin_page)
 {
+  GncPluginPageInvoicePrivate *priv;
+
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
-  gnc_invoice_window_deleteCB(NULL, plugin_page->priv->iw);
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
+  gnc_invoice_window_deleteCB(NULL, priv->iw);
   LEAVE(" ");
 }
 
@@ -619,10 +636,13 @@
 gnc_plugin_page_invoice_cmd_blank (GtkAction *action,
 				   GncPluginPageInvoice *plugin_page)
 {
+  GncPluginPageInvoicePrivate *priv;
+
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
-  gnc_invoice_window_blankCB(NULL, plugin_page->priv->iw);
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
+  gnc_invoice_window_blankCB(NULL, priv->iw);
   LEAVE(" ");
 }
 
@@ -630,10 +650,13 @@
 gnc_plugin_page_invoice_cmd_duplicate (GtkAction *action,
 				       GncPluginPageInvoice *plugin_page)
 {
+  GncPluginPageInvoicePrivate *priv;
+
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
-  gnc_invoice_window_duplicateCB(NULL, plugin_page->priv->iw);
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
+  gnc_invoice_window_duplicateCB(NULL, priv->iw);
   LEAVE(" ");
 }
 
@@ -641,10 +664,13 @@
 gnc_plugin_page_invoice_cmd_pay_invoice (GtkAction *action,
 					 GncPluginPageInvoice *plugin_page)
 {
+  GncPluginPageInvoicePrivate *priv;
+
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
-  gnc_invoice_window_payment_cb(NULL, plugin_page->priv->iw);
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
+  gnc_invoice_window_payment_cb(NULL, priv->iw);
   LEAVE(" ");
 }
 
@@ -652,10 +678,13 @@
 gnc_plugin_page_invoice_cmd_company_report (GtkAction *action,
 					    GncPluginPageInvoice *plugin_page)
 {
+  GncPluginPageInvoicePrivate *priv;
+
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
-  gnc_invoice_window_report_owner_cb(NULL, plugin_page->priv->iw);
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(plugin_page);
+  gnc_invoice_window_report_owner_cb(NULL, priv->iw);
   LEAVE(" ");
 }
 
@@ -677,7 +706,7 @@
   window = GNC_WINDOW(GNC_PLUGIN_PAGE(invoice_page)->window);
 
   /* Get the text from the ledger */
-  priv = invoice_page->priv;
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(invoice_page);
   help = gnc_invoice_get_help(priv->iw);
   status = help ? help : g_strdup("");
   gnc_window_set_status(window, GNC_PLUGIN_PAGE(invoice_page), status);
@@ -689,12 +718,14 @@
 gnc_plugin_page_invoice_update_title (GncPluginPage *plugin_page)
 {
   GncPluginPageInvoice *page;
+  GncPluginPageInvoicePrivate *priv;
   gchar *title;
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(plugin_page));
 
   page = GNC_PLUGIN_PAGE_INVOICE(plugin_page);
-  title = gnc_invoice_get_title(page->priv->iw);
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(page);
+  title = gnc_invoice_get_title(priv->iw);
   gnc_plugin_page_set_page_name(plugin_page, title);
   g_free(title);
 }
@@ -703,6 +734,7 @@
 gnc_plugin_page_invoice_refresh_cb (GHashTable *changes, gpointer user_data)
 {
   GncPluginPageInvoice *page = user_data;
+  GncPluginPageInvoicePrivate *priv;
   GtkWidget *reg;
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_INVOICE(page));
@@ -711,7 +743,8 @@
   if (changes)
     return;
 
-  reg = gnc_invoice_get_register(page->priv->iw);
+  priv = GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(page);
+  reg = gnc_invoice_get_register(priv->iw);
   gnucash_register_refresh_from_gconf(GNUCASH_REGISTER(reg));
-  gtk_widget_queue_draw(page->priv->widget);
+  gtk_widget_queue_draw(priv->widget);
 }

Modified: gnucash/trunk/src/business/business-gnome/gnc-plugin-page-invoice.h
===================================================================
--- gnucash/trunk/src/business/business-gnome/gnc-plugin-page-invoice.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/business/business-gnome/gnc-plugin-page-invoice.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -52,16 +52,12 @@
 #define GNC_PLUGIN_PAGE_INVOICE_NAME "gnc-plugin-page-invoice"
 
 /* typedefs & structures */
-typedef struct GncPluginPageInvoicePrivate GncPluginPageInvoicePrivate;
-
 typedef struct {
-	GncPluginPage parent;
-
-	GncPluginPageInvoicePrivate *priv;
+	GncPluginPage gnc_plugin_page;
 } GncPluginPageInvoice;
 
 typedef struct {
-	GncPluginPageClass parent;
+	GncPluginPageClass gnc_plugin_page;
 } GncPluginPageInvoiceClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/business/business-gnome/search-owner.c
===================================================================
--- gnucash/trunk/src/business/business-gnome/search-owner.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/business/business-gnome/search-owner.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -45,12 +45,15 @@
 
 #define _PRIVATE(x) (((GNCSearchOwner *)(x))->priv)
 
-struct _GNCSearchOwnerPrivate {
+typedef struct _GNCSearchOwnerPrivate {
   GncOwner	owner;
   GtkWidget *	owner_box;
   GtkWidget *	owner_choice;
-};
+} GNCSearchOwnerPrivate;
 
+#define GNC_SEARCH_OWNER_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_SEARCH_OWNER, GNCSearchOwnerPrivate))
+
 static GNCSearchCoreTypeClass *parent_class;
 
 enum {
@@ -99,22 +102,26 @@
   gnc_search_core_type->get_widget = gncs_get_widget;
   gnc_search_core_type->get_predicate = gncs_get_predicate;
   gnc_search_core_type->clone = gncs_clone;
+
+  g_type_class_add_private(class, sizeof(GNCSearchOwnerPrivate));
 }
 
 static void
 gnc_search_owner_init (GNCSearchOwner *o)
 {
-  o->priv = g_malloc0 (sizeof (*o->priv));
 }
 
 static void
 gnc_search_owner_finalize (GObject *obj)
 {
-  GNCSearchOwner *o = (GNCSearchOwner *)obj;
-  g_assert (IS_GNCSEARCH_OWNER (o));
+  GNCSearchOwner *o;
+  GNCSearchOwnerPrivate *priv;
 
-  g_free(o->priv);
-	
+  g_assert (IS_GNCSEARCH_OWNER (obj));
+
+  o = GNCSEARCH_OWNER(obj);
+  priv = GNC_SEARCH_OWNER_GET_PRIVATE(o);
+
   G_OBJECT_CLASS (parent_class)->finalize(obj);
 }
 
@@ -136,12 +143,14 @@
 gncs_validate (GNCSearchCoreType *fe)
 {
   GNCSearchOwner *fi = (GNCSearchOwner *)fe;
+  GNCSearchOwnerPrivate *priv;
   gboolean valid = TRUE;
 
   g_return_val_if_fail (fi, FALSE);
   g_return_val_if_fail (IS_GNCSEARCH_OWNER (fi), FALSE);
-	
-  if (fi->priv->owner.owner.undefined == NULL) {
+  
+  priv = GNC_SEARCH_OWNER_GET_PRIVATE(fi);
+  if (priv->owner.owner.undefined == NULL) {
     valid = FALSE;
     gnc_error_dialog (NULL, _("You have not selected an owner"));
   }
@@ -155,42 +164,49 @@
 owner_changed_cb (GtkWidget *widget, gpointer data)
 {
   GNCSearchOwner *fe = data;
-  gnc_owner_get_owner (fe->priv->owner_choice, &(fe->priv->owner));
+  GNCSearchOwnerPrivate *priv;
+
+  priv = GNC_SEARCH_OWNER_GET_PRIVATE(fe);
+  gnc_owner_get_owner (priv->owner_choice, &(priv->owner));
   return FALSE;
 }
 
 static void
 set_owner_widget (GNCSearchOwner *fe)
 {
+  GNCSearchOwnerPrivate *priv;
+
   /* Remove the old choice widget */
-  if (fe->priv->owner_choice)
-    gtk_container_remove (GTK_CONTAINER (fe->priv->owner_box),
-			  fe->priv->owner_choice);
+  priv = GNC_SEARCH_OWNER_GET_PRIVATE(fe);
+  if (priv->owner_choice)
+    gtk_container_remove (GTK_CONTAINER (priv->owner_box), priv->owner_choice);
 
   /* Create a new choice widget */
-  fe->priv->owner_choice =
-    gnc_owner_select_create (NULL, fe->priv->owner_box,
-			     gnc_get_current_book(), &(fe->priv->owner));
+  priv->owner_choice =
+    gnc_owner_select_create (NULL, priv->owner_box,
+			     gnc_get_current_book(), &(priv->owner));
 
   /* Setup the "changed" callback */
-  g_signal_connect (G_OBJECT (fe->priv->owner_choice), "changed",
+  g_signal_connect (G_OBJECT (priv->owner_choice), "changed",
 		    G_CALLBACK (owner_changed_cb), fe);
 
-  gtk_widget_show_all (fe->priv->owner_choice);
+  gtk_widget_show_all (priv->owner_choice);
 }
 
 static void
 type_option_changed (GtkWidget *widget, GNCSearchOwner *fe)
 {
+  GNCSearchOwnerPrivate *priv;
   GncOwnerType type = (GncOwnerType)
     g_object_get_data (G_OBJECT (widget), "option");
 
   /* If the type changed or if we don't have a type create the owner_choice */
-  if (type != gncOwnerGetType (&(fe->priv->owner))) {
-    fe->priv->owner.type = type;
-    fe->priv->owner.owner.undefined = NULL;
+  priv = GNC_SEARCH_OWNER_GET_PRIVATE(fe);
+  if (type != gncOwnerGetType (&(priv->owner))) {
+    priv->owner.type = type;
+    priv->owner.owner.undefined = NULL;
     set_owner_widget (fe);
-  } else if (fe->priv->owner_choice == NULL)
+  } else if (priv->owner_choice == NULL)
     set_owner_widget (fe);
 }
 
@@ -217,13 +233,15 @@
 make_type_menu (GNCSearchCoreType *fe)
 {
   GNCSearchOwner *fi = (GNCSearchOwner *)fe;
+  GNCSearchOwnerPrivate *priv;
   GtkWidget *menu, *item, *first, *opmenu;
   int current = 0, index = 0;
   GncOwnerType type;
 
   menu = gtk_menu_new ();
 
-  type = gncOwnerGetType (&(fi->priv->owner));
+  priv = GNC_SEARCH_OWNER_GET_PRIVATE(fi);
+  type = gncOwnerGetType (&(priv->owner));
 
   ADD_TYPE_MENU_ITEM (_("Customer"), GNC_OWNER_CUSTOMER);
   first = item;
@@ -293,10 +311,12 @@
 {
   GtkWidget *how_menu, *type_menu, *box;
   GNCSearchOwner *fi = (GNCSearchOwner *)fe;
+  GNCSearchOwnerPrivate *priv;
 	
   g_return_val_if_fail (fi, NULL);
   g_return_val_if_fail (IS_GNCSEARCH_OWNER (fi), NULL);
 
+  priv = GNC_SEARCH_OWNER_GET_PRIVATE(fi);
   box = gtk_hbox_new (FALSE, 3);
 
   /* Build and connect the "how" option menu. */
@@ -304,7 +324,7 @@
   gtk_box_pack_start (GTK_BOX (box), how_menu, FALSE, FALSE, 3);
 
   /* Create the owner box */
-  fi->priv->owner_box = gtk_hbox_new (FALSE, 0);
+  priv->owner_box = gtk_hbox_new (FALSE, 0);
 
   /* Build and connect the "type" option menu.
    * Note that this will build the owner_choice and
@@ -314,7 +334,7 @@
   gtk_box_pack_start (GTK_BOX (box), type_menu, FALSE, FALSE, 3);
 
   /* connect the owner box */
-  gtk_box_pack_start (GTK_BOX (box), fi->priv->owner_box, FALSE, FALSE, 3);
+  gtk_box_pack_start (GTK_BOX (box), priv->owner_box, FALSE, FALSE, 3);
 
   /* And return the box */
   return box;
@@ -323,13 +343,15 @@
 static QueryPredData_t gncs_get_predicate (GNCSearchCoreType *fe)
 {
   GNCSearchOwner *fi = (GNCSearchOwner *)fe;
+  GNCSearchOwnerPrivate *priv;
   const GUID *guid;
   GList *l = NULL;
 
   g_return_val_if_fail (fi, NULL);
   g_return_val_if_fail (IS_GNCSEARCH_OWNER (fi), NULL);
 
-  guid = gncOwnerGetGUID (&(fi->priv->owner));
+  priv = GNC_SEARCH_OWNER_GET_PRIVATE(fi);
+  guid = gncOwnerGetGUID (&(priv->owner));
   l = g_list_prepend (l, (gpointer)guid);
 
   return gncQueryGUIDPredicate (fi->how, l);
@@ -338,13 +360,16 @@
 static GNCSearchCoreType *gncs_clone(GNCSearchCoreType *fe)
 {
   GNCSearchOwner *se, *fse = (GNCSearchOwner *)fe;
+  GNCSearchOwnerPrivate *se_priv, *fse_priv;
 
   g_return_val_if_fail (fse, NULL);
   g_return_val_if_fail (IS_GNCSEARCH_OWNER (fse), NULL);
 
   se = gnc_search_owner_new ();
   se->how = fse->how;
-  gncOwnerCopy (&(fse->priv->owner), &(se->priv->owner));
+  se_priv = GNC_SEARCH_OWNER_GET_PRIVATE(se);
+  fse_priv = GNC_SEARCH_OWNER_GET_PRIVATE(fse);
+  gncOwnerCopy (&(fse_priv->owner), &(se_priv->owner));
 
   return (GNCSearchCoreType *)se;
 }

Modified: gnucash/trunk/src/business/business-gnome/search-owner.h
===================================================================
--- gnucash/trunk/src/business/business-gnome/search-owner.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/business/business-gnome/search-owner.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -24,6 +24,7 @@
 #include "search-core-type.h"
 #include "QueryNew.h"
 
+#define GNC_TYPE_SEARCH_OWNER (gnc_search_owner_get_type ())
 #define GNCSEARCH_OWNER(obj)	GTK_CHECK_CAST (obj, gnc_search_owner_get_type (), GNCSearchOwner)
 #define GNCSEARCH_OWNER_CLASS(klass)	GTK_CHECK_CLASS_CAST (klass, gnc_search_owner_get_type (), GNCSearchOwnerClass)
 #define IS_GNCSEARCH_OWNER(obj)      GTK_CHECK_TYPE (obj, gnc_search_owner_get_type ())
@@ -33,7 +34,6 @@
 
 struct _GNCSearchOwner {
   GNCSearchCoreType parent;
-  struct _GNCSearchOwnerPrivate *priv;
 
   guid_match_t	how;
 };

Modified: gnucash/trunk/src/gnome/gnc-plugin-account-tree.c
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-account-tree.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome/gnc-plugin-account-tree.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -53,11 +53,14 @@
 static guint gnc_plugin_n_actions = G_N_ELEMENTS (gnc_plugin_actions);
 
 
-struct GncPluginAccountTreePrivate
+typedef struct GncPluginAccountTreePrivate
 {
 	gpointer dummy;
-};
+} GncPluginAccountTreePrivate;
 
+#define GNC_PLUGIN_ACCOUNT_TREE_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_ACCOUNT_TREE, GncPluginAccountTreePrivate))
+
 static GObjectClass *parent_class = NULL;
 
 GType
@@ -118,27 +121,26 @@
 	plugin_class->actions      = gnc_plugin_actions;
 	plugin_class->n_actions    = gnc_plugin_n_actions;
 	plugin_class->ui_filename  = PLUGIN_UI_FILENAME;
+
+	g_type_class_add_private(klass, sizeof(GncPluginAccountTreePrivate));
 }
 
 static void
 gnc_plugin_account_tree_init (GncPluginAccountTree *plugin)
 {
-	plugin->priv = g_new0 (GncPluginAccountTreePrivate, 1);
 }
 
 static void
 gnc_plugin_account_tree_finalize (GObject *object)
 {
 	GncPluginAccountTree *plugin;
+	GncPluginAccountTreePrivate *priv;
 
 	g_return_if_fail (GNC_IS_PLUGIN_ACCOUNT_TREE (object));
 
 	plugin = GNC_PLUGIN_ACCOUNT_TREE (object);
+	priv = GNC_PLUGIN_ACCOUNT_TREE_GET_PRIVATE (object);
 
-	g_return_if_fail (plugin->priv != NULL);
-
-	g_free (plugin->priv);
-
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 

Modified: gnucash/trunk/src/gnome/gnc-plugin-account-tree.h
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-account-tree.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome/gnc-plugin-account-tree.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -42,16 +42,12 @@
 #define GNC_PLUGIN_ACCOUNT_TREE_NAME "gnc-plugin-account-tree"
 
 /* typedefs & structures */
-typedef struct GncPluginAccountTreePrivate GncPluginAccountTreePrivate;
-
 typedef struct {
-	GncPlugin parent;
-
-	GncPluginAccountTreePrivate *priv;
+	GncPlugin gnc_plugin;
 } GncPluginAccountTree;
 
 typedef struct {
-	GncPluginClass parent;
+	GncPluginClass gnc_plugin;
 } GncPluginAccountTreeClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/gnome/gnc-plugin-basic-commands.c
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-basic-commands.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome/gnc-plugin-basic-commands.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -153,11 +153,14 @@
 };
 
 
-struct GncPluginBasicCommandsPrivate
+typedef struct GncPluginBasicCommandsPrivate
 {
   gpointer dummy;
-};
+} GncPluginBasicCommandsPrivate;
 
+#define GNC_PLUGIN_BASIC_COMMANDS_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_BASIC_COMMANDS, GncPluginBasicCommandsPrivate))
+
 static GObjectClass *parent_class = NULL;
 
 GType
@@ -215,27 +218,26 @@
   plugin_class->n_actions    	  = gnc_plugin_n_actions;
   plugin_class->important_actions = gnc_plugin_important_actions;
   plugin_class->ui_filename       = PLUGIN_UI_FILENAME;
+
+  g_type_class_add_private(klass, sizeof(GncPluginBasicCommandsPrivate));
 }
 
 static void
 gnc_plugin_basic_commands_init (GncPluginBasicCommands *plugin)
 {
-  plugin->priv = g_new0 (GncPluginBasicCommandsPrivate, 1);
 }
 
 static void
 gnc_plugin_basic_commands_finalize (GObject *object)
 {
   GncPluginBasicCommands *plugin;
+  GncPluginBasicCommandsPrivate *priv;
 
   g_return_if_fail (GNC_IS_PLUGIN_BASIC_COMMANDS (object));
 
   plugin = GNC_PLUGIN_BASIC_COMMANDS (object);
+  priv= GNC_PLUGIN_BASIC_COMMANDS_GET_PRIVATE (plugin);
 
-  g_return_if_fail (plugin->priv != NULL);
-
-  g_free (plugin->priv);
-
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
@@ -371,9 +373,9 @@
   window = data->window;
   ret = gnc_ui_sxsincelast_dialog_create ();
   if ( ret == 0 ) {
-    gnc_info_dialog (GTK_WIDGET(&window->parent), nothing_to_do_msg);
+    gnc_info_dialog (GTK_WIDGET(&window->gtk_window), nothing_to_do_msg);
   } else if ( ret < 0 ) {
-    gnc_info_dialog (GTK_WIDGET(&window->parent), ngettext
+    gnc_info_dialog (GTK_WIDGET(&window->gtk_window), ngettext
 		     /* Translators: %d is the number of transactions. This is a
 			ngettext(3) message. */
 		     ("There are no Scheduled Transactions to be entered at this time.\n"

Modified: gnucash/trunk/src/gnome/gnc-plugin-basic-commands.h
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-basic-commands.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome/gnc-plugin-basic-commands.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -41,16 +41,12 @@
 #define GNC_PLUGIN_BASIC_COMMANDS_NAME "gnc-plugin-basic-commands"
 
 /* typedefs & structures */
-typedef struct GncPluginBasicCommandsPrivate GncPluginBasicCommandsPrivate;
-
 typedef struct {
-	GncPlugin parent;
-
-	GncPluginBasicCommandsPrivate *priv;
+  GncPlugin gnc_plugin;
 } GncPluginBasicCommands;
 
 typedef struct {
-	GncPluginClass parent;
+  GncPluginClass gnc_plugin;
 } GncPluginBasicCommandsClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/gnome/gnc-plugin-budget.c
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-budget.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome/gnc-plugin-budget.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -68,10 +68,13 @@
 };
 static guint gnc_plugin_n_actions = G_N_ELEMENTS (gnc_plugin_actions);
 
-struct GncPluginBudgetPrivate {
+typedef struct GncPluginBudgetPrivate {
     gpointer dummy;
-};
+} GncPluginBudgetPrivate;
 
+#define GNC_PLUGIN_BUDGET_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_BUDGET, GncPluginBudgetPrivate))
+
 static GObjectClass *parent_class = NULL;
 
 GType
@@ -129,24 +132,27 @@
     plugin_class->n_actions    = gnc_plugin_n_actions;
     plugin_class->ui_filename  = PLUGIN_UI_FILENAME;
 
+    g_type_class_add_private(klass, sizeof(GncPluginBudgetPrivate));
     LEAVE (" ");
 }
 
 static void
 gnc_plugin_budget_init(GncPluginBudget *plugin)
 {
-    plugin->priv = g_new0(GncPluginBudgetPrivate, 1);
 }
 
 static void
 gnc_plugin_budget_finalize(GObject *object)
 {
-    GncPluginBudget *plugin = GNC_PLUGIN_BUDGET(object);
+    GncPluginBudget *plugin;
+    GncPluginBudgetPrivate *priv;
 
     g_return_if_fail(GNC_IS_PLUGIN_BUDGET (object));
-    g_return_if_fail(plugin->priv != NULL);
+
     ENTER(" ");
-    g_free (plugin->priv);
+    plugin = GNC_PLUGIN_BUDGET(object);
+    priv = GNC_PLUGIN_BUDGET_GET_PRIVATE(plugin);
+
     (parent_class->finalize)(object);
     ENTER(" ");
 

Modified: gnucash/trunk/src/gnome/gnc-plugin-budget.h
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-budget.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome/gnc-plugin-budget.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -45,15 +45,12 @@
 #define GNC_BUDGET_GUI_FILE    "budget.glade"
 
 /* typedefs & structures */
-typedef struct GncPluginBudgetPrivate GncPluginBudgetPrivate;
-
 typedef struct {
-  GncPlugin parent;
-  GncPluginBudgetPrivate *priv;
+  GncPlugin gnc_plugin;
 } GncPluginBudget;
 
 typedef struct {
-  GncPluginClass parent;
+  GncPluginClass gnc_plugin;
 } GncPluginBudgetClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/gnome/gnc-plugin-page-account-tree.c
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-page-account-tree.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome/gnc-plugin-page-account-tree.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -64,7 +64,27 @@
   LAST_SIGNAL
 };
 
+typedef struct GncPluginPageAccountTreePrivate
+{
+	GtkWidget *widget;
+	GtkTreeView *tree_view;
 
+	SCM         name_change_callback_id;
+
+	GNCOptionDB * odb;
+	SCM         options; 
+	int         options_id;
+	GNCOptionWin * editor_dialog;
+
+	GtkWidget *options_db;
+	gint       component_id;
+} GncPluginPageAccountTreePrivate;
+
+#define GNC_PLUGIN_PAGE_ACCOUNT_TREE_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_PAGE_ACCOUNT_TREE, GncPluginPageAccountTreePrivate))
+
+static GObjectClass *parent_class = NULL;
+
 /************************************************************
  *                        Prototypes                        *
  ************************************************************/
@@ -192,25 +212,7 @@
   { NULL, NULL },
 };
 
-struct GncPluginPageAccountTreePrivate
-{
-	GtkWidget *widget;
-	GtkTreeView *tree_view;
 
-	SCM         name_change_callback_id;
-
-	GNCOptionDB * odb;
-	SCM         options; 
-	int         options_id;
-	GNCOptionWin * editor_dialog;
-
-	GtkWidget *options_db;
-	gint       component_id;
-};
-
-static GObjectClass *parent_class = NULL;
-
-
 GType
 gnc_plugin_page_account_tree_get_type (void)
 {
@@ -265,6 +267,8 @@
 	gnc_plugin_class->create_widget   = gnc_plugin_page_account_tree_create_widget;
 	gnc_plugin_class->destroy_widget  = gnc_plugin_page_account_tree_destroy_widget;
 
+	g_type_class_add_private(klass, sizeof(GncPluginPageAccountTreePrivate));
+
 	plugin_page_signals[ACCOUNT_SELECTED] =
 	  g_signal_new ("account_selected",
 			G_OBJECT_CLASS_TYPE (object_class),
@@ -294,7 +298,7 @@
 	URLType type;
 
 	ENTER("page %p", plugin_page);
-	priv = plugin_page->priv = g_new0 (GncPluginPageAccountTreePrivate, 1);
+	priv = GNC_PLUGIN_PAGE_ACCOUNT_TREE_GET_PRIVATE(plugin_page);
 
 	/* Init parent declared variables */
 	parent = GNC_PLUGIN_PAGE(plugin_page);
@@ -367,7 +371,7 @@
 	scm_gc_protect_object(priv->name_change_callback_id);
 
 	LEAVE("page %p, priv %p, action group %p",
-	      plugin_page, plugin_page->priv, action_group);
+	      plugin_page, priv, action_group);
 }
 
 static void
@@ -380,7 +384,7 @@
 	ENTER("object %p", object);
 	page = GNC_PLUGIN_PAGE_ACCOUNT_TREE (object);
 	g_return_if_fail (GNC_IS_PLUGIN_PAGE_ACCOUNT_TREE (page));
-	priv = page->priv;
+	priv = GNC_PLUGIN_PAGE_ACCOUNT_TREE_GET_PRIVATE(page);
 	g_return_if_fail (priv != NULL);
 
 	if (priv->editor_dialog) {
@@ -396,8 +400,6 @@
 
 	scm_gc_unprotect_object(priv->options);
 
-	g_free (priv);
-
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 	LEAVE(" ");
 }
@@ -405,10 +407,12 @@
 Account *
 gnc_plugin_page_account_tree_get_current_account (GncPluginPageAccountTree *page)
 {
+	GncPluginPageAccountTreePrivate *priv;
 	Account *account;
 
-	ENTER("page %p (tree view %p)", page, page->priv->tree_view);
-	account = gnc_tree_view_account_get_selected_account (GNC_TREE_VIEW_ACCOUNT(page->priv->tree_view));
+	priv = GNC_PLUGIN_PAGE_ACCOUNT_TREE_GET_PRIVATE(page);
+	ENTER("page %p (tree view %p)", page, priv->tree_view);
+	account = gnc_tree_view_account_get_selected_account (GNC_TREE_VIEW_ACCOUNT(priv->tree_view));
 	if (account == NULL) {
 		LEAVE("no account");
 		return NULL;
@@ -425,6 +429,7 @@
 gnc_plugin_page_account_refresh_cb (GHashTable *changes, gpointer user_data)
 {
   GncPluginPageAccountTree *page = user_data;
+  GncPluginPageAccountTreePrivate *priv;
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_ACCOUNT_TREE(page));
 
@@ -432,7 +437,8 @@
   if (changes)
     return;
 
-  gtk_widget_queue_draw(page->priv->widget);
+  priv = GNC_PLUGIN_PAGE_ACCOUNT_TREE_GET_PRIVATE(page);
+  gtk_widget_queue_draw(priv->widget);
 }
 
 static void
@@ -450,25 +456,27 @@
 gnc_plugin_page_account_tree_create_widget (GncPluginPage *plugin_page)
 {
 	GncPluginPageAccountTree *page;
+	GncPluginPageAccountTreePrivate *priv;
 	GtkTreeSelection *selection;
 	GtkTreeView *tree_view;
 	GtkWidget *scrolled_window;
 
 	ENTER("page %p", plugin_page);
 	page = GNC_PLUGIN_PAGE_ACCOUNT_TREE (plugin_page);
-	if (page->priv->widget != NULL) {
-		LEAVE("widget = %p", page->priv->widget);
-		return page->priv->widget;
+	priv = GNC_PLUGIN_PAGE_ACCOUNT_TREE_GET_PRIVATE(page);
+	if (priv->widget != NULL) {
+		LEAVE("widget = %p", priv->widget);
+		return priv->widget;
 	}
 
-	page->priv->widget = gtk_vbox_new (FALSE, 0);
-	gtk_widget_show (page->priv->widget);
+	priv->widget = gtk_vbox_new (FALSE, 0);
+	gtk_widget_show (priv->widget);
 
 	scrolled_window = gtk_scrolled_window_new (NULL, NULL);
 	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
 					GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
 	gtk_widget_show (scrolled_window);
-	gtk_box_pack_start (GTK_BOX (page->priv->widget), scrolled_window,
+	gtk_box_pack_start (GTK_BOX (priv->widget), scrolled_window,
 			    TRUE, TRUE, 0);
 
 	tree_view = gnc_tree_view_account_new(FALSE);
@@ -477,7 +485,7 @@
 		     "show-column-menu", TRUE,
 		     NULL);
 
-	page->priv->tree_view = tree_view;
+	priv->tree_view = tree_view;
 	selection = gtk_tree_view_get_selection(tree_view);
 	g_signal_connect (G_OBJECT (selection), "changed",
 			  G_CALLBACK (gnc_plugin_page_account_tree_selection_changed_cb), page);
@@ -491,39 +499,41 @@
 	gtk_widget_show (GTK_WIDGET (tree_view));
 	gtk_container_add (GTK_CONTAINER (scrolled_window), GTK_WIDGET(tree_view));
 
-	page->priv->component_id =
+	priv->component_id =
 	  gnc_register_gui_component(PLUGIN_PAGE_ACCT_TREE_CM_CLASS,
 				     gnc_plugin_page_account_refresh_cb,
 				     gnc_plugin_page_account_tree_close_cb,
 				     page);
-	gnc_gui_component_set_session (page->priv->component_id,
+	gnc_gui_component_set_session (priv->component_id,
 				       gnc_get_current_session());
 
 	plugin_page->summarybar = gnc_main_window_summary_new();
-	gtk_box_pack_end (GTK_BOX (page->priv->widget), plugin_page->summarybar,
+	gtk_box_pack_end (GTK_BOX (priv->widget), plugin_page->summarybar,
 			  FALSE, FALSE, 0);
 	gtk_widget_show(plugin_page->summarybar);
 
-	LEAVE("widget = %p", page->priv->widget);
-	return page->priv->widget;
+	LEAVE("widget = %p", priv->widget);
+	return priv->widget;
 }
 
 static void
 gnc_plugin_page_account_tree_destroy_widget (GncPluginPage *plugin_page)
 {
 	GncPluginPageAccountTree *page;
+	GncPluginPageAccountTreePrivate *priv;
 
 	ENTER("page %p", plugin_page);
 	page = GNC_PLUGIN_PAGE_ACCOUNT_TREE (plugin_page);
+	priv = GNC_PLUGIN_PAGE_ACCOUNT_TREE_GET_PRIVATE(page);
 
-	if (page->priv->widget) {
-	  g_object_unref(G_OBJECT(page->priv->widget));
-	  page->priv->widget = NULL;
+	if (priv->widget) {
+	  g_object_unref(G_OBJECT(priv->widget));
+	  priv->widget = NULL;
 	}
 
-	if (page->priv->component_id) {
-	  gnc_unregister_gui_component(page->priv->component_id);
-	  page->priv->component_id = 0;
+	if (priv->component_id) {
+	  gnc_unregister_gui_component(priv->component_id);
+	  priv->component_id = 0;
 	}
 
 	LEAVE("widget destroyed");
@@ -839,7 +849,7 @@
   GncPluginPageAccountTreePrivate *priv;
 
   g_return_if_fail (GNC_IS_PLUGIN_PAGE_ACCOUNT_TREE (page));
-  priv = page->priv;
+  priv = GNC_PLUGIN_PAGE_ACCOUNT_TREE_GET_PRIVATE(page);
 
   if (!priv->editor_dialog) {
     priv->editor_dialog = gnc_options_dialog_new(_("Account Tree Options"));

Modified: gnucash/trunk/src/gnome/gnc-plugin-page-account-tree.h
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-page-account-tree.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome/gnc-plugin-page-account-tree.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -53,16 +53,12 @@
 #define GNC_PLUGIN_PAGE_ACCOUNT_TREE_NAME "gnc-plugin-page-account-tree"
 
 /* typedefs & structures */
-typedef struct GncPluginPageAccountTreePrivate GncPluginPageAccountTreePrivate;
-
 typedef struct {
-	GncPluginPage parent;
-
-	GncPluginPageAccountTreePrivate *priv;
+	GncPluginPage gnc_plugin_page;
 } GncPluginPageAccountTree;
 
 typedef struct {
-	GncPluginPageClass parent;
+	GncPluginPageClass gnc_plugin_page;
 
 	/* callbacks */
 	void (*account_selected) (GncPluginPage	 *page,

Modified: gnucash/trunk/src/gnome/gnc-plugin-page-budget.c
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-page-budget.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome/gnc-plugin-page-budget.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -152,7 +152,7 @@
 };
 */
 
-struct GncPluginPageBudgetPrivate
+typedef struct GncPluginPageBudgetPrivate
 {
     GtkActionGroup *action_group;
     guint merge_id;
@@ -169,8 +169,11 @@
 
     GList *period_col_list;
     guint32 acct_types;
-};
+} GncPluginPageBudgetPrivate;
 
+#define GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_PAGE_BUDGET, GncPluginPageBudgetPrivate))
+
 static GObjectClass *parent_class = NULL;
 
 GType
@@ -203,13 +206,15 @@
 gnc_plugin_page_budget_new (GncBudget *budget)
 {
     GncPluginPageBudget *plugin_page;
+    GncPluginPageBudgetPrivate *priv;
 
     g_return_val_if_fail(GNC_IS_BUDGET(budget), NULL);
     ENTER(" ");
     plugin_page = g_object_new(GNC_TYPE_PLUGIN_PAGE_BUDGET, NULL);
 
-    plugin_page->priv->budget = budget;
-    plugin_page->priv->key = *gnc_budget_get_guid(budget);
+    priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(plugin_page);
+    priv->budget = budget;
+    priv->key = *gnc_budget_get_guid(budget);
     LEAVE("new budget page %p", plugin_page);
     return GNC_PLUGIN_PAGE(plugin_page);
 }
@@ -228,6 +233,8 @@
     gnc_plugin_class->plugin_name     = GNC_PLUGIN_PAGE_BUDGET_NAME;
     gnc_plugin_class->create_widget   = gnc_plugin_page_budget_create_widget;
     gnc_plugin_class->destroy_widget  = gnc_plugin_page_budget_destroy_widget;
+
+    g_type_class_add_private(klass, sizeof(GncPluginPageBudgetPrivate));
 }
 
 static void
@@ -243,7 +250,7 @@
     URLType type;
 
     ENTER("page %p", plugin_page);
-    priv = plugin_page->priv = g_new0 (GncPluginPageBudgetPrivate, 1);
+    priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(plugin_page);
 
     /* Init parent declared variables */
     parent = GNC_PLUGIN_PAGE(plugin_page);
@@ -282,7 +289,7 @@
     }
 
     LEAVE("page %p, priv %p, action group %p",
-          plugin_page, plugin_page->priv, action_group);
+          plugin_page, priv, action_group);
 }
 
 static void
@@ -294,11 +301,9 @@
     ENTER("object %p", object);
     page = GNC_PLUGIN_PAGE_BUDGET (object);
     g_return_if_fail (GNC_IS_PLUGIN_PAGE_BUDGET (page));
-    priv = page->priv;
-    g_return_if_fail (priv != NULL);
 
+    priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
     g_list_free(priv->period_col_list);
-    g_free (priv);
 
     G_OBJECT_CLASS (parent_class)->finalize (object);
     LEAVE(" ");
@@ -317,11 +322,13 @@
 gnc_plugin_page_budget_refresh_cb(GHashTable *changes, gpointer user_data)
 {
     GncPluginPageBudget *page;
+    GncPluginPageBudgetPrivate *priv;
     const EventInfo* ei;
 
     page = GNC_PLUGIN_PAGE_BUDGET(user_data);
+    priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
     if (changes) {
-        ei = gnc_gui_get_entity_events(changes, &page->priv->key);
+        ei = gnc_gui_get_entity_events(changes, &priv->key);
         if (ei) {
             if (ei->event_mask & GNC_EVENT_DESTROY) {
                 gnc_plugin_page_budget_close_cb(user_data);
@@ -343,32 +350,34 @@
 gnc_plugin_page_budget_create_widget (GncPluginPage *plugin_page)
 {
     GncPluginPageBudget *page;
+    GncPluginPageBudgetPrivate *priv;
     GtkTreeSelection *selection;
     GtkTreeView *tree_view;
     GtkWidget *scrolled_window;
 
     ENTER("page %p", plugin_page);
     page = GNC_PLUGIN_PAGE_BUDGET (plugin_page);
-    if (page->priv->widget != NULL) {
-        LEAVE("widget = %p", page->priv->widget);
-        return page->priv->widget;
+    priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
+    if (priv->widget != NULL) {
+        LEAVE("widget = %p", priv->widget);
+        return priv->widget;
     }
 
-    page->priv->widget = gtk_vbox_new (FALSE, 0);
-    gtk_widget_show (page->priv->widget);
+    priv->widget = gtk_vbox_new (FALSE, 0);
+    gtk_widget_show (priv->widget);
 
     scrolled_window = gtk_scrolled_window_new (NULL, NULL);
     gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
                                     GTK_POLICY_AUTOMATIC,
                                     GTK_POLICY_AUTOMATIC);
     gtk_widget_show (scrolled_window);
-    gtk_box_pack_start (GTK_BOX (page->priv->widget), scrolled_window,
+    gtk_box_pack_start (GTK_BOX (priv->widget), scrolled_window,
                         TRUE, TRUE, 0);
 
     tree_view = gnc_tree_view_account_new(FALSE);
     gnc_tree_view_configure_columns(
         GNC_TREE_VIEW(tree_view), "Name", NULL);
-    page->priv->tree_view = tree_view;
+    priv->tree_view = tree_view;
     selection = gtk_tree_view_get_selection(tree_view);
     gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
 
@@ -384,42 +393,44 @@
     gtk_container_add (GTK_CONTAINER (scrolled_window),
                        GTK_WIDGET(tree_view));
 
-    page->priv->component_id =
+    priv->component_id =
         gnc_register_gui_component(PLUGIN_PAGE_BUDGET_CM_CLASS,
                                    gnc_plugin_page_budget_refresh_cb,
                                    gnc_plugin_page_budget_close_cb,
                                    page);
 
-    gnc_gui_component_set_session (page->priv->component_id,
+    gnc_gui_component_set_session (priv->component_id,
                                    gnc_get_current_session());
 
-    gnc_gui_component_watch_entity (page->priv->component_id,
-                                    gnc_budget_get_guid(page->priv->budget),
+    gnc_gui_component_watch_entity (priv->component_id,
+                                    gnc_budget_get_guid(priv->budget),
                                     GNC_EVENT_DESTROY | GNC_EVENT_MODIFY);
 
     gnc_plugin_page_budget_view_refresh(page);
 
-    LEAVE("widget = %p", page->priv->widget);
-    return page->priv->widget;
+    LEAVE("widget = %p", priv->widget);
+    return priv->widget;
 }
 
 static void
 gnc_plugin_page_budget_destroy_widget (GncPluginPage *plugin_page)
 {
     GncPluginPageBudget *page;
+    GncPluginPageBudgetPrivate *priv;
 
     ENTER("page %p", plugin_page);
     page = GNC_PLUGIN_PAGE_BUDGET (plugin_page);
-    if (page->priv->widget) {
-        g_object_unref(G_OBJECT(page->priv->widget));
-        page->priv->widget = NULL;
+    priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(plugin_page);
+    if (priv->widget) {
+        g_object_unref(G_OBJECT(priv->widget));
+        priv->widget = NULL;
     }
 
-    gnc_gui_component_clear_watches (page->priv->component_id);
+    gnc_gui_component_clear_watches (priv->component_id);
 
-    if (page->priv->component_id != NO_COMPONENT) {
-        gnc_unregister_gui_component(page->priv->component_id);
-        page->priv->component_id = NO_COMPONENT;
+    if (priv->component_id != NO_COMPONENT) {
+        gnc_unregister_gui_component(priv->component_id);
+        priv->component_id = NO_COMPONENT;
     }
 
     LEAVE("widget destroyed");
@@ -474,9 +485,11 @@
 gnc_plugin_page_budget_cmd_delete_budget (GtkAction *action,
 					  GncPluginPageBudget *page)
 {
+  GncPluginPageBudgetPrivate *priv;
   GncBudget *budget;
 
-  budget = page->priv->budget;
+  priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
+  budget = priv->budget;
   g_return_if_fail (GNC_IS_BUDGET(budget));
   gnc_budget_gui_delete_budget(budget);
 
@@ -579,7 +592,7 @@
 
 
     g_return_if_fail (GNC_IS_PLUGIN_PAGE_BUDGET (page));
-    priv = page->priv;
+    priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
 
     gnc_dialog_set_string(pw, "BudgetName",
                           gnc_budget_get_name(budget));
@@ -615,9 +628,8 @@
     GncPluginPageBudgetPrivate *priv;
 
     g_return_if_fail (GNC_IS_PLUGIN_PAGE_BUDGET (page));
-    priv = page->priv;
+    priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
 
-
     if (!priv->d) {
         priv->d = gnc_dialog_new(GNC_BUDGET_GUI_FILE, "BudgetOptions");
         gtk_window_set_title(GTK_WINDOW(priv->d), "Budget Options");
@@ -666,7 +678,7 @@
 
 
     g_return_if_fail(GNC_IS_PLUGIN_PAGE_BUDGET(page));
-    priv = page->priv;
+    priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
 
     acct = gnc_tree_view_account_get_account_from_path(
         GNC_TREE_VIEW_ACCOUNT(priv->tree_view), path);
@@ -695,7 +707,7 @@
     GtkTreeSelection *sel;
 
     g_return_if_fail (GNC_IS_PLUGIN_PAGE_BUDGET (page));
-    priv = page->priv;
+    priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
 
     sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(priv->tree_view));
     gtk_tree_selection_selected_foreach(sel, estimate_budget_helper, page);
@@ -760,7 +772,7 @@
     gint i;
 
     g_return_if_fail(GNC_IS_PLUGIN_PAGE_BUDGET(page));
-    priv = page->priv;
+    priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
 
     col_list = priv->period_col_list;
     num_periods_visible = g_list_length(col_list);
@@ -789,7 +801,7 @@
     gint i;
 
     g_return_if_fail(GNC_IS_PLUGIN_PAGE_BUDGET(page));
-    priv = page->priv;
+    priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(page);
 
     num_periods = gnc_budget_get_num_periods(priv->budget);
     col_list = priv->period_col_list;

Modified: gnucash/trunk/src/gnome/gnc-plugin-page-budget.h
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-page-budget.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome/gnc-plugin-page-budget.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -48,15 +48,12 @@
 #define GNC_PLUGIN_PAGE_BUDGET_NAME "gnc-plugin-page-budget"
 
 /* typedefs & structures */
-typedef struct GncPluginPageBudgetPrivate GncPluginPageBudgetPrivate;
-
 typedef struct {
-	GncPluginPage parent;
-	GncPluginPageBudgetPrivate *priv;
+	GncPluginPage gnc_plugin_page;
 } GncPluginPageBudget;
 
 typedef struct {
-    GncPluginPageClass parent;
+    GncPluginPageClass gnc_plugin_page;
 } GncPluginPageBudgetClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/gnome/gnc-plugin-page-register.c
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-page-register.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome/gnc-plugin-page-register.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -294,7 +294,7 @@
 /*                      Data Structures                     */
 /************************************************************/
 
-struct GncPluginPageRegisterPrivate
+typedef struct GncPluginPageRegisterPrivate
 {
 	GNCLedgerDisplay *ledger;
 	GNCSplitReg *gsr;
@@ -322,8 +322,11 @@
 	  time_t start_time;
 	  time_t end_time;
 	} fd;
-};
+} GncPluginPageRegisterPrivate;
 
+#define GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_PAGE_REGISTER, GncPluginPageRegisterPrivate))
+
 static GObjectClass *parent_class = NULL;
 
 /************************************************************/
@@ -360,6 +363,7 @@
 gnc_plugin_page_register_new_common (GNCLedgerDisplay *ledger)
 {
 	GncPluginPageRegister *register_page;
+	GncPluginPageRegisterPrivate *priv;
 	GncPluginPage *plugin_page;
 	GNCSplitReg *gsr;
 	const GList *item;
@@ -373,13 +377,15 @@
 	  item = gnc_gobject_tracking_get_list(GNC_PLUGIN_PAGE_REGISTER_NAME);
 	  for ( ; item; item = g_list_next(item)) {
 	    register_page = (GncPluginPageRegister *)item->data;
-	    if (register_page->priv->gsr == gsr)
+	    priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(register_page);
+	    if (priv->gsr == gsr)
 	      return GNC_PLUGIN_PAGE(register_page);
 	  }
 	}
 
 	register_page = g_object_new (GNC_TYPE_PLUGIN_PAGE_REGISTER, NULL);
-	register_page->priv->ledger = ledger;
+	priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(register_page);
+	priv->ledger = ledger;
 
 	plugin_page = GNC_PLUGIN_PAGE(register_page);
 	label = gnc_plugin_page_register_get_tab_name(plugin_page);
@@ -396,7 +402,7 @@
 			  GNC_PLUGIN_HIDE_MENU_ADDITIONS_NAME,
 			  GINT_TO_POINTER(1));
 
-	register_page->priv->component_manager_id = 0;
+	priv->component_manager_id = 0;
 	return plugin_page;
 }
 
@@ -443,6 +449,8 @@
 	gnc_plugin_class->create_widget   = gnc_plugin_page_register_create_widget;
 	gnc_plugin_class->destroy_widget  = gnc_plugin_page_register_destroy_widget;
 	gnc_plugin_class->window_changed  = gnc_plugin_page_register_window_changed;
+
+	g_type_class_add_private(klass, sizeof(GncPluginPageRegisterPrivate));
 }
 
 static void
@@ -453,8 +461,7 @@
 	GtkActionGroup *action_group;
 	gboolean use_new;
 
-	priv = g_new0 (GncPluginPageRegisterPrivate, 1);
-	plugin_page->priv = priv;
+	priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
 
 	/* Init parent declared variables */
 	parent = GNC_PLUGIN_PAGE(plugin_page);
@@ -495,15 +502,14 @@
 gnc_plugin_page_register_finalize (GObject *object)
 {
 	GncPluginPageRegister *page;
+	GncPluginPageRegisterPrivate *priv;
 
+	g_return_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (object));
+
 	ENTER("object %p", object);
 	page = GNC_PLUGIN_PAGE_REGISTER (object);
+	priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE (page);
 
-	g_return_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (page));
-	g_return_if_fail (page->priv != NULL);
-
-	g_free (page->priv);
-
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 	LEAVE(" ");
 }
@@ -512,11 +518,13 @@
 Account *
 gnc_plugin_page_register_get_account (GncPluginPageRegister *page)
 { 
+	GncPluginPageRegisterPrivate *priv;
 	GNCLedgerDisplayType ledger_type;
 	Account *leader;
 
-	ledger_type = gnc_ledger_display_type (page->priv->ledger);
-	leader = gnc_ledger_display_leader (page->priv->ledger);
+	priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
+	ledger_type = gnc_ledger_display_type (priv->ledger);
+	leader = gnc_ledger_display_leader (priv->ledger);
 
 	if ((ledger_type == LD_SINGLE) || (ledger_type == LD_SUBACCOUNT))
 	  return leader;
@@ -534,7 +542,7 @@
 	GtkAction *action;
 	int i;
 
-	priv = page->priv;
+	priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
 	account = gnc_plugin_page_register_get_account (page);
 	action_group = gnc_plugin_page_get_action_group(GNC_PLUGIN_PAGE(page));
 	gnc_plugin_update_actions(action_group, actions_requiring_account,
@@ -579,7 +587,7 @@
 
 	ENTER("page %p", plugin_page);
 	page = GNC_PLUGIN_PAGE_REGISTER (plugin_page);
-	priv = page->priv;
+	priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
 	if (priv->widget != NULL) {
 		LEAVE("existing widget %p", priv->widget);
 		return priv->widget;
@@ -639,7 +647,7 @@
 
 	ENTER("page %p", plugin_page);
 	page = GNC_PLUGIN_PAGE_REGISTER (plugin_page);
-	priv = page->priv;
+	priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
 
 	if (priv->widget == NULL)
 		return;
@@ -649,14 +657,14 @@
 	  priv->component_manager_id = 0;
 	}
 
-	if (page->priv->sd.dialog) {
-	  gtk_widget_destroy(page->priv->sd.dialog);
-	  memset(&page->priv->sd, 0, sizeof(page->priv->sd));
+	if (priv->sd.dialog) {
+	  gtk_widget_destroy(priv->sd.dialog);
+	  memset(&priv->sd, 0, sizeof(priv->sd));
 	}
 
-	if (page->priv->fd.dialog) {
-	  gtk_widget_destroy(page->priv->fd.dialog);
-	  memset(&page->priv->fd, 0, sizeof(page->priv->fd));
+	if (priv->fd.dialog) {
+	  gtk_widget_destroy(priv->fd.dialog);
+	  memset(&priv->fd, 0, sizeof(priv->fd));
 	}
 
 	gtk_widget_hide(priv->widget);
@@ -670,17 +678,20 @@
 					 GtkWidget *window)
 {
 	GncPluginPageRegister *page;
+	GncPluginPageRegisterPrivate *priv;
 	
 	g_return_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (plugin_page));
 
 	page = GNC_PLUGIN_PAGE_REGISTER(plugin_page);
-	page->priv->gsr->window = 
+	priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
+	priv->gsr->window = 
 	  GTK_WIDGET(gnc_window_get_gtk_window(GNC_WINDOW(window)));
 }
 	
 static gchar *
 gnc_plugin_page_register_get_tab_name (GncPluginPage *plugin_page)
 {
+	GncPluginPageRegisterPrivate *priv;
 	GNCLedgerDisplayType ledger_type;
   	GNCLedgerDisplay *ld;
 	SplitRegister *reg;
@@ -688,7 +699,8 @@
 
 	g_return_val_if_fail (GNC_IS_PLUGIN_PAGE_REGISTER (plugin_page), _("unknown"));
 
-	ld = GNC_PLUGIN_PAGE_REGISTER (plugin_page)->priv->ledger;
+	priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
+	ld = priv->ledger;
 	reg = gnc_ledger_display_get_split_register (ld);
 	ledger_type = gnc_ledger_display_type (ld);
 	leader = gnc_ledger_display_leader (ld);
@@ -740,16 +752,18 @@
 					   gint response,
 					   GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
+
   g_return_if_fail(GTK_IS_DIALOG(dialog));
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
 
   ENTER(" ");
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
   if (response != GTK_RESPONSE_OK) {
     /* Restore the original sort order */
-    gnc_split_reg_set_sort_type(page->priv->gsr,
-				page->priv->sd.original_sort_type);
+    gnc_split_reg_set_sort_type(priv->gsr, priv->sd.original_sort_type);
   }
-  page->priv->sd.dialog = NULL;
+  priv->sd.dialog = NULL;
   gtk_widget_destroy(GTK_WIDGET(dialog));
   LEAVE(" ");
 }
@@ -767,16 +781,18 @@
 gnc_plugin_page_register_sort_button_cb (GtkToggleButton *button,
 					 GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
   const gchar *name;
   SortType type;
 
   g_return_if_fail(GTK_IS_TOGGLE_BUTTON(button));
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
 
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
   name = gtk_widget_get_name(GTK_WIDGET(button));
   ENTER("button %s(%p), page %p", name, button, page);
   type = SortTypefromString(name);
-  gnc_split_reg_set_sort_type(page->priv->gsr, type);
+  gnc_split_reg_set_sort_type(priv->gsr, type);
   LEAVE(" ");
 }
 
@@ -804,7 +820,7 @@
   Query *query;
 
   ENTER(" ");
-  priv = page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
   query = gnc_ledger_display_get_query( priv->ledger );
   if (!query) {
     LEAVE("no query found");
@@ -850,7 +866,7 @@
   Query *query;
 
   ENTER(" ");
-  priv = page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
   if (!priv->ledger) {
     LEAVE("no ledger");
     return;
@@ -899,6 +915,7 @@
 gnc_plugin_page_register_filter_status_one_cb (GtkToggleButton *button,
 					       GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
   const gchar *name;
   gint i, value;
 
@@ -918,10 +935,11 @@
   }
 
   /* Compute the new match status */
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
   if (gtk_toggle_button_get_active(button))
-    page->priv->fd.cleared_match |= value;
+    priv->fd.cleared_match |= value;
   else
-    page->priv->fd.cleared_match &= ~value;
+    priv->fd.cleared_match &= ~value;
   gnc_ppr_update_status_query(page);
   LEAVE(" ");
 }
@@ -940,6 +958,7 @@
 gnc_plugin_page_register_filter_status_all_cb (GtkButton *button,
 					       GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
   GtkWidget *widget;
   gint i;
 
@@ -958,7 +977,8 @@
   }
 
   /* Set the requested status */
-  page->priv->fd.cleared_match = CLEARED_ALL;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
+  priv->fd.cleared_match = CLEARED_ALL;
   gnc_ppr_update_status_query(page);
   LEAVE(" ");
 }
@@ -978,36 +998,38 @@
 static void
 get_filter_times(GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
   GtkWidget *button, *today, *gde;
   time_t time_val;
 
-  button = gnc_glade_lookup_widget(page->priv->fd.dialog, "start_date_choose");
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
+  button = gnc_glade_lookup_widget(priv->fd.dialog, "start_date_choose");
   if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))) {
     gde = gnc_glade_lookup_widget(button, "start_date");
     time_val = gnc_date_edit_get_date(GNC_DATE_EDIT(gde));
     time_val = gnc_timet_get_day_start(time_val);
-    page->priv->fd.start_time = time_val;
+    priv->fd.start_time = time_val;
   } else {
-    today = gnc_glade_lookup_widget(page->priv->fd.dialog, "start_date_today");
+    today = gnc_glade_lookup_widget(priv->fd.dialog, "start_date_today");
     if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(today))) {
-      page->priv->fd.start_time = gnc_timet_get_today_start();
+      priv->fd.start_time = gnc_timet_get_today_start();
     } else {
-      page->priv->fd.start_time = 0;
+      priv->fd.start_time = 0;
     }
   }
 
-  button = gnc_glade_lookup_widget(page->priv->fd.dialog, "end_date_choose");
+  button = gnc_glade_lookup_widget(priv->fd.dialog, "end_date_choose");
   if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))) {
     gde = gnc_glade_lookup_widget(button, "end_date");
     time_val = gnc_date_edit_get_date(GNC_DATE_EDIT(gde));
     time_val = gnc_timet_get_day_end(time_val);
-    page->priv->fd.end_time = time_val;
+    priv->fd.end_time = time_val;
   } else {
-    today = gnc_glade_lookup_widget(page->priv->fd.dialog, "end_date_today");
+    today = gnc_glade_lookup_widget(priv->fd.dialog, "end_date_today");
     if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(today))) {
-      page->priv->fd.end_time = gnc_timet_get_today_end();
+      priv->fd.end_time = gnc_timet_get_today_end();
     } else {
-      page->priv->fd.end_time = 0;
+      priv->fd.end_time = 0;
     }
   }
 }
@@ -1032,6 +1054,7 @@
 gnc_plugin_page_register_filter_select_range_cb (GtkRadioButton *button,
 						 GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
   GtkWidget *table;
   gboolean active;
 
@@ -1039,14 +1062,15 @@
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
 
   ENTER("(button %p, page %p)", button, page);
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
   table = gnc_glade_lookup_widget(GTK_WIDGET(button), "select_range_table");
   active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button));
   gtk_widget_set_sensitive(table, active);
   if (active) {
     get_filter_times(page);
   } else {
-    page->priv->fd.start_time = 0;
-    page->priv->fd.end_time = 0;
+    priv->fd.start_time = 0;
+    priv->fd.end_time = 0;
   }
   gnc_ppr_update_date_query(page);
   LEAVE(" ");
@@ -1184,19 +1208,22 @@
 					     gint response,
 					     GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
+
   g_return_if_fail(GTK_IS_DIALOG(dialog));
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
 
   ENTER(" ");
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
   if (response != GTK_RESPONSE_OK) {
     /* Remove the old status match */
-    page->priv->fd.cleared_match = page->priv->fd.original_cleared_match;
+    priv->fd.cleared_match = priv->fd.original_cleared_match;
     gnc_ppr_update_status_query(page);
-    page->priv->fd.start_time = page->priv->fd.original_start_time;
-    page->priv->fd.end_time = page->priv->fd.original_end_time;
+    priv->fd.start_time = priv->fd.original_start_time;
+    priv->fd.end_time = priv->fd.original_end_time;
     gnc_ppr_update_date_query(page);
   }
-  page->priv->fd.dialog = NULL;
+  priv->fd.dialog = NULL;
   gtk_widget_destroy(GTK_WIDGET(dialog));
   LEAVE(" ");
 }
@@ -1373,7 +1400,7 @@
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page));
 
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
   reg = gnc_ledger_display_get_split_register (priv->ledger);
   split    = gnc_split_register_get_current_split(reg);
   trans    = xaccSplitGetParent(split);
@@ -1398,10 +1425,13 @@
 gnc_plugin_page_register_cmd_cut (GtkAction *action,
 				  GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
+
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
 
   ENTER("(action %p, page %p)", action, page);
-  gnucash_register_cut_clipboard(page->priv->gsr->reg);
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
+  gnucash_register_cut_clipboard(priv->gsr->reg);
   LEAVE("");
 }
 
@@ -1410,10 +1440,13 @@
 gnc_plugin_page_register_cmd_copy (GtkAction *action,
 				   GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
+
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
 
   ENTER("(action %p, page %p)", action, page);
-  gnucash_register_copy_clipboard(page->priv->gsr->reg);
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
+  gnucash_register_copy_clipboard(priv->gsr->reg);
   LEAVE("");
 }
 
@@ -1422,10 +1455,13 @@
 gnc_plugin_page_register_cmd_paste (GtkAction *action,
 				    GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
+
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
 
   ENTER("(action %p, page %p)", action, page);
-  gnucash_register_paste_clipboard(page->priv->gsr->reg);
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
+  gnucash_register_paste_clipboard(priv->gsr->reg);
   LEAVE("");
 }
 
@@ -1450,12 +1486,14 @@
 gnc_plugin_page_register_cmd_cut_transaction (GtkAction *action,
 					      GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
   SplitRegister *reg;
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
 
   ENTER("(action %p, page %p)", action, page);
-  reg = gnc_ledger_display_get_split_register(page->priv->ledger);
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
+  reg = gnc_ledger_display_get_split_register(priv->ledger);
   gnc_split_register_cut_current(reg);
   LEAVE(" ");
 }
@@ -1465,12 +1503,14 @@
 gnc_plugin_page_register_cmd_copy_transaction (GtkAction *action,
 					       GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
   SplitRegister *reg;
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
 
   ENTER("(action %p, page %p)", action, page);
-  reg = gnc_ledger_display_get_split_register(page->priv->ledger);
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
+  reg = gnc_ledger_display_get_split_register(priv->ledger);
   gnc_split_register_copy_current(reg);
   LEAVE(" ");
 }
@@ -1480,12 +1520,14 @@
 gnc_plugin_page_register_cmd_paste_transaction (GtkAction *action,
 						GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
   SplitRegister *reg;
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
 
   ENTER("(action %p, page %p)", action, page);
-  reg = gnc_ledger_display_get_split_register(page->priv->ledger);
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
+  reg = gnc_ledger_display_get_split_register(priv->ledger);
   gnc_split_register_paste_current(reg);
   LEAVE(" ");
 }
@@ -1495,6 +1537,7 @@
 gnc_plugin_page_register_cmd_void_transaction (GtkAction *action,
 					       GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
   GtkWidget *dialog, *entry;
   SplitRegister *reg;
   Transaction *trans;
@@ -1506,7 +1549,8 @@
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
 
-  reg = gnc_ledger_display_get_split_register(page->priv->ledger);
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
+  reg = gnc_ledger_display_get_split_register(priv->ledger);
   trans = gnc_split_register_get_current_trans(reg);
   if (trans == NULL)
     return;
@@ -1541,15 +1585,16 @@
 gnc_plugin_page_register_cmd_unvoid_transaction (GtkAction *action,
 						 GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
   SplitRegister *reg;
   Transaction *trans;
 
-
   ENTER("(action %p, page %p)", action, page);
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
 
-  reg = gnc_ledger_display_get_split_register(page->priv->ledger);
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
+  reg = gnc_ledger_display_get_split_register(priv->ledger);
   trans = gnc_split_register_get_current_trans(reg);
   if (!xaccTransHasSplitsInState(trans, VREC)) {
     gnc_error_dialog(NULL, _("This transaction is not voided."));
@@ -1564,6 +1609,7 @@
 gnc_plugin_page_register_cmd_reverse_transaction (GtkAction *action,
 						  GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
   SplitRegister *reg;
   GNCSplitReg *gsr;
   Transaction *trans, *new_trans;
@@ -1575,7 +1621,8 @@
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
 
-  reg = gnc_ledger_display_get_split_register(page->priv->ledger);
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
+  reg = gnc_ledger_display_get_split_register(priv->ledger);
   trans = gnc_split_register_get_current_trans(reg);
   if (trans == NULL)
     return;
@@ -1617,6 +1664,7 @@
 gnc_plugin_page_register_cmd_view_sort_by (GtkAction *action,
 					   GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
   GtkWidget *dialog, *button;
   GladeXML *xml;
   SortType sort;
@@ -1626,8 +1674,9 @@
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
   ENTER("(action %p, page %p)", action, page);
 
-  if (page->priv->sd.dialog) {
-    gtk_window_present(GTK_WINDOW(page->priv->sd.dialog));
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
+  if (priv->sd.dialog) {
+    gtk_window_present(GTK_WINDOW(priv->sd.dialog));
     LEAVE("existing dialog");
     return;
   }
@@ -1635,7 +1684,7 @@
   /* Create the dialog */
   xml = gnc_glade_xml_new ("register.glade", "Sort By");
   dialog = glade_xml_get_widget (xml, "Sort By");
-  page->priv->sd.dialog = dialog;
+  priv->sd.dialog = dialog;
   gtk_window_set_transient_for(GTK_WINDOW(dialog),
 			       GTK_WINDOW(GNC_PLUGIN_PAGE(page)->window));
   title = g_strdup_printf(N_("Sort %s by..."),
@@ -1644,12 +1693,12 @@
   g_free(title);
 
   /* Set the button for the current sort order */
-  sort = gnc_split_reg_get_sort_type(page->priv->gsr);
+  sort = gnc_split_reg_get_sort_type(priv->gsr);
   name = SortTypeasString(sort);
   button = glade_xml_get_widget (xml, name);
   DEBUG("current sort %d, button %s(%p)", sort, name, button);
   gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE);
-  page->priv->sd.original_sort_type = sort;
+  priv->sd.original_sort_type = sort;
 
   /* Wire it up */
   glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func,
@@ -1664,6 +1713,7 @@
 gnc_plugin_page_register_cmd_view_filter_by (GtkAction *action,
 					     GncPluginPageRegister *page)
 {
+  GncPluginPageRegisterPrivate *priv;
   GtkWidget *dialog, *toggle, *button, *start_date, *end_date, *table;
   time_t start_time, end_time, time_val;
   GladeXML *xml;
@@ -1675,8 +1725,9 @@
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
   ENTER("(action %p, page %p)", action, page);
 
-  if (page->priv->fd.dialog) {
-    gtk_window_present(GTK_WINDOW(page->priv->fd.dialog));
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
+  if (priv->fd.dialog) {
+    gtk_window_present(GTK_WINDOW(priv->fd.dialog));
     LEAVE("existing dialog");
     return;
   }
@@ -1684,7 +1735,7 @@
   /* Create the dialog */
   xml = gnc_glade_xml_new ("register.glade", "Filter By");
   dialog = glade_xml_get_widget (xml, "Filter By");
-  page->priv->fd.dialog = dialog;
+  priv->fd.dialog = dialog;
   gtk_window_set_transient_for(GTK_WINDOW(dialog),
 			       GTK_WINDOW(GNC_PLUGIN_PAGE(page)->window));
   title = g_strdup_printf(N_("Filter %s by..."),
@@ -1695,19 +1746,19 @@
   /* Set the check buttons for the current status */
   for (i = 0; status_actions[i].action_name; i++) {
     toggle = glade_xml_get_widget (xml, status_actions[i].action_name);
-    value = page->priv->fd.cleared_match & status_actions[i].value;
+    value = priv->fd.cleared_match & status_actions[i].value;
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), value);
   }
-  page->priv->fd.original_cleared_match = page->priv->fd.cleared_match;
+  priv->fd.original_cleared_match = priv->fd.cleared_match;
 
   /* Set the date info */
   button = glade_xml_get_widget(xml, "filter_show_range");
-  query = gnc_ledger_display_get_query (page->priv->ledger);
+  query = gnc_ledger_display_get_query (priv->ledger);
   xaccQueryGetDateMatchTT(query, &start_time, &end_time);
-  page->priv->fd.original_start_time = start_time;
-  page->priv->fd.start_time = start_time;
-  page->priv->fd.original_end_time = end_time;
-  page->priv->fd.end_time = end_time;
+  priv->fd.original_start_time = start_time;
+  priv->fd.start_time = start_time;
+  priv->fd.original_end_time = end_time;
+  priv->fd.end_time = end_time;
 
   gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),
 			       start_time || end_time);
@@ -1787,7 +1838,7 @@
   g_return_if_fail(GTK_IS_RADIO_ACTION(current));
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page));
 
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
   value = gtk_radio_action_get_current_value(current);
   gnc_split_reg_change_style(priv->gsr, value);
 
@@ -1810,7 +1861,7 @@
   g_return_if_fail(GTK_IS_ACTION(action));
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page));
 
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
   reg = gnc_ledger_display_get_split_register (priv->ledger);
 
   use_double_line =  gtk_toggle_action_get_active (action);
@@ -1898,7 +1949,7 @@
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page));
 
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
   gnc_split_reg_enter(priv->gsr, FALSE);
   LEAVE(" ");
 }
@@ -1913,7 +1964,7 @@
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page));
 
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
   gnc_split_register_cancel_cursor_trans_changes
     (gnc_ledger_display_get_split_register(priv->ledger));
   LEAVE(" ");
@@ -1929,7 +1980,7 @@
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page));
 
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
   gsr_default_delete_handler(priv->gsr, NULL);
   LEAVE(" ");
 
@@ -1946,7 +1997,7 @@
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page));
 
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
   reg = gnc_ledger_display_get_split_register (priv->ledger);
 
   if (gnc_split_register_save (reg, TRUE))
@@ -1965,7 +2016,7 @@
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page));
 
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
   gnc_split_register_duplicate_current
     (gnc_ledger_display_get_split_register(priv->ledger));
   LEAVE(" ");
@@ -1981,7 +2032,7 @@
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page));
 
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
   gsr_default_reinit_handler(priv->gsr, NULL);
   LEAVE(" ");
 }
@@ -1998,7 +2049,7 @@
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page));
 
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
   reg = gnc_ledger_display_get_split_register (priv->ledger);
   expand = gtk_toggle_action_get_active (action);
   gnc_split_register_expand_current_trans (reg, expand);
@@ -2016,7 +2067,7 @@
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page));
 
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
   reg = gnc_ledger_display_get_split_register (priv->ledger);
 
   /* XXX Ignore the return value -- we don't care if this succeeds */
@@ -2042,7 +2093,7 @@
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page));
 
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
   window = GNC_PLUGIN_PAGE (plugin_page)->window;
   if (window == NULL) {
     LEAVE("no window");
@@ -2108,7 +2159,7 @@
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page));
 
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
   gsr_default_schedule_handler(priv->gsr, NULL);
   LEAVE(" ");
 }
@@ -2127,7 +2178,7 @@
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
 
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
   query = gnc_ledger_display_get_query( priv->ledger );
   if (query == NULL) {
     LEAVE("no query found");
@@ -2164,7 +2215,7 @@
 
   ENTER("(action %p, plugin_page %p)", action, plugin_page);
 
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
   query = gnc_ledger_display_get_query( priv->ledger );
   if (!query) {
     LEAVE("no query found");
@@ -2191,6 +2242,7 @@
 gnc_plugin_page_register_cmd_account_report (GtkAction *action,
 					     GncPluginPageRegister *plugin_page)
 {
+  GncPluginPageRegisterPrivate *priv;
   GncMainWindow *window;
   int id;
 
@@ -2199,7 +2251,8 @@
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page));
 
   window = GNC_MAIN_WINDOW(GNC_PLUGIN_PAGE(plugin_page)->window);
-  id = report_helper (plugin_page->priv->ledger, NULL, NULL);
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
+  id = report_helper (priv->ledger, NULL, NULL);
   if (id >= 0)
     gnc_main_window_open_report(id, window);
   LEAVE(" ");
@@ -2221,7 +2274,7 @@
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page));
 
-  priv = plugin_page->priv;
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(plugin_page);
   reg = gnc_ledger_display_get_split_register (priv->ledger);
 
   split = gnc_split_register_get_current_split (reg);
@@ -2259,7 +2312,7 @@
 	g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page));
 
 	page = GNC_PLUGIN_PAGE_REGISTER (plugin_page);
-	priv = page->priv;
+	priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
 	priv->lines_opt_section = lines_opt_section;
 	priv->lines_opt_name 	= lines_opt_name;
 	priv->lines_default  	= lines_default;
@@ -2275,7 +2328,7 @@
 	g_return_val_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(plugin_page), NULL);
 
 	page = GNC_PLUGIN_PAGE_REGISTER (plugin_page);
-	priv = page->priv;
+	priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
 
 	return priv->gsr;
 }
@@ -2298,7 +2351,7 @@
 	}
 
 	/* Get the text from the ledger */
-	priv = register_page->priv;
+	priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(register_page);
 	reg = gnc_ledger_display_get_split_register(priv->ledger);
 	help = gnc_table_get_help(reg->table);
 	gnc_window_set_status(window, GNC_PLUGIN_PAGE(register_page), help);
@@ -2309,6 +2362,7 @@
 gnc_plugin_page_register_refresh_cb (GHashTable *changes, gpointer user_data)
 {
   GncPluginPageRegister *page = user_data;
+  GncPluginPageRegisterPrivate *priv;
 
   g_return_if_fail(GNC_IS_PLUGIN_PAGE_REGISTER(page));
 
@@ -2316,6 +2370,7 @@
   if (changes)
     return;
 
-  gnucash_register_refresh_from_gconf(page->priv->gsr->reg);
-  gtk_widget_queue_draw(page->priv->widget);
+  priv = GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(page);
+  gnucash_register_refresh_from_gconf(priv->gsr->reg);
+  gtk_widget_queue_draw(priv->widget);
 }

Modified: gnucash/trunk/src/gnome/gnc-plugin-page-register.h
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-page-register.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome/gnc-plugin-page-register.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -54,16 +54,12 @@
 #define GNC_PLUGIN_PAGE_REGISTER_NAME "GncPluginPageRegister"
 
 /* typedefs & structures */
-typedef struct GncPluginPageRegisterPrivate GncPluginPageRegisterPrivate;
-
 typedef struct {
-	GncPluginPage parent;
-
-	GncPluginPageRegisterPrivate *priv;
+	GncPluginPage gnc_plugin_page;
 } GncPluginPageRegister;
 
 typedef struct {
-	GncPluginPageClass parent;
+	GncPluginPageClass gnc_plugin_page;
 } GncPluginPageRegisterClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/gnome/gnc-plugin-register.c
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-register.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome/gnc-plugin-register.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -53,11 +53,14 @@
 };
 static guint gnc_plugin_n_actions = G_N_ELEMENTS (gnc_plugin_actions);
 
-struct GncPluginRegisterPrivate
+typedef struct GncPluginRegisterPrivate
 {
 	gpointer dummy;
-};
+} GncPluginRegisterPrivate;
 
+#define GNC_PLUGIN_REGISTER_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_REGISTER, GncPluginRegisterPrivate))
+
 static GObjectClass *parent_class = NULL;
 static QofLogModule log_module = GNC_MOD_GUI;
 
@@ -155,27 +158,26 @@
 
 	plugin_class->gconf_section = GCONF_REGISTER_SECTION;
 	plugin_class->gconf_notifications = gnc_plugin_register_gconf_changed;
+
+	g_type_class_add_private(klass, sizeof(GncPluginRegisterPrivate));
 }
 
 static void
 gnc_plugin_register_init (GncPluginRegister *plugin)
 {
-	plugin->priv = g_new0 (GncPluginRegisterPrivate, 1);
 }
 
 static void
 gnc_plugin_register_finalize (GObject *object)
 {
 	GncPluginRegister *plugin;
+	GncPluginRegisterPrivate *priv;
 
 	g_return_if_fail (GNC_IS_PLUGIN_REGISTER (object));
 
 	plugin = GNC_PLUGIN_REGISTER (object);
+	priv = GNC_PLUGIN_REGISTER_GET_PRIVATE(plugin);
 
-	g_return_if_fail (plugin->priv != NULL);
-
-	g_free (plugin->priv);
-
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 

Modified: gnucash/trunk/src/gnome/gnc-plugin-register.h
===================================================================
--- gnucash/trunk/src/gnome/gnc-plugin-register.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome/gnc-plugin-register.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -42,16 +42,12 @@
 #define GNC_PLUGIN_REGISTER_NAME "gnc-plugin-register"
 
 /* typedefs & structures */
-typedef struct GncPluginRegisterPrivate GncPluginRegisterPrivate;
-
 typedef struct {
-	GncPlugin parent;
-
-	GncPluginRegisterPrivate *priv;
+	GncPlugin gnc_plugin;
 } GncPluginRegister;
 
 typedef struct {
-	GncPluginClass parent;
+	GncPluginClass gnc_plugin;
 } GncPluginRegisterClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/gnome/reconcile-list.c
===================================================================
--- gnucash/trunk/src/gnome/reconcile-list.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome/reconcile-list.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -84,7 +84,7 @@
       (GInstanceInitFunc) gnc_reconcile_list_init
     };
 
-    gnc_reconcile_list_type = g_type_register_static (GTK_TYPE_GNC_QUERY_LIST,
+    gnc_reconcile_list_type = g_type_register_static (GNC_TYPE_QUERY_LIST,
 						      "GncReconcileList",
 						      &gnc_reconcile_list_info, 0);
   }

Modified: gnucash/trunk/src/gnome-utils/gnc-date-format.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-date-format.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-date-format.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -48,6 +48,8 @@
   LAST_SIGNAL
 };
 
+typedef struct _GNCDateFormatPriv GNCDateFormatPriv;
+
 struct _GNCDateFormatPriv {
   GtkWidget*	format_combobox;
 
@@ -67,6 +69,9 @@
   GtkWidget*	sample_label;
 };
 
+#define GNC_DATE_FORMAT_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_DATE_FORMAT, GNCDateFormatPriv))
+
 static guint date_format_signals [LAST_SIGNAL] = { 0 };
 
 
@@ -120,6 +125,10 @@
 
   parent_class = g_type_class_peek_parent(klass);
 
+  gobject_class->finalize = gnc_date_format_finalize;
+
+  g_type_class_add_private(klass, sizeof(GNCDateFormatPriv));
+
   date_format_signals [FORMAT_CHANGED] =
     g_signal_new ("format_changed",
 		  G_OBJECT_CLASS_TYPE (gobject_class),
@@ -130,41 +139,39 @@
 		  g_cclosure_marshal_VOID__VOID,
 		  G_TYPE_NONE,
 		  0);
-
-  gobject_class->finalize = gnc_date_format_finalize;
 }
 
 static void
 gnc_date_format_init (GNCDateFormat *gdf)
 {
+  GNCDateFormatPriv *priv;
   GladeXML *xml;
   GtkWidget *dialog, *table;
 
   g_return_if_fail(gdf);
   g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
 
-  gdf->priv = g_new0(GNCDateFormatPriv, 1);
-
   /* Open up the Glade and set the signals */
   xml = gnc_glade_xml_new("gnc-date-format.glade", "GNC Date Format");
   glade_xml_signal_autoconnect_full(xml, gnc_glade_autoconnect_full_func, gdf);
 
   /* pull in all the child widgets */
-  gdf->priv->label = glade_xml_get_widget(xml, "widget_label");
-  gdf->priv->format_combobox = glade_xml_get_widget(xml, "format_combobox");
+  priv =  GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+  priv->label = glade_xml_get_widget(xml, "widget_label");
+  priv->format_combobox = glade_xml_get_widget(xml, "format_combobox");
 
-  gdf->priv->months_label = glade_xml_get_widget(xml, "months_label");
-  gdf->priv->months_number = glade_xml_get_widget(xml, "month_number_button");
-  gdf->priv->months_abbrev = glade_xml_get_widget(xml, "month_abbrev_button");
-  gdf->priv->months_name = glade_xml_get_widget(xml, "month_name_button");
+  priv->months_label = glade_xml_get_widget(xml, "months_label");
+  priv->months_number = glade_xml_get_widget(xml, "month_number_button");
+  priv->months_abbrev = glade_xml_get_widget(xml, "month_abbrev_button");
+  priv->months_name = glade_xml_get_widget(xml, "month_name_button");
 
-  gdf->priv->years_label = glade_xml_get_widget(xml, "years_label");
-  gdf->priv->years_button = glade_xml_get_widget(xml, "years_button");
+  priv->years_label = glade_xml_get_widget(xml, "years_label");
+  priv->years_button = glade_xml_get_widget(xml, "years_button");
 
-  gdf->priv->custom_label = glade_xml_get_widget(xml, "format_label");
-  gdf->priv->custom_entry = glade_xml_get_widget(xml, "format_entry");
+  priv->custom_label = glade_xml_get_widget(xml, "format_label");
+  priv->custom_entry = glade_xml_get_widget(xml, "format_entry");
 
-  gdf->priv->sample_label = glade_xml_get_widget(xml, "sample_label");
+  priv->sample_label = glade_xml_get_widget(xml, "sample_label");
 
   /* Set initial format to gnucash default */
   gnc_date_format_set_format(gdf, qof_date_format_get());
@@ -186,14 +193,14 @@
 gnc_date_format_finalize (GObject *object)
 {
   GNCDateFormat *gdf;
+  GNCDateFormatPriv *priv;
 
   g_return_if_fail(object != NULL);
   g_return_if_fail(GNC_IS_DATE_FORMAT(object));
 
   gdf = GNC_DATE_FORMAT(object);
+  priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
 
-  g_free(gdf->priv);
-
   if (G_OBJECT_CLASS(parent_class)->finalize)
     (* G_OBJECT_CLASS(parent_class)->finalize) (object);
 }
@@ -218,9 +225,10 @@
 {
   GtkWidget *widget = gnc_date_format_new_with_label(NULL);
   GNCDateFormat *gdf = GNC_DATE_FORMAT(widget);
+  GNCDateFormatPriv *priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
 
-  gtk_widget_destroy(gdf->priv->label);
-  gdf->priv->label = NULL;
+  gtk_widget_destroy(priv->label);
+  priv->label = NULL;
 
   return widget;
 }
@@ -238,11 +246,13 @@
 gnc_date_format_new_with_label (const char *label)
 {
   GNCDateFormat *gdf;
+  GNCDateFormatPriv *priv;
 
   gdf = g_object_new(GNC_TYPE_DATE_FORMAT, NULL);
+  priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
 
   if (label)
-    gtk_label_set_text(GTK_LABEL(gdf->priv->label), label);
+    gtk_label_set_text(GTK_LABEL(priv->label), label);
 
   gnc_date_format_compute_format(gdf);
   return GTK_WIDGET(gdf);
@@ -251,39 +261,47 @@
 void
 gnc_date_format_set_format (GNCDateFormat *gdf, QofDateFormat format)
 {
+  GNCDateFormatPriv *priv;
+
   g_return_if_fail(gdf);
   g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
 
-  gtk_combo_box_set_active(GTK_COMBO_BOX(gdf->priv->format_combobox), format);
+  priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+  gtk_combo_box_set_active(GTK_COMBO_BOX(priv->format_combobox), format);
   gnc_date_format_compute_format(gdf);
 }
 
 QofDateFormat
 gnc_date_format_get_format (GNCDateFormat *gdf)
 {
+  GNCDateFormatPriv *priv;
+
   g_return_val_if_fail (gdf, QOF_DATE_FORMAT_LOCALE);
   g_return_val_if_fail (GNC_IS_DATE_FORMAT(gdf), QOF_DATE_FORMAT_LOCALE);
 
-  return gtk_combo_box_get_active(GTK_COMBO_BOX(gdf->priv->format_combobox));
+  priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+  return gtk_combo_box_get_active(GTK_COMBO_BOX(priv->format_combobox));
 }
 
 void
 gnc_date_format_set_months (GNCDateFormat *gdf, GNCDateMonthFormat months)
 {
+  GNCDateFormatPriv *priv;
   GtkWidget *button = NULL;
 
   g_return_if_fail(gdf);
   g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
 
+  priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
   switch (months) {
   case GNCDATE_MONTH_NUMBER:
-    button = gdf->priv->months_number;
+    button = priv->months_number;
     break;
   case GNCDATE_MONTH_ABBREV:
-    button = gdf->priv->months_abbrev;
+    button = priv->months_abbrev;
     break;
   case GNCDATE_MONTH_NAME:
-    button = gdf->priv->months_name;
+    button = priv->months_name;
     break;
   default:
     break;
@@ -298,14 +316,17 @@
 GNCDateMonthFormat
 gnc_date_format_get_months (GNCDateFormat *gdf)
 {
+  GNCDateFormatPriv *priv;
+
   g_return_val_if_fail(gdf, GNCDATE_MONTH_NUMBER);
   g_return_val_if_fail(GNC_IS_DATE_FORMAT(gdf), GNCDATE_MONTH_NUMBER);
 
-  if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gdf->priv->months_number)))
+  priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+  if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->months_number)))
     return GNCDATE_MONTH_NUMBER;
-  if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gdf->priv->months_abbrev)))
+  if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->months_abbrev)))
     return GNCDATE_MONTH_ABBREV;
-  if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gdf->priv->months_name)))
+  if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->months_name)))
     return GNCDATE_MONTH_ABBREV;
 
   /* We should never reach this point */
@@ -316,10 +337,13 @@
 void
 gnc_date_format_set_years (GNCDateFormat *gdf, gboolean include_century)
 {
+  GNCDateFormatPriv *priv;
+
   g_return_if_fail(gdf);
   g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
 
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gdf->priv->years_button),
+  priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->years_button),
 			       include_century);
   gnc_date_format_compute_format(gdf);
 }
@@ -327,32 +351,41 @@
 gboolean
 gnc_date_format_get_years (GNCDateFormat *gdf)
 {
+  GNCDateFormatPriv *priv;
+
   g_return_val_if_fail(gdf, FALSE);
   g_return_val_if_fail(GNC_IS_DATE_FORMAT(gdf), FALSE);
 
-  return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gdf->priv->years_button));
+  priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+  return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->years_button));
 }
 
 void
 gnc_date_format_set_custom (GNCDateFormat *gdf, const char *format)
 {
+  GNCDateFormatPriv *priv;
+
   g_return_if_fail(gdf);
   g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
 
   if (format == NULL || *format == '\0')
     return;
 
-  gtk_entry_set_text(GTK_ENTRY(gdf->priv->custom_entry), format);
+  priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+  gtk_entry_set_text(GTK_ENTRY(priv->custom_entry), format);
   gnc_date_format_compute_format(gdf);
 }
 
 const char *
 gnc_date_format_get_custom (GNCDateFormat *gdf)
 {
+  GNCDateFormatPriv *priv;
+
   g_return_val_if_fail(gdf, "");
   g_return_val_if_fail(GNC_IS_DATE_FORMAT(gdf), "");
 
-  return gtk_entry_get_text(GTK_ENTRY(gdf->priv->custom_entry));
+  priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+  return gtk_entry_get_text(GTK_ENTRY(priv->custom_entry));
 }
 
 /**
@@ -367,11 +400,14 @@
 void
 gnc_date_format_editable_enters (GnomeDialog *dialog, GNCDateFormat *gdf)
 {
+  GNCDateFormatPriv *priv;
+
   g_return_if_fail(dialog);
   g_return_if_fail(gdf);
   g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
 
-  gtk_entry_set_activates_default(GTK_ENTRY(gdf->priv->custom_entry), TRUE);
+  priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+  gtk_entry_set_activates_default(GTK_ENTRY(priv->custom_entry), TRUE);
 }
 
 void
@@ -385,29 +421,39 @@
 static void
 gnc_date_format_enable_month (GNCDateFormat *gdf, gboolean sensitive)
 {
-  gtk_widget_set_sensitive(gdf->priv->months_label, sensitive);
-  gtk_widget_set_sensitive(gdf->priv->months_number, sensitive);
-  gtk_widget_set_sensitive(gdf->priv->months_abbrev, sensitive);
-  gtk_widget_set_sensitive(gdf->priv->months_name, sensitive);
+  GNCDateFormatPriv *priv;
+
+  priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+  gtk_widget_set_sensitive(priv->months_label, sensitive);
+  gtk_widget_set_sensitive(priv->months_number, sensitive);
+  gtk_widget_set_sensitive(priv->months_abbrev, sensitive);
+  gtk_widget_set_sensitive(priv->months_name, sensitive);
 }
 
 static void
 gnc_date_format_enable_year (GNCDateFormat *gdf, gboolean sensitive)
 {
-  gtk_widget_set_sensitive(gdf->priv->years_label, sensitive);
-  gtk_widget_set_sensitive(gdf->priv->years_button, sensitive);
+  GNCDateFormatPriv *priv;
+
+  priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+  gtk_widget_set_sensitive(priv->years_label, sensitive);
+  gtk_widget_set_sensitive(priv->years_button, sensitive);
 }
 
 static void
 gnc_date_format_enable_format (GNCDateFormat *gdf, gboolean sensitive)
 {
-  gtk_widget_set_sensitive(gdf->priv->custom_label, sensitive);
-  gtk_widget_set_sensitive(gdf->priv->custom_entry, sensitive);
+  GNCDateFormatPriv *priv;
+
+  priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
+  gtk_widget_set_sensitive(priv->custom_label, sensitive);
+  gtk_widget_set_sensitive(priv->custom_entry, sensitive);
 }
 
 void
 gnc_date_format_refresh (GNCDateFormat *gdf)
 {
+  GNCDateFormatPriv *priv;
   int sel_option;
   gboolean enable_year, enable_month, enable_custom, check_modifiers;
   static gchar *format, *c;
@@ -418,12 +464,13 @@
   g_return_if_fail(gdf);
   g_return_if_fail(GNC_IS_DATE_FORMAT(gdf));
 
+  priv = GNC_DATE_FORMAT_GET_PRIVATE(gdf);
   sel_option =
-    gtk_combo_box_get_active(GTK_COMBO_BOX(gdf->priv->format_combobox));
+    gtk_combo_box_get_active(GTK_COMBO_BOX(priv->format_combobox));
 
   switch (sel_option) {
    case QOF_DATE_FORMAT_CUSTOM:
-    format = g_strdup(gtk_entry_get_text(GTK_ENTRY(gdf->priv->custom_entry)));
+    format = g_strdup(gtk_entry_get_text(GTK_ENTRY(priv->custom_entry)));
     enable_year = enable_month = check_modifiers = FALSE;
     enable_custom = TRUE;
     break;
@@ -435,7 +482,7 @@
     break;
 
    case QOF_DATE_FORMAT_ISO:
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gdf->priv->months_number), TRUE);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->months_number), TRUE);
     enable_year = check_modifiers = TRUE;
     enable_month = enable_custom = FALSE;
     break;
@@ -453,17 +500,17 @@
 
   /* Update the format string based upon the user's preferences */
   if (check_modifiers) {
-    if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gdf->priv->months_number))) {
+    if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->months_number))) {
       format = g_strdup(qof_date_format_get_string(sel_option));
     } else {
       format = g_strdup(qof_date_text_format_get_string(sel_option));
-      if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gdf->priv->months_name))) {
+      if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->months_name))) {
 	c = strchr(format, 'b');
 	if (c)
 	  *c = 'B';
       }
     }
-    if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(gdf->priv->years_button))){
+    if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(priv->years_button))){
       c = strchr(format, 'y');
       if (c)
 	*c = 'Y';
@@ -475,15 +522,15 @@
    * without having to read the strftime man page. Prevent recursive
    * signals.
    */
-  gtk_signal_handler_block_by_data(GTK_OBJECT(gdf->priv->custom_entry), gdf);
-  gtk_entry_set_text(GTK_ENTRY(gdf->priv->custom_entry), format);
-  gtk_signal_handler_unblock_by_data(GTK_OBJECT(gdf->priv->custom_entry), gdf);
+  gtk_signal_handler_block_by_data(GTK_OBJECT(priv->custom_entry), gdf);
+  gtk_entry_set_text(GTK_ENTRY(priv->custom_entry), format);
+  gtk_signal_handler_unblock_by_data(GTK_OBJECT(priv->custom_entry), gdf);
   
   /* Visual feedback on what the date will look like. */
   secs_now = time(NULL);
   localtime_r(&secs_now, &today);
   strftime(date_string, MAX_DATE_LEN, format, &today);
-  gtk_label_set_text(GTK_LABEL(gdf->priv->sample_label), date_string);
+  gtk_label_set_text(GTK_LABEL(priv->sample_label), date_string);
   g_free(format);
 }
 

Modified: gnucash/trunk/src/gnome-utils/gnc-date-format.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-date-format.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-date-format.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -38,13 +38,10 @@
 #define GNC_DATE_FORMAT_CLASS(klass)  GTK_CHECK_CLASS_CAST (klass, gnc_date_format_get_type(), GNCDateFormatClass)
 #define GNC_IS_DATE_FORMAT(obj)       GTK_CHECK_TYPE (obj, gnc_date_format_get_type ())
 
-typedef struct _GNCDateFormatPriv GNCDateFormatPriv;
-
 /**
  **/
 typedef struct {
 	GtkHBox hbox;
-	GNCDateFormatPriv *priv;
 } GNCDateFormat;
 
 typedef struct {

Modified: gnucash/trunk/src/gnome-utils/gnc-embedded-window.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-embedded-window.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-embedded-window.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -54,7 +54,7 @@
 static void gnc_embedded_window_setup_window (GncEmbeddedWindow *window);
 
 
-struct GncEmbeddedWindowPrivate
+typedef struct GncEmbeddedWindowPrivate
 {
   GtkWidget *menu_dock;
   GtkWidget *toolbar_dock;
@@ -64,8 +64,11 @@
 
   GncPluginPage *page;
   GtkWidget     *parent_window;
-};
+} GncEmbeddedWindowPrivate;
 
+#define GNC_EMBEDDED_WINDOW_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_EMBEDDED_WINDOW, GncEmbeddedWindowPrivate))
+
 static GObjectClass *parent_class = NULL;
 
 GType
@@ -107,12 +110,15 @@
 gnc_embedded_window_open_page (GncEmbeddedWindow *window,
 			       GncPluginPage *page)
 {
+  GncEmbeddedWindowPrivate *priv;
+
   ENTER("window %p, page %p", window, page);
   g_return_if_fail (GNC_IS_EMBEDDED_WINDOW (window));
   g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
-  g_return_if_fail (window->priv->page == NULL);
+  priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
+  g_return_if_fail (priv->page == NULL);
 
-  window->priv->page = page;
+  priv->page = page;
   page->window = GTK_WIDGET(window);
   page->notebook_page = gnc_plugin_page_create_widget (page);
   g_object_set_data (G_OBJECT (page->notebook_page), PLUGIN_PAGE_LABEL, page);
@@ -128,6 +134,8 @@
 gnc_embedded_window_close_page (GncEmbeddedWindow *window,
 				GncPluginPage *page)
 {
+  GncEmbeddedWindowPrivate *priv;
+
   ENTER("window %p, page %p", window, page);
   g_return_if_fail (GNC_IS_EMBEDDED_WINDOW (window));
   g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
@@ -137,8 +145,9 @@
     return;
   }
 
-  gtk_container_remove (GTK_CONTAINER(window), GTK_WIDGET(window->priv->page));
-  window->priv->page = NULL;
+  priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
+  gtk_container_remove (GTK_CONTAINER(window), GTK_WIDGET(priv->page));
+  priv->page = NULL;
   gnc_plugin_page_removed (page);
 
   gnc_plugin_page_unmerge_actions (page, window->ui_merge);
@@ -152,7 +161,10 @@
 GncPluginPage *
 gnc_embedded_window_get_page (GncEmbeddedWindow *window)
 {
-  return window->priv->page;
+  GncEmbeddedWindowPrivate *priv;
+
+  priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
+  return priv->page;
 }
 
 
@@ -167,6 +179,8 @@
 
   object_class->finalize = gnc_embedded_window_finalize;
   object_class->dispose = gnc_embedded_window_dispose;
+
+  g_type_class_add_private(klass, sizeof(GncEmbeddedWindowPrivate));
   LEAVE(" ");
 }
 
@@ -175,7 +189,6 @@
 			  GncEmbeddedWindowClass *klass)
 {
   ENTER("window %p", window);
-  window->priv = g_new0 (GncEmbeddedWindowPrivate, 1);
 
   gnc_embedded_window_setup_window (window);
 
@@ -188,17 +201,15 @@
 gnc_embedded_window_finalize (GObject *object)
 {
   GncEmbeddedWindow *window;
+  GncEmbeddedWindowPrivate *priv;
 
   ENTER("object %p", object);
   g_return_if_fail (object != NULL);
   g_return_if_fail (GNC_IS_EMBEDDED_WINDOW (object));
 
   window = GNC_EMBEDDED_WINDOW (object);
+  priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
 
-  g_return_if_fail (window->priv != NULL);
-
-  g_free (window->priv);
-
   gnc_gobject_tracking_forget(object);
   G_OBJECT_CLASS (parent_class)->finalize (object);
   LEAVE(" ");
@@ -208,17 +219,19 @@
 gnc_embedded_window_dispose (GObject *object)
 {
   GncEmbeddedWindow *window;
+  GncEmbeddedWindowPrivate *priv;
 
   ENTER("object %p", object);
   g_return_if_fail (object != NULL);
   g_return_if_fail (GNC_IS_EMBEDDED_WINDOW (object));
 
   window = GNC_EMBEDDED_WINDOW (object);
-  if (window->priv->page) {
-    DEBUG("unreffing page %p (count currently %d)", window->priv->page,
-	  G_OBJECT(window->priv->page)->ref_count);
-    g_object_unref(window->priv->page);
-    window->priv->page = NULL;
+  priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
+  if (priv->page) {
+    DEBUG("unreffing page %p (count currently %d)", priv->page,
+	  G_OBJECT(priv->page)->ref_count);
+    g_object_unref(priv->page);
+    priv->page = NULL;
   }
 
   G_OBJECT_CLASS (parent_class)->dispose (object);
@@ -230,12 +243,15 @@
 				GtkWidget *widget,
 				GncEmbeddedWindow *window)
 {
+  GncEmbeddedWindowPrivate *priv;
+
   ENTER("merge %p, new widget %p, window %p", merge, widget, window);
+  priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
   if (GTK_IS_TOOLBAR (widget)) {
-    window->priv->toolbar_dock = widget;
+    priv->toolbar_dock = widget;
   }
 
-  gtk_box_pack_start (GTK_BOX (window->priv->menu_dock), widget, FALSE, FALSE, 0);
+  gtk_box_pack_start (GTK_BOX (priv->menu_dock), widget, FALSE, FALSE, 0);
   gtk_widget_show (widget);
   LEAVE(" ");
 }
@@ -246,7 +262,7 @@
   GncEmbeddedWindowPrivate *priv;
 
   ENTER("window %p", window);
-  priv = window->priv;
+  priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
 
   /* Create widgets and add them to the window */
   gtk_widget_show (GTK_WIDGET(window));
@@ -287,7 +303,7 @@
 	action_group_name, action_entries, n_action_entries, ui_filename,
 	enclosing_win, add_accelerators, user_data);
   window = g_object_new (GNC_TYPE_EMBEDDED_WINDOW, NULL);
-  priv = window->priv;
+  priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
 
   /* Determine the full pathname of the ui file */
   ui_fullname = gnc_gnome_locate_ui_file(ui_filename);
@@ -328,11 +344,13 @@
 gnc_embedded_window_get_gtk_window (GncWindow *window_in)
 {
   GncEmbeddedWindow *window;
+  GncEmbeddedWindowPrivate *priv;
 
   g_return_val_if_fail (GNC_IS_EMBEDDED_WINDOW (window_in), NULL);
 
   window = GNC_EMBEDDED_WINDOW(window_in);
-  return GTK_WINDOW(window->priv->parent_window);
+  priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
+  return GTK_WINDOW(priv->parent_window);
 }
 
 static GtkWidget *
@@ -344,13 +362,13 @@
   g_return_val_if_fail (GNC_IS_EMBEDDED_WINDOW (window_in), NULL);
 
   window = GNC_EMBEDDED_WINDOW(window_in);
-  priv = window->priv;
+  priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
   return priv->statusbar;
 }
 
 static void
 gnc_window_embedded_window_init (GncWindowIface *iface)
 {
-	iface->get_gtk_window = gnc_embedded_window_get_gtk_window;
-	iface->get_statusbar = gnc_embedded_window_get_statusbar;
+  iface->get_gtk_window = gnc_embedded_window_get_gtk_window;
+  iface->get_statusbar = gnc_embedded_window_get_statusbar;
 }

Modified: gnucash/trunk/src/gnome-utils/gnc-embedded-window.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-embedded-window.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-embedded-window.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -53,18 +53,13 @@
 #define GNC_EMBEDDED_WINDOW_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_EMBEDDED_WINDOW, GncEmbeddedWindowClass))
 
 /* typedefs & structures */
-typedef struct GncEmbeddedWindowPrivate GncEmbeddedWindowPrivate;
-
 typedef struct {
-	GtkVBox parent;
-
-	GncEmbeddedWindowPrivate *priv;
-
+	GtkVBox vbox;
 	GtkUIManager   	 *ui_merge;
 } GncEmbeddedWindow;
 
 typedef struct {
-	GtkVBoxClass parent;
+	GtkVBoxClass vbox;
 } GncEmbeddedWindowClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/gnome-utils/gnc-main-window.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-main-window.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-main-window.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -115,7 +115,7 @@
 static gboolean gnc_main_window_popup_menu_cb (GtkWidget *widget, GncPluginPage *page);
 
 
-struct GncMainWindowPrivate
+typedef struct GncMainWindowPrivate
 {
 	GtkWidget *menu_dock;
 	GtkWidget *toolbar_dock;
@@ -131,8 +131,11 @@
 
 
 	GHashTable *merged_actions_table;
-};
+} GncMainWindowPrivate;
 
+#define GNC_MAIN_WINDOW_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_MAIN_WINDOW, GncMainWindowPrivate))
+
 typedef struct {
 	guint merge_id;
 	GtkActionGroup *action_group;
@@ -321,11 +324,13 @@
 gnc_main_window_page_exists (GncPluginPage *page)
 {
 	GncMainWindow *window;
+	GncMainWindowPrivate *priv;
 	GList *walker;
 
 	for (walker = active_windows; walker; walker = g_list_next(walker)) {
 	  window = walker->data;
-	  if (g_list_find(window->priv->installed_pages, page)) {
+	  priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+	  if (g_list_find(priv->installed_pages, page)) {
 	    return TRUE;
 	  }
 	}
@@ -498,6 +503,7 @@
 			       gpointer user_data)
 {
 	GncMainWindow *window;
+	GncMainWindowPrivate *priv;
 	GncPluginPage *page;
 	GList *item, *next;
 
@@ -513,11 +519,12 @@
 	ENTER("entity %p of type %s, event %d, window %p",
 	      entity, type, event_type, user_data);
 	window = GNC_MAIN_WINDOW(user_data);
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
 
         /* This is not a typical list iteration.  We're removing while
          * we iterate, so we have to cache the 'next' pointer before
          * executing any code in the loop. */
-	for (item = window->priv->installed_pages; item; item = next) {
+	for (item = priv->installed_pages; item; item = next) {
 	  next = g_list_next(item);
 	  page = GNC_PLUGIN_PAGE(item->data);
 	  if (gnc_plugin_page_has_book (page, entity))
@@ -542,6 +549,7 @@
 static gchar *
 gnc_main_window_generate_title (GncMainWindow *window)
 {
+  GncMainWindowPrivate *priv;
   GncPluginPage *page;
   const gchar *filename;
   gchar *title, *ptr;
@@ -557,7 +565,8 @@
       filename = ptr+1;
   }
 
-  page = window->priv->current_page;
+  priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+  page = priv->current_page;
   if (page) {
     /* The Gnome HIG 2.0 recommends the application name not be used. (p16) */
     title = g_strdup_printf("%s - %s", filename,
@@ -622,12 +631,13 @@
 gnc_main_window_update_one_menu_action (GncMainWindow *window,
 					struct menu_update *data)
 {
+  GncMainWindowPrivate *priv;
   GtkAction* action;
 
   ENTER("window %p, action %s, label %s, visible %d", window,
 	data->action_name, data->label, data->visible);
-  action = gtk_action_group_get_action(window->priv->action_group,
-				       data->action_name);
+  priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+  action = gtk_action_group_get_action(priv->action_group, data->action_name);
   if (action)
     g_object_set(G_OBJECT(action),
 		 "label", data->label,
@@ -652,6 +662,7 @@
 static void
 gnc_main_window_update_radio_button (GncMainWindow *window)
 {
+  GncMainWindowPrivate *priv;
   GtkAction *action, *first_action;
   GSList *action_list;
   gchar *action_name;
@@ -666,9 +677,9 @@
     return;
   }
 
+  priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
   action_name = g_strdup_printf("Window%dAction", index);
-  action = gtk_action_group_get_action(window->priv->action_group,
-				       action_name);
+  action = gtk_action_group_get_action(priv->action_group, action_name);
 
   /* Block the signal so as not to affect window ordering (top to
    * bottom) on the screen */
@@ -823,8 +834,11 @@
 static void
 gnc_main_window_update_tabs_one_window (GncMainWindow *window, gboolean *new_value)
 {
+  GncMainWindowPrivate *priv;
+
   ENTER("window %p, visible %d", window, *new_value);
-  g_list_foreach(window->priv->installed_pages,
+  priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+  g_list_foreach(priv->installed_pages,
 		 (GFunc)gnc_main_window_update_tabs_one_page,
 		 new_value);
   LEAVE(" ");
@@ -922,6 +936,8 @@
 	/* GtkObject signals */
 	gtkobject_class->destroy = gnc_main_window_destroy;
 
+	g_type_class_add_private(klass, sizeof(GncMainWindowPrivate));
+
 	/**
 	 * GncMainWindow::page_added:
 	 * @param window: the #GncMainWindow
@@ -983,12 +999,13 @@
 gnc_main_window_init (GncMainWindow *window,
 		      GncMainWindowClass *klass)
 {
-	window->priv = g_new0 (GncMainWindowPrivate, 1);
+	GncMainWindowPrivate *priv;
 
-	window->priv->merged_actions_table =
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+	priv->merged_actions_table =
 	  g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
 
-	window->priv->event_handler_id =
+	priv->event_handler_id =
 	  gnc_engine_register_event_handler(gnc_main_window_event_handler,
 					    window);
 
@@ -1012,21 +1029,19 @@
 gnc_main_window_finalize (GObject *object)
 {
 	GncMainWindow *window;
+	GncMainWindowPrivate *priv;
 
 	g_return_if_fail (object != NULL);
 	g_return_if_fail (GNC_IS_MAIN_WINDOW (object));
 
 	window = GNC_MAIN_WINDOW (object);
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE (window);
 
 	if (active_windows == NULL) {
 	  /* Oops. User killed last window and we didn't catch it. */
 	  g_idle_add((GSourceFunc)gnc_shutdown, 0);
 	}
 
-	g_return_if_fail (window->priv != NULL);
-
-	g_free (window->priv);
-
 	gnc_gobject_tracking_forget(object);
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -1036,6 +1051,7 @@
 gnc_main_window_destroy (GtkObject *object)
 {
 	GncMainWindow *window;
+	GncMainWindowPrivate *priv;
 
 	g_return_if_fail (object != NULL);
 	g_return_if_fail (GNC_IS_MAIN_WINDOW (object));
@@ -1044,14 +1060,13 @@
 
 	active_windows = g_list_remove (active_windows, window);
 
-	g_return_if_fail (window->priv != NULL);
-
 	/* Do these things once */
-	if (window->priv->merged_actions_table) {
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+	if (priv->merged_actions_table) {
 
 	  /* Close any pages in this window */
-	  while (window->priv->current_page)
-	    gnc_main_window_close_page(window->priv->current_page);
+	  while (priv->current_page)
+	    gnc_main_window_close_page(priv->current_page);
 
 	  if (gnc_window_get_progressbar_window() == GNC_WINDOW(window))
 	    gnc_window_set_progressbar_window(NULL);
@@ -1062,11 +1077,11 @@
 	  gnc_gconf_remove_notification(G_OBJECT(window), DESKTOP_GNOME_INTERFACE);
 	  gnc_gconf_remove_notification(G_OBJECT(window), GCONF_GENERAL);
 
-	  gnc_engine_unregister_event_handler(window->priv->event_handler_id);
-	  window->priv->event_handler_id = 0;
+	  gnc_engine_unregister_event_handler(priv->event_handler_id);
+	  priv->event_handler_id = 0;
 
-	  g_hash_table_destroy (window->priv->merged_actions_table);
-	  window->priv->merged_actions_table = NULL;
+	  g_hash_table_destroy (priv->merged_actions_table);
+	  priv->merged_actions_table = NULL;
 	}
 	GTK_OBJECT_CLASS (parent_class)->destroy (object);
 }
@@ -1114,12 +1129,13 @@
 			 GtkWidget *tab_hbox,
 			 GtkWidget *menu_label)
 {
+	GncMainWindowPrivate *priv;
 	GtkNotebook *notebook;
 
 	page->window = GTK_WIDGET(window);
-	notebook = GTK_NOTEBOOK (window->priv->notebook);
-	window->priv->installed_pages =
-	  g_list_append (window->priv->installed_pages, page);
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+	notebook = GTK_NOTEBOOK (priv->notebook);
+	priv->installed_pages = g_list_append (priv->installed_pages, page);
 	gtk_notebook_append_page_menu (notebook, page->notebook_page,
 				       tab_hbox, menu_label);
 	gnc_plugin_page_inserted (page);
@@ -1152,6 +1168,7 @@
 gnc_main_window_disconnect (GncMainWindow *window,
 			    GncPluginPage *page)
 {
+	GncMainWindowPrivate *priv;
 	GtkNotebook *notebook;
 	gint page_num;
 
@@ -1162,19 +1179,19 @@
 			 G_CALLBACK(gnc_main_window_button_press_cb), page);
 
 	/* Disconnect the page and summarybar from the window */
-	if (window->priv->current_page == page) {
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+	if (priv->current_page == page) {
 		gnc_plugin_page_unmerge_actions (page, window->ui_merge);
 		gnc_plugin_page_unselected (page);
-		window->priv->current_page = NULL;
+		priv->current_page = NULL;
 	}
 
 	/* Remove it from the list of pages in the window */
-	window->priv->installed_pages =
-	  g_list_remove (window->priv->installed_pages, page);
+	priv->installed_pages = g_list_remove (priv->installed_pages, page);
 
 
 	/* Remove the page from the notebook */
-	notebook = GTK_NOTEBOOK (window->priv->notebook);
+	notebook = GTK_NOTEBOOK (priv->notebook);
 	page_num =  gtk_notebook_page_num(notebook, page->notebook_page);
 	gtk_notebook_remove_page (notebook, page_num);
 
@@ -1203,11 +1220,13 @@
 gnc_main_window_display_page (GncPluginPage *page)
 {
 	GncMainWindow *window;
+	GncMainWindowPrivate *priv;
 	GtkNotebook *notebook;
 	gint page_num;
 
 	window = GNC_MAIN_WINDOW (page->window);
-	notebook = GTK_NOTEBOOK (window->priv->notebook);
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+	notebook = GTK_NOTEBOOK (priv->notebook);
 	page_num = gtk_notebook_page_num(notebook, page->notebook_page);
 	gtk_notebook_set_current_page (notebook, page_num);
 	gtk_window_present(GTK_WINDOW(window));
@@ -1225,6 +1244,7 @@
 gnc_main_window_open_page (GncMainWindow *window,
 			   GncPluginPage *page)
 {
+	GncMainWindowPrivate *priv;
 	GtkWidget *tab_hbox;
 	GtkWidget *label;
 	const gchar *icon;
@@ -1249,11 +1269,13 @@
 	}
 
 	/* Is this the first page in the first window? */
-	if ((window == active_windows->data) &&
-	    (window->priv->installed_pages == NULL)) {
-	  immutable = TRUE;
-	  g_object_set_data (G_OBJECT (page), PLUGIN_PAGE_IMMUTABLE,
-			     GINT_TO_POINTER(1));
+	if (window == active_windows->data) {
+	  priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+	  if (priv->installed_pages == NULL) {
+	    immutable = TRUE;
+	    g_object_set_data (G_OBJECT (page), PLUGIN_PAGE_IMMUTABLE,
+			       GINT_TO_POINTER(1));
+	  }
 	}
 
 	page->window = GTK_WIDGET(window);
@@ -1322,6 +1344,7 @@
 gnc_main_window_close_page (GncPluginPage *page)
 {
 	GncMainWindow *window;
+	GncMainWindowPrivate *priv;
 
 	if (!page->notebook_page)
 		return;
@@ -1337,7 +1360,8 @@
 	g_object_unref(page);
 
 	/* If this isn't the last window, go ahead and destroy the window. */
-	if (window->priv->installed_pages == NULL) {
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+	if (priv->installed_pages == NULL) {
 		if (g_list_length(active_windows) > 1) {
 			gtk_widget_destroy(GTK_WIDGET(window));
 		}
@@ -1355,7 +1379,10 @@
 GncPluginPage *
 gnc_main_window_get_current_page (GncMainWindow *window)
 {
-	return window->priv->current_page;
+	GncMainWindowPrivate *priv;
+
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+	return priv->current_page;
 }
 
 
@@ -1370,6 +1397,7 @@
 				      GtkActionGroup *group,
 				      guint merge_id)
 {
+	GncMainWindowPrivate *priv;
 	MergedActionEntry *entry;
 
 	g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
@@ -1377,11 +1405,12 @@
 	g_return_if_fail (GTK_IS_ACTION_GROUP(group));
 	g_return_if_fail (merge_id > 0);
 
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
 	entry = g_new0 (MergedActionEntry, 1);
 	entry->action_group = group;
 	entry->merge_id = merge_id;
 	gtk_ui_manager_ensure_update (window->ui_merge);
-	g_hash_table_insert (window->priv->merged_actions_table, g_strdup (group_name), entry);
+	g_hash_table_insert (priv->merged_actions_table, g_strdup (group_name), entry);
 }
 
 
@@ -1399,6 +1428,7 @@
 			       const gchar *filename,
 			       gpointer user_data)
 {
+	GncMainWindowPrivate *priv;
 	GncMainWindowActionData *data;
 	MergedActionEntry *entry;
 	GError *error = NULL;
@@ -1418,6 +1448,7 @@
 	if (pathname == NULL)
 	  return;
 
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
 	entry = g_new0 (MergedActionEntry, 1);
 	entry->action_group = gtk_action_group_new (group_name);
 	gtk_action_group_add_actions (entry->action_group, actions, n_actions, data);
@@ -1426,7 +1457,7 @@
 	g_assert(entry->merge_id || error);
 	if (entry->merge_id) {
 	  gtk_ui_manager_ensure_update (window->ui_merge);
-	  g_hash_table_insert (window->priv->merged_actions_table, g_strdup (group_name), entry);
+	  g_hash_table_insert (priv->merged_actions_table, g_strdup (group_name), entry);
 	} else {
 	  g_critical("Failed to load ui file.\n  Filename %s\n  Error %s",
 		     filename, error->message);
@@ -1446,12 +1477,14 @@
 gnc_main_window_unmerge_actions (GncMainWindow *window,
 				 const gchar *group_name)
 {
+	GncMainWindowPrivate *priv;
 	MergedActionEntry *entry;
 
 	g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
 	g_return_if_fail (group_name != NULL);
 
-	entry = g_hash_table_lookup (window->priv->merged_actions_table, group_name);
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+	entry = g_hash_table_lookup (priv->merged_actions_table, group_name);
 
 	if (entry == NULL)
 		return;
@@ -1460,7 +1493,7 @@
 	gtk_ui_manager_remove_ui (window->ui_merge, entry->merge_id);
 	gtk_ui_manager_ensure_update (window->ui_merge);
 
-	g_hash_table_remove (window->priv->merged_actions_table, group_name);
+	g_hash_table_remove (priv->merged_actions_table, group_name);
 }
 
 
@@ -1496,12 +1529,14 @@
 gnc_main_window_get_action_group (GncMainWindow *window,
 				  const gchar *group_name)
 {
+	GncMainWindowPrivate *priv;
 	MergedActionEntry *entry;
 
 	g_return_val_if_fail (GNC_IS_MAIN_WINDOW (window), NULL);
 	g_return_val_if_fail (group_name != NULL, NULL);
 
-	entry = g_hash_table_lookup (window->priv->merged_actions_table, group_name);
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+	entry = g_hash_table_lookup (priv->merged_actions_table, group_name);
 
 	if (entry == NULL)
 		return NULL;
@@ -1583,7 +1618,7 @@
 	gtk_widget_show (main_vbox);
 	gtk_container_add (GTK_CONTAINER (window), main_vbox);
 
-	priv = window->priv;
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
 	priv->menu_dock = gtk_vbox_new (FALSE, 0);
 	gtk_widget_show (priv->menu_dock);
 	gtk_box_pack_start (GTK_BOX (main_vbox), priv->menu_dock,
@@ -1625,10 +1660,10 @@
 					    0,
 					    G_CALLBACK(gnc_main_window_cmd_window_raise),
 					    window);
-	gnc_plugin_update_actions(window->priv->action_group,
+	gnc_plugin_update_actions(priv->action_group,
 				  always_insensitive_actions,
 				  "sensitive", FALSE);
-	gnc_plugin_set_important_actions (window->priv->action_group,
+	gnc_plugin_set_important_actions (priv->action_group,
 					  gnc_menu_important_actions);
 	gtk_ui_manager_insert_action_group (window->ui_merge, priv->action_group, 0);
 
@@ -1688,11 +1723,14 @@
 			    GtkWidget *widget,
 			    GncMainWindow *window)
 {
+	GncMainWindowPrivate *priv;
+
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
 	if (GTK_IS_TOOLBAR (widget)) {
-		window->priv->toolbar_dock = widget;
+		priv->toolbar_dock = widget;
 	}
 
-	gtk_box_pack_start (GTK_BOX (window->priv->menu_dock), widget, FALSE, FALSE, 0);
+	gtk_box_pack_start (GTK_BOX (priv->menu_dock), widget, FALSE, FALSE, 0);
 	gtk_widget_show (widget);
 }
 
@@ -1711,8 +1749,11 @@
 static gboolean
 gnc_main_window_show_summarybar (GncMainWindow *window, GtkAction *action)
 {
+	GncMainWindowPrivate *priv;
+
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
 	if (action == NULL)
-	  action = gtk_action_group_get_action(window->priv->action_group,
+	  action = gtk_action_group_get_action(priv->action_group,
 					       "ViewSummaryAction");
 	if (action == NULL)
 	  return TRUE;
@@ -1734,6 +1775,7 @@
 			     gint pos,
 			     GncMainWindow *window)
 {
+	GncMainWindowPrivate *priv;
 	GtkWidget *child;
 	GncPluginPage *page;
 	gboolean immutable, visible;
@@ -1742,8 +1784,9 @@
 	       notebook, notebook_page, pos, window);
 	g_return_if_fail (GNC_IS_MAIN_WINDOW (window));
 
-	if (window->priv->current_page != NULL) {
-		page = window->priv->current_page;
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+	if (priv->current_page != NULL) {
+		page = priv->current_page;
 		gnc_plugin_page_unmerge_actions (page, window->ui_merge);
 		gnc_plugin_page_unselected (page);
 	}
@@ -1755,7 +1798,7 @@
 		page = NULL;
 	}
 
-	window->priv->current_page = page;
+	priv->current_page = page;
 
 	if (page != NULL) {
 		/* Update the user interface (e.g. menus and toolbars */
@@ -1771,13 +1814,13 @@
 	/* Update the menus based upon whether this is an "immutable" page. */
 	immutable = page &&
 	  g_object_get_data (G_OBJECT (page), PLUGIN_PAGE_IMMUTABLE);
-	gnc_plugin_update_actions(window->priv->action_group,
+	gnc_plugin_update_actions(priv->action_group,
 				  immutable_page_actions,
 				  "sensitive", !immutable);
-	gnc_plugin_update_actions(window->priv->action_group,
+	gnc_plugin_update_actions(priv->action_group,
 				  multiple_page_actions,
 				  "sensitive",
-				  g_list_length(window->priv->installed_pages) > 1);
+				  g_list_length(priv->installed_pages) > 1);
 
 	gnc_main_window_update_title(window);
 	gnc_main_window_update_menu_item(window);
@@ -1824,10 +1867,13 @@
 static void
 gnc_main_window_cmd_file_close (GtkAction *action, GncMainWindow *window)
 {
+	GncMainWindowPrivate *priv;
+
 	g_return_if_fail(GNC_IS_MAIN_WINDOW(window));
 
-	if (window->priv->current_page != NULL) {
-		gnc_main_window_close_page (window->priv->current_page);
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+	if (priv->current_page != NULL) {
+		gnc_main_window_close_page (priv->current_page);
 	}
 }
 
@@ -1866,21 +1912,26 @@
 static void
 gnc_main_window_cmd_view_toolbar (GtkAction *action, GncMainWindow *window)
 {
+	GncMainWindowPrivate *priv;
+
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
 	if (gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action))) {
-		gtk_widget_show (window->priv->toolbar_dock);
+		gtk_widget_show (priv->toolbar_dock);
 	} else {
-		gtk_widget_hide (window->priv->toolbar_dock);
+		gtk_widget_hide (priv->toolbar_dock);
 	}
 }
 
 static void
 gnc_main_window_cmd_view_summary (GtkAction *action, GncMainWindow *window)
 {
+	GncMainWindowPrivate *priv;
 	GList *item;
 	gboolean visible;
 
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
 	visible = gnc_main_window_show_summarybar(window, action);
-	for (item = window->priv->installed_pages; item; item = g_list_next(item)) {
+	for (item = priv->installed_pages; item; item = g_list_next(item)) {
 	  gnc_plugin_page_show_summarybar(item->data, visible);
 	}
 }
@@ -1888,10 +1939,13 @@
 static void
 gnc_main_window_cmd_view_statusbar (GtkAction *action, GncMainWindow *window)
 {
+	GncMainWindowPrivate *priv;
+
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
 	if (gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action))) {
-		gtk_widget_show (window->priv->statusbar);
+		gtk_widget_show (priv->statusbar);
 	} else {
-		gtk_widget_hide (window->priv->statusbar);
+		gtk_widget_hide (priv->statusbar);
 	}
 }
 
@@ -1910,14 +1964,14 @@
 static void
 gnc_main_window_cmd_window_move_page (GtkAction *action, GncMainWindow *window)
 {
-	GncMainWindowPrivate *priv;
+	GncMainWindowPrivate *priv, *new_priv;
 	GncMainWindow *new_window;
 	GncPluginPage *page;
 	GtkNotebook *notebook;
 	GtkWidget *tab_widget, *menu_widget;
 
 	/* Setup */
-	priv = window->priv;
+	priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
 	if (priv->current_page == NULL)
 		return;
 	notebook = GTK_NOTEBOOK (priv->notebook);
@@ -1946,10 +2000,11 @@
 	g_object_unref(page);
 
 	/* just a little debugging. :-) */
+	new_priv = GNC_MAIN_WINDOW_GET_PRIVATE(new_window);
 	DEBUG("Moved page %p from window %p to new window %p",
 	      page, window, new_window);
 	DEBUG("Old window current is %p, new window current is %p",
-	      window->priv->current_page, new_window->priv->current_page);
+	      priv->current_page, priv->current_page);
 }
 
 static void
@@ -2062,7 +2117,7 @@
   g_return_val_if_fail (GNC_IS_MAIN_WINDOW (window_in), NULL);
 
   window = GNC_MAIN_WINDOW(window_in);
-  priv = window->priv;
+  priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
   return priv->statusbar;
 }
 
@@ -2075,7 +2130,7 @@
   g_return_val_if_fail (GNC_IS_MAIN_WINDOW (window_in), NULL);
 
   window = GNC_MAIN_WINDOW(window_in);
-  priv = window->priv;
+  priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
   return priv->progressbar;
 }
 

Modified: gnucash/trunk/src/gnome-utils/gnc-main-window.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-main-window.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-main-window.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -53,18 +53,13 @@
 #define GNC_MAIN_WINDOW_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_MAIN_WINDOW, GncMainWindowClass))
 
 /* typedefs & structures */
-typedef struct GncMainWindowPrivate GncMainWindowPrivate;
-
 typedef struct GncMainWindow {
-	GtkWindow parent;
-
+	GtkWindow gtk_window;
 	GtkUIManager *ui_merge;
-
-	GncMainWindowPrivate *priv;
 } GncMainWindow;
 
 typedef struct {
-	GtkWindowClass parent;
+	GtkWindowClass gtk_window;
 
 	/* callbacks */
 	void (*page_added)   (GncMainWindow *window,

Modified: gnucash/trunk/src/gnome-utils/gnc-plugin-file-history.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin-file-history.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin-file-history.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -79,11 +79,13 @@
 static guint gnc_plugin_n_actions = G_N_ELEMENTS (gnc_plugin_actions);
 
 
-struct GncPluginFileHistoryPrivate
+typedef struct GncPluginFileHistoryPrivate
 {
 	gpointer dummy;
-};
+} GncPluginFileHistoryPrivate;
 
+#define GNC_PLUGIN_FILE_HISTORY_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_FILE_HISTORY, GncPluginFileHistoryPrivate))
 
 /************************************************************
  *                     Other Functions                      *
@@ -413,13 +415,14 @@
 
 	plugin_class->gconf_section = HISTORY_STRING_SECTION;
 	plugin_class->gconf_notifications = gnc_plugin_history_list_changed;
+
+	g_type_class_add_private(klass, sizeof(GncPluginFileHistoryPrivate));
 }
 
 static void
 gnc_plugin_file_history_init (GncPluginFileHistory *plugin)
 {
 	ENTER("plugin %p", plugin);
-	plugin->priv = g_new0 (GncPluginFileHistoryPrivate, 1);
 	LEAVE("");
 }
 
@@ -427,15 +430,14 @@
 gnc_plugin_file_history_finalize (GObject *object)
 {
 	GncPluginFileHistory *plugin;
+	GncPluginFileHistoryPrivate *priv;
 
 	g_return_if_fail (GNC_IS_PLUGIN_FILE_HISTORY (object));
 
+	ENTER("plugin %p", object);
 	plugin = GNC_PLUGIN_FILE_HISTORY (object);
-	ENTER("plugin %p", plugin);
+	priv = GNC_PLUGIN_FILE_HISTORY_GET_PRIVATE (plugin);
 
-	g_return_if_fail (plugin->priv != NULL);
-	g_free (plugin->priv);
-
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 	LEAVE("");
 }

Modified: gnucash/trunk/src/gnome-utils/gnc-plugin-file-history.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin-file-history.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin-file-history.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -52,15 +52,12 @@
 #define HISTORY_STRING_FILE_N   "file%d"
 
 /* typedefs & structures */
-typedef struct GncPluginFileHistoryPrivate GncPluginFileHistoryPrivate;
-
 typedef struct {
-	GncPlugin parent;
-	GncPluginFileHistoryPrivate *priv;
+	GncPlugin gnc_plugin;
 } GncPluginFileHistory;
 
 typedef struct {
-	GncPluginClass parent;
+	GncPluginClass gnc_plugin;
 } GncPluginFileHistoryClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/gnome-utils/gnc-plugin-manager.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin-manager.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin-manager.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -38,12 +38,15 @@
 static void gnc_plugin_manager_finalize (GObject *object);
 static void gnc_plugin_manager_shutdown (gpointer dummy, gpointer dummy2);
 
-struct GncPluginManagerPrivate
+typedef struct GncPluginManagerPrivate
 {
 	GList *plugins;
 	GHashTable *plugins_table;
-};
+}  GncPluginManagerPrivate;
 
+#define GNC_PLUGIN_MANAGER_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_MANAGER, GncPluginManagerPrivate))
+
 enum {
 	PLUGIN_ADDED,
 	PLUGIN_REMOVED,
@@ -98,19 +101,21 @@
 gnc_plugin_manager_add_plugin (GncPluginManager *manager,
 			       GncPlugin *plugin)
 {
+	GncPluginManagerPrivate *priv;
 	gint index;
 
 	ENTER (" ");
 	g_return_if_fail (GNC_IS_PLUGIN_MANAGER (manager));
 	g_return_if_fail (GNC_IS_PLUGIN (plugin));
 
-	index = g_list_index (manager->priv->plugins, plugin);
+	priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
+	index = g_list_index (priv->plugins, plugin);
 
 	if (index >= 0)
 		return;
 
-	manager->priv->plugins = g_list_append (manager->priv->plugins, plugin);
-	g_hash_table_insert (manager->priv->plugins_table,
+	priv->plugins = g_list_append (priv->plugins, plugin);
+	g_hash_table_insert (priv->plugins_table,
 			     g_strdup( GNC_PLUGIN_GET_CLASS(plugin)->plugin_name ),
 			     plugin);
 
@@ -122,19 +127,21 @@
 gnc_plugin_manager_remove_plugin (GncPluginManager *manager,
 				  GncPlugin *plugin)
 {
+	GncPluginManagerPrivate *priv;
 	gint index;
 	
 	ENTER (" ");
 	g_return_if_fail (GNC_IS_PLUGIN_MANAGER (manager));
 	g_return_if_fail (GNC_IS_PLUGIN (plugin));
 
-	index = g_list_index (manager->priv->plugins, plugin);
+	priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
+	index = g_list_index (priv->plugins, plugin);
 
 	if (index < 0)
 		return;
 
-	manager->priv->plugins = g_list_remove (manager->priv->plugins, plugin);
-	g_hash_table_remove (manager->priv->plugins_table,
+	priv->plugins = g_list_remove (priv->plugins, plugin);
+	g_hash_table_remove (priv->plugins_table,
 			     GNC_PLUGIN_GET_CLASS(plugin)->plugin_name);
 
 	g_signal_emit (G_OBJECT (manager), signals[PLUGIN_REMOVED], 0, plugin);
@@ -147,19 +154,25 @@
 GList *
 gnc_plugin_manager_get_plugins (GncPluginManager *manager)
 {
+	GncPluginManagerPrivate *priv;
+
 	g_return_val_if_fail (GNC_IS_PLUGIN_MANAGER (manager), NULL);
 	
-	return g_list_copy (manager->priv->plugins);
+	priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
+	return g_list_copy (priv->plugins);
 }
 
 GncPlugin *
 gnc_plugin_manager_get_plugin (GncPluginManager *manager,
 			       const gchar *name)
 {
+	GncPluginManagerPrivate *priv;
+
 	g_return_val_if_fail (GNC_IS_PLUGIN_MANAGER (manager), NULL);
 	g_return_val_if_fail (name != NULL, NULL);
 
-	return GNC_PLUGIN (g_hash_table_lookup (manager->priv->plugins_table, name));
+	priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
+	return GNC_PLUGIN (g_hash_table_lookup (priv->plugins_table, name));
 }
 
 
@@ -173,6 +186,8 @@
 	object_class->dispose = gnc_plugin_manager_dispose;
 	object_class->finalize = gnc_plugin_manager_finalize;
 
+	g_type_class_add_private(klass, sizeof(GncPluginManagerPrivate));
+
 	signals[PLUGIN_ADDED] = g_signal_new ("plugin-added",
 					      G_OBJECT_CLASS_TYPE (klass),
 					      G_SIGNAL_RUN_FIRST,
@@ -196,25 +211,29 @@
 static void
 gnc_plugin_manager_init (GncPluginManager *manager)
 {
-	manager->priv = g_new0 (GncPluginManagerPrivate, 1);
+	GncPluginManagerPrivate *priv;
 
-	manager->priv->plugins_table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+	priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
+	priv->plugins_table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
 }
 
 static void
 gnc_plugin_manager_dispose (GObject *object)
 {
 	GncPluginManager *manager = GNC_PLUGIN_MANAGER (object);
+	GncPluginManagerPrivate *priv;
 
 	g_return_if_fail (GNC_IS_PLUGIN_MANAGER (manager));
-	g_return_if_fail (manager->priv != NULL);
 
-	g_hash_table_destroy (manager->priv->plugins_table);
-	manager->priv->plugins_table = NULL;
+	priv = GNC_PLUGIN_MANAGER_GET_PRIVATE(manager);
+	if (priv->plugins_table) {
+	  g_hash_table_destroy (priv->plugins_table);
+	  priv->plugins_table = NULL;
 
-	g_list_foreach (manager->priv->plugins, (GFunc)g_object_unref, NULL);
-	g_list_free (manager->priv->plugins);
-	manager->priv->plugins = NULL;
+	  g_list_foreach (priv->plugins, (GFunc)g_object_unref, NULL);
+	  g_list_free (priv->plugins);
+	  priv->plugins = NULL;
+	}
 
 	G_OBJECT_CLASS (parent_class)->dispose (object);
 }
@@ -222,12 +241,13 @@
 static void
 gnc_plugin_manager_finalize (GObject *object)
 {
-	GncPluginManager *manager = GNC_PLUGIN_MANAGER (object);
+	GncPluginManager *manager;
+	GncPluginManagerPrivate *priv;
 
-	g_return_if_fail (GNC_IS_PLUGIN_MANAGER (manager));
-	g_return_if_fail (manager->priv != NULL);
+	g_return_if_fail (GNC_IS_PLUGIN_MANAGER (object));
 
-	g_free (manager->priv);
+	manager = GNC_PLUGIN_MANAGER (object);
+	priv = GNC_PLUGIN_MANAGER_GET_PRIVATE (manager);
 
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 }

Modified: gnucash/trunk/src/gnome-utils/gnc-plugin-manager.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin-manager.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin-manager.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -66,16 +66,12 @@
 #define GNC_PLUGIN_MANAGER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_PLUGIN_MANAGER, GncPluginManagerClass))
 
 /* typedefs & structures */
-typedef struct GncPluginManagerPrivate GncPluginManagerPrivate;
-
 typedef struct {
-	GObject object;
-
-	GncPluginManagerPrivate *priv;
+	GObject gobject;
 } GncPluginManager;
 
 typedef struct {
-	GObjectClass object;
+	GObjectClass gobject;
 
 	/* Signals */
 	void (* plugin_added)

Modified: gnucash/trunk/src/gnome-utils/gnc-plugin-menu-additions.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin-menu-additions.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin-menu-additions.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -73,11 +73,14 @@
 
 #define PLUGIN_ACTIONS_NAME "gnc-plugin-menu-additions-actions"
 
-struct GncPluginMenuAdditionsPrivate
+typedef struct GncPluginMenuAdditionsPrivate
 {
   gpointer dummy;
-};
+} GncPluginMenuAdditionsPrivate;
 
+#define GNC_PLUGIN_MENU_ADDITIONS_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_MENU_ADDITIONS, GncPluginMenuAdditionsPrivate))
+
 typedef struct _GncPluginMenuAdditionsPerWindow
 {
   GncMainWindow  *window;
@@ -132,13 +135,14 @@
   /* function overrides */
   plugin_class->add_to_window = gnc_plugin_menu_additions_add_to_window;
   plugin_class->remove_from_window = gnc_plugin_menu_additions_remove_from_window;
+
+  g_type_class_add_private(klass, sizeof(GncPluginMenuAdditionsPrivate));
 }
 
 static void
 gnc_plugin_menu_additions_init (GncPluginMenuAdditions *plugin)
 {
   ENTER("plugin %p", plugin);
-  plugin->priv = g_new0 (GncPluginMenuAdditionsPrivate, 1);
   LEAVE("");
 }
 
@@ -146,15 +150,14 @@
 gnc_plugin_menu_additions_finalize (GObject *object)
 {
   GncPluginMenuAdditions *plugin;
+  GncPluginMenuAdditionsPrivate *priv;
 
   g_return_if_fail (GNC_IS_PLUGIN_MENU_ADDITIONS (object));
 
+  ENTER("plugin %p", object);
   plugin = GNC_PLUGIN_MENU_ADDITIONS (object);
-  ENTER("plugin %p", plugin);
+  priv = GNC_PLUGIN_MENU_ADDITIONS_GET_PRIVATE (plugin);
 
-  g_return_if_fail (plugin->priv != NULL);
-  g_free (plugin->priv);
-
   G_OBJECT_CLASS (parent_class)->finalize (object);
   LEAVE("");
 }

Modified: gnucash/trunk/src/gnome-utils/gnc-plugin-menu-additions.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin-menu-additions.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin-menu-additions.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -49,15 +49,12 @@
 #define GNC_PLUGIN_HIDE_MENU_ADDITIONS_NAME "gnc-plugin-hide-menu-additions"
 
 /* typedefs & structures */
-typedef struct GncPluginMenuAdditionsPrivate GncPluginMenuAdditionsPrivate;
-
 typedef struct {
-	GncPlugin parent;
-	GncPluginMenuAdditionsPrivate *priv;
+	GncPlugin gnc_plugin;
 } GncPluginMenuAdditions;
 
 typedef struct {
-	GncPluginClass parent;
+	GncPluginClass gnc_plugin;
 } GncPluginMenuAdditionsClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/gnome-utils/gnc-plugin-page.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin-page.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin-page.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -51,7 +51,7 @@
 
 /* typedefs & structures */
 typedef struct GncPluginPage {
-	GObject parent;			/**< The parent object data. */
+	GObject gobject;		/**< The parent object data. */
 
 	GtkWidget *window;		/**< The window that contains the
 					 *   display widget for this plugin.
@@ -70,7 +70,7 @@
 } GncPluginPage;
 
 typedef struct {
-	GObjectClass parent;
+	GObjectClass gobject;
 
 	const gchar *tab_icon;
 	const gchar *plugin_name;

Modified: gnucash/trunk/src/gnome-utils/gnc-plugin.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -50,11 +50,14 @@
 				   GncPluginClass *klass);
 static void gnc_plugin_finalize   (GObject *object);
 
-struct  GncPluginPrivate {
+typedef struct GncPluginPrivate {
 	gpointer dummy;
-};
+} GncPluginPrivate;
 
+#define GNC_PLUGIN_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN, GncPluginPrivate))
 
+
 /** Get the type of a gnc window plugin.
  */
 GType
@@ -100,6 +103,8 @@
 
 	parent_class = g_type_class_peek_parent (klass);
 	gobject_class->finalize = gnc_plugin_finalize;
+
+	g_type_class_add_private(klass, sizeof(GncPluginPrivate));
 }
 
 
@@ -114,9 +119,6 @@
 static void
 gnc_plugin_init (GncPlugin *plugin_page, GncPluginClass *klass)
 {
-	GncPluginPrivate *priv;
-
-	priv = plugin_page->priv = g_new0 (GncPluginPrivate, 1);
 	gnc_gobject_tracking_remember(G_OBJECT(plugin_page),\
 				      G_OBJECT_CLASS(klass));
 }
@@ -136,14 +138,13 @@
 gnc_plugin_finalize (GObject *object)
 {
 	GncPlugin *plugin;
+	GncPluginPrivate *priv;
 
 	g_return_if_fail (GNC_IS_PLUGIN (object));
 
 	plugin = GNC_PLUGIN (object);
-	g_return_if_fail (plugin->priv != NULL);
+	priv = GNC_PLUGIN_GET_PRIVATE (plugin);
 
-	g_free (plugin->priv);
-
 	gnc_gobject_tracking_forget(object);
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 }

Modified: gnucash/trunk/src/gnome-utils/gnc-plugin.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-plugin.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-plugin.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -81,15 +81,13 @@
 #define GNC_PLUGIN_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_PLUGIN, GncPluginClass))
 
 /* typedefs & structures */
-typedef struct GncPluginPrivate GncPluginPrivate;
 
 typedef struct {
-	GObject parent;
-	GncPluginPrivate *priv;
+	GObject gobject;
 } GncPlugin;
 
 typedef struct {
-	GObjectClass parent;
+	GObjectClass gobject;
 	const gchar *plugin_name;
 
 	const gchar *actions_name;

Modified: gnucash/trunk/src/gnome-utils/gnc-query-list.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-query-list.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-query-list.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -43,12 +43,17 @@
   LAST_SIGNAL
 };
 
+typedef struct _GNCQueryListPriv  GNCQueryListPriv;
+
 struct _GNCQueryListPriv 
 {
   const QofParam * get_guid;
   gint	          component_id;
 };
 
+#define GNC_QUERY_LIST_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_QUERY_LIST, GNCQueryListPriv))
+
 /* Impossible to get at runtime. Assume this is a reasonable number */
 #define ARROW_SIZE      14
 #define VSCROLLBAR_SLOP 40
@@ -115,6 +120,8 @@
 void
 gnc_query_list_construct (GNCQueryList *list, GList *param_list, Query *query)
 {
+  GNCQueryListPriv *priv;
+
   g_return_if_fail(list);
   g_return_if_fail(param_list);
   g_return_if_fail(query);
@@ -125,7 +132,8 @@
   list->column_params = param_list;
 
   /* cache the function to get the guid of this query type */
-  list->priv->get_guid =
+  priv = GNC_QUERY_LIST_GET_PRIVATE(list);
+  priv->get_guid =
     qof_class_get_parameter (qof_query_get_search_for(query), QOF_PARAM_GUID);
 
   /* Initialize the CList */
@@ -220,6 +228,8 @@
 static void
 gnc_query_list_init (GNCQueryList *list)
 {
+  GNCQueryListPriv *priv;
+
   list->query = NULL;
   list->no_toggle = FALSE;
   list->always_unselect = FALSE;
@@ -237,8 +247,8 @@
   list->numeric_abs = FALSE;
   list->numeric_inv_sort = FALSE;
 
-  list->priv = g_new0(GNCQueryListPriv, 1);
-  list->priv->component_id =
+  priv = GNC_QUERY_LIST_GET_PRIVATE(list);
+  priv->component_id =
     gnc_register_gui_component ("gnc-query-list-cm-class",
 				gnc_query_list_refresh_handler,
 				NULL, list);
@@ -331,6 +341,8 @@
 
   parent_class = gtk_type_class(GTK_TYPE_CLIST);
 
+  g_type_class_add_private(klass, sizeof(GNCQueryListPriv));
+
   query_list_signals[LINE_TOGGLED] =
     g_signal_new("line_toggled",
 		 G_TYPE_FROM_CLASS (object_class),
@@ -444,14 +456,11 @@
 gnc_query_list_destroy (GtkObject *object)
 {
   GNCQueryList *list = GNC_QUERY_LIST(object);
+  GNCQueryListPriv *priv;
 
-  if (list->priv && list->priv->component_id >= 0)
-    gnc_unregister_gui_component (list->priv->component_id);
-  if (list->priv)
-  {
-    g_free (list->priv);
-    list->priv = NULL;
-  }
+  priv = GNC_QUERY_LIST_GET_PRIVATE(list);
+  if (priv->component_id >= 0)
+    gnc_unregister_gui_component (priv->component_id);
   if (list->query)
   {
     xaccFreeQuery(list->query);
@@ -764,13 +773,15 @@
 static void
 gnc_query_list_fill(GNCQueryList *list)
 {
+  GNCQueryListPriv *priv;
   gchar *strings[list->num_columns + 1];
   GList *entries, *item;
   const GUID *guid;
   gint i;
 
   /* Clear all watches */
-  gnc_gui_component_clear_watches (list->priv->component_id);
+  priv = GNC_QUERY_LIST_GET_PRIVATE(list);
+  gnc_gui_component_clear_watches (priv->component_id);
 
   /* Reverse the list now because 'append()' takes too long */
   entries = gncQueryRun(list->query);
@@ -832,9 +843,9 @@
     update_booleans (list, row);
 
     /* and set a watcher on this item */
-    gup = list->priv->get_guid;
+    gup = priv->get_guid;
     guid = (const GUID*)((gup->param_getfcn)(item->data, gup));
-    gnc_gui_component_watch_entity (list->priv->component_id, guid,
+    gnc_gui_component_watch_entity (priv->component_id, guid,
 				    GNC_EVENT_MODIFY | GNC_EVENT_DESTROY);
 
     list->num_entries++;

Modified: gnucash/trunk/src/gnome-utils/gnc-query-list.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-query-list.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-query-list.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -31,14 +31,13 @@
 extern "C" {
 #endif				/* __cplusplus */
 
-#define GTK_TYPE_GNC_QUERY_LIST (gnc_query_list_get_type ())
-#define GNC_QUERY_LIST(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_GNC_QUERY_LIST, GNCQueryList))
-#define GNC_QUERY_LIST_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_GNC_QUERY_LIST, GNCQueryListClass))
-#define IS_GNC_QUERY_LIST(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_GNC_QUERY_LIST))
-#define IS_GNC_QUERY_LIST_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_GNC_QUERY_LIST))
+#define GNC_TYPE_QUERY_LIST (gnc_query_list_get_type ())
+#define GNC_QUERY_LIST(obj) (GTK_CHECK_CAST ((obj), GNC_TYPE_QUERY_LIST, GNCQueryList))
+#define GNC_QUERY_LIST_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GNC_TYPE_QUERY_LIST, GNCQueryListClass))
+#define IS_GNC_QUERY_LIST(obj) (GTK_CHECK_TYPE ((obj), GNC_TYPE_QUERY_LIST))
+#define IS_GNC_QUERY_LIST_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GNC_TYPE_QUERY_LIST))
 
 typedef struct _GNCQueryList      GNCQueryList;
-typedef struct _GNCQueryListPriv  GNCQueryListPriv;
 typedef struct _GNCQueryListClass GNCQueryListClass;
 
 struct _GNCQueryList
@@ -69,14 +68,11 @@
   /* Column resizing */
   gint prev_allocation;
   gint *title_widths;
-
-  /* Private data */
-  GNCQueryListPriv *priv;
 };
 
 struct _GNCQueryListClass
 {
-  GtkCListClass parent_class;
+  GtkCListClass clist_class;
 
   void (*line_toggled) (GNCQueryList *list, gpointer entry);
   void (*double_click_entry) (GNCQueryList *list, gpointer entry);

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-account-types.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-account-types.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-account-types.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -86,11 +86,14 @@
                                           GtkTreeIter * child);
 */
 
-struct GncTreeModelAccountTypesPrivate
+typedef struct GncTreeModelAccountTypesPrivate
 {
     guint32 selected;
-};
+} GncTreeModelAccountTypesPrivate;
 
+#define GNC_TREE_MODEL_ACCOUNT_TYPES_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_TREE_MODEL_ACCOUNT_TYPES, GncTreeModelAccountTypesPrivate))
+
 static GObjectClass *parent_class = NULL;
 
 GType
@@ -137,6 +140,8 @@
     parent_class = g_type_class_peek_parent (klass);
 
     object_class->finalize = gnc_tree_model_account_types_finalize;
+
+    g_type_class_add_private(klass, sizeof(GncTreeModelAccountTypesPrivate));
 }
 
 static void
@@ -145,24 +150,20 @@
     while (model->stamp == 0) {
         model->stamp = g_random_int ();
     }
-
-    model->priv = g_new0 (GncTreeModelAccountTypesPrivate, 1);
 }
 
 static void
 gnc_tree_model_account_types_finalize (GObject * object)
 {
     GncTreeModelAccountTypes *model;
+    GncTreeModelAccountTypesPrivate *priv;
 
     g_return_if_fail (object != NULL);
     g_return_if_fail (GNC_IS_TREE_MODEL_ACCOUNT_TYPES (object));
 
     model = GNC_TREE_MODEL_ACCOUNT_TYPES (object);
+    priv = GNC_TREE_MODEL_ACCOUNT_TYPES_GET_PRIVATE (model);
 
-    g_return_if_fail (model->priv != NULL);
-
-    g_free (model->priv);
-
     G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
@@ -170,9 +171,11 @@
 gnc_tree_model_account_types_new (guint32 selected)
 {
     GncTreeModelAccountTypes *model;
+    GncTreeModelAccountTypesPrivate *priv;
 
     model = g_object_new (GNC_TYPE_TREE_MODEL_ACCOUNT_TYPES, NULL);
-    model->priv->selected = selected;
+    priv = GNC_TREE_MODEL_ACCOUNT_TYPES_GET_PRIVATE(model);
+    priv->selected = selected;
 
     return GTK_TREE_MODEL (model);
 }
@@ -191,20 +194,24 @@
 guint32
 gnc_tree_model_account_types_get_selected (GncTreeModelAccountTypes * model)
 {
+	GncTreeModelAccountTypesPrivate *priv;
+
 	g_return_val_if_fail (model != NULL, 0);
-	g_return_val_if_fail (model->priv != NULL, 0);
 
-	return model->priv->selected;
+	priv = GNC_TREE_MODEL_ACCOUNT_TYPES_GET_PRIVATE(model);
+	return priv->selected;
 }
 
 void
 gnc_tree_model_account_types_set_selected (GncTreeModelAccountTypes * model,
 					   guint32 selected)
 {
+	GncTreeModelAccountTypesPrivate *priv;
+
 	g_return_if_fail (model != NULL);
-	g_return_if_fail (model->priv != NULL);
 
-	model->priv->selected = selected;
+	priv = GNC_TREE_MODEL_ACCOUNT_TYPES_GET_PRIVATE(model);
+	priv->selected = selected;
 }
 
 guint32
@@ -349,12 +356,13 @@
                                         GValue * value)
 {
     GncTreeModelAccountTypes *model = GNC_TREE_MODEL_ACCOUNT_TYPES(tree_model);
+    GncTreeModelAccountTypesPrivate *priv;
 
     g_return_if_fail (GNC_IS_TREE_MODEL_ACCOUNT_TYPES (model));
-    g_return_if_fail (model->priv != NULL);
     g_return_if_fail (iter != NULL);
     g_return_if_fail (iter->stamp == model->stamp);
 
+    priv = GNC_TREE_MODEL_ACCOUNT_TYPES_GET_PRIVATE(model);
     switch (column) {
     case GNC_TREE_MODEL_ACCOUNT_TYPES_COL_TYPE:
         g_value_init (value, G_TYPE_INT);
@@ -367,7 +375,7 @@
         break;
     case GNC_TREE_MODEL_ACCOUNT_TYPES_COL_SELECTED:
         g_value_init (value, G_TYPE_BOOLEAN);
-        g_value_set_boolean (value, model->priv->selected &
+        g_value_set_boolean (value, priv->selected &
                              (1 << GPOINTER_TO_INT (iter->user_data)));
         break;
     default:

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-account-types.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-account-types.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-account-types.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -57,18 +57,13 @@
 } GncTreeModelAccountTypesColumn;
 
 /* typedefs & structures */
-typedef struct GncTreeModelAccountTypesPrivate GncTreeModelAccountTypesPrivate;
-
 typedef struct {
-	GObject parent;
-
-	GncTreeModelAccountTypesPrivate *priv;
-
+	GObject gobject;
 	int stamp;
 } GncTreeModelAccountTypes;
 
 typedef struct {
-	GObjectClass parent;
+	GObjectClass gobject;
 } GncTreeModelAccountTypesClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-account.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-account.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-account.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -91,15 +91,17 @@
 						  GNCEngineEventType event_type,
 						  gpointer user_data);
 
-struct GncTreeModelAccountPrivate
+typedef struct GncTreeModelAccountPrivate
 {
 	QofBook *book;
 	AccountGroup *root;
 	Account *toplevel;
 	gint event_handler_id;
 	const gchar *negative_color;
-};
+} GncTreeModelAccountPrivate;
 
+#define GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_TREE_MODEL_ACCOUNT, GncTreeModelAccountPrivate))
 
 
 /************************************************************/
@@ -115,15 +117,17 @@
 static void
 gnc_tree_model_account_update_color (GConfEntry *entry, gpointer user_data)
 {
+	GncTreeModelAccountPrivate *priv;
 	GncTreeModelAccount *model;
 	GConfValue *value;
 	gboolean use_red;
 
 	g_return_if_fail(GNC_IS_TREE_MODEL_ACCOUNT(user_data));
 	model = user_data;
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 	value = gconf_entry_get_value(entry);
 	use_red = gconf_value_get_bool(value);
-	model->priv->negative_color = use_red ? "red" : "black";
+	priv->negative_color = use_red ? "red" : "black";
 }
 /************************************************************/
 /*               g_object required functions                */
@@ -183,11 +187,14 @@
 
 	/* GtkObject signals */
 	object_class->destroy = gnc_tree_model_account_destroy;
+
+	g_type_class_add_private(klass, sizeof(GncTreeModelAccountPrivate));
 }
 
 static void
 gnc_tree_model_account_init (GncTreeModelAccount *model)
 {
+	GncTreeModelAccountPrivate *priv;
 	gboolean red;
 
 	ENTER("model %p", model);
@@ -197,11 +204,11 @@
 
 	red = gnc_gconf_get_bool(GCONF_GENERAL, KEY_NEGATIVE_IN_RED, NULL);
 
-	model->priv = g_new0 (GncTreeModelAccountPrivate, 1);
-	model->priv->book = NULL;
-	model->priv->root = NULL;
-	model->priv->toplevel = NULL;
-	model->priv->negative_color = red ? "red" : "black";
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+	priv->book = NULL;
+	priv->root = NULL;
+	priv->toplevel = NULL;
+	priv->negative_color = red ? "red" : "black";
 
 	gnc_gconf_general_register_cb(KEY_NEGATIVE_IN_RED,
 				      gnc_tree_model_account_update_color,
@@ -213,6 +220,7 @@
 static void
 gnc_tree_model_account_finalize (GObject *object)
 {
+	GncTreeModelAccountPrivate *priv;
 	GncTreeModelAccount *model;
 
 	ENTER("model %p", object);
@@ -220,13 +228,13 @@
 	g_return_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (object));
 
 	model = GNC_TREE_MODEL_ACCOUNT (object);
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 
 	gnc_gconf_general_remove_cb(KEY_NEGATIVE_IN_RED,
 				    gnc_tree_model_account_update_color,
 				    model);
 
-	model->priv->book = NULL;
-	g_free (model->priv);
+	priv->book = NULL;
 
 	if (G_OBJECT_CLASS (parent_class)->finalize)
 	  (* G_OBJECT_CLASS (parent_class)->finalize) (object);
@@ -236,6 +244,7 @@
 static void
 gnc_tree_model_account_destroy (GtkObject *object)
 {
+	GncTreeModelAccountPrivate *priv;
 	GncTreeModelAccount *model;
 
 	ENTER("model %p", object);
@@ -244,9 +253,10 @@
 
 	model = GNC_TREE_MODEL_ACCOUNT (object);
 
-	if (model->priv->event_handler_id) {
-	  gnc_engine_unregister_event_handler (model->priv->event_handler_id);
-	  model->priv->event_handler_id = 0;
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+	if (priv->event_handler_id) {
+	  gnc_engine_unregister_event_handler (priv->event_handler_id);
+	  priv->event_handler_id = 0;
 	}
 
 	if (GTK_OBJECT_CLASS (parent_class)->destroy)
@@ -270,7 +280,8 @@
 	item = gnc_gobject_tracking_get_list(GNC_TREE_MODEL_ACCOUNT_NAME);
 	for ( ; item; item = g_list_next(item)) {
 		model = (GncTreeModelAccount *)item->data;
-		if (model->priv->root == group) {
+		priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+		if (priv->root == group) {
 			LEAVE("returning existing model %p", model);
 			return GTK_TREE_MODEL(model);
 		}
@@ -279,7 +290,7 @@
 	model = g_object_new (GNC_TYPE_TREE_MODEL_ACCOUNT,
 			      NULL);
 
-	priv = model->priv;
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 	priv->book = gnc_get_current_book();
 	priv->root = group;
 
@@ -418,6 +429,7 @@
 				 GtkTreeIter *iter,
 				 GtkTreePath *path)
 {
+	GncTreeModelAccountPrivate *priv;
 	GncTreeModelAccount *model;
 	Account *account = NULL;
 	AccountGroup *group = NULL, *children;
@@ -431,13 +443,13 @@
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
 
 	model = GNC_TREE_MODEL_ACCOUNT (tree_model);
-
-	if (model->priv->toplevel != NULL) {
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+	if (priv->toplevel != NULL) {
 		if (gtk_tree_path_get_depth (path) > 1) {
 			i++;
 		} else {
 
-			iter->user_data = model->priv->toplevel;
+			iter->user_data = priv->toplevel;
 			iter->user_data2 = NULL;
 			iter->user_data3 = GINT_TO_POINTER (0);
 			iter->stamp = model->stamp;
@@ -447,12 +459,12 @@
 		}
 	}
 
-	if (model->priv->root == NULL) {
+	if (priv->root == NULL) {
 		LEAVE("failed (2)");
 		return FALSE;
 	}
 
-	children = model->priv->root;
+	children = priv->root;
 
 	indices = gtk_tree_path_get_indices (path);
 	for (; i < gtk_tree_path_get_depth (path); i++) {
@@ -489,6 +501,7 @@
 				 GtkTreeIter *iter)
 {
 	GncTreeModelAccount *model = GNC_TREE_MODEL_ACCOUNT (tree_model);
+	GncTreeModelAccountPrivate *priv;
 	Account *account;
 	AccountGroup *group;
 	GtkTreePath *path;
@@ -501,7 +514,8 @@
 	g_return_val_if_fail (iter->user_data != NULL, NULL);
 	g_return_val_if_fail (iter->stamp == model->stamp, NULL);
 	
-	if (model->priv->root == NULL) {
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+	if (priv->root == NULL) {
 		LEAVE("failed (1)");
 		return NULL;
 	}
@@ -511,8 +525,8 @@
 
 	path = gtk_tree_path_new ();
 
-	if (model->priv->toplevel != NULL) {
-		if (account == model->priv->toplevel) {
+	if (priv->toplevel != NULL) {
+		if (account == priv->toplevel) {
 			gtk_tree_path_append_index (path, 0);
 
 			{
@@ -529,7 +543,7 @@
 		for (i = 0; i < xaccGroupGetNumAccounts (group); i++) {
 			if (xaccGroupGetAccount (group, i) == account) {
 				found = TRUE;
-				if (group == model->priv->root)
+				if (group == priv->root)
 					finished = TRUE;
 				break;
 			}
@@ -547,7 +561,7 @@
 		group = xaccAccountGetParent (account);
 	} while (!finished);
 
-	if (model->priv->toplevel != NULL) {
+	if (priv->toplevel != NULL) {
 		gtk_tree_path_prepend_index (path, 0);
 	}
 
@@ -564,8 +578,11 @@
 				 gboolean negative,
 				 GValue *value)
 {
+	GncTreeModelAccountPrivate *priv;
+
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 	if (negative)
-	  g_value_set_static_string (value, model->priv->negative_color);
+	  g_value_set_static_string (value, priv->negative_color);
 	else 
 	  g_value_set_static_string (value, "black");
 }
@@ -577,6 +594,7 @@
 				  GValue *value)
 {
 	GncTreeModelAccount *model = GNC_TREE_MODEL_ACCOUNT (tree_model);
+	GncTreeModelAccountPrivate *priv;
 	Account *account;
 	gboolean negative; /* used to set "defecit style" aka red numbers */
 	gchar *string;
@@ -589,11 +607,12 @@
 	g_return_if_fail (iter->stamp == model->stamp);
 
 	account = (Account *) iter->user_data;
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 
 	switch (column) {
 		case GNC_TREE_MODEL_ACCOUNT_COL_NAME:
 			g_value_init (value, G_TYPE_STRING);
-			if (account == model->priv->toplevel)
+			if (account == priv->toplevel)
 			  g_value_set_string (value, _("New top level account"));
 			else
 			  g_value_set_string (value, xaccAccountGetName (account));
@@ -768,6 +787,7 @@
 				  GtkTreeIter *iter)
 {
 	GncTreeModelAccount *model = GNC_TREE_MODEL_ACCOUNT (tree_model);
+	GncTreeModelAccountPrivate *priv;
 	Account *account;
 	AccountGroup *group;
 	gint i;
@@ -778,7 +798,8 @@
 	g_return_val_if_fail (iter->user_data != NULL, FALSE);
 	g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
 
-	if (iter->user_data == model->priv->toplevel) {
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+	if (iter->user_data == priv->toplevel) {
 		iter->stamp = 0;
 		LEAVE("failed (1)");
 		return FALSE;
@@ -814,6 +835,7 @@
 				      GtkTreeIter *iter,
 				      GtkTreeIter *parent)
 {
+	GncTreeModelAccountPrivate *priv;
 	GncTreeModelAccount *model;
 	Account *account;
 	AccountGroup *group;
@@ -827,29 +849,30 @@
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
 
 	model = GNC_TREE_MODEL_ACCOUNT (tree_model);
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 
-	if (model->priv->toplevel != NULL) {
+	if (priv->toplevel != NULL) {
 		if (parent == NULL) {
-			iter->user_data = model->priv->toplevel;
+			iter->user_data = priv->toplevel;
 			iter->user_data2 = NULL;
 			iter->user_data3 = GINT_TO_POINTER (0);
 			iter->stamp = model->stamp;
 			LEAVE("iter (1) %s", iter_to_string(iter));
 			return TRUE;
-		} else if (parent->user_data == model->priv->toplevel) {
+		} else if (parent->user_data == priv->toplevel) {
 			parent = NULL;
 		}
 	}
 
-	if (model->priv->root == NULL || 
-            xaccGroupGetNumAccounts (model->priv->root) == 0) {
+	if (priv->root == NULL || 
+            xaccGroupGetNumAccounts (priv->root) == 0) {
 		iter->stamp = 0;
 		LEAVE("failed (either no group or group has no accounts)");
 		return FALSE;
 	}
 
 	if (parent == NULL) {
-		account = xaccGroupGetAccount (model->priv->root, 0);
+		account = xaccGroupGetAccount (priv->root, 0);
 		
 		if (account == NULL) {
 			iter->stamp = 0;
@@ -858,7 +881,7 @@
 		}
 
 		iter->user_data = account;
-		iter->user_data2 = model->priv->root;
+		iter->user_data2 = priv->root;
 		iter->user_data3 = GINT_TO_POINTER (0);
 		iter->stamp = model->stamp;
 		LEAVE("iter (2) %s", iter_to_string(iter));
@@ -899,19 +922,21 @@
 				       GtkTreeIter *iter)
 {
 	GncTreeModelAccount *model;
+	GncTreeModelAccountPrivate *priv;
 	AccountGroup *group;
 
 	ENTER("model %p, iter %s", tree_model, iter_to_string(iter));
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
 
 	model = GNC_TREE_MODEL_ACCOUNT (tree_model);
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 
 	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);
 
-	if (iter->user_data == model->priv->toplevel) {
-		group = model->priv->root;
+	if (iter->user_data == priv->toplevel) {
+		group = priv->root;
 	} else {
 		group = xaccAccountGetChildren ((Account *) iter->user_data);
 	}
@@ -930,20 +955,22 @@
 					GtkTreeIter *iter)
 {
 	GncTreeModelAccount *model;
+	GncTreeModelAccountPrivate *priv;
 	AccountGroup *group;
 
 	ENTER("model %p, iter %s", tree_model, iter_to_string(iter));
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
 
 	model = GNC_TREE_MODEL_ACCOUNT (tree_model);
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 
 	if (iter == NULL) {
-		if (model->priv->toplevel != NULL) {
+		if (priv->toplevel != NULL) {
 			LEAVE("count is 1");
 			return 1;
 		} else {
-			LEAVE("count is %d", xaccGroupGetNumAccounts (model->priv->root));
-			return xaccGroupGetNumAccounts (model->priv->root);
+			LEAVE("count is %d", xaccGroupGetNumAccounts (priv->root));
+			return xaccGroupGetNumAccounts (priv->root);
 		}
 	}
 
@@ -951,8 +978,8 @@
 	g_return_val_if_fail (iter->user_data != NULL, FALSE);
 	g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
 
-	if (model->priv->toplevel == iter->user_data) {
-		group = model->priv->root;
+	if (priv->toplevel == iter->user_data) {
+		group = priv->root;
 	} else {
 		group = xaccAccountGetChildren ((Account *) iter->user_data);
 	}
@@ -968,6 +995,7 @@
 				       int n)
 {
 	GncTreeModelAccount *model;
+	GncTreeModelAccountPrivate *priv;
 	Account *account;
 	AccountGroup *group;
 
@@ -986,15 +1014,16 @@
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
 
 	model = GNC_TREE_MODEL_ACCOUNT (tree_model);
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 
 	if (parent == NULL) {
-		if (model->priv->toplevel != NULL) {
+		if (priv->toplevel != NULL) {
 			if (n > 0) {
 				iter->stamp = 0;
 				LEAVE("failed (1)");
 				return FALSE;
 			} else {
-				iter->user_data = model->priv->toplevel;
+				iter->user_data = priv->toplevel;
 				iter->user_data2 = NULL;
 				iter->user_data3 = GINT_TO_POINTER (0);
 				iter->stamp = model->stamp;
@@ -1003,7 +1032,7 @@
 			}
 		}
 
-		account = xaccGroupGetAccount (model->priv->root, n);
+		account = xaccGroupGetAccount (priv->root, n);
 
 		if (account == NULL) {
 			iter->stamp = 0;
@@ -1012,7 +1041,7 @@
 		}
 
 		iter->user_data = account;
-		iter->user_data2 = model->priv->root;
+		iter->user_data2 = priv->root;
 		iter->user_data3 = GINT_TO_POINTER (n);
 		iter->stamp = model->stamp;
 		LEAVE("iter (2) %s", iter_to_string(iter));
@@ -1022,8 +1051,8 @@
 	g_return_val_if_fail (parent->user_data != NULL, FALSE);
 	g_return_val_if_fail (parent->stamp == model->stamp, FALSE);
 
-	if (model->priv->toplevel == parent->user_data) {
-		group = model->priv->root;
+	if (priv->toplevel == parent->user_data) {
+		group = priv->root;
 	} else {
 		group = xaccAccountGetChildren ((Account *) parent->user_data);
 	}
@@ -1056,6 +1085,7 @@
     				    GtkTreeIter *child)
 {
 	GncTreeModelAccount *model;
+	GncTreeModelAccountPrivate *priv;
 	Account *account;
 	AccountGroup *group;
 	gint i;
@@ -1075,6 +1105,7 @@
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (tree_model), FALSE);
 
 	model = GNC_TREE_MODEL_ACCOUNT (tree_model);
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
 
 	g_return_val_if_fail (child != NULL, FALSE);
 	g_return_val_if_fail (child->user_data != NULL, FALSE);
@@ -1082,7 +1113,7 @@
 
 	account = (Account *) child->user_data;
 
-	if (account == model->priv->toplevel) {
+	if (account == priv->toplevel) {
 		iter->stamp = 0;
 		LEAVE("failed (1)");
 		return FALSE;
@@ -1092,8 +1123,8 @@
 	group = xaccAccountGetParent (account);
 
 	if (account == NULL || group == NULL) {
-		if (model->priv->toplevel != NULL) {
-			iter->user_data = model->priv->toplevel;
+		if (priv->toplevel != NULL) {
+			iter->user_data = priv->toplevel;
 			iter->user_data2 = NULL;
 			iter->user_data3 = GINT_TO_POINTER (0);
 			iter->stamp = model->stamp;
@@ -1117,8 +1148,8 @@
 		}
 	}
 
-	if (model->priv->toplevel != NULL) {
-		iter->user_data = model->priv->toplevel;
+	if (priv->toplevel != NULL) {
+		iter->user_data = priv->toplevel;
 		iter->user_data2 = NULL;
 		iter->user_data3 = GINT_TO_POINTER (0);
 		iter->stamp = model->stamp;
@@ -1165,9 +1196,12 @@
 Account *
 gnc_tree_model_account_get_toplevel (GncTreeModelAccount *model)
 {
+	GncTreeModelAccountPrivate *priv;
+
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), NULL);
 
-	return model->priv->toplevel;
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+	return priv->toplevel;
 }
 
 /*
@@ -1178,6 +1212,7 @@
 gnc_tree_model_account_set_toplevel (GncTreeModelAccount *model,
                                      Account *toplevel)
 {
+	GncTreeModelAccountPrivate *priv;
 	GtkTreePath *path;
 	gint i;
 	GtkTreeIter iter;
@@ -1185,8 +1220,9 @@
 	ENTER("model %p, toplevel %p", model, toplevel);
 	g_return_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model));
 
-	DEBUG("old toplevel %p", model->priv->toplevel);
-	if (model->priv->toplevel != NULL) {
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+	DEBUG("old toplevel %p", priv->toplevel);
+	if (priv->toplevel != NULL) {
             /* CAS: this can't happen because we only set toplevel on
              * new tree models. */
 		path = gtk_tree_path_new_first ();
@@ -1197,26 +1233,26 @@
              * have no rows, so why are we emitting a bunch of
              * "row_deleted" signals when no rows can exist? */
 		path = gtk_tree_path_new_first ();
-		for (i = 0; i < xaccGroupGetNumAccounts (model->priv->root); i++) {
+		for (i = 0; i < xaccGroupGetNumAccounts (priv->root); i++) {
 			gtk_tree_model_row_deleted (GTK_TREE_MODEL (model), path);
 		}
 		gtk_tree_path_free (path);
 	}
 
 	DEBUG("set new toplevel %p", toplevel);
-	model->priv->toplevel = toplevel;
+	priv->toplevel = toplevel;
 
-	if (model->priv->toplevel != NULL) {
+	if (priv->toplevel != NULL) {
 		path = gtk_tree_path_new_first ();
 		gtk_tree_model_get_iter (GTK_TREE_MODEL (model), &iter, path);
 		gtk_tree_model_row_inserted (GTK_TREE_MODEL (model), path, &iter);
 		gtk_tree_path_free (path);
 	}
 
-	if (model->priv->root != NULL) {
-		xaccGroupForEachAccount (model->priv->root, account_row_inserted, model, TRUE);
+	if (priv->root != NULL) {
+		xaccGroupForEachAccount (priv->root, account_row_inserted, model, TRUE);
 	}
-	LEAVE("new toplevel %p", model->priv->root);
+	LEAVE("new toplevel %p", priv->root);
 }
 
 /************************************************************/
@@ -1249,6 +1285,7 @@
 					      Account *account,
 					      GtkTreeIter *iter)
 {
+	GncTreeModelAccountPrivate *priv;
 	AccountGroup *group;
 	gboolean found = FALSE;
 	gint i;
@@ -1258,7 +1295,8 @@
 	g_return_val_if_fail ((account != NULL), FALSE);
 	g_return_val_if_fail ((iter != NULL), FALSE);
 
-	if (model->priv->root != xaccAccountGetRoot (account)) {
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+	if (priv->root != xaccAccountGetRoot (account)) {
 		LEAVE("Root doesn't match");
 		return FALSE;
 	}
@@ -1266,7 +1304,7 @@
 	iter->user_data = account;
 	iter->stamp = model->stamp;
 
-	if (account == model->priv->toplevel) {
+	if (account == priv->toplevel) {
 		iter->user_data2 = NULL;
 		iter->user_data3 = GINT_TO_POINTER (0);
 		LEAVE("Matched top level");
@@ -1429,6 +1467,7 @@
 				      gpointer user_data)
 {
   	GncTreeModelAccount *model;
+  	GncTreeModelAccountPrivate *priv;
 	GtkTreePath *path;
 	GtkTreeIter iter;
 	Account *account;
@@ -1447,7 +1486,8 @@
 	model = (GncTreeModelAccount *)user_data;
 
 	/* Get the account.*/
-	account = xaccAccountLookup (entity, model->priv->book);
+	priv = GNC_TREE_MODEL_ACCOUNT_GET_PRIVATE(model);
+	account = xaccAccountLookup (entity, priv->book);
 	if (!account) {
 	  LEAVE("account not in this model's book");
 	  return;

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-account.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-account.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-account.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -90,13 +90,8 @@
 } GncTreeModelAccountColumn;
 
 /* typedefs & structures */
-typedef struct GncTreeModelAccountPrivate GncTreeModelAccountPrivate;
-
 typedef struct {
 	GncTreeModel gnc_tree_model;
-
-	GncTreeModelAccountPrivate *priv;
-
 	int stamp;
 } GncTreeModelAccount;
 

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -87,13 +87,16 @@
 						    GNCEngineEventType event_type,
 						    gpointer user_data);
 
-struct GncTreeModelCommodityPrivate
+typedef struct GncTreeModelCommodityPrivate
 {
 	QofBook *book;
 	gnc_commodity_table *commodity_table;
 	gint event_handler_id;
-};
+} GncTreeModelCommodityPrivate;
 
+#define GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_TREE_MODEL_COMMODITY, GncTreeModelCommodityPrivate))
+
 static GtkObjectClass *parent_class = NULL;
 
 GType
@@ -144,6 +147,8 @@
 
 	/* GtkObject signals */
 	object_class->destroy = gnc_tree_model_commodity_destroy;
+
+	g_type_class_add_private(klass, sizeof(GncTreeModelCommodityPrivate));
 }
 
 static void
@@ -152,14 +157,13 @@
 	while (model->stamp == 0) {
 		model->stamp = g_random_int ();
 	}
-
-	model->priv = g_new0 (GncTreeModelCommodityPrivate, 1);
 }
 
 static void
 gnc_tree_model_commodity_finalize (GObject *object)
 {
 	GncTreeModelCommodity *model;
+	GncTreeModelCommodityPrivate *priv;
 
 	ENTER("model %p", object);
 
@@ -167,13 +171,10 @@
 	g_return_if_fail (GNC_IS_TREE_MODEL_COMMODITY (object));
 
 	model = GNC_TREE_MODEL_COMMODITY (object);
+	priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+	priv->book = NULL;
+	priv->commodity_table = NULL;
 
-	g_return_if_fail (model->priv != NULL);
-
-	model->priv->book = NULL;
-	model->priv->commodity_table = NULL;
-	g_free (model->priv);
-
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 	LEAVE(" ");
 }
@@ -182,16 +183,18 @@
 gnc_tree_model_commodity_destroy (GtkObject *object)
 {
 	GncTreeModelCommodity *model;
+	GncTreeModelCommodityPrivate *priv;
 
 	ENTER("model %p", object);
 	g_return_if_fail (object != NULL);
 	g_return_if_fail (GNC_IS_TREE_MODEL_COMMODITY (object));
 
 	model = GNC_TREE_MODEL_COMMODITY (object);
+	priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
 
-	if (model->priv->event_handler_id) {
-	  gnc_engine_unregister_event_handler (model->priv->event_handler_id);
-	  model->priv->event_handler_id = 0;
+	if (priv->event_handler_id) {
+	  gnc_engine_unregister_event_handler (priv->event_handler_id);
+	  priv->event_handler_id = 0;
 	}
 
 	if (GTK_OBJECT_CLASS (parent_class)->destroy)
@@ -203,24 +206,25 @@
 gnc_tree_model_commodity_new (QofBook *book, gnc_commodity_table *ct)
 {
 	GncTreeModelCommodity *model;
+	GncTreeModelCommodityPrivate *priv;
 	const GList *item;
 
 	item = gnc_gobject_tracking_get_list(GNC_TREE_MODEL_COMMODITY_NAME);
 	for ( ; item; item = g_list_next(item)) {
 		model = (GncTreeModelCommodity *)item->data;
-		if (model->priv->commodity_table == ct) {
+		priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+		if (priv->commodity_table == ct) {
 			LEAVE("returning existing model %p", model);
 			return GTK_TREE_MODEL(model);
 		}
 	}
 
-	model = g_object_new (GNC_TYPE_TREE_MODEL_COMMODITY,
-			      NULL);
+	model = g_object_new (GNC_TYPE_TREE_MODEL_COMMODITY, NULL);
+	priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+	priv->book = book;
+	priv->commodity_table = ct;
 
-	model->priv->book = book;
-	model->priv->commodity_table = ct;
-
-	model->priv->event_handler_id =
+	priv->event_handler_id =
 	  gnc_engine_register_event_handler (gnc_tree_model_commodity_event_handler, model);
 
 	return GTK_TREE_MODEL (model);
@@ -408,6 +412,7 @@
 				   GtkTreePath *path)
 {
 	GncTreeModelCommodity *model;
+	GncTreeModelCommodityPrivate *priv;
 	gnc_commodity_table *ct;
 	gnc_commodity_namespace *namespace;
 	gnc_commodity *commodity = NULL;
@@ -424,7 +429,8 @@
 	debug_path(DEBUG, path);
 
 	model = GNC_TREE_MODEL_COMMODITY (tree_model);
-	ct = model->priv->commodity_table;
+	priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+	ct = priv->commodity_table;
 	if (ct == NULL) {
 	  LEAVE("no commodity table");
 	  return FALSE;
@@ -471,6 +477,7 @@
 				   GtkTreeIter *iter)
 {
 	GncTreeModelCommodity *model;
+	GncTreeModelCommodityPrivate *priv;
 	GtkTreePath *path;
 	gnc_commodity_table *ct;
 	gnc_commodity_namespace *namespace;
@@ -484,7 +491,8 @@
 	g_return_val_if_fail (iter->user_data2 != NULL, NULL);
 	g_return_val_if_fail (iter->stamp == model->stamp, NULL);
 	
-	ct = model->priv->commodity_table;
+	priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+	ct = priv->commodity_table;
 	if (ct == NULL) {
 	  LEAVE("no commodity table");
 	  return FALSE;
@@ -626,6 +634,7 @@
 				    GtkTreeIter *iter)
 {
 	GncTreeModelCommodity *model;
+	GncTreeModelCommodityPrivate *priv;
 	gnc_commodity_table *ct;
 	gnc_commodity_namespace *namespace;
 	GList *list;
@@ -639,8 +648,9 @@
 	g_return_val_if_fail (iter->user_data2 != NULL, FALSE);
 	g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
 
+	priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
 	if (iter->user_data == ITER_IS_NAMESPACE) {
-	  ct = model->priv->commodity_table;
+	  ct = priv->commodity_table;
 	  list = gnc_commodity_table_get_namespaces_list(ct);
 	} else if (iter->user_data == ITER_IS_COMMODITY) {
 	  namespace = gnc_commodity_get_namespace_ds((gnc_commodity *)iter->user_data2);
@@ -668,6 +678,7 @@
 					GtkTreeIter *parent)
 {
 	GncTreeModelCommodity *model;
+	GncTreeModelCommodityPrivate *priv;
 	gnc_commodity_table *ct;
 	gnc_commodity_namespace *namespace;
 	GList *list;
@@ -677,9 +688,10 @@
 	ENTER("model %p, iter %p, parent %p (%s)",
 	      tree_model, iter, parent, iter_to_string(parent));
 	model = GNC_TREE_MODEL_COMMODITY (tree_model);
+	priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
 
 	if (parent == NULL) {
-	  ct = model->priv->commodity_table;
+	  ct = priv->commodity_table;
 	  list = gnc_commodity_table_get_namespaces_list(ct);
 	  if (list == NULL) {
 	    LEAVE("no namespaces");
@@ -741,6 +753,7 @@
 					  GtkTreeIter *iter)
 {
 	GncTreeModelCommodity *model;
+	GncTreeModelCommodityPrivate *priv;
 	gnc_commodity_table *ct;
 	gnc_commodity_namespace *namespace;
 	GList *list;
@@ -749,9 +762,10 @@
 
 	ENTER("model %p, iter %p (%s)", tree_model, iter, iter_to_string(iter));
 	model = GNC_TREE_MODEL_COMMODITY (tree_model);
+	priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
 
 	if (iter == NULL) {
-	  ct = model->priv->commodity_table;
+	  ct = priv->commodity_table;
 	  list = gnc_commodity_table_get_namespaces_list(ct);
 	  LEAVE("ns list length %d", g_list_length(list));
 	  return g_list_length (list);
@@ -775,6 +789,7 @@
 					 int n)
 {
 	GncTreeModelCommodity *model;
+	GncTreeModelCommodityPrivate *priv;
 	gnc_commodity_table *ct;
 	gnc_commodity_namespace *namespace;
 	GList *list;
@@ -785,9 +800,10 @@
 	ENTER("model %p, iter %p, parent %p (%s)",
 	      tree_model, iter, parent, iter_to_string(parent));
 	model = GNC_TREE_MODEL_COMMODITY (tree_model);
+	priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
 
 	if (parent == NULL) {
-	  ct = model->priv->commodity_table;
+	  ct = priv->commodity_table;
 	  list = gnc_commodity_table_get_namespaces_list(ct);
 
 	  iter->stamp      = model->stamp;
@@ -821,6 +837,7 @@
 				      GtkTreeIter *child)
 {
 	GncTreeModelCommodity *model;
+	GncTreeModelCommodityPrivate *priv;
 	gnc_commodity_table *ct;
 	gnc_commodity_namespace *namespace;
 	GList *list;
@@ -832,13 +849,14 @@
 	ENTER("model %p, iter %p, child %p (%s)",
 	      tree_model, iter, child, iter_to_string(child));
 	model = GNC_TREE_MODEL_COMMODITY (tree_model);
+	priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
 
 	if (child->user_data == ITER_IS_NAMESPACE) {
 	  LEAVE("ns has no parent");
 	  return FALSE;
 	}
 
-	ct = model->priv->commodity_table;
+	ct = priv->commodity_table;
 	list = gnc_commodity_table_get_namespaces_list(ct);
 	namespace = gnc_commodity_get_namespace_ds((gnc_commodity*)child->user_data2);
 
@@ -941,6 +959,7 @@
 						  gnc_commodity_namespace *namespace,
 						  GtkTreeIter *iter)
 {
+	GncTreeModelCommodityPrivate *priv;
 	GList *list;
 	gint n;
 	
@@ -949,7 +968,8 @@
 	g_return_val_if_fail ((namespace != NULL), FALSE);
 	g_return_val_if_fail ((iter != NULL), FALSE);
 
-	list = gnc_commodity_table_get_namespaces_list(model->priv->commodity_table);
+	priv = GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(model);
+	list = gnc_commodity_table_get_namespaces_list(priv->commodity_table);
 	if (list == NULL)
 	  return FALSE;
 

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-commodity.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -75,13 +75,8 @@
 } GncTreeModelCommodityColumn;
 
 /* typedefs & structures */
-typedef struct GncTreeModelCommodityPrivate GncTreeModelCommodityPrivate;
-
 typedef struct {
 	GncTreeModel gnc_tree_model;
-
-	GncTreeModelCommodityPrivate *priv;
-
 	int stamp;
 } GncTreeModelCommodity;
 

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-example-account.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-example-account.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-example-account.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -65,11 +65,14 @@
 							    GtkTreeIter *iter,
     							    GtkTreeIter *child);
 
-struct GncTreeModelExampleAccountPrivate
+typedef struct GncTreeModelExampleAccountPrivate
 {
 	GSList *accounts;
-};
+} GncTreeModelExampleAccountPrivate;
 
+#define GNC_TREE_MODEL_EXAMPLE_ACCOUNT_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_TREE_MODEL_EXAMPLE_ACCOUNT, GncTreeModelExampleAccountPrivate))
+
 static GObjectClass *parent_class = NULL;
 
 GType
@@ -116,6 +119,8 @@
 	parent_class = g_type_class_peek_parent (klass);
 
 	object_class->finalize = gnc_tree_model_example_account_finalize;
+
+	g_type_class_add_private(klass, sizeof(GncTreeModelExampleAccountPrivate));
 }
 
 static void
@@ -124,25 +129,22 @@
 	while (model->stamp == 0) {
 		model->stamp = g_random_int ();
 	}
-
-	model->priv = g_new0 (GncTreeModelExampleAccountPrivate, 1);
 }
 
 static void
 gnc_tree_model_example_account_finalize (GObject *object)
 {
 	GncTreeModelExampleAccount *model;
+	GncTreeModelExampleAccountPrivate *priv;
 
 	g_return_if_fail (object != NULL);
 	g_return_if_fail (GNC_IS_TREE_MODEL_EXAMPLE_ACCOUNT (object));
 
 	model = GNC_TREE_MODEL_EXAMPLE_ACCOUNT (object);
+	priv = GNC_TREE_MODEL_EXAMPLE_ACCOUNT_GET_PRIVATE(model);
 
-	g_return_if_fail (model->priv != NULL);
+	g_slist_free (priv->accounts);
 
-	g_slist_free (model->priv->accounts);
-	g_free (model->priv);
-
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
@@ -150,11 +152,13 @@
 gnc_tree_model_example_account_new (GSList *accounts)
 {
 	GncTreeModelExampleAccount *model;
+	GncTreeModelExampleAccountPrivate *priv;
 
 	model = g_object_new (GNC_TYPE_TREE_MODEL_EXAMPLE_ACCOUNT,
 			      NULL);
 
-	model->priv->accounts = accounts;
+	priv = GNC_TREE_MODEL_EXAMPLE_ACCOUNT_GET_PRIVATE(model);
+	priv->accounts = accounts;
 
 	return GTK_TREE_MODEL (model);
 }
@@ -163,11 +167,14 @@
 gnc_tree_model_example_account_set_accounts (GncTreeModelExampleAccount *model,
                                              GSList *accounts)
 {
+	GncTreeModelExampleAccountPrivate *priv;
+
 	g_return_if_fail (model != NULL);
 
-	g_slist_free (model->priv->accounts);
+	priv = GNC_TREE_MODEL_EXAMPLE_ACCOUNT_GET_PRIVATE(model);
+	g_slist_free (priv->accounts);
 
-	model->priv->accounts = accounts;
+	priv->accounts = accounts;
 }
 
 GncExampleAccount *
@@ -235,20 +242,22 @@
 					 GtkTreePath *path)
 {
 	GncTreeModelExampleAccount *model = GNC_TREE_MODEL_EXAMPLE_ACCOUNT (tree_model);
+	GncTreeModelExampleAccountPrivate *priv;
 	guint i;
 
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_EXAMPLE_ACCOUNT (model), FALSE);
 	g_return_val_if_fail (gtk_tree_path_get_depth (path) > 0, FALSE);
 	
-	if (model->priv->accounts == NULL)
+	priv = GNC_TREE_MODEL_EXAMPLE_ACCOUNT_GET_PRIVATE(model);
+	if (priv->accounts == NULL)
 		return FALSE;
 
 	i = gtk_tree_path_get_indices (path)[0];
 
-	g_return_val_if_fail (i >= 0 && i < g_slist_length (model->priv->accounts), FALSE);
+	g_return_val_if_fail (i >= 0 && i < g_slist_length (priv->accounts), FALSE);
 
 	iter->stamp = model->stamp;
-	iter->user_data = g_slist_nth (model->priv->accounts, i);
+	iter->user_data = g_slist_nth (priv->accounts, i);
 
 	if (iter->user_data == NULL) {
 		iter->stamp = 0;
@@ -263,6 +272,7 @@
 					 GtkTreeIter *iter)
 {
 	GncTreeModelExampleAccount *model = GNC_TREE_MODEL_EXAMPLE_ACCOUNT (tree_model);
+	GncTreeModelExampleAccountPrivate *priv;
 	GtkTreePath *path;
 
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_EXAMPLE_ACCOUNT (model), NULL);
@@ -270,12 +280,13 @@
 	g_return_val_if_fail (iter->user_data != NULL, NULL);
 	g_return_val_if_fail (iter->stamp == model->stamp, NULL);
 	
-	if (model->priv->accounts == NULL)
+	priv = GNC_TREE_MODEL_EXAMPLE_ACCOUNT_GET_PRIVATE(model);
+	if (priv->accounts == NULL)
 		return NULL;
 
 	path = gtk_tree_path_new ();
 
-	gtk_tree_path_append_index (path, g_slist_position (model->priv->accounts, iter->user_data));
+	gtk_tree_path_append_index (path, g_slist_position (priv->accounts, iter->user_data));
 
 	return path;
 }
@@ -341,14 +352,18 @@
 					      GtkTreeIter *iter,
 					      GtkTreeIter *parent)
 {
+	GncTreeModelExampleAccount *model;
+	GncTreeModelExampleAccountPrivate *priv;
 
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_EXAMPLE_ACCOUNT (tree_model), FALSE);
 
 	if (parent != NULL)
 		return FALSE;
 
-	iter->stamp = GNC_TREE_MODEL_EXAMPLE_ACCOUNT (tree_model)->stamp;
-	iter->user_data = GNC_TREE_MODEL_EXAMPLE_ACCOUNT (tree_model)->priv->accounts;
+	model = GNC_TREE_MODEL_EXAMPLE_ACCOUNT (tree_model);
+	priv = GNC_TREE_MODEL_EXAMPLE_ACCOUNT_GET_PRIVATE(model);
+	iter->stamp = model->stamp;
+	iter->user_data = priv->accounts;
 
 	return TRUE;
 }
@@ -364,12 +379,17 @@
 gnc_tree_model_example_account_iter_n_children (GtkTreeModel *tree_model,
 						GtkTreeIter *iter)
 {
+	GncTreeModelExampleAccount *model;
+	GncTreeModelExampleAccountPrivate *priv;
+
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_EXAMPLE_ACCOUNT (tree_model), -1);
 
+	model = GNC_TREE_MODEL_EXAMPLE_ACCOUNT (tree_model);
+	priv = GNC_TREE_MODEL_EXAMPLE_ACCOUNT_GET_PRIVATE(model);
 	if (iter == NULL)
-		return g_slist_length (GNC_TREE_MODEL_EXAMPLE_ACCOUNT (tree_model)->priv->accounts);
+		return g_slist_length (priv->accounts);
 	
-	g_return_val_if_fail (GNC_TREE_MODEL_EXAMPLE_ACCOUNT (tree_model)->stamp == iter->stamp, -1);
+	g_return_val_if_fail (model->stamp == iter->stamp, -1);
 
 	return 0;
 }
@@ -381,6 +401,7 @@
 					       int n)
 {
 	GncTreeModelExampleAccount *model;
+	GncTreeModelExampleAccountPrivate *priv;
 	
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_EXAMPLE_ACCOUNT (tree_model), FALSE);
 
@@ -388,11 +409,12 @@
 		return FALSE;
 
 	model = GNC_TREE_MODEL_EXAMPLE_ACCOUNT (tree_model);
+	priv = GNC_TREE_MODEL_EXAMPLE_ACCOUNT_GET_PRIVATE(model);
 
-	g_return_val_if_fail (n >= 0 && n < (int)g_slist_length (model->priv->accounts), FALSE);
+	g_return_val_if_fail (n >= 0 && n < (int)g_slist_length (priv->accounts), FALSE);
 
 	iter->stamp = model->stamp;
-	iter->user_data = g_slist_nth (model->priv->accounts, n);
+	iter->user_data = g_slist_nth (priv->accounts, n);
 
 	if (iter->user_data == NULL) {
 		iter->stamp = 0;

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-example-account.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-example-account.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-example-account.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -48,18 +48,13 @@
 } GncTreeModelExampleAccountColumn;
 
 /* typedefs & structures */
-typedef struct GncTreeModelExampleAccountPrivate GncTreeModelExampleAccountPrivate;
-
 typedef struct {
-	GObject parent;
-
-	GncTreeModelExampleAccountPrivate *priv;
-
+	GObject gobject;
 	int stamp;
 } GncTreeModelExampleAccount;
 
 typedef struct {
-	GObjectClass parent;
+	GObjectClass gobject;
 } GncTreeModelExampleAccountClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-price.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-price.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-price.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -105,14 +105,17 @@
 						GNCEngineEventType event_type,
 						gpointer user_data);
 
-struct GncTreeModelPricePrivate
+typedef struct GncTreeModelPricePrivate
 {
 	QofBook *book;
 	GNCPriceDB *price_db;
 	gint event_handler_id;
 	GNCPrintAmountInfo print_info;
-};
+} GncTreeModelPricePrivate;
 
+#define GNC_TREE_MODEL_PRICE_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_TREE_MODEL_PRICE, GncTreeModelPricePrivate))
+
 static GObjectClass *parent_class = NULL;
 
 GType
@@ -163,23 +166,28 @@
 
 	/* GtkObject signals */
 	object_class->destroy = gnc_tree_model_price_destroy;
+
+	g_type_class_add_private(klass, sizeof(GncTreeModelPricePrivate));
 }
 
 static void
 gnc_tree_model_price_init (GncTreeModelPrice *model)
 {
+	GncTreeModelPricePrivate *priv;
+
 	while (model->stamp == 0) {
 		model->stamp = g_random_int ();
 	}
 
-	model->priv = g_new0 (GncTreeModelPricePrivate, 1);
-	model->priv->print_info = gnc_share_print_info_places(6);
+	priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+	priv->print_info = gnc_share_print_info_places(6);
 }
 
 static void
 gnc_tree_model_price_finalize (GObject *object)
 {
 	GncTreeModelPrice *model;
+	GncTreeModelPricePrivate *priv;
 
 	ENTER("model %p", object);
 
@@ -187,13 +195,11 @@
 	g_return_if_fail (GNC_IS_TREE_MODEL_PRICE (object));
 
 	model = GNC_TREE_MODEL_PRICE (object);
+	priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
 
-	g_return_if_fail (model->priv != NULL);
+	priv->book = NULL;
+	priv->price_db = NULL;
 
-	model->priv->book = NULL;
-	model->priv->price_db = NULL;
-	g_free (model->priv);
-
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 	LEAVE(" ");
 }
@@ -202,16 +208,18 @@
 gnc_tree_model_price_destroy (GtkObject *object)
 {
 	GncTreeModelPrice *model;
+	GncTreeModelPricePrivate *priv;
 
 	ENTER("model %p", object);
 	g_return_if_fail (object != NULL);
 	g_return_if_fail (GNC_IS_TREE_MODEL_PRICE (object));
 
 	model = GNC_TREE_MODEL_PRICE (object);
+	priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
 
-	if (model->priv->event_handler_id) {
-	  gnc_engine_unregister_event_handler (model->priv->event_handler_id);
-	  model->priv->event_handler_id = 0;
+	if (priv->event_handler_id) {
+	  gnc_engine_unregister_event_handler (priv->event_handler_id);
+	  priv->event_handler_id = 0;
 	}
 
 	if (GTK_OBJECT_CLASS (parent_class)->destroy)
@@ -223,12 +231,14 @@
 gnc_tree_model_price_new (QofBook *book, GNCPriceDB *price_db)
 {
 	GncTreeModelPrice *model;
+	GncTreeModelPricePrivate *priv;
 	const GList *item;
 
 	item = gnc_gobject_tracking_get_list(GNC_TREE_MODEL_PRICE_NAME);
 	for ( ; item; item = g_list_next(item)) {
 		model = (GncTreeModelPrice *)item->data;
-		if (model->priv->price_db == price_db) {
+		priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+		if (priv->price_db == price_db) {
 			LEAVE("returning existing model %p", model);
 			return GTK_TREE_MODEL(model);
 		}
@@ -237,10 +247,11 @@
 	model = g_object_new (GNC_TYPE_TREE_MODEL_PRICE,
 			      NULL);
 
-	model->priv->book = book;
-	model->priv->price_db = price_db;
+	priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+	priv->book = book;
+	priv->price_db = price_db;
 
-	model->priv->event_handler_id =
+	priv->event_handler_id =
 	  gnc_engine_register_event_handler (gnc_tree_model_price_event_handler, model);
 
 	return GTK_TREE_MODEL (model);
@@ -339,6 +350,7 @@
 static const gchar *
 iter_to_string (GncTreeModelPrice *model, GtkTreeIter *iter)
 {
+  GncTreeModelPricePrivate *priv;
   gnc_commodity_namespace *namespace;
   gnc_commodity *commodity;
   GNCPrice *price;
@@ -354,6 +366,8 @@
 #else
   static char string[ITER_STRING_LEN + 1];
 #endif
+
+  priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
   if (iter) {
     switch (GPOINTER_TO_INT(iter->user_data)) {
      case GPOINTER_TO_INT(ITER_IS_NAMESPACE):
@@ -381,7 +395,7 @@
 	       "[stamp:%x data:%d (PRICE), %p (%s:%s), %d]",
 	       iter->stamp, GPOINTER_TO_INT(iter->user_data),
 	       iter->user_data2, gnc_commodity_get_mnemonic (commodity),
-	       xaccPrintAmount (gnc_price_get_value (price), model->priv->print_info),
+	       xaccPrintAmount (gnc_price_get_value (price), priv->print_info),
 	       GPOINTER_TO_INT(iter->user_data3));
       break;
 
@@ -461,6 +475,7 @@
 			       GtkTreePath *path)
 {
 	GncTreeModelPrice *model;
+	GncTreeModelPricePrivate *priv;
 	gnc_commodity_table *ct;
 	gnc_commodity_namespace *namespace;
 	gnc_commodity *commodity = NULL;
@@ -475,7 +490,8 @@
 	debug_path(DEBUG, path);
 
 	model = GNC_TREE_MODEL_PRICE (tree_model);
-	if (model->priv->price_db == NULL) {
+	priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+	if (priv->price_db == NULL) {
 	  LEAVE("no price db");
 	  return FALSE;
 	}
@@ -489,7 +505,7 @@
 	  return FALSE;
 	}
 
-	ct = qof_book_get_data (model->priv->book, GNC_COMMODITY_TABLE);
+	ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
 	ns_list = gnc_commodity_table_get_namespaces_list(ct);
 	i = gtk_tree_path_get_indices (path)[0];
 	g_return_val_if_fail (i >= 0 && i < g_list_length (ns_list), FALSE);
@@ -518,7 +534,7 @@
 	  return TRUE;
 	}
 
-	price_list = gnc_pricedb_get_prices(model->priv->price_db, commodity, NULL);
+	price_list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
 	i = gtk_tree_path_get_indices (path)[2];
 	/* There's a race condition here that I can't resolve.
 	 * Comment this check out for now, and we'll handle the
@@ -542,6 +558,7 @@
 			       GtkTreeIter *iter)
 {
 	GncTreeModelPrice *model = GNC_TREE_MODEL_PRICE (tree_model);
+	GncTreeModelPricePrivate *priv;
 	gnc_commodity_table *ct;
 	gnc_commodity_namespace *namespace;
 	gnc_commodity *commodity;
@@ -554,7 +571,8 @@
 	g_return_val_if_fail (iter->user_data != NULL, NULL);
 	g_return_val_if_fail (iter->stamp == model->stamp, NULL);
 	
-	if (model->priv->price_db == NULL) {
+	priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+	if (priv->price_db == NULL) {
 	  LEAVE("no price db");
 	  return FALSE;
 	}
@@ -567,7 +585,7 @@
 	  return path;
 	}
 
-	ct = qof_book_get_data (model->priv->book, GNC_COMMODITY_TABLE);
+	ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
 	ns_list = gnc_commodity_table_get_namespaces_list(ct);
 
 	/* Work through the commodity part. */
@@ -599,6 +617,7 @@
 				GValue *value)
 {
 	GncTreeModelPrice *model = GNC_TREE_MODEL_PRICE (tree_model);
+	GncTreeModelPricePrivate *priv;
 	gnc_commodity_namespace *namespace;
 	gnc_commodity *commodity;
 	GNCPrice *price;
@@ -696,8 +715,9 @@
 			break;
 		case GNC_TREE_MODEL_PRICE_COL_VALUE:
 			g_value_init (value, G_TYPE_STRING);
+			priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
 			g_value_set_string (value, xaccPrintAmount (gnc_price_get_value (price),
-							            model->priv->print_info));
+							            priv->print_info));
 			break;
 		case GNC_TREE_MODEL_PRICE_COL_VISIBILITY:
 			g_value_init (value, G_TYPE_BOOLEAN);
@@ -713,6 +733,7 @@
 				GtkTreeIter *iter)
 {
 	GncTreeModelPrice *model = GNC_TREE_MODEL_PRICE (tree_model);
+	GncTreeModelPricePrivate *priv;
 	gnc_commodity_table *ct;
 	gnc_commodity *commodity;
 	gnc_commodity_namespace *namespace;
@@ -725,8 +746,9 @@
 	g_return_val_if_fail (iter->user_data != NULL, FALSE);
 	g_return_val_if_fail (iter->stamp == model->stamp, FALSE);
 
+	priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
 	if (iter->user_data == ITER_IS_NAMESPACE) {
-	  ct = qof_book_get_data (model->priv->book, GNC_COMMODITY_TABLE);
+	  ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
 	  list = gnc_commodity_table_get_namespaces_list(ct);
 	  n = GPOINTER_TO_INT(iter->user_data3) + 1;
 	  iter->user_data2 = g_list_nth_data(list, n);
@@ -752,7 +774,7 @@
 	} else if (iter->user_data == ITER_IS_PRICE) {
 	  commodity = gnc_price_get_commodity((GNCPrice*)iter->user_data2);
 	  n = GPOINTER_TO_INT(iter->user_data3) + 1;
-	  list = gnc_pricedb_get_prices(model->priv->price_db, commodity, NULL);
+	  list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
 	  iter->user_data2 = g_list_nth_data(list, n);
 	  gnc_price_list_destroy(list);
 	  if (iter->user_data2 == NULL) {
@@ -774,6 +796,7 @@
 				    GtkTreeIter *parent)
 {
 	GncTreeModelPrice *model;
+	GncTreeModelPricePrivate *priv;
 	gnc_commodity_table *ct;
 	gnc_commodity_namespace *namespace;
 	gnc_commodity *commodity;
@@ -785,8 +808,9 @@
 	ENTER("model %p, iter %p, parent %p (%s)",
 	      tree_model, iter, parent, iter_to_string(model, parent));
 
+	priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
 	if (parent == NULL) {
-	  ct = qof_book_get_data (model->priv->book, GNC_COMMODITY_TABLE);
+	  ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
 	  list = gnc_commodity_table_get_namespaces_list(ct);
 	  if (list == NULL) {
 	    LEAVE("no namespaces");
@@ -819,7 +843,7 @@
 
 	if (parent->user_data == ITER_IS_COMMODITY) {
 	  commodity = (gnc_commodity *)parent->user_data2;
-	  list = gnc_pricedb_get_prices(model->priv->price_db, commodity, NULL);
+	  list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
 	  if (list == NULL) {
 	    LEAVE("no prices");
 	    return FALSE;
@@ -842,6 +866,7 @@
 				     GtkTreeIter *iter)
 {
 	GncTreeModelPrice *model;
+	GncTreeModelPricePrivate *priv;
 	gnc_commodity_namespace *namespace;
 	gnc_commodity *commodity;
 	gboolean result;
@@ -853,6 +878,7 @@
 	g_return_val_if_fail (tree_model != NULL, FALSE);
 	g_return_val_if_fail (iter != NULL, FALSE);
 
+	priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
 	if (iter->user_data == ITER_IS_PRICE) {
 	  LEAVE("price has no children");
 	  return FALSE;
@@ -867,7 +893,7 @@
 
 	if (iter->user_data == ITER_IS_COMMODITY) {
 	  commodity = (gnc_commodity *)iter->user_data2;
-	  result = gnc_pricedb_has_prices(model->priv->price_db, commodity, NULL);
+	  result = gnc_pricedb_has_prices(priv->price_db, commodity, NULL);
 	  LEAVE("%s children", result ? "has" : "no");
 	  return result;
 	}
@@ -881,6 +907,7 @@
 				      GtkTreeIter *iter)
 {
 	GncTreeModelPrice *model;
+	GncTreeModelPricePrivate *priv;
 	gnc_commodity_table *ct;
 	gnc_commodity_namespace *namespace;
 	gnc_commodity *commodity;
@@ -893,8 +920,9 @@
 	ENTER("model %p, iter %p (%s)", tree_model, iter,
 	      iter_to_string(model, iter));
 
+	priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
 	if (iter == NULL) {
-	  ct = qof_book_get_data (model->priv->book, GNC_COMMODITY_TABLE);
+	  ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
 	  list = gnc_commodity_table_get_namespaces_list(ct);
 	  LEAVE("ns list length %d", g_list_length(list));
 	  return g_list_length (list);
@@ -909,7 +937,7 @@
 
 	if (iter->user_data == ITER_IS_COMMODITY) {
 	  commodity = (gnc_commodity *)iter->user_data2;
-	  list = gnc_pricedb_get_prices(model->priv->price_db, commodity, NULL);
+	  list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
 	  n = g_list_length(list);
 	  gnc_price_list_destroy(list);
 	  LEAVE("cm list length %d", n);
@@ -927,6 +955,7 @@
 				     int n)
 {
 	GncTreeModelPrice *model;
+	GncTreeModelPricePrivate *priv;
 	gnc_commodity_table *ct;
 	gnc_commodity_namespace *namespace;
 	gnc_commodity *commodity;
@@ -939,8 +968,9 @@
 	ENTER("model %p, iter %p, parent %p (%s)",
 	      tree_model, iter, parent, iter_to_string(model, parent));
 
+	priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
 	if (parent == NULL) {
-	  ct = qof_book_get_data (model->priv->book, GNC_COMMODITY_TABLE);
+	  ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
 	  list = gnc_commodity_table_get_namespaces_list(ct);
 
 	  iter->stamp      = model->stamp;
@@ -965,7 +995,7 @@
 
 	if (parent->user_data == ITER_IS_COMMODITY) {
 	  commodity = (gnc_commodity *)iter->user_data2;
-	  list = gnc_pricedb_get_prices(model->priv->price_db, commodity, NULL);
+	  list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
 
 	  iter->stamp      = model->stamp;
 	  iter->user_data  = ITER_IS_COMMODITY;
@@ -987,6 +1017,7 @@
     				  GtkTreeIter *child)
 {
 	GncTreeModelPrice *model;
+	GncTreeModelPricePrivate *priv;
 	gnc_commodity_table *ct;
 	gnc_commodity * commodity;
 	gnc_commodity_namespace *namespace;
@@ -1000,13 +1031,14 @@
 	ENTER("model %p, iter %p, child %p (%s)",
 	      tree_model, iter, child, iter_to_string(model, child));
 
+	priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
 	if (child->user_data == ITER_IS_NAMESPACE) {
 	  LEAVE("ns has no parent");
 	  return FALSE;
 	}
 
 	if (child->user_data == ITER_IS_COMMODITY) {
-	  ct = qof_book_get_data (model->priv->book, GNC_COMMODITY_TABLE);
+	  ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
 	  list = gnc_commodity_table_get_namespaces_list(ct);
 	  namespace = gnc_commodity_get_namespace_ds((gnc_commodity*)child->user_data2);
 
@@ -1044,6 +1076,7 @@
 					  GNCPrice *price,
 					  GtkTreeIter *iter)
 {
+	GncTreeModelPricePrivate *priv;
 	gnc_commodity *commodity;
 	GList *list;
 	gint n;
@@ -1053,13 +1086,14 @@
 	g_return_val_if_fail ((price != NULL), FALSE);
 	g_return_val_if_fail ((iter != NULL), FALSE);
 
+	priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
 	commodity = gnc_price_get_commodity(price);
 	if (commodity == NULL) {
 	  LEAVE("no commodity");
 	  return FALSE;
 	}
 
-	list = gnc_pricedb_get_prices(model->priv->price_db, commodity, NULL);
+	list = gnc_pricedb_get_prices(priv->price_db, commodity, NULL);
 	if (list == NULL) {
 	  LEAVE("empty list");
 	  return FALSE;
@@ -1200,6 +1234,7 @@
 					      gnc_commodity_namespace *namespace,
 					      GtkTreeIter *iter)
 {
+	GncTreeModelPricePrivate *priv;
 	gnc_commodity_table *ct;
 	GList *list;
 	gint n;
@@ -1209,7 +1244,8 @@
 	g_return_val_if_fail ((namespace != NULL), FALSE);
 	g_return_val_if_fail ((iter != NULL), FALSE);
 
-	ct = qof_book_get_data (model->priv->book, GNC_COMMODITY_TABLE);
+	priv = GNC_TREE_MODEL_PRICE_GET_PRIVATE(model);
+	ct = qof_book_get_data (priv->book, GNC_COMMODITY_TABLE);
 	list = gnc_commodity_table_get_namespaces_list(ct);
 	if (list == NULL)
 	  return FALSE;

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-price.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-price.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-price.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -69,13 +69,8 @@
 } GncTreeModelPriceColumn;
 
 /* typedefs & structures */
-typedef struct GncTreeModelPricePrivate GncTreeModelPricePrivate;
-
 typedef struct {
 	GncTreeModel gnc_tree_model;
-
-	GncTreeModelPricePrivate *priv;
-
 	int stamp;
 } GncTreeModelPrice;
 

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-selection.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-selection.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-selection.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -89,13 +89,16 @@
 					      gchar *path,
 					      GncTreeModelSelection *model);
 
-struct GncTreeModelSelectionPrivate
+typedef struct GncTreeModelSelectionPrivate
 {
 	GtkTreeModel *child_model;
 
 	GHashTable *selections;
-};
+} GncTreeModelSelectionPrivate;
 
+#define GNC_TREE_MODEL_SELECTION_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_TREE_MODEL_SELECTION, GncTreeModelSelectionPrivate))
+
 static GObjectClass *parent_class = NULL;
 
 GType
@@ -142,35 +145,38 @@
 	parent_class = g_type_class_peek_parent (klass);
 
 	object_class->finalize = gnc_tree_model_selection_finalize;
+
+	g_type_class_add_private(klass, sizeof(GncTreeModelSelectionPrivate));
 }
 
 static void
 gnc_tree_model_selection_init (GncTreeModelSelection *model)
 {
+	GncTreeModelSelectionPrivate *priv;
+
 	while (model->stamp == 0) {
 		model->stamp = g_random_int ();
 	}
 
-	model->priv = g_new0 (GncTreeModelSelectionPrivate, 1);
-	model->priv->selections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+	priv->selections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
 }
 
 static void
 gnc_tree_model_selection_finalize (GObject *object)
 {
 	GncTreeModelSelection *model;
+	GncTreeModelSelectionPrivate *priv;
 
 	g_return_if_fail (object != NULL);
 	g_return_if_fail (GNC_IS_TREE_MODEL_SELECTION (object));
 
 	model = GNC_TREE_MODEL_SELECTION (object);
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
 
-	g_return_if_fail (model->priv != NULL);
+	g_object_unref (priv->child_model);
+	g_hash_table_destroy (priv->selections);
 
-	g_object_unref (model->priv->child_model);
-	g_hash_table_destroy (model->priv->selections);
-	g_free (model->priv);
-
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
@@ -178,10 +184,12 @@
 gnc_tree_model_selection_new (GtkTreeModel *child_model)
 {
 	GncTreeModelSelection *model;
+	GncTreeModelSelectionPrivate *priv;
 
 	model = g_object_new (GNC_TYPE_TREE_MODEL_SELECTION, NULL);
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
 
-	model->priv->child_model = child_model;
+	priv->child_model = child_model;
 	g_object_ref (child_model);
 	g_signal_connect (G_OBJECT (child_model), "row_changed",
 			  G_CALLBACK (gnc_tree_model_selection_row_changed), model);
@@ -200,9 +208,12 @@
 GtkTreeModel *
 gnc_tree_model_selection_get_model (GncTreeModelSelection *model)
 {
+	GncTreeModelSelectionPrivate *priv;
+
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (model), NULL);
 
-	return model->priv->child_model;
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+	return priv->child_model;
 }
 
 void
@@ -239,9 +250,12 @@
 gint
 gnc_tree_model_selection_get_selection_row (GncTreeModelSelection *model)
 {
+	GncTreeModelSelectionPrivate *priv;
+
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (model), 0);
 
-	return gtk_tree_model_get_n_columns (model->priv->child_model);
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
+	return gtk_tree_model_get_n_columns (priv->child_model);
 }
 
 GtkTreeViewColumn *
@@ -269,11 +283,13 @@
 gnc_tree_model_selection_is_selected  (GncTreeModelSelection *model,
 				       GtkTreeIter *iter)
 {
+	GncTreeModelSelectionPrivate *priv;
 	gchar *path;
 	gboolean selected;
 	
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
 	path = gtk_tree_model_get_string_from_iter (GTK_TREE_MODEL (model), iter);
-	selected = g_hash_table_lookup (model->priv->selections, path) != NULL;
+	selected = g_hash_table_lookup (priv->selections, path) != NULL;
 	g_free (path);
 
 	return selected;
@@ -284,20 +300,22 @@
 				       GtkTreeIter *iter,
 				       gboolean selected)
 {
+	GncTreeModelSelectionPrivate *priv;
 	gchar *path_string;
 	GtkTreePath *path;
 	
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
 	path_string = gtk_tree_model_get_string_from_iter (GTK_TREE_MODEL (model), iter);
 
-	if (selected == (g_hash_table_lookup (model->priv->selections, path_string) != NULL)) {
+	if (selected == (g_hash_table_lookup (priv->selections, path_string) != NULL)) {
 		g_free (path_string);
 		return;
 	}
 
 	if (selected) {
-		g_hash_table_insert (model->priv->selections, g_strdup (path_string), GINT_TO_POINTER (1));
+		g_hash_table_insert (priv->selections, g_strdup (path_string), GINT_TO_POINTER (1));
 	} else {
-		g_hash_table_remove (model->priv->selections, path_string);
+		g_hash_table_remove (priv->selections, path_string);
 	}
 
 	path = gtk_tree_path_new_from_string (path_string);
@@ -328,24 +346,28 @@
 gnc_tree_model_selection_get_flags (GtkTreeModel *tree_model)
 {
 	GncTreeModelSelection *model;
+	GncTreeModelSelectionPrivate *priv;
 
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), 0);
 
 	model = GNC_TREE_MODEL_SELECTION (tree_model);
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
 
-	return gtk_tree_model_get_flags (model->priv->child_model);
+	return gtk_tree_model_get_flags (priv->child_model);
 }
 
 static int
 gnc_tree_model_selection_get_n_columns (GtkTreeModel *tree_model)
 {
 	GncTreeModelSelection *model;
+	GncTreeModelSelectionPrivate *priv;
 
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), 0);
 
 	model = GNC_TREE_MODEL_SELECTION (tree_model);
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
 
-	return gtk_tree_model_get_n_columns (model->priv->child_model) + 1;
+	return gtk_tree_model_get_n_columns (priv->child_model) + 1;
 }
 
 static GType
@@ -353,15 +375,17 @@
 					  int index)
 {
 	GncTreeModelSelection *model;
+	GncTreeModelSelectionPrivate *priv;
 	gint columns = gnc_tree_model_selection_get_n_columns (tree_model);
 	
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), G_TYPE_INVALID);
 	g_return_val_if_fail ((index >= 0) && (index < columns), G_TYPE_INVALID);
 
 	model = GNC_TREE_MODEL_SELECTION (tree_model);
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
 
 	if (index < columns - 1) {
-		return gtk_tree_model_get_column_type (model->priv->child_model, index);
+		return gtk_tree_model_get_column_type (priv->child_model, index);
 	} else {
 		return G_TYPE_BOOLEAN;
 	}
@@ -373,13 +397,15 @@
 				   GtkTreePath *path)
 {
 	GncTreeModelSelection *model;
+	GncTreeModelSelectionPrivate *priv;
 	GtkTreeIter child_iter;
 
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), FALSE);
 
 	model = GNC_TREE_MODEL_SELECTION (tree_model);
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
 
-	if (!gtk_tree_model_get_iter (model->priv->child_model, &child_iter, path)) {
+	if (!gtk_tree_model_get_iter (priv->child_model, &child_iter, path)) {
 		return FALSE;
 	}
 
@@ -393,6 +419,7 @@
 				   GtkTreeIter *iter)
 {
 	GncTreeModelSelection *model;
+	GncTreeModelSelectionPrivate *priv;
 	GtkTreeIter child_iter;
 
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), NULL);
@@ -400,10 +427,11 @@
 	g_return_val_if_fail (iter->stamp == GNC_TREE_MODEL_SELECTION (tree_model)->stamp, NULL);
 
 	model = GNC_TREE_MODEL_SELECTION (tree_model);
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
 
 	gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_iter, iter);
 
-	return gtk_tree_model_get_path (model->priv->child_model, &child_iter);
+	return gtk_tree_model_get_path (priv->child_model, &child_iter);
 }
 
 static void
@@ -414,6 +442,7 @@
 {
 	gint columns = gnc_tree_model_selection_get_n_columns (tree_model);
 	GncTreeModelSelection *model;
+	GncTreeModelSelectionPrivate *priv;
 	GtkTreeIter child_iter;
 	gchar *path;
 
@@ -423,16 +452,17 @@
 	g_return_if_fail (iter->stamp == GNC_TREE_MODEL_SELECTION (tree_model)->stamp);
 
 	model = GNC_TREE_MODEL_SELECTION (tree_model);
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
 
 	gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_iter, iter);
 
 	if (column < columns - 1) {
-		gtk_tree_model_get_value (model->priv->child_model, &child_iter, column, value);
+		gtk_tree_model_get_value (priv->child_model, &child_iter, column, value);
 	} else {
 		g_value_init (value, G_TYPE_BOOLEAN);
 
-		path = gtk_tree_model_get_string_from_iter (model->priv->child_model, &child_iter);
-		g_value_set_boolean (value, g_hash_table_lookup (model->priv->selections, path) != NULL);
+		path = gtk_tree_model_get_string_from_iter (priv->child_model, &child_iter);
+		g_value_set_boolean (value, g_hash_table_lookup (priv->selections, path) != NULL);
 		g_free (path);
 	}
 }
@@ -442,6 +472,7 @@
 				    GtkTreeIter *iter)
 {
 	GncTreeModelSelection *model;
+	GncTreeModelSelectionPrivate *priv;
 	GtkTreeIter child_iter;
 
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), FALSE);
@@ -449,10 +480,11 @@
 	g_return_val_if_fail (iter->stamp == GNC_TREE_MODEL_SELECTION (tree_model)->stamp, FALSE);
 
 	model = GNC_TREE_MODEL_SELECTION (tree_model);
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
 
 	gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_iter, iter);
 
-	if (!gtk_tree_model_iter_next (model->priv->child_model, &child_iter)) {
+	if (!gtk_tree_model_iter_next (priv->child_model, &child_iter)) {
 		return FALSE;
 	} else {
 		gnc_tree_model_selection_convert_child_iter_to_iter (model, iter, &child_iter);
@@ -467,15 +499,17 @@
 					GtkTreeIter *parent)
 {
 	GncTreeModelSelection *model;
+	GncTreeModelSelectionPrivate *priv;
 	GtkTreeIter child_iter;
 	GtkTreeIter child_parent;
 
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), FALSE);
 
 	model = GNC_TREE_MODEL_SELECTION (tree_model);
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
 
 	if (parent == NULL) {
-		if (!gtk_tree_model_iter_children (model->priv->child_model, &child_iter, NULL))
+		if (!gtk_tree_model_iter_children (priv->child_model, &child_iter, NULL))
 			return FALSE;
 	} else {
 		g_return_val_if_fail (parent != NULL, FALSE);
@@ -483,7 +517,7 @@
 
 		gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_parent, parent);
 
-		if (!gtk_tree_model_iter_children (model->priv->child_model, &child_iter, &child_parent))
+		if (!gtk_tree_model_iter_children (priv->child_model, &child_iter, &child_parent))
 			return FALSE;
 	}
 
@@ -497,6 +531,7 @@
 					 GtkTreeIter *iter)
 {
 	GncTreeModelSelection *model;
+	GncTreeModelSelectionPrivate *priv;
 	GtkTreeIter child_iter;
 
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), FALSE);
@@ -504,10 +539,11 @@
 	g_return_val_if_fail (iter->stamp == GNC_TREE_MODEL_SELECTION (tree_model)->stamp, FALSE);
 
 	model = GNC_TREE_MODEL_SELECTION (tree_model);
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
 
 	gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_iter, iter);
 
-	return gtk_tree_model_iter_has_child (model->priv->child_model, &child_iter);
+	return gtk_tree_model_iter_has_child (priv->child_model, &child_iter);
 }
 
 static int
@@ -515,21 +551,23 @@
 					  GtkTreeIter *iter)
 {
 	GncTreeModelSelection *model;
+	GncTreeModelSelectionPrivate *priv;
 	GtkTreeIter child_iter;
 
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), 0);
 
 	model = GNC_TREE_MODEL_SELECTION (tree_model);
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
 
 	if (iter == NULL) {
-		return gtk_tree_model_iter_n_children (model->priv->child_model, NULL);
+		return gtk_tree_model_iter_n_children (priv->child_model, NULL);
 	} else {
 		g_return_val_if_fail (iter != NULL, 0);
 		g_return_val_if_fail (iter->stamp == model->stamp, 0);
 
 		gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_iter, iter);
 
-		return gtk_tree_model_iter_n_children (model->priv->child_model, &child_iter);
+		return gtk_tree_model_iter_n_children (priv->child_model, &child_iter);
 	}
 }
 
@@ -540,15 +578,17 @@
 					 int n)
 {
 	GncTreeModelSelection *model;
+	GncTreeModelSelectionPrivate *priv;
 	GtkTreeIter child_iter;
 	GtkTreeIter child_parent;
 
 	g_return_val_if_fail (GNC_IS_TREE_MODEL_SELECTION (tree_model), FALSE);
 
 	model = GNC_TREE_MODEL_SELECTION (tree_model);
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
 
 	if (parent == NULL) {
-		if (!gtk_tree_model_iter_nth_child (model->priv->child_model, &child_iter, NULL, n))
+		if (!gtk_tree_model_iter_nth_child (priv->child_model, &child_iter, NULL, n))
 			return FALSE;
 	} else {
 		g_return_val_if_fail (iter != NULL, FALSE);
@@ -556,7 +596,7 @@
 
 		gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_parent, parent);
 
-		if (!gtk_tree_model_iter_nth_child (model->priv->child_model, &child_iter, &child_parent, n))
+		if (!gtk_tree_model_iter_nth_child (priv->child_model, &child_iter, &child_parent, n))
 			return FALSE;
 	}
 
@@ -571,6 +611,7 @@
 				      GtkTreeIter *child)
 {
 	GncTreeModelSelection *model;
+	GncTreeModelSelectionPrivate *priv;
 	GtkTreeIter child_child;
 	GtkTreeIter child_iter;
 
@@ -579,10 +620,11 @@
 	g_return_val_if_fail (child->stamp == GNC_TREE_MODEL_SELECTION (tree_model)->stamp, FALSE);
 
 	model = GNC_TREE_MODEL_SELECTION (tree_model);
+	priv = GNC_TREE_MODEL_SELECTION_GET_PRIVATE(model);
 
 	gnc_tree_model_selection_convert_iter_to_child_iter (model, &child_child, child);
 
-	if (!gtk_tree_model_iter_parent (model->priv->child_model, &child_iter, &child_child)) {
+	if (!gtk_tree_model_iter_parent (priv->child_model, &child_iter, &child_child)) {
 		return FALSE;
 	} else {
 		gnc_tree_model_selection_convert_child_iter_to_iter (model, iter, &child_iter);

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model-selection.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model-selection.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model-selection.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -40,18 +40,13 @@
 #define GNC_TREE_MODEL_SELECTION_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_TREE_MODEL_SELECTION, GncTreeModelSelectionClass))
 
 /* typedefs & structures */
-typedef struct GncTreeModelSelectionPrivate GncTreeModelSelectionPrivate;
-
 typedef struct {
-	GObject parent;
-
-	GncTreeModelSelectionPrivate *priv;
-
+	GObject gobject;
 	int stamp;
 } GncTreeModelSelection;
 
 typedef struct {
-	GObjectClass parent;
+	GObjectClass gobject;
 } GncTreeModelSelectionClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -42,12 +42,15 @@
 static void gnc_tree_model_finalize (GObject *object);
 static void gnc_tree_model_destroy (GtkObject *object);
 
-struct GncTreeModelPrivate
+typedef struct GncTreeModelPrivate
 {
   gpointer dummy;
-};
+} GncTreeModelPrivate;
 
+#define GNC_TREE_MODEL_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_TREE_MODEL, GncTreeModelPrivate))
 
+
 /************************************************************/
 /*               g_object required functions                */
 /************************************************************/
@@ -108,6 +111,8 @@
 
   /* GtkObject signals */
   object_class->destroy = gnc_tree_model_destroy;
+
+  g_type_class_add_private(klass, sizeof(GncTreeModelPrivate));
 }
 
 static void
@@ -116,18 +121,22 @@
   ENTER("model %p", model);
   gnc_gobject_tracking_remember(G_OBJECT(model), G_OBJECT_CLASS(klass));
 
-  model->priv = g_new0 (GncTreeModelPrivate, 1);
-
   LEAVE(" ");
 }
 
 static void
 gnc_tree_model_finalize (GObject *object)
 {
+  GncTreeModel *model;
+  GncTreeModelPrivate *priv;
+
   ENTER("model %p", object);
   g_return_if_fail (object != NULL);
   g_return_if_fail (GNC_IS_TREE_MODEL (object));
 
+  model = GNC_TREE_MODEL(object);
+  priv = GNC_TREE_MODEL_GET_PRIVATE(model);
+
   gnc_gobject_tracking_forget(object);
 
   if (G_OBJECT_CLASS (parent_class)->finalize)
@@ -145,8 +154,6 @@
   g_return_if_fail (GNC_IS_TREE_MODEL (object));
 
   model = GNC_TREE_MODEL (object);
-  g_free (model->priv);
-  model->priv = NULL;
 
   if (GTK_OBJECT_CLASS (parent_class)->destroy)
     (* GTK_OBJECT_CLASS (parent_class)->destroy) (object);

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-model.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-model.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-model.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -52,12 +52,8 @@
 
 
 /* typedefs & structures */
-typedef struct GncTreeModelPrivate GncTreeModelPrivate;
-
 typedef struct {
 	GtkObject gtk_object;
-
-	GncTreeModelPrivate *priv;
 } GncTreeModel;
 
 typedef struct {

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view-account.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view-account.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view-account.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -58,16 +58,19 @@
                                                      GtkTreeIter *iter,
                                                      gpointer data);
 
-struct GncTreeViewAccountPrivate
+typedef struct GncTreeViewAccountPrivate
 {
     AccountViewInfo avi;
 
     gnc_tree_view_account_filter_func filter_fn;
     gpointer                          filter_data;
     GtkDestroyNotify                  filter_destroy;
-};
+} GncTreeViewAccountPrivate;
 
+#define GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_TREE_VIEW_ACCOUNT, GncTreeViewAccountPrivate))
 
+
 /************************************************************/
 /*               g_object required functions                */
 /************************************************************/
@@ -110,6 +113,8 @@
 	o_class = G_OBJECT_CLASS (klass);
 	o_class->finalize = gnc_tree_view_account_finalize;
         o_class->dispose = gnc_tree_view_account_dispose;
+
+	g_type_class_add_private(klass, sizeof(GncTreeViewAccountPrivate));
 }
 
 /********************************************************************\
@@ -131,9 +136,10 @@
 static void
 gnc_tree_view_account_init (GncTreeViewAccount *view)
 {
-  view->priv = g_new0 (GncTreeViewAccountPrivate, 1);
+  GncTreeViewAccountPrivate *priv;
 
-  gnc_init_account_view_info(&view->priv->avi);
+  priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
+  gnc_init_account_view_info(&priv->avi);
 }
 
 static void
@@ -148,15 +154,13 @@
 
   account_view = GNC_TREE_VIEW_ACCOUNT (object);
 
-  priv = account_view->priv;
+  priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(account_view);
   if (priv->filter_destroy) {
       priv->filter_destroy(priv->filter_data);
       priv->filter_destroy = NULL;
   }
   priv->filter_fn = NULL;
 
-  g_free (account_view->priv);
-
   if (G_OBJECT_CLASS (parent_class)->finalize)
     (* G_OBJECT_CLASS (parent_class)->finalize) (object);
   LEAVE(" ");
@@ -660,7 +664,7 @@
   g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(account_view));
   g_return_if_fail(avi != NULL);
 
-  priv = account_view->priv;
+  priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(account_view);
 
   *avi = priv->avi;
 }
@@ -683,6 +687,7 @@
 gnc_tree_view_account_set_view_info (GncTreeViewAccount *account_view,
 				     AccountViewInfo *avi)
 {
+  GncTreeViewAccountPrivate *priv;
   gint i;
   guint sel_bits = 0;
 
@@ -690,7 +695,8 @@
   g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(account_view));
   g_return_if_fail(avi != NULL);
 
-  account_view->priv->avi = *avi;
+  priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(account_view);
+  priv->avi = *avi;
   
   for (i = 0; i < NUM_ACCOUNT_TYPES; i++) {
       sel_bits |= avi->include_type[i] ? (1 << i): 0;
@@ -714,6 +720,7 @@
 {
   Account *account;
   GncTreeViewAccount *view = data;
+  GncTreeViewAccountPrivate *priv;
 
   g_return_val_if_fail (GNC_IS_TREE_MODEL_ACCOUNT (model), FALSE);
   g_return_val_if_fail (iter != NULL, FALSE);
@@ -721,8 +728,9 @@
   account = gnc_tree_model_account_get_account (
       GNC_TREE_MODEL_ACCOUNT(model), iter);
   
-  if (view->priv->filter_fn)
-      return view->priv->filter_fn(account, view->priv->filter_data);
+  priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
+  if (priv->filter_fn)
+      return priv->filter_fn(account, priv->filter_data);
   else return TRUE;
 }
 
@@ -746,7 +754,7 @@
 
   g_return_if_fail(GNC_IS_TREE_VIEW_ACCOUNT(view));
 
-  priv = view->priv;
+  priv = GNC_TREE_VIEW_ACCOUNT_GET_PRIVATE(view);
   if (priv->filter_destroy) {
       priv->filter_destroy(priv->filter_data);
   }

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view-account.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view-account.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view-account.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -52,7 +52,6 @@
 #define GNC_TREE_VIEW_ACCOUNT_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_TREE_VIEW_ACCOUNT, GncTreeViewAccountClass))
 
 /* typedefs & structures */
-typedef struct GncTreeViewAccountPrivate GncTreeViewAccountPrivate;
 typedef struct AccountViewInfo_s     AccountViewInfo;
 
 
@@ -63,15 +62,12 @@
 
 
 typedef struct {
-	GncTreeView parent;
-
-	GncTreeViewAccountPrivate *priv;
-
+	GncTreeView gnc_tree_view;
 	int stamp;
 } GncTreeViewAccount;
 
 typedef struct {
-	GncTreeViewClass parent;
+	GncTreeViewClass gnc_tree_view;
 } GncTreeViewAccountClass;
 
 

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -53,12 +53,15 @@
 static void gnc_tree_view_commodity_finalize (GObject *object);
 static void gnc_tree_view_commodity_destroy (GtkObject *object);
 
-struct GncTreeViewCommodityPrivate
+typedef struct GncTreeViewCommodityPrivate
 {
-  gboolean show_currencies;
-};
+  gpointer dummy;
+} GncTreeViewCommodityPrivate;
 
+#define GNC_TREE_VIEW_COMMODITY_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_TREE_VIEW_COMMODITY, GncTreeViewCommodityPrivate))
 
+
 /************************************************************/
 /*               g_object required functions                */
 /************************************************************/
@@ -107,27 +110,28 @@
 
 	/* GtkObject signals */
 	object_class->destroy = gnc_tree_view_commodity_destroy;
+
+	g_type_class_add_private(klass, sizeof(GncTreeViewCommodityPrivate));
 }
 
 static void
 gnc_tree_view_commodity_init (GncTreeViewCommodity *view)
 {
-  view->priv = g_new0 (GncTreeViewCommodityPrivate, 1);
 }
 
 static void
 gnc_tree_view_commodity_finalize (GObject *object)
 {
   GncTreeViewCommodity *view;
+  GncTreeViewCommodityPrivate *priv;
 
   ENTER("view %p", object);
   g_return_if_fail (object != NULL);
   g_return_if_fail (GNC_IS_TREE_VIEW_COMMODITY (object));
 
   view = GNC_TREE_VIEW_COMMODITY (object);
+  priv = GNC_TREE_VIEW_COMMODITY_GET_PRIVATE (view);
 
-  g_free (view->priv);
-
   if (G_OBJECT_CLASS (parent_class)->finalize)
     (* G_OBJECT_CLASS (parent_class)->finalize) (object);
   LEAVE(" ");

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view-commodity.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -52,19 +52,13 @@
 #define GNC_TREE_VIEW_COMMODITY_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_TREE_VIEW_COMMODITY, GncTreeViewCommodityClass))
 
 /* typedefs & structures */
-typedef struct GncTreeViewCommodityPrivate GncTreeViewCommodityPrivate;
-
-
 typedef struct {
-	GncTreeView parent;
-
-	GncTreeViewCommodityPrivate *priv;
-
+	GncTreeView gnc_tree_view;
 	int stamp;
 } GncTreeViewCommodity;
 
 typedef struct {
-	GncTreeViewClass parent;
+	GncTreeViewClass gnc_tree_view;
 } GncTreeViewCommodityClass;
 
 

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view-price.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view-price.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view-price.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -52,12 +52,15 @@
 static void gnc_tree_view_price_finalize (GObject *object);
 static void gnc_tree_view_price_destroy (GtkObject *object);
 
-struct GncTreeViewPricePrivate
+typedef struct GncTreeViewPricePrivate
 {
-  gboolean show_currencies;
-};
+  gpointer dummy;
+} GncTreeViewPricePrivate;
 
+#define GNC_TREE_VIEW_PRICE_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_TREE_VIEW_PRICE, GncTreeViewPricePrivate))
 
+
 /************************************************************/
 /*               g_object required functions                */
 /************************************************************/
@@ -106,27 +109,28 @@
 
 	/* GtkObject signals */
 	object_class->destroy = gnc_tree_view_price_destroy;
+
+	g_type_class_add_private(klass, sizeof(GncTreeViewPricePrivate));
 }
 
 static void
 gnc_tree_view_price_init (GncTreeViewPrice *view)
 {
-  view->priv = g_new0 (GncTreeViewPricePrivate, 1);
 }
 
 static void
 gnc_tree_view_price_finalize (GObject *object)
 {
   GncTreeViewPrice *view;
+  GncTreeViewPricePrivate *priv;
 
   ENTER("view %p", object);
   g_return_if_fail (object != NULL);
   g_return_if_fail (GNC_IS_TREE_VIEW_PRICE (object));
 
   view = GNC_TREE_VIEW_PRICE (object);
+  priv = GNC_TREE_VIEW_PRICE_GET_PRIVATE (view);
 
-  g_free (view->priv);
-
   if (G_OBJECT_CLASS (parent_class)->finalize)
     (* G_OBJECT_CLASS (parent_class)->finalize) (object);
   LEAVE(" ");

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view-price.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view-price.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view-price.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -52,19 +52,13 @@
 #define GNC_TREE_VIEW_PRICE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_TREE_VIEW_PRICE, GncTreeViewPriceClass))
 
 /* typedefs & structures */
-typedef struct GncTreeViewPricePrivate GncTreeViewPricePrivate;
-
-
 typedef struct {
-	GncTreeView parent;
-
-	GncTreeViewPricePrivate *priv;
-
+	GncTreeView gnc_tree_view;
 	int stamp;
 } GncTreeViewPrice;
 
 typedef struct {
-	GncTreeViewClass parent;
+	GncTreeViewClass gnc_tree_view;
 } GncTreeViewPriceClass;
 
 

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -116,7 +116,7 @@
 
 /** Private Data Structure ***********************************************/
 
-struct GncTreeViewPrivate
+typedef struct GncTreeViewPrivate
 {
   GtkTooltips       *title_tips;
   GSList            *default_visible;
@@ -132,9 +132,12 @@
   gulong             columns_changed_cb_id;
   gulong             sort_column_changed_cb_id;
   gulong             size_allocate_cb_id;
-};
+} GncTreeViewPrivate;
 
+#define GNC_TREE_VIEW_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_TREE_VIEW, GncTreeViewPrivate))
 
+
 /************************************************************/
 /*               g_object required functions                */
 /************************************************************/
@@ -199,6 +202,8 @@
 	gobject_class->set_property = gnc_tree_view_set_property;
 	gobject_class->get_property = gnc_tree_view_get_property;
 
+	g_type_class_add_private(klass, sizeof(GncTreeViewPrivate));
+
         g_object_class_install_property (gobject_class,
 					 PROP_GCONF_SECTION,
 					 g_param_spec_string ("gconf-section",
@@ -233,23 +238,23 @@
 static void
 gnc_tree_view_init (GncTreeView *view, GncTreeViewClass *klass)
 {
+  GncTreeViewPrivate *priv;
   GtkTreeViewColumn *column;
   GtkWidget *icon;
   GtkRequisition requisition;
 
   gnc_gobject_tracking_remember(G_OBJECT(view), G_OBJECT_CLASS(klass));
 
-  view->priv = g_new0 (GncTreeViewPrivate, 1);
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+  priv->default_visible = NULL;
+  priv->column_menu = NULL;
+  priv->show_column_menu = FALSE;
+  priv->gconf_section = NULL;
+  priv->seen_gconf_visibility = FALSE;
+  priv->columns_changed_cb_id = 0;
+  priv->sort_column_changed_cb_id = 0;
+  priv->size_allocate_cb_id = 0;
 
-  view->priv->default_visible = NULL;
-  view->priv->column_menu = NULL;
-  view->priv->show_column_menu = FALSE;
-  view->priv->gconf_section = NULL;
-  view->priv->seen_gconf_visibility = FALSE;
-  view->priv->columns_changed_cb_id = 0;
-  view->priv->sort_column_changed_cb_id = 0;
-  view->priv->size_allocate_cb_id = 0;
-
   /* Ask gtk to help the user keep track of rows. */
   g_object_set(view, "rules-hint", TRUE, NULL);
 
@@ -283,7 +288,7 @@
   g_signal_connect(G_OBJECT(column), "clicked",
 		   G_CALLBACK (gnc_tree_view_select_column_cb),
 		   view);
-  view->priv->column_menu_column = column;
+  priv->column_menu_column = column;
 }
 
 /** Finalize the GncTreeView object.  This function is called from the
@@ -300,6 +305,7 @@
 gnc_tree_view_finalize (GObject *object)
 {
   GncTreeView *view;
+  GncTreeViewPrivate *priv;
 
   ENTER("view %p", object);
   g_return_if_fail (object != NULL);
@@ -308,7 +314,7 @@
   gnc_gobject_tracking_forget(object);
 
   view = GNC_TREE_VIEW (object);
-  g_free (view->priv);
+  priv= GNC_TREE_VIEW_GET_PRIVATE (view);
 
   if (G_OBJECT_CLASS (parent_class)->finalize)
     (* G_OBJECT_CLASS (parent_class)->finalize) (object);
@@ -330,6 +336,7 @@
 gnc_tree_view_destroy (GtkObject *object)
 {
   GncTreeView *view;
+  GncTreeViewPrivate *priv;
   GSList *slist;
 
   ENTER("view %p", object);
@@ -340,17 +347,18 @@
 
   gnc_tree_view_remove_gconf(view);
 
-  if (view->priv->default_visible) {
-    slist = view->priv->default_visible;
-    view->priv->default_visible = NULL;
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+  if (priv->default_visible) {
+    slist = priv->default_visible;
+    priv->default_visible = NULL;
     g_slist_foreach(slist, (GFunc)g_free, NULL);
     g_slist_free(slist);
   }
 
-  if (view->priv->column_menu) {
+  if (priv->column_menu) {
     DEBUG("removing column selection menu");
-    gtk_widget_unref(view->priv->column_menu);
-    view->priv->column_menu = NULL;
+    gtk_widget_unref(priv->column_menu);
+    priv->column_menu = NULL;
   }
 
   if (GTK_OBJECT_CLASS (parent_class)->destroy)
@@ -381,14 +389,16 @@
 			    GParamSpec  *pspec)
 {
   GncTreeView *view = GNC_TREE_VIEW (object);
+  GncTreeViewPrivate *priv;
   
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
   switch (prop_id)
     {
     case PROP_GCONF_SECTION:
-      g_value_set_string (value, view->priv->gconf_section);
+      g_value_set_string (value, priv->gconf_section);
       break;
     case PROP_SHOW_COLUMN_MENU:
-      g_value_set_boolean (value, view->priv->show_column_menu);
+      g_value_set_boolean (value, priv->show_column_menu);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -592,6 +602,7 @@
 gtk_tree_view_sort_column_changed_cb (GtkTreeSortable *treesortable,
 				      GncTreeView *view)
 {
+  GncTreeViewPrivate *priv;
   GtkTreeViewColumn *column;
   const gchar  	    *gconf_section;
   gchar        	    *column_pref_name;
@@ -602,7 +613,8 @@
   g_return_if_fail(GNC_IS_TREE_VIEW(view));
 
   ENTER(" ");
-  if (!view->priv->gconf_section) {
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+  if (!priv->gconf_section) {
     LEAVE("no gconf section");
     return;
   }
@@ -616,7 +628,7 @@
   column_pref_name = g_object_get_data(G_OBJECT(column), PREF_NAME);
 
   /* Store the values in gconf */
-  gconf_section = view->priv->gconf_section;
+  gconf_section = priv->gconf_section;
   gnc_gconf_set_string(gconf_section, "sort_column", column_pref_name, NULL);
   gnc_gconf_set_string(gconf_section, "sort_order",
 		       gnc_enum_to_nick(GTK_TYPE_SORT_TYPE, order), NULL);
@@ -640,11 +652,13 @@
 gtk_tree_view_columns_changed_cb (GncTreeView *view,
 				  gpointer data)
 {
+  GncTreeViewPrivate *priv;
   GList *column_list, *tmp;
   GSList *column_names = NULL;
   gchar *name;
 
   //ENTER("view %p, data %p", view, data);
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
   column_list = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
   for (tmp = column_list; tmp; tmp = g_list_next(tmp)) {
     name = g_object_get_data(tmp->data, PREF_NAME);
@@ -655,7 +669,7 @@
   }
   g_list_free(column_list);
 
-  gnc_gconf_set_list(view->priv->gconf_section, GCONF_KEY_COLUMN_ORDER,
+  gnc_gconf_set_list(priv->gconf_section, GCONF_KEY_COLUMN_ORDER,
 		     GCONF_VALUE_STRING, column_names, NULL);
   g_slist_free(column_names);
   //LEAVE(" ");
@@ -679,6 +693,7 @@
 gtk_tree_view_size_allocate_helper (GtkTreeViewColumn *column,
 				    GncTreeView *view)
 {
+  GncTreeViewPrivate *priv;
   const gchar *column_pref_name;
   gint new_width, current_width;
   gchar *key;
@@ -687,6 +702,7 @@
   g_return_if_fail(GNC_IS_TREE_VIEW(view));
 
   /* Any updates to be made? */
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
   column_pref_name = g_object_get_data(G_OBJECT(column), PREF_NAME);
   if (!column_pref_name)
     return;
@@ -696,9 +712,9 @@
 
   /* Do it */
   key = g_strdup_printf("%s_%s", column_pref_name, GCONF_KEY_WIDTH);
-  current_width = gnc_gconf_get_int(view->priv->gconf_section, key, NULL);
+  current_width = gnc_gconf_get_int(priv->gconf_section, key, NULL);
   if (new_width != current_width) {
-    gnc_gconf_set_int(view->priv->gconf_section, key, new_width, NULL);
+    gnc_gconf_set_int(priv->gconf_section, key, new_width, NULL);
     DEBUG("set %s width to %d", column_pref_name, new_width);
   }
   g_free(key);
@@ -776,10 +792,12 @@
 			      GtkTreeViewColumn *column,
 			      const gchar *pref_name)
 {
+  GncTreeViewPrivate *priv;
   gboolean visible;
   gchar *key;
 
   ENTER("column %p, name %s", column, pref_name);
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
   if (column) {
     if (g_object_get_data(G_OBJECT(column), ALWAYS_VISIBLE)) {
       LEAVE("1, first column");
@@ -795,23 +813,23 @@
   }
   
   /* Using gconf? */
-  if (view->priv->gconf_section) {
-    if (view->priv->seen_gconf_visibility) {
+  if (priv->gconf_section) {
+    if (priv->seen_gconf_visibility) {
       key = g_strdup_printf("%s_%s", pref_name, GCONF_KEY_VISIBLE);
-      visible = gnc_gconf_get_bool(view->priv->gconf_section, key, NULL);
+      visible = gnc_gconf_get_bool(priv->gconf_section, key, NULL);
       g_free(key);
       LEAVE("%d, gconf visibility", visible);
       return visible;
     }
 
-    visible =  (g_slist_find_custom(view->priv->default_visible, pref_name,
+    visible =  (g_slist_find_custom(priv->default_visible, pref_name,
 				    (GCompareFunc)strcmp) != NULL);
     LEAVE("%d, gconf but using defaults", visible);
     return visible;
   }
 
   /* Check the default columns list */
-  visible = (g_slist_find_custom(view->priv->default_visible, pref_name,
+  visible = (g_slist_find_custom(priv->default_visible, pref_name,
 				 (GCompareFunc)strcmp) != NULL);
   LEAVE("defaults says %d", visible);
   return visible;
@@ -831,6 +849,7 @@
 gnc_tree_view_update_visibility (GtkTreeViewColumn *column,
 				 GncTreeView *view)
 {
+  GncTreeViewPrivate *priv;
   gchar *name, *key;
   gboolean visible;
 
@@ -838,16 +857,17 @@
   g_return_if_fail(GNC_IS_TREE_VIEW(view));
 
   ENTER(" ");
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
   visible = gnc_tree_view_column_visible(view, column, NULL);
   gtk_tree_view_column_set_visible(column, visible);
-  if (view->priv->gconf_section) {
+  if (priv->gconf_section) {
     name = (gchar *)g_object_get_data(G_OBJECT(column), PREF_NAME);
     if (!name) {
       LEAVE("no pref name");
       return;
     }
     key = g_strdup_printf("%s_%s", name, GCONF_KEY_VISIBLE);
-    gnc_gconf_set_bool(view->priv->gconf_section, key, visible, NULL);
+    gnc_gconf_set_bool(priv->gconf_section, key, visible, NULL);
     g_free(key);
     LEAVE("made visible, set gconf key");
     return;
@@ -873,10 +893,12 @@
 gnc_tree_view_set_sort_order (GncTreeView *view,
 			      const gchar *name)
 {
+  GncTreeViewPrivate *priv;
   GtkTreeModel *s_model;
   GtkSortType order;
   gint current;
 
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
   s_model = gtk_tree_view_get_model(GTK_TREE_VIEW(view));
   if (!s_model)
     return;
@@ -884,10 +906,10 @@
   if (!gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(s_model),
 					    &current, &order))
     current = 0;
-  g_signal_handler_block(s_model, view->priv->sort_column_changed_cb_id);
+  g_signal_handler_block(s_model, priv->sort_column_changed_cb_id);
   gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(s_model),
 				       current, order);
-  g_signal_handler_unblock(s_model, view->priv->sort_column_changed_cb_id);
+  g_signal_handler_unblock(s_model, priv->sort_column_changed_cb_id);
   DEBUG("sort_order set to %s", gnc_enum_to_nick(GTK_TYPE_SORT_TYPE, order));
 }
 
@@ -909,11 +931,13 @@
 gnc_tree_view_set_sort_column (GncTreeView *view,
 			       const gchar *name)
 {
+  GncTreeViewPrivate *priv;
   GtkTreeModel *s_model;
   GtkTreeViewColumn *column;
   GtkSortType order;
   gint model_column, current;
 
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
   column = view_column_find_by_name(view, name);
   if (!column)
     return;
@@ -927,10 +951,10 @@
   if (!gtk_tree_sortable_get_sort_column_id(GTK_TREE_SORTABLE(s_model),
 					    &current, &order))
     order = GTK_SORT_ASCENDING;
-  g_signal_handler_block(s_model, view->priv->sort_column_changed_cb_id);
+  g_signal_handler_block(s_model, priv->sort_column_changed_cb_id);
   gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(s_model),
 				       model_column, order);
-  g_signal_handler_unblock(s_model, view->priv->sort_column_changed_cb_id);
+  g_signal_handler_unblock(s_model, priv->sort_column_changed_cb_id);
   DEBUG("sort column set to %s", name);
 }
 
@@ -951,6 +975,7 @@
 gnc_tree_view_set_column_order (GncTreeView *view,
 				const GSList *column_names)
 {
+  GncTreeViewPrivate *priv;
   GtkTreeViewColumn *column, *prev;
   const gchar *name;
   const GSList *tmp;
@@ -958,6 +983,7 @@
 
   /* First, convert from names to pointers */
   ENTER(" ");
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
   columns = NULL;
   for (tmp = column_names; tmp; tmp = g_slist_next(tmp)) {
     name = gconf_value_get_string(tmp->data);
@@ -968,13 +994,13 @@
   }
     
   /* Then reorder the columns */
-  g_signal_handler_block(view, view->priv->columns_changed_cb_id);
+  g_signal_handler_block(view, priv->columns_changed_cb_id);
   for (prev = NULL, tmp = columns; tmp; tmp = g_slist_next(tmp)) {
     column = tmp->data;
     gtk_tree_view_move_column_after(GTK_TREE_VIEW(view), column, prev);
     prev = column;
   }
-  g_signal_handler_unblock(view, view->priv->columns_changed_cb_id);
+  g_signal_handler_unblock(view, priv->columns_changed_cb_id);
 
   /* Clean up */
   g_slist_free(columns);
@@ -1007,6 +1033,7 @@
 			     gpointer data)
 {
   GncTreeView *view;
+  GncTreeViewPrivate *priv;
   GtkTreeViewColumn *column;
   GConfValue *value;
   const gchar *key, *local;
@@ -1018,6 +1045,7 @@
 
   ENTER(" ");
   view = GNC_TREE_VIEW(data);
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
   key = gconf_entry_get_key(entry);
   value = gconf_entry_get_value(entry);
   if (!value) {
@@ -1043,7 +1071,7 @@
     *type_name++ = '\0';
 
     if (strcmp(type_name, GCONF_KEY_VISIBLE) == 0) {
-      view->priv->seen_gconf_visibility = TRUE;
+      priv->seen_gconf_visibility = TRUE;
       column = view_column_find_by_name(view, column_name);
       if (column) {
 	known = TRUE;
@@ -1083,16 +1111,18 @@
 static void
 gnc_tree_view_gconf_force_update (GncTreeView *view)
 {
+  GncTreeViewPrivate *priv;
   GSList *all_entries, *etmp;
   GList *columns;
 
   ENTER("view %p", view);
-  all_entries = gnc_gconf_client_all_entries(view->priv->gconf_section);
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+  all_entries = gnc_gconf_client_all_entries(priv->gconf_section);
 
   /* Set a flag indicating that the gconf data section may be empty.
    * It will be checked later on and appropriate action taken if its
    * still set. */
-  view->priv->seen_gconf_visibility = FALSE;
+  priv->seen_gconf_visibility = FALSE;
 
   /* Pull all the entries from gconf */
   for (etmp = all_entries; etmp; etmp = g_slist_next(etmp)) {
@@ -1102,7 +1132,7 @@
   g_slist_free(all_entries);
 
   /* No visibilities seen yet.  Write out any columns we may have */
-  if (!view->priv->seen_gconf_visibility) {
+  if (!priv->seen_gconf_visibility) {
     columns = gtk_tree_view_get_columns(GTK_TREE_VIEW(view));
     g_list_foreach(columns, (GFunc)gnc_tree_view_update_visibility, view);
     g_list_free(columns);
@@ -1125,43 +1155,46 @@
 static void
 gnc_tree_view_remove_gconf(GncTreeView *view)
 {
+  GncTreeViewPrivate *priv;
   GtkTreeModel *model;
 
   ENTER(" ");
-  if (!view->priv->gconf_section) {
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+  if (!priv->gconf_section) {
     LEAVE("no gconf section");
     return;
   }
 
-  if (view->priv->sort_column_changed_cb_id) {
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+  if (priv->sort_column_changed_cb_id) {
     model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
     if (model) {
       DEBUG("removing sort_column_changed callback (# %ld)",
-	    view->priv->sort_column_changed_cb_id);
+	    priv->sort_column_changed_cb_id);
       g_signal_handler_disconnect(GTK_TREE_SORTABLE(model),
-				  view->priv->sort_column_changed_cb_id);
-      view->priv->sort_column_changed_cb_id = 0;
+				  priv->sort_column_changed_cb_id);
+      priv->sort_column_changed_cb_id = 0;
     }
   }
 
-  if (view->priv->columns_changed_cb_id) {
+  if (priv->columns_changed_cb_id) {
     DEBUG("removing columns_changed callback (# %ld)",
-	  view->priv->columns_changed_cb_id);
-    g_signal_handler_disconnect(view, view->priv->columns_changed_cb_id);
-    view->priv->columns_changed_cb_id = 0;
+	  priv->columns_changed_cb_id);
+    g_signal_handler_disconnect(view, priv->columns_changed_cb_id);
+    priv->columns_changed_cb_id = 0;
   }
 
-  if (view->priv->size_allocate_cb_id) {
+  if (priv->size_allocate_cb_id) {
     DEBUG("removing size_allocate callback (# %ld)",
-	  view->priv->size_allocate_cb_id);
-    g_signal_handler_disconnect(view, view->priv->size_allocate_cb_id);
-    view->priv->size_allocate_cb_id = 0;
+	  priv->size_allocate_cb_id);
+    g_signal_handler_disconnect(view, priv->size_allocate_cb_id);
+    priv->size_allocate_cb_id = 0;
   }
 
   DEBUG("removing gconf notification");
-  gnc_gconf_remove_notification(G_OBJECT(view), view->priv->gconf_section);
-  g_free(view->priv->gconf_section);
-  view->priv->gconf_section = NULL;
+  gnc_gconf_remove_notification(G_OBJECT(view), priv->gconf_section);
+  g_free(priv->gconf_section);
+  priv->gconf_section = NULL;
   LEAVE(" ");
 }
 
@@ -1178,6 +1211,7 @@
 gnc_tree_view_set_gconf_section (GncTreeView *view,
 				 const gchar *section)
 {
+  GncTreeViewPrivate *priv;
   GtkTreeModel *model;
   gulong id;
 
@@ -1192,7 +1226,8 @@
   }
 
   /* Catch changes in gconf. Propagate to view. */
-  view->priv->gconf_section = g_strdup(section);
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+  priv->gconf_section = g_strdup(section);
   gnc_gconf_add_notification(G_OBJECT(view), section,
 			     gnc_tree_view_gconf_changed);
 
@@ -1200,19 +1235,19 @@
    * be set before the model, so the code must handle that case. */
   model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
   if (model)
-    view->priv->sort_column_changed_cb_id =
+    priv->sort_column_changed_cb_id =
       g_signal_connect(GTK_TREE_SORTABLE(model), "sort-column-changed",
 		       (GCallback)gtk_tree_view_sort_column_changed_cb, view);
 
   /* Catch changes to the column order. Propagate to gconf */
   id = g_signal_connect(view, "columns-changed",
 			(GCallback)gtk_tree_view_columns_changed_cb, NULL);
-  view->priv->columns_changed_cb_id = id;
+  priv->columns_changed_cb_id = id;
 
   /* Catch changes to the column width. Propagate to gconf */
   id = g_signal_connect(view, "size-allocate",
 			(GCallback)gtk_tree_view_size_allocate_cb, NULL);
-  view->priv->size_allocate_cb_id = id;
+  priv->size_allocate_cb_id = id;
 
   /* Force an update of the view with all items from gconf. */
   gnc_tree_view_gconf_force_update(view);
@@ -1232,9 +1267,12 @@
 const gchar *
 gnc_tree_view_get_gconf_section (GncTreeView *view)
 {
+  GncTreeViewPrivate *priv;
+
   g_return_val_if_fail(GNC_IS_TREE_VIEW(view), NULL);
 
-  return(view->priv->gconf_section);
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+  return(priv->gconf_section);
 }
 
 
@@ -1262,6 +1300,7 @@
 gnc_tree_view_menu_item_toggled (GtkCheckMenuItem *checkmenuitem,
 				 GncTreeView *view)
 {
+  GncTreeViewPrivate *priv;
   gboolean value;
   gchar *key;
 
@@ -1269,16 +1308,17 @@
   g_return_if_fail(GNC_IS_TREE_VIEW(view));
 
   ENTER("checkmenuitem %p, view %p", checkmenuitem, view);
-  if (!view->priv->gconf_section) {
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+  if (!priv->gconf_section) {
     LEAVE("no gconf section");
     return;
   }
 
   key = g_object_get_data(G_OBJECT(checkmenuitem), GCONF_KEY);
   value = gtk_check_menu_item_get_active(checkmenuitem);
-  gnc_gconf_set_bool(view->priv->gconf_section, key, value, NULL);
+  gnc_gconf_set_bool(priv->gconf_section, key, value, NULL);
   LEAVE("set gconf section %s, key %s, visible %d",
-	view->priv->gconf_section, key, value);
+	priv->gconf_section, key, value);
 }
 
 /** This function is called to create a single checkmenuitem in the
@@ -1307,7 +1347,7 @@
   gchar *key;
 
   // ENTER("view %p, column %p", view, column);
-  priv = view->priv;
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
   if (!priv->gconf_section) {
     // LEAVE("no gconf section");
     return;
@@ -1369,7 +1409,7 @@
   g_return_if_fail(GNC_IS_TREE_VIEW(view));
 
   ENTER("view %p", view);
-  priv = GNC_TREE_VIEW(view)->priv;
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
 
   /* Destroy any old menu */
   if (priv->column_menu) {
@@ -1379,8 +1419,8 @@
 
   if (priv->show_column_menu && priv->gconf_section) {
     /* Show the menu popup button */
-    if (view->priv->column_menu_column)
-      g_object_set(G_OBJECT(view->priv->column_menu_column),
+    if (priv->column_menu_column)
+      g_object_set(G_OBJECT(priv->column_menu_column),
 		   "visible", TRUE, NULL);
 
     /* Now build a new menu */
@@ -1389,8 +1429,8 @@
     g_list_free(column_list);
   } else {
     /* Hide the menu popup button */
-    if (view->priv->column_menu_column)
-      g_object_set(G_OBJECT(view->priv->column_menu_column),
+    if (priv->column_menu_column)
+      g_object_set(G_OBJECT(priv->column_menu_column),
 		   "visible", FALSE, NULL);
   }
   LEAVE("menu: show %d, section %s", priv->show_column_menu,
@@ -1416,17 +1456,19 @@
 gnc_tree_view_update_column_menu_item (GtkCheckMenuItem *checkmenuitem,
 				       GncTreeView *view)
 {
+  GncTreeViewPrivate *priv;
   gchar *key;
   gboolean visible;
 
   g_return_if_fail(GTK_IS_CHECK_MENU_ITEM(checkmenuitem));
   g_return_if_fail(GNC_IS_TREE_VIEW(view));
 
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
   key = g_object_get_data(G_OBJECT(checkmenuitem), GCONF_KEY);
   if (g_object_get_data(G_OBJECT(checkmenuitem), ALWAYS_VISIBLE)) {
     visible = TRUE;
   } else {
-    visible = gnc_gconf_get_bool(view->priv->gconf_section, key, NULL);
+    visible = gnc_gconf_get_bool(priv->gconf_section, key, NULL);
   }
 
   g_signal_handlers_block_by_func(checkmenuitem,
@@ -1452,12 +1494,14 @@
 gnc_tree_view_select_column_cb (GtkTreeViewColumn *column,
 				GncTreeView *view)
 {
+  GncTreeViewPrivate *priv;
   GtkWidget *widget, *menu;
 
   g_return_if_fail(GTK_IS_TREE_VIEW_COLUMN(column));
   g_return_if_fail(GNC_IS_TREE_VIEW(view));
 
-  menu = view->priv->column_menu;
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+  menu = priv->column_menu;
   if (!menu)
     return;
 
@@ -1471,7 +1515,7 @@
 
   /* Pop the menu up at the button */
   widget = gtk_tree_view_column_get_widget(column);
-  gtk_menu_popup(GTK_MENU(view->priv->column_menu), NULL, GTK_WIDGET(menu),
+  gtk_menu_popup(GTK_MENU(priv->column_menu), NULL, GTK_WIDGET(menu),
 		 NULL, NULL, 0, gtk_get_current_event_time());
 }
 
@@ -1490,7 +1534,7 @@
   g_return_if_fail(GNC_IS_TREE_VIEW(view));
 
   ENTER("view %p, show menu %d", view, visible);
-  priv = GNC_TREE_VIEW(view)->priv;
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
   priv->show_column_menu = visible;
   gnc_tree_view_build_column_menu(view);
   LEAVE(" ");
@@ -1505,9 +1549,12 @@
 gboolean
 gnc_tree_view_get_show_column_menu (GncTreeView *view)
 {
+  GncTreeViewPrivate *priv;
+
   g_return_val_if_fail(GNC_IS_TREE_VIEW(view), FALSE);
 
-  return(view->priv->show_column_menu);
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+  return(priv->show_column_menu);
 }
 
 /** @} */
@@ -1528,21 +1575,22 @@
 void
 gnc_tree_view_set_model(GncTreeView *view, GtkTreeModel *model)
 {
+  GncTreeViewPrivate *priv;
   GtkTreeModel *old_model;
 
   /* Remove existing callback */
-  if (view->priv->sort_column_changed_cb_id) {
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+  if (priv->sort_column_changed_cb_id) {
     old_model = gtk_tree_view_get_model (GTK_TREE_VIEW(view));
-    g_signal_handler_disconnect (old_model,
-				 view->priv->sort_column_changed_cb_id);
-    view->priv->sort_column_changed_cb_id = 0;
+    g_signal_handler_disconnect (old_model, priv->sort_column_changed_cb_id);
+    priv->sort_column_changed_cb_id = 0;
   }
 
   gtk_tree_view_set_model (GTK_TREE_VIEW(view), model);
 
   /* Maybe add a new callback */
-  if (model && view->priv->gconf_section) {
-    view->priv->sort_column_changed_cb_id =
+  if (model && priv->gconf_section) {
+    priv->sort_column_changed_cb_id =
       g_signal_connect(GTK_TREE_SORTABLE(model), "sort-column-changed",
 		       (GCallback)gtk_tree_view_sort_column_changed_cb, view);
   }
@@ -1563,6 +1611,7 @@
 				 gchar *first_column_name,
 				 ...)
 {
+  GncTreeViewPrivate *priv;
   GSList *slist;
   GList *columns;
   gchar *name;
@@ -1572,9 +1621,10 @@
 
   ENTER(" ");
   /* Delete any old list of column names */
-  if (view->priv->default_visible) {
-    slist = view->priv->default_visible;
-    view->priv->default_visible = NULL;
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+  if (priv->default_visible) {
+    slist = priv->default_visible;
+    priv->default_visible = NULL;
     g_slist_foreach(slist, (GFunc)g_free, NULL);
     g_slist_free(slist);
   }
@@ -1583,8 +1633,8 @@
   va_start (args, first_column_name);
   name = first_column_name;
   while (name != NULL) {
-    view->priv->default_visible =
-      g_slist_append(view->priv->default_visible, g_strdup(name));
+    priv->default_visible =
+      g_slist_append(priv->default_visible, g_strdup(name));
     name = va_arg(args, gchar*);
   }
   va_end (args);
@@ -1594,8 +1644,8 @@
   g_list_foreach(columns, (GFunc)gnc_tree_view_update_visibility, view);
   g_list_free(columns);
 
-  if (view->priv->gconf_section)
-    view->priv->seen_gconf_visibility = TRUE;
+  if (priv->gconf_section)
+    priv->seen_gconf_visibility = TRUE;
   LEAVE(" ");
 }
 
@@ -1638,6 +1688,7 @@
 				 gboolean resizable,
 				 GtkTreeIterCompareFunc column_sort_fn)
 {
+  GncTreeViewPrivate *priv;
   GtkTreeModel *s_model;
   gboolean visible;
   int width = 0;
@@ -1656,9 +1707,10 @@
   visible = gnc_tree_view_column_visible(view, NULL, pref_name);
 
   /* Get width */
-  if (view->priv->gconf_section) {
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
+  if (priv->gconf_section) {
     key = g_strdup_printf("%s_%s", pref_name, GCONF_KEY_WIDTH);
-    width = gnc_gconf_get_int(view->priv->gconf_section, key, NULL);
+    width = gnc_gconf_get_int(priv->gconf_section, key, NULL);
     g_free(key);
   }
 
@@ -1716,6 +1768,7 @@
 				 GtkTreeIterCompareFunc column_sort_fn,
 				 renderer_toggled toggle_edited_cb)
 {
+  GncTreeViewPrivate *priv;
   GtkTreeViewColumn *column;
   GtkCellRenderer *renderer;
   PangoLayout* layout;
@@ -1723,6 +1776,7 @@
 
   g_return_val_if_fail (GNC_IS_TREE_VIEW(view), NULL);
 
+  priv = GNC_TREE_VIEW_GET_PRIVATE(view);
   renderer = gtk_cell_renderer_toggle_new ();
   column =
     gtk_tree_view_column_new_with_attributes (gettext(column_short_title),
@@ -1752,11 +1806,9 @@
   gnc_tree_view_append_column (view, column);
 
   /* Also add the full title to the object as a tooltip */
-  if (!view->priv->title_tips)
-    view->priv->title_tips = gtk_tooltips_new();
-  gtk_tooltips_set_tip(view->priv->title_tips,
-		       column->button,
-		       column_title, NULL);
+  if (!priv->title_tips)
+    priv->title_tips = gtk_tooltips_new();
+  gtk_tooltips_set_tip(priv->title_tips, column->button, column_title, NULL);
 
   return column;
 }

Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -48,16 +48,12 @@
 
 
 /* typedefs & structures */
-typedef struct GncTreeViewPrivate GncTreeViewPrivate;
-
 typedef struct {
-	GtkTreeView parent;
-
-	GncTreeViewPrivate *priv;
+	GtkTreeView gtk_tree_view;
 } GncTreeView;
 
 typedef struct {
-	GtkTreeViewClass parent;
+	GtkTreeViewClass gtk_tree_view;
 } GncTreeViewClass;
 
 /* Standard g_object type */

Modified: gnucash/trunk/src/gnome-utils/search-param.c
===================================================================
--- gnucash/trunk/src/gnome-utils/search-param.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/search-param.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -39,6 +39,8 @@
 static void gnc_search_param_init	(GNCSearchParam *gspaper);
 static void gnc_search_param_finalize	(GObject *obj);
 
+typedef struct _GNCSearchParamPrivate	GNCSearchParamPrivate;
+
 struct _GNCSearchParamPrivate {
   GSList *		converters;
   GSList *		param_path;
@@ -48,6 +50,9 @@
   gpointer		lookup_arg;
 };
 
+#define GNC_SEARCH_PARAM_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_SEARCH_PARAM, GNCSearchParamPrivate))
+
 static GObjectClass *parent_class;
 
 enum {
@@ -91,31 +96,31 @@
   parent_class = g_type_class_peek_parent (klass);
 
   object_class->finalize = gnc_search_param_finalize;
+
+  g_type_class_add_private(klass, sizeof(GNCSearchParamPrivate));
 }
 
 static void
 gnc_search_param_init (GNCSearchParam *o)
 {
-  o->priv = g_malloc0 (sizeof (*o->priv));
 }
 
 static void
 gnc_search_param_finalize (GObject *obj)
 {
   GNCSearchParam *o;
+  GNCSearchParamPrivate *priv;
 
   g_return_if_fail (obj != NULL);
   g_return_if_fail (GNC_IS_SEARCH_PARAM (obj));	
 
   o = GNC_SEARCH_PARAM (obj);
-
-  g_return_if_fail (o->priv != NULL);
+  priv = GNC_SEARCH_PARAM_GET_PRIVATE(o);
 	
-  g_slist_free (o->priv->param_path);
-  o->priv->param_path = NULL;
-  g_slist_free (o->priv->converters);
-  o->priv->converters = NULL;
-  g_free(o->priv);
+  g_slist_free (priv->param_path);
+  priv->param_path = NULL;
+  g_slist_free (priv->converters);
+  priv->converters = NULL;
 
   G_OBJECT_CLASS (parent_class)->finalize(obj);
 }
@@ -138,13 +143,16 @@
 gnc_search_param_clone (GNCSearchParam *param)
 {
   GNCSearchParam *n;
+  GNCSearchParamPrivate *priv, *n_priv;
 
   g_return_val_if_fail (GNC_IS_SEARCH_PARAM (param), NULL);
+  priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
 
   n = gnc_search_param_new ();
+  n_priv = GNC_SEARCH_PARAM_GET_PRIVATE(n);
   n->title = param->title;
-  n->priv->param_path = g_slist_copy (param->priv->param_path);
-  n->priv->type = param->priv->type;
+  n_priv->param_path = g_slist_copy (priv->param_path);
+  n_priv->type = priv->type;
 
   return n;
 }
@@ -154,15 +162,17 @@
 				 GNCIdTypeConst search_type,
 				 GSList *param_path)
 {
+  GNCSearchParamPrivate *priv;
   GNCIdTypeConst type = NULL;
   GSList *converters = NULL;
 
   g_return_if_fail (GNC_IS_SEARCH_PARAM (param));
 
-  if (param->priv->param_path) {
-    g_slist_free (param->priv->param_path);
+  priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+  if (priv->param_path) {
+    g_slist_free (priv->param_path);
   }
-  param->priv->param_path = g_slist_copy (param_path);
+  priv->param_path = g_slist_copy (param_path);
 
   /* Compute the parameter type */
   for (; param_path; param_path = param_path->next) {
@@ -182,48 +192,60 @@
   }
 
   /* Save the type */
-  param->priv->type = type;
+  priv->type = type;
 
   /* Save the converters */
-  if (param->priv->converters) {
-    g_slist_free (param->priv->converters);
+  if (priv->converters) {
+    g_slist_free (priv->converters);
   }
-  param->priv->converters = g_slist_reverse (converters);
+  priv->converters = g_slist_reverse (converters);
 }
 
 void
 gnc_search_param_override_param_type (GNCSearchParam *param,
 				      GNCIdTypeConst param_type)
 {
+  GNCSearchParamPrivate *priv;
+
   g_return_if_fail (GNC_IS_SEARCH_PARAM (param));
   g_return_if_fail (param_type != NULL && *param_type != '\0');
 
-  param->priv->type = param_type;
+  priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+  priv->type = param_type;
   /* XXX: What about the converters? */
 }
 
 GSList *
 gnc_search_param_get_param_path (GNCSearchParam *param)
 {
+  GNCSearchParamPrivate *priv;
+
   g_return_val_if_fail (GNC_IS_SEARCH_PARAM (param), NULL);
 	
-  return g_slist_copy (param->priv->param_path);
+  priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+  return g_slist_copy (priv->param_path);
 }
 
 GSList *
 gnc_search_param_get_converters (GNCSearchParam *param)
 {
+  GNCSearchParamPrivate *priv;
+
   g_return_val_if_fail (GNC_IS_SEARCH_PARAM (param), NULL);
 
-  return param->priv->converters;
+  priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+  return priv->converters;
 }
 
 GNCIdTypeConst
 gnc_search_param_get_param_type (GNCSearchParam *param)
 {
+  GNCSearchParamPrivate *priv;
+
   g_return_val_if_fail (GNC_IS_SEARCH_PARAM (param), NULL);
 
-  return param->priv->type;
+  priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+  return priv->type;
 }
 
 void
@@ -261,11 +283,15 @@
 gboolean
 gnc_search_param_type_match (GNCSearchParam *a, GNCSearchParam *b)
 {
+  GNCSearchParamPrivate *a_priv, *b_priv;
+
   g_return_val_if_fail (GNC_IS_SEARCH_PARAM (a), FALSE);
   g_return_val_if_fail (GNC_IS_SEARCH_PARAM (b), FALSE);
 
-  if (a->priv->type == b->priv->type || 
-      !safe_strcmp (a->priv->type, b->priv->type))
+  a_priv = GNC_SEARCH_PARAM_GET_PRIVATE(a);
+  b_priv = GNC_SEARCH_PARAM_GET_PRIVATE(b);
+  if (a_priv->type == b_priv->type || 
+      !safe_strcmp (a_priv->type, b_priv->type))
     return TRUE;
 
   return FALSE;
@@ -354,13 +380,16 @@
 				GNCSearchParamFcn fcn,
 				gpointer arg)
 {
+  GNCSearchParamPrivate *priv;
+
   g_return_if_fail (param);
   g_return_if_fail (param_type && *param_type);
   g_return_if_fail (fcn);
   g_return_if_fail (GNC_IS_SEARCH_PARAM(param));
 
-  param->priv->lookup_fcn = fcn;
-  param->priv->lookup_arg = arg;
+  priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+  priv->lookup_fcn = fcn;
+  priv->lookup_arg = arg;
   gnc_search_param_override_param_type (param, param_type);
 }
 
@@ -368,12 +397,15 @@
 gpointer
 gnc_search_param_compute_value (GNCSearchParam *param, gpointer object)
 {
+  GNCSearchParamPrivate *priv;
+
   g_return_val_if_fail(param, NULL);
   g_return_val_if_fail(GNC_IS_SEARCH_PARAM(param), NULL);
 
-  if (param->priv->lookup_fcn)
+  priv = GNC_SEARCH_PARAM_GET_PRIVATE(param);
+  if (priv->lookup_fcn)
   {
-    return ((param->priv->lookup_fcn)(object, param->priv->lookup_arg));
+    return ((priv->lookup_fcn)(object, priv->lookup_arg));
   }
   else
   {

Modified: gnucash/trunk/src/gnome-utils/search-param.h
===================================================================
--- gnucash/trunk/src/gnome-utils/search-param.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/gnome-utils/search-param.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -34,8 +34,7 @@
 typedef struct _GNCSearchParamClass	GNCSearchParamClass;
 
 struct _GNCSearchParam {
-  GObject parent;
-  struct _GNCSearchParamPrivate *priv;
+  GObject gobject;
 
   const char *		title;
   GtkJustification	justify;
@@ -44,7 +43,7 @@
 };
 
 struct _GNCSearchParamClass {
-  GObjectClass parent_class;
+  GObjectClass gobject_class;
 
   /* virtual methods */
 

Modified: gnucash/trunk/src/import-export/hbci/gnc-plugin-hbci.c
===================================================================
--- gnucash/trunk/src/import-export/hbci/gnc-plugin-hbci.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/import-export/hbci/gnc-plugin-hbci.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -151,11 +151,14 @@
   NULL
 };
 
-struct GncPluginHbciPrivate
+typedef struct GncPluginHbciPrivate
 {
   gpointer dummy;
-};
+} GncPluginHbciPrivate;
 
+#define GNC_PLUGIN_HBCI_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_HBCI, GncPluginHbciPrivate))
+
 static GObjectClass *parent_class = NULL;
 
 /************************************************************
@@ -214,27 +217,26 @@
   plugin_class->ui_filename   	   = PLUGIN_UI_FILENAME;
   plugin_class->add_to_window 	   = gnc_plugin_hbci_add_to_window;
   plugin_class->remove_from_window = gnc_plugin_hbci_remove_from_window;
+
+  g_type_class_add_private(klass, sizeof(GncPluginHbciPrivate));
 }
 
 static void
 gnc_plugin_hbci_init (GncPluginHbci *plugin)
 {
-  plugin->priv = g_new0 (GncPluginHbciPrivate, 1);
 }
 
 static void
 gnc_plugin_hbci_finalize (GObject *object)
 {
   GncPluginHbci *plugin;
+  GncPluginHbciPrivate *priv;
 
   g_return_if_fail (GNC_IS_PLUGIN_HBCI (object));
 
   plugin = GNC_PLUGIN_HBCI (object);
+  priv = GNC_PLUGIN_HBCI_GET_PRIVATE(plugin);
 
-  g_return_if_fail (plugin->priv != NULL);
-
-  g_free (plugin->priv);
-
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 

Modified: gnucash/trunk/src/import-export/hbci/gnc-plugin-hbci.h
===================================================================
--- gnucash/trunk/src/import-export/hbci/gnc-plugin-hbci.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/import-export/hbci/gnc-plugin-hbci.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -40,15 +40,12 @@
 #define GNC_PLUGIN_HBCI_NAME "gnc-plugin-hbci"
 
 /* typedefs & structures */
-typedef struct GncPluginHbciPrivate GncPluginHbciPrivate;
-
 typedef struct {
-	GncPlugin parent;
-	GncPluginHbciPrivate *priv;
+	GncPlugin gnc_plugin;
 } GncPluginHbci;
 
 typedef struct {
-	GncPluginClass parent;
+	GncPluginClass gnc_plugin;
 } GncPluginHbciClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/import-export/log-replay/gnc-plugin-log-replay.c
===================================================================
--- gnucash/trunk/src/import-export/log-replay/gnc-plugin-log-replay.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/import-export/log-replay/gnc-plugin-log-replay.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -46,11 +46,14 @@
 };
 static guint gnc_plugin_n_actions = G_N_ELEMENTS (gnc_plugin_actions);
 
-struct GncPluginLogreplayPrivate
+typedef struct GncPluginLogreplayPrivate
 {
 	gpointer dummy;
-};
+} GncPluginLogreplayPrivate;
 
+#define GNC_PLUGIN_LOG_REPLAY_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_LOG_REPLAY, GncPluginLogreplayPrivate))
+
 static GObjectClass *parent_class = NULL;
 
 GType
@@ -103,26 +106,26 @@
 	plugin_class->actions      = gnc_plugin_actions;
 	plugin_class->n_actions    = gnc_plugin_n_actions;
 	plugin_class->ui_filename  = PLUGIN_UI_FILENAME;
+
+	g_type_class_add_private(klass, sizeof(GncPluginLogreplayPrivate));
 }
 
 static void
 gnc_plugin_log_replay_init (GncPluginLogreplay *plugin)
 {
-	plugin->priv = g_new0 (GncPluginLogreplayPrivate, 1);
 }
 
 static void
 gnc_plugin_log_replay_finalize (GObject *object)
 {
 	GncPluginLogreplay *plugin;
+	GncPluginLogreplayPrivate *priv;
 
 	g_return_if_fail (GNC_IS_PLUGIN_LOG_REPLAY (object));
 
 	plugin = GNC_PLUGIN_LOG_REPLAY (object);
-	g_return_if_fail (plugin->priv != NULL);
+	priv = GNC_PLUGIN_LOG_REPLAY_GET_PRIVATE(plugin);
 
-	g_free (plugin->priv);
-
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 

Modified: gnucash/trunk/src/import-export/log-replay/gnc-plugin-log-replay.h
===================================================================
--- gnucash/trunk/src/import-export/log-replay/gnc-plugin-log-replay.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/import-export/log-replay/gnc-plugin-log-replay.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -40,15 +40,12 @@
 #define GNC_PLUGIN_LOG_REPLAY_NAME "gnc-plugin-log-replay"
 
 /* typedefs & structures */
-typedef struct GncPluginLogreplayPrivate GncPluginLogreplayPrivate;
-
 typedef struct {
-	GncPlugin parent;
-	GncPluginLogreplayPrivate *priv;
+	GncPlugin gnc_plugin;
 } GncPluginLogreplay;
 
 typedef struct {
-	GncPluginClass parent;
+	GncPluginClass gnc_plugin;
 } GncPluginLogreplayClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/import-export/mt940/gnc-plugin-mt940.c
===================================================================
--- gnucash/trunk/src/import-export/mt940/gnc-plugin-mt940.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/import-export/mt940/gnc-plugin-mt940.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -46,11 +46,14 @@
 };
 static guint gnc_plugin_n_actions = G_N_ELEMENTS (gnc_plugin_actions);
 
-struct GncPluginMt940Private
+typedef struct GncPluginMt940Private
 {
   gpointer dummy;
-};
+} GncPluginMt940Private;
 
+#define GNC_PLUGIN_MT940_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_MT940, GncPluginMt940Private))
+
 static GObjectClass *parent_class = NULL;
 
 GType
@@ -103,27 +106,26 @@
   plugin_class->actions      = gnc_plugin_actions;
   plugin_class->n_actions    = gnc_plugin_n_actions;
   plugin_class->ui_filename  = PLUGIN_UI_FILENAME;
+
+  g_type_class_add_private(klass, sizeof(GncPluginMt940Private));
 }
 
 static void
 gnc_plugin_mt940_init (GncPluginMt940 *plugin)
 {
-  plugin->priv = g_new0 (GncPluginMt940Private, 1);
 }
 
 static void
 gnc_plugin_mt940_finalize (GObject *object)
 {
   GncPluginMt940 *plugin;
+  GncPluginMt940Private *priv;
 
   g_return_if_fail (GNC_IS_PLUGIN_MT940 (object));
 
   plugin = GNC_PLUGIN_MT940 (object);
+  priv = GNC_PLUGIN_MT940_GET_PRIVATE(plugin);
 
-  g_return_if_fail (plugin->priv != NULL);
-
-  g_free (plugin->priv);
-
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 

Modified: gnucash/trunk/src/import-export/mt940/gnc-plugin-mt940.h
===================================================================
--- gnucash/trunk/src/import-export/mt940/gnc-plugin-mt940.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/import-export/mt940/gnc-plugin-mt940.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -40,15 +40,12 @@
 #define GNC_PLUGIN_MT940_NAME "gnc-plugin-mt940"
 
 /* typedefs & structures */
-typedef struct GncPluginMt940Private GncPluginMt940Private;
-
 typedef struct {
-	GncPlugin parent;
-	GncPluginMt940Private *priv;
+	GncPlugin gnc_plugin;
 } GncPluginMt940;
 
 typedef struct {
-	GncPluginClass parent;
+	GncPluginClass gnc_plugin;
 } GncPluginMt940Class;
 
 /* function prototypes */

Modified: gnucash/trunk/src/import-export/ofx/gnc-plugin-ofx.c
===================================================================
--- gnucash/trunk/src/import-export/ofx/gnc-plugin-ofx.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/import-export/ofx/gnc-plugin-ofx.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -46,11 +46,14 @@
 };
 static guint gnc_plugin_n_actions = G_N_ELEMENTS (gnc_plugin_actions);
 
-struct GncPluginOfxPrivate
+typedef struct GncPluginOfxPrivate
 {
   gpointer dummy;
-};
+} GncPluginOfxPrivate;
 
+#define GNC_PLUGIN_OFX_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_OFX, GncPluginOfxPrivate))
+
 static GObjectClass *parent_class = NULL;
 
 GType
@@ -103,26 +106,26 @@
   plugin_class->actions      = gnc_plugin_actions;
   plugin_class->n_actions    = gnc_plugin_n_actions;
   plugin_class->ui_filename  = PLUGIN_UI_FILENAME;
+
+  g_type_class_add_private(klass, sizeof(GncPluginOfxPrivate));
 }
 
 static void
 gnc_plugin_ofx_init (GncPluginOfx *plugin)
 {
-  plugin->priv = g_new0 (GncPluginOfxPrivate, 1);
 }
 
 static void
 gnc_plugin_ofx_finalize (GObject *object)
 {
   GncPluginOfx *plugin;
+  GncPluginOfxPrivate *priv;
 
   g_return_if_fail (GNC_IS_PLUGIN_OFX (object));
 
   plugin = GNC_PLUGIN_OFX (object);
-  g_return_if_fail (plugin->priv != NULL);
+  priv = GNC_PLUGIN_OFX_GET_PRIVATE(plugin);
 
-  g_free (plugin->priv);
-
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 

Modified: gnucash/trunk/src/import-export/ofx/gnc-plugin-ofx.h
===================================================================
--- gnucash/trunk/src/import-export/ofx/gnc-plugin-ofx.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/import-export/ofx/gnc-plugin-ofx.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -40,15 +40,12 @@
 #define GNC_PLUGIN_OFX_NAME "gnc-plugin-ofx"
 
 /* typedefs & structures */
-typedef struct GncPluginOfxPrivate GncPluginOfxPrivate;
-
 typedef struct {
-	GncPlugin parent;
-	GncPluginOfxPrivate *priv;
+	GncPlugin gnc_plugin;
 } GncPluginOfx;
 
 typedef struct {
-	GncPluginClass parent;
+	GncPluginClass gnc_plugin;
 } GncPluginOfxClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/import-export/qif-import/gnc-plugin-qif-import.c
===================================================================
--- gnucash/trunk/src/import-export/qif-import/gnc-plugin-qif-import.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/import-export/qif-import/gnc-plugin-qif-import.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -53,11 +53,14 @@
 };
 static guint gnc_plugin_n_actions = G_N_ELEMENTS (gnc_plugin_actions);
 
-struct GncPluginQifImportPrivate
+typedef struct GncPluginQifImportPrivate
 {
 	gpointer dummy;
-};
+} GncPluginQifImportPrivate;
 
+#define GNC_PLUGIN_QIF_IMPORT_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_QIF_IMPORT, GncPluginQifImportPrivate))
+
 static GObjectClass *parent_class = NULL;
 
 GType
@@ -110,27 +113,26 @@
 	plugin_class->actions      = gnc_plugin_actions;
 	plugin_class->n_actions    = gnc_plugin_n_actions;
 	plugin_class->ui_filename  = PLUGIN_UI_FILENAME;
+
+	g_type_class_add_private(klass, sizeof(GncPluginQifImportPrivate));
 }
 
 static void
 gnc_plugin_qif_import_init (GncPluginQifImport *plugin)
 {
-	plugin->priv = g_new0 (GncPluginQifImportPrivate, 1);
 }
 
 static void
 gnc_plugin_qif_import_finalize (GObject *object)
 {
 	GncPluginQifImport *plugin;
+	GncPluginQifImportPrivate *priv;
 
 	g_return_if_fail (GNC_IS_PLUGIN_QIF_IMPORT (object));
 
 	plugin = GNC_PLUGIN_QIF_IMPORT (object);
+	priv = GNC_PLUGIN_QIF_IMPORT_GET_PRIVATE(plugin);
 
-	g_return_if_fail (plugin->priv != NULL);
-
-	g_free (plugin->priv);
-
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 

Modified: gnucash/trunk/src/import-export/qif-import/gnc-plugin-qif-import.h
===================================================================
--- gnucash/trunk/src/import-export/qif-import/gnc-plugin-qif-import.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/import-export/qif-import/gnc-plugin-qif-import.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -41,15 +41,12 @@
 #define GNC_PLUGIN_QIF_IMPORT_NAME "gnc-plugin-qif-import"
 
 /* typedefs & structures */
-typedef struct GncPluginQifImportPrivate GncPluginQifImportPrivate;
-
 typedef struct {
-	GncPlugin parent;
-	GncPluginQifImportPrivate *priv;
+	GncPlugin gnc_plugin;
 } GncPluginQifImport;
 
 typedef struct {
-	GncPluginClass parent;
+	GncPluginClass gnc_plugin;
 } GncPluginQifImportClass;
 
 /* function prototypes */

Modified: gnucash/trunk/src/report/report-gnome/gnc-plugin-page-report.h
===================================================================
--- gnucash/trunk/src/report/report-gnome/gnc-plugin-page-report.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/report/report-gnome/gnc-plugin-page-report.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -50,16 +50,12 @@
 #define GNC_PLUGIN_PAGE_REPORT_NAME "gnc-plugin-page-report"
 
 /* typedefs & structures */
-typedef struct GncPluginPageReportPrivate GncPluginPageReportPrivate;
-
 typedef struct {
-	GncPluginPage parent;
-        
-	GncPluginPageReportPrivate *priv;
+	GncPluginPage gnc_plugin;
 } GncPluginPageReport;
 
 typedef struct {
-        GncPluginPageClass parent;
+        GncPluginPageClass gnc_plugin;
 
 	/* callbacks */
 } GncPluginPageReportClass;

Modified: gnucash/trunk/src/report/stylesheets/gnc-plugin-stylesheets.c
===================================================================
--- gnucash/trunk/src/report/stylesheets/gnc-plugin-stylesheets.c	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/report/stylesheets/gnc-plugin-stylesheets.c	2005-11-06 00:14:40 UTC (rev 11847)
@@ -72,11 +72,14 @@
 };
 
 
-struct GncPluginStylesheetsPrivate
+typedef struct GncPluginStylesheetsPrivate
 {
   gpointer dummy;
-};
+} GncPluginStylesheetsPrivate;
 
+#define GNC_PLUGIN_STYLESHEETS_GET_PRIVATE(o)  \
+   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_STYLESHEETS, GncPluginStylesheetsPrivate))
+
 static GObjectClass *parent_class = NULL;
 
 /************************************************************
@@ -135,27 +138,26 @@
   plugin_class->ui_filename   	   = PLUGIN_UI_FILENAME;
   plugin_class->add_to_window 	   = gnc_plugin_stylesheets_add_to_window;
   plugin_class->remove_from_window = gnc_plugin_stylesheets_remove_from_window;
+
+  g_type_class_add_private(klass, sizeof(GncPluginStylesheetsPrivate));
 }
 
 static void
 gnc_plugin_stylesheets_init (GncPluginStylesheets *plugin)
 {
-  plugin->priv = g_new0 (GncPluginStylesheetsPrivate, 1);
 }
 
 static void
 gnc_plugin_stylesheets_finalize (GObject *object)
 {
   GncPluginStylesheets *plugin;
+  GncPluginStylesheetsPrivate *priv;
 
   g_return_if_fail (GNC_IS_PLUGIN_STYLESHEETS (object));
 
   plugin = GNC_PLUGIN_STYLESHEETS (object);
+  priv = GNC_PLUGIN_STYLESHEETS_GET_PRIVATE(plugin);
 
-  g_return_if_fail (plugin->priv != NULL);
-
-  g_free (plugin->priv);
-
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 

Modified: gnucash/trunk/src/report/stylesheets/gnc-plugin-stylesheets.h
===================================================================
--- gnucash/trunk/src/report/stylesheets/gnc-plugin-stylesheets.h	2005-11-06 00:14:17 UTC (rev 11846)
+++ gnucash/trunk/src/report/stylesheets/gnc-plugin-stylesheets.h	2005-11-06 00:14:40 UTC (rev 11847)
@@ -40,15 +40,12 @@
 #define GNC_PLUGIN_STYLESHEETS_NAME "gnc-plugin-stylesheets"
 
 /* typedefs & structures */
-typedef struct GncPluginStylesheetsPrivate GncPluginStylesheetsPrivate;
-
 typedef struct {
-	GncPlugin parent;
-	GncPluginStylesheetsPrivate *priv;
+	GncPlugin gnc_plugin;
 } GncPluginStylesheets;
 
 typedef struct {
-	GncPluginClass parent;
+	GncPluginClass gnc_plugin;
 } GncPluginStylesheetsClass;
 
 /* function prototypes */



More information about the gnucash-changes mailing list