From 4c64b3e9a04aa37e4383db59e7aba47f8e4f205d Mon Sep 17 00:00:00 2001 From: Derek Atkins Date: Thu, 5 Apr 2007 02:44:36 +0000 Subject: [PATCH] convert GncVendor to gobject initialization git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/branches/gobject-engine-dev-warlord@15825 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/business/business-core/gncVendor.c | 31 ++++++++++++++++++++------ src/business/business-core/gncVendor.h | 17 ++++++++++++-- 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/src/business/business-core/gncVendor.c b/src/business/business-core/gncVendor.c index de691de501..6f5be4b0a0 100644 --- a/src/business/business-core/gncVendor.c +++ b/src/business/business-core/gncVendor.c @@ -57,6 +57,11 @@ struct _gncVendor GList * jobs; }; +struct _gncVendorClass +{ + QofInstanceClass parent_class; +}; + static QofLogModule log_module = GNC_MOD_BUSINESS; #define _GNC_MOD_NAME GNC_ID_VENDOR @@ -72,16 +77,28 @@ void mark_vendor (GncVendor *vendor) } /* ============================================================== */ -/* Create/Destroy Functions */ +/* GObject Initialization */ +QOF_GOBJECT_IMPL(gnc_vendor, GncVendor, QOF_TYPE_INSTANCE); +static void +gnc_vendor_init(GncVendor* vendor) +{ +} + +static void +gnc_vendor_finalize_real(GObject* vendorp) +{ +} + +/* Create/Destroy Functions */ GncVendor *gncVendorCreate (QofBook *book) { GncVendor *vendor; if (!book) return NULL; - vendor = g_new0 (GncVendor, 1); - qof_instance_init (&vendor->inst, _GNC_MOD_NAME, book); + vendor = g_object_new (GNC_TYPE_VENDOR, NULL); + qof_instance_init_data (&vendor->inst, _GNC_MOD_NAME, book); vendor->id = CACHE_INSERT (""); vendor->name = CACHE_INSERT (""); @@ -120,8 +137,8 @@ static void gncVendorFree (GncVendor *vendor) if (vendor->taxtable) gncTaxTableDecRef (vendor->taxtable); - qof_instance_release (&vendor->inst); - g_free (vendor); + /* qof_instance_release (&vendor->inst); */ + g_object_unref (vendor); } /** Create a copy of a vendor, placing the copy into a new book. */ @@ -133,8 +150,8 @@ gncCloneVendor (GncVendor *from, QofBook *book) if (!book) return NULL; - vendor = g_new0 (GncVendor, 1); - qof_instance_init (&vendor->inst, _GNC_MOD_NAME, book); + vendor = g_object_new (GNC_TYPE_VENDOR, NULL); + qof_instance_init_data (&vendor->inst, _GNC_MOD_NAME, book); qof_instance_gemini (&vendor->inst, &from->inst); vendor->id = CACHE_INSERT (from->id); diff --git a/src/business/business-core/gncVendor.h b/src/business/business-core/gncVendor.h index f0f1e206d7..3cfd57def2 100644 --- a/src/business/business-core/gncVendor.h +++ b/src/business/business-core/gncVendor.h @@ -32,6 +32,7 @@ #define GNC_VENDOR_H_ typedef struct _gncVendor GncVendor; +typedef struct _gncVendorClass GncVendorClass; #include "gncAddress.h" #include "gncBillTerm.h" @@ -39,8 +40,20 @@ typedef struct _gncVendor GncVendor; #include "gncJob.h" #define GNC_ID_VENDOR "gncVendor" -#define GNC_IS_VENDOR(obj) (QOF_CHECK_TYPE((obj), GNC_ID_VENDOR)) -#define GNC_VENDOR(obj) (QOF_CHECK_CAST((obj), GNC_ID_VENDOR, GncVendor)) + +/* --- type macros --- */ +#define GNC_TYPE_VENDOR (gnc_vendor_get_type ()) +#define GNC_VENDOR(o) \ + (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_VENDOR, GncVendor)) +#define GNC_VENDOR_CLASS(k) \ + (G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_VENDOR, GncVendorClass)) +#define GNC_IS_VENDOR(o) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_VENDOR)) +#define GNC_IS_VENDOR_CLASS(k) \ + (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_VENDOR)) +#define GNC_VENDOR_GET_CLASS(o) \ + (G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_VENDOR, GncVendorClass)) +GType gnc_vendor_get_type(void); /* Create/Destroy Functions */