Clear conversation window from a protocol prpl
Paul Aurich
paul at darkrain42.org
Wed Jul 21 10:32:48 EDT 2010
Unfortunately, this constitutes an API change, and would need to wait
for 2.8.0.
~Paul
On 2010-07-21 02:58, avictor.za at gmail.com wrote:
> hi,
>
> I have extended the PurpleConversationUiOps with a clear method.
>
> Is the following implementation acceptable?
> Can I submit it via the mxit branch for 2.7.3?
>
>
> --- finch/gntconv.c b8ced2d04137efad17e22b90e6871d1d335af903
> +++ finch/gntconv.c 41c84407ace9696f3d7adb737cd1e06623ee6a94
> @@ -1155,6 +1155,13 @@ finch_conv_has_focus(PurpleConversation
> return FALSE;
> }
>
> +static void
> +finch_conv_clear(PurpleConversation *conv)
> +{
> + FinchConv *fc = FINCH_CONV(conv);
> + gnt_text_view_clear(GNT_TEXT_VIEW(fc->tv));
> +}
> +
> static PurpleConversationUiOps conv_ui_ops =
> {
> finch_create_conversation,
> @@ -1172,9 +1179,9 @@ static PurpleConversationUiOps conv_ui_o
> NULL, /* custom_smiley_write */
> NULL, /* custom_smiley_close */
> NULL, /* send_confirm */
> + finch_conv_clear,
> NULL,
> NULL,
> - NULL,
> NULL
> };
>
> ============================================================
> --- libpurple/conversation.c d272e427e9274e088c365ba0b1e0b5c7bf169a70
> +++ libpurple/conversation.c 6b12dbbb700e398063f4e906ed04d0f07c21cfae
> @@ -1048,6 +1048,17 @@ purple_conversation_update(PurpleConvers
> "conversation-updated", conv, type);
> }
>
> +void
> +purple_conversation_clear(PurpleConversation *conv) {
> + PurpleConversationUiOps *ops;
> +
> + g_return_if_fail(conv != NULL);
> +
> + ops = purple_conversation_get_ui_ops(conv);
> + if(ops && ops->clear)
> + ops->clear(conv);
> +}
> +
> /**************************************************************************
> * IM Conversation API
> **************************************************************************/
> ============================================================
> --- libpurple/conversation.h 381a495feb11bace150cc4afcf6b7b50a9c8624d
> +++ libpurple/conversation.h 5109c6dc2fb16b431a371029b4b4e8e73898a712
> @@ -242,10 +242,12 @@ struct _PurpleConversationUiOps
> */
> void (*send_confirm)(PurpleConversation *conv, const char *message);
>
> + /** Clear the conversation window */
> + void (*clear)(PurpleConversation *conv);
> +
> void (*_purple_reserved1)(void);
> void (*_purple_reserved2)(void);
> void (*_purple_reserved3)(void);
> - void (*_purple_reserved4)(void);
> };
>
> /**
> @@ -709,6 +711,15 @@ void purple_conversation_clear_message_h
> void purple_conversation_clear_message_history(PurpleConversation *conv);
>
> /**
> + * Clear the conversation window.
> + *
> + * @param conv The conversation
> + *
> + * @since 2.7.3
> + */
> +void purple_conversation_clear(PurpleConversation *conv);
> +
> +/**
> * Get the sender from a PurpleConvMessage
> *
> * @param msg A PurpleConvMessage
> ============================================================
> --- libpurple/example/nullclient.c 23ee636379a805df74c7580277b9937b7078cce7
> +++ libpurple/example/nullclient.c 7968431ead67c15613c4e99990bb679e1df06342
> @@ -151,9 +151,9 @@ static PurpleConversationUiOps null_conv
> NULL, /* custom_smiley_write */
> NULL, /* custom_smiley_close */
> NULL, /* send_confirm */
> + NULL, /* clear */
> NULL,
> NULL,
> - NULL,
> NULL
> };
>
> ============================================================
> --- pidgin/gtkconv.c cef422192a37a5966dba76f5b879e24470fce162
> +++ pidgin/gtkconv.c d4d40c58bf2f77d08a7ad0b07ebfd05093087285
> @@ -6907,6 +6907,12 @@ wrote_msg_update_unseen_cb(PurpleAccount
> }
> }
>
> +static void
> +pidgin_conv_clear(PurpleConversation *conv)
> +{
> + clear_conversation_scrollback(conv);
> +}
> +
> static PurpleConversationUiOps conversation_ui_ops =
> {
> pidgin_conv_new,
> @@ -6924,9 +6930,9 @@ static PurpleConversationUiOps conversat
> pidgin_conv_custom_smiley_write, /* custom_smiley_write */
> pidgin_conv_custom_smiley_close, /* custom_smiley_close */
> pidgin_conv_send_confirm, /* send_confirm */
> + pidgin_conv_clear, /* clear */
> NULL,
> NULL,
> - NULL,
> NULL
> };
>
>
>
> Regards,
> Andrew Victor
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 897 bytes
Desc: OpenPGP digital signature
URL: <http://pidgin.im/pipermail/devel/attachments/20100721/af6afde5/attachment.sig>
More information about the Devel
mailing list