pidgin/pidgin

Parents 271b8dac2b0d
Children 5df699e43f3f
Make PurpleWhiteboard derivable and remove purple_whiteboard_[gs]et_ui data.

Testing Done:
Compiled

Reviewed at https://reviews.imfreedom.org/r/461/
--- a/ChangeLog.API Sat Jan 30 01:31:44 2021 -0600
+++ b/ChangeLog.API Sat Jan 30 02:26:08 2021 -0600
@@ -596,6 +596,8 @@
* PurplePluginProtocolInfo.add_buddies_with_invite
* PurplePluginProtocolInfo.get_cb_away
* PurpleValue, use GValue instead.
+ * purple_whiteboard_get_ui_data and purple_whiteboard_set_ui_data, use
+ g_object_set_data instead.
* PurpleXferUiOps.add_thumbnail. Use PurpleXfer::add-thumbnail
instead.
* PurpleXferUiOps.add_xfer. Use notify::visible on #PurpleXfer
--- a/libpurple/purplewhiteboard.c Sat Jan 30 01:31:44 2021 -0600
+++ b/libpurple/purplewhiteboard.c Sat Jan 30 02:26:08 2021 -0600
@@ -181,10 +181,6 @@
priv = purple_whiteboard_get_instance_private(whiteboard);
- if(whiteboard->ui_data) {
- purple_whiteboard_ui_ops_destroy(whiteboard);
- }
-
/* Do protocol specific session ending procedures */
if(priv->protocol_ops != NULL && priv->protocol_ops->end != NULL) {
priv->protocol_ops->end(whiteboard);
@@ -494,20 +490,6 @@
return priv->proto_data;
}
-void
-purple_whiteboard_set_ui_data(PurpleWhiteboard *whiteboard, gpointer ui_data) {
- g_return_if_fail(PURPLE_IS_WHITEBOARD(whiteboard));
-
- whiteboard->ui_data = ui_data;
-}
-
-gpointer
-purple_whiteboard_get_ui_data(PurpleWhiteboard *whiteboard) {
- g_return_val_if_fail(PURPLE_IS_WHITEBOARD(whiteboard), NULL);
-
- return whiteboard->ui_data;
-}
-
PurpleWhiteboard *
purple_whiteboard_new(PurpleAccount *account, const gchar *who, gint state) {
PurpleWhiteboard *whiteboard = NULL;
--- a/libpurple/purplewhiteboard.h Sat Jan 30 01:31:44 2021 -0600
+++ b/libpurple/purplewhiteboard.h Sat Jan 30 02:26:08 2021 -0600
@@ -51,28 +51,36 @@
/**
* PurpleWhiteboard:
- * @ui_data: The UI data associated with this whiteboard. This is a convenience
- * field provided to the UIs -- it is not used by the libpurple core.
*
- * A Whiteboard
+ * A abstract whiteboard object.
*/
-struct _PurpleWhiteboard {
- GObject gparent;
-
- /*< public >*/
- gpointer ui_data;
-};
G_BEGIN_DECLS
/**
+ * PurpleWhiteboardClass:
+ *
+ * The class methods for a PurpleWhiteboard.
+ *
+ * Right now this is empty but it will be filled out with the function from
+ * PurpleWhiteboardOps in a future review request.
+ */
+struct _PurpleWhiteboardClass {
+ /*< private >*/
+ GObjectClass parent;
+
+ /*< private >*/
+ gpointer reserved[16];
+};
+
+/**
* purple_whiteboard_get_type:
* The standard _get_type function for #PurpleWhiteboard.
*
* Returns: The #GType for the #PurpleWhiteboard object.
*/
-G_DECLARE_FINAL_TYPE(PurpleWhiteboard, purple_whiteboard, PURPLE, WHITEBOARD,
- GObject)
+G_DECLARE_DERIVABLE_TYPE(PurpleWhiteboard, purple_whiteboard, PURPLE,
+ WHITEBOARD, GObject)
/**
* purple_whiteboard_set_protocol_ops:
@@ -305,26 +313,6 @@
*/
gpointer purple_whiteboard_get_protocol_data(PurpleWhiteboard *whiteboard);
-/**
- * purple_whiteboard_set_ui_data:
- * @whiteboard: The #PurpleWhiteboard instance.
- * @ui_data: A pointer to associate with this whiteboard.
- *
- * Set the UI data associated with this whiteboard.
- */
-void purple_whiteboard_set_ui_data(PurpleWhiteboard *whiteboard, gpointer ui_data);
-
-/**
- * purple_whiteboard_get_ui_data:
- * @whiteboard: The #PurpleWhiteboard instance.
- *
- * Get the UI data associated with @whiteboard.
- *
- * Returns: The UI data associated with @whiteboard. This is a convenience
- * field provided to the UIs--it is not used by the libpurple core.
- */
-gpointer purple_whiteboard_get_ui_data(PurpleWhiteboard *whiteboard);
-
G_END_DECLS
#endif /* PURPLE_WHITEBOARD_H */