diff -r 36eba703e2b9 -r 8d1d2ab65c87 libpurple/purpleconversation.h --- a/libpurple/purpleconversation.h Mon Jan 13 02:36:10 2025 -0600 +++ b/libpurple/purpleconversation.h Mon Jan 13 02:41:19 2025 -0600 @@ -312,6 +312,32 @@ gboolean purple_conversation_get_title_generated(PurpleConversation *conversation); /** + * purple_conversation_get_title_editable: + * + * Gets whether or not the conversation title is editable. + * + * Returns: true if the user can edit the title; otherwise false. + * + * Since: 3.0 + */ +PURPLE_AVAILABLE_IN_3_0 +gboolean purple_conversation_get_title_editable(PurpleConversation *conversation); + +/** + * purple_conversation_set_title_editable: + * @editable: the new value + * + * Sets whether or not a conversation's title is editable. + * + * This should primarily be called by a protocol when a user's permissions + * change in the conversation. + * + * Since: 3.0 + */ +PURPLE_AVAILABLE_IN_3_0 +void purple_conversation_set_title_editable(PurpleConversation *conversation, gboolean editable); + +/** * purple_conversation_write_message: * @conversation: The conversation. * @message: The message to write. @@ -427,6 +453,32 @@ void purple_conversation_set_description(PurpleConversation *conversation, const char *description); /** + * purple_conversation_get_description_editable: + * + * Gets whether or not the conversation description is editable. + * + * Returns: true if the user can edit the description; otherwise false. + * + * Since: 3.0 + */ +PURPLE_AVAILABLE_IN_3_0 +gboolean purple_conversation_get_description_editable(PurpleConversation *conversation); + +/** + * purple_conversation_set_description_editable: + * @editable: the new value + * + * Sets whether or not a conversation's description is editable. + * + * This should primarily be called by a protocol when a user's permissions + * change in the conversation. + * + * Since: 3.0 + */ +PURPLE_AVAILABLE_IN_3_0 +void purple_conversation_set_description_editable(PurpleConversation *conversation, gboolean editable); + +/** * purple_conversation_get_topic: * @conversation: The instance. * @@ -452,6 +504,32 @@ void purple_conversation_set_topic(PurpleConversation *conversation, const char *topic); /** + * purple_conversation_get_topic_editable: + * + * Gets whether or not the conversation topic is editable. + * + * Returns: true if the user can edit the topic; otherwise false. + * + * Since: 3.0 + */ +PURPLE_AVAILABLE_IN_3_0 +gboolean purple_conversation_get_topic_editable(PurpleConversation *conversation); + +/** + * purple_conversation_set_topic_editable: + * @editable: the new value + * + * Sets whether or not a conversation's topic is editable. + * + * This should primarily be called by a protocol when a user's permissions + * change in the conversation. + * + * Since: 3.0 + */ +PURPLE_AVAILABLE_IN_3_0 +void purple_conversation_set_topic_editable(PurpleConversation *conversation, gboolean editable); + +/** * purple_conversation_set_topic_full: * @conversation: The instance: * @topic: (nullable): The new topic. @@ -739,6 +817,32 @@ void purple_conversation_set_avatar(PurpleConversation *conversation, PurpleAvatar *avatar); /** + * purple_conversation_get_avatar_editable: + * + * Gets whether or not the conversation avatar is editable. + * + * Returns: true if the user can edit the avatar; otherwise false. + * + * Since: 3.0 + */ +PURPLE_AVAILABLE_IN_3_0 +gboolean purple_conversation_get_avatar_editable(PurpleConversation *conversation); + +/** + * purple_conversation_set_avatar_editable: + * @editable: the new value + * + * Sets whether or not a conversation's avatar is editable. + * + * This should primarily be called by a protocol when a user's permissions + * change in the conversation. + * + * Since: 3.0 + */ +PURPLE_AVAILABLE_IN_3_0 +void purple_conversation_set_avatar_editable(PurpleConversation *conversation, gboolean editable); + +/** * purple_conversation_get_title_for_display: * @conversation: The instance. *