libpurple/purplecontact.h

changeset 41933
8ccd6fdc7ceb
parent 41930
0472e404b129
child 41948
6d844d2faff1
--- a/libpurple/purplecontact.h	Wed Nov 23 01:29:41 2022 -0600
+++ b/libpurple/purplecontact.h	Wed Nov 23 22:41:43 2022 -0600
@@ -34,7 +34,8 @@
 G_BEGIN_DECLS
 
 #define PURPLE_TYPE_CONTACT (purple_contact_get_type())
-G_DECLARE_FINAL_TYPE(PurpleContact, purple_contact, PURPLE, CONTACT, GObject)
+G_DECLARE_DERIVABLE_TYPE(PurpleContact, purple_contact, PURPLE, CONTACT,
+                         GObject)
 
 /**
  * PurpleContactPermission:
@@ -59,6 +60,26 @@
 #include <libpurple/purpleperson.h>
 
 /**
+ * PurpleContactClass:
+ * @get_account: A virtual method whose sole purpose is to allow
+ *               [class@Purple.Account] to subclass [class@Purple.Contact].
+ *
+ * The class struct for [class@Purple.Contact].
+ *
+ * Since: 3.0.0
+ */
+struct _PurpleContactClass {
+	/*< private >*/
+	GObjectClass parent;
+
+	/*< public >*/
+	PurpleAccount *(*get_account)(PurpleContact *contact);
+
+	/*< private >*/
+	gpointer reserved[4];
+};
+
+/**
  * PurpleContact:
  *
  * A representation of a user. Contacts are used everywhere you need to refer to

mercurial