[balsa/wip/gtk4: 180/351] address-book-vcard: Declare it final



commit 9e7ae904a32136d542b190dcec6545991c5e4312
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Thu Feb 15 17:55:29 2018 -0500

    address-book-vcard: Declare it final
    
    Use G_DECLARE_FINAL_TYPE for LibBalsaAddressBookVcard and make object
    and class opaque.

 libbalsa/address-book-vcard.c |   45 +++++++++++++++-------------------------
 libbalsa/address-book-vcard.h |   22 ++-----------------
 2 files changed, 20 insertions(+), 47 deletions(-)
---
diff --git a/libbalsa/address-book-vcard.c b/libbalsa/address-book-vcard.c
index b28172f..5b2ec15 100644
--- a/libbalsa/address-book-vcard.c
+++ b/libbalsa/address-book-vcard.c
@@ -52,32 +52,16 @@ static LibBalsaABErr
 libbalsa_address_book_vcard_save_address(FILE * stream,
                                          LibBalsaAddress * address);
 
+struct _LibBalsaAddressBookVcard {
+    LibBalsaAddressBookText parent;
+};
 
-GType libbalsa_address_book_vcard_get_type(void)
-{
-    static GType address_book_vcard_type = 0;
-
-    if (!address_book_vcard_type) {
-       static const GTypeInfo address_book_vcard_info = {
-           sizeof(LibBalsaAddressBookVcardClass),
-            NULL,               /* base_init */
-            NULL,               /* base_finalize */
-           (GClassInitFunc) libbalsa_address_book_vcard_class_init,
-            NULL,               /* class_finalize */
-            NULL,               /* class_data */
-           sizeof(LibBalsaAddressBookVcard),
-            0,                  /* n_preallocs */
-           NULL                /* instance_init */
-       };
-
-       address_book_vcard_type =
-            g_type_register_static(LIBBALSA_TYPE_ADDRESS_BOOK_TEXT,
-                                  "LibBalsaAddressBookVcard",
-                                  &address_book_vcard_info, 0);
-    }
+struct _LibBalsaAddressBookVcardClass {
+    LibBalsaAddressBookTextClass parent_class;
+};
 
-    return address_book_vcard_type;
-}
+G_DEFINE_TYPE(LibBalsaAddressBookVcard, libbalsa_address_book_vcard,
+              LIBBALSA_TYPE_ADDRESS_BOOK_TEXT)
 
 static void
 libbalsa_address_book_vcard_class_init(LibBalsaAddressBookVcardClass *
@@ -92,18 +76,23 @@ libbalsa_address_book_vcard_class_init(LibBalsaAddressBookVcardClass *
         libbalsa_address_book_vcard_save_address;
 }
 
+static void
+libbalsa_address_book_vcard_init(LibBalsaAddressBookVcard * ab_vcard)
+{
+}
+
 /* Public method */
 LibBalsaAddressBook *
 libbalsa_address_book_vcard_new(const gchar * name, const gchar * path)
 {
-    LibBalsaAddressBookVcard *abvc;
+    LibBalsaAddressBookVcard *ab_vcard;
     LibBalsaAddressBook *ab;
 
-    abvc =
+    ab_vcard =
         LIBBALSA_ADDRESS_BOOK_VCARD(g_object_new
                                     (LIBBALSA_TYPE_ADDRESS_BOOK_VCARD,
                                      NULL));
-    ab = LIBBALSA_ADDRESS_BOOK(abvc);
+    ab = LIBBALSA_ADDRESS_BOOK(ab_vcard);
 
     libbalsa_address_book_set_name(ab, name);
     libbalsa_address_book_text_set_path(LIBBALSA_ADDRESS_BOOK_TEXT(ab), path);
diff --git a/libbalsa/address-book-vcard.h b/libbalsa/address-book-vcard.h
index 1b5a3c7..7d193a5 100644
--- a/libbalsa/address-book-vcard.h
+++ b/libbalsa/address-book-vcard.h
@@ -27,25 +27,9 @@
 
 #include "address-book-text.h"
 
-#define LIBBALSA_TYPE_ADDRESS_BOOK_VCARD               (libbalsa_address_book_vcard_get_type())
-#define LIBBALSA_ADDRESS_BOOK_VCARD(obj)               (G_TYPE_CHECK_INSTANCE_CAST (obj, 
LIBBALSA_TYPE_ADDRESS_BOOK_VCARD, LibBalsaAddressBookVcard))
-#define LIBBALSA_ADDRESS_BOOK_VCARD_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST (klass, 
LIBBALSA_TYPE_ADDRESS_BOOK_VCARD, LibBalsaAddressBookVcardClass))
-#define LIBBALSA_IS_ADDRESS_BOOK_VCARD(obj)            (G_TYPE_CHECK_INSTANCE_TYPE (obj, 
LIBBALSA_TYPE_ADDRESS_BOOK_VCARD))
-#define LIBBALSA_IS_ADDRESS_BOOK_VCARD_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE (klass, 
LIBBALSA_TYPE_ADDRESS_BOOK_VCARD))
-
-struct _LibBalsaAddressBookVcard {
-    LibBalsaAddressBookText parent;
-};
-
-struct _LibBalsaAddressBookVcardClass {
-    LibBalsaAddressBookTextClass parent_class;
-};
-
-typedef struct _LibBalsaAddressBookVcard LibBalsaAddressBookVcard;
-typedef struct _LibBalsaAddressBookVcardClass
-    LibBalsaAddressBookVcardClass;
-
-GType libbalsa_address_book_vcard_get_type(void);
+#define LIBBALSA_TYPE_ADDRESS_BOOK_VCARD (libbalsa_address_book_vcard_get_type())
+G_DECLARE_FINAL_TYPE(LibBalsaAddressBookVcard, libbalsa_address_book_vcard,
+                     LIBBALSA, ADDRESS_BOOK_VCARD, LibBalsaAddressBookText)
 
 LibBalsaAddressBook *libbalsa_address_book_vcard_new(const gchar * name,
                                                     const gchar * path);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]