# HG changeset patch
# Node ID 7fe2c77af8bd
# Parent d12bedb8b662
diff --git a/ChangeLog.API b/ChangeLog.API
--- a/ChangeLog.API
+++ b/ChangeLog.API
@@ -36,7 +36,6 @@
* PurpleProtocolChatIface
* PurpleProtocolXferIface
* PurpleProtocolRoomlistIface
- * PurpleProtocolAttentionIface
* PurpleProtocolMediaIface
* PurpleProtocolFactoryIface
* purple_protocol_get_* for PurpleProtocol members
@@ -337,6 +336,17 @@
* purple_account_set_password. Use
purple_credential_manager_write_password_async instead.
* purple_account_set_public_alias
+ * PurpleAttentionType
+ * purple_attention_type_set_name
+ * purple_attention_type_set_incoming_desc
+ * purple_attention_type_set_outgoing_desc
+ * purple_attention_type_set_icon_name
+ * purple_attention_type_set_unlocalized_name
+ * purple_attention_type_get_name
+ * purple_attention_type_get_incoming_desc
+ * purple_attention_type_get_outgoing_desc
+ * purple_attention_type_get_icon_name
+ * purple_attention_type_get_unlocalized_name
* purple_base16_*
* purple_base64_*. Use g_base64_* instead
* purple_blist_get_ui_data
@@ -413,6 +423,7 @@
* purple_find_pounce
* PurpleGetPublicAliasSuccessCallback
* PurpleGetPublicAliasFailureCallback
+ * purple_get_attention_type_from_code
* purple_get_host_name. Use g_get_host_name, instead.
* purple_get_tzoff_str(). Use g_date_time_format, instead.
* PurpleIdleUiOps
@@ -536,6 +547,9 @@
* pidgin_protocol_option_menu_new
* purple_proxy_connect_socks5
* purple_proxy_connect_socks5_account
+ * purple_prpl_got_attention
+ * purple_prpl_got_attention_in_chat
+ * purple_prpl_send_attention
* purple_quotedp_decode. See the GMime library if needed.
* purple_restore_default_signal_handlers
* purple_request_certificate
diff --git a/doc/reference/libpurple/libpurple-docs.xml b/doc/reference/libpurple/libpurple-docs.xml
--- a/doc/reference/libpurple/libpurple-docs.xml
+++ b/doc/reference/libpurple/libpurple-docs.xml
@@ -65,7 +65,6 @@
-
@@ -119,7 +118,6 @@
-
diff --git a/libpurple/meson.build b/libpurple/meson.build
--- a/libpurple/meson.build
+++ b/libpurple/meson.build
@@ -41,7 +41,6 @@
'purpleaccountpresence.c',
'purpleaccountusersplit.c',
'purpleattachment.c',
- 'purpleattentiontype.c',
'purplebuddypresence.c',
'purplechatconversation.c',
'purplechatuser.c',
@@ -63,7 +62,6 @@
'purpleplugininfo.c',
'purplepresence.c',
'purpleprotocol.c',
- 'purpleprotocolattention.c',
'purpleprotocolchat.c',
'purpleprotocolclient.c',
'purpleprotocolfactory.c',
@@ -135,7 +133,6 @@
'purpleaccountoption.h',
'purpleaccountpresence.h',
'purpleaccountusersplit.h',
- 'purpleattentiontype.h',
'purplebuddypresence.h',
'purplechatconversation.h',
'purplechatuser.h',
@@ -158,7 +155,6 @@
'purpleplugininfo.h',
'purplepresence.h',
'purpleprotocol.h',
- 'purpleprotocolattention.h',
'purpleprotocolchat.h',
'purpleprotocolclient.h',
'purpleprotocolfactory.h',
diff --git a/libpurple/protocols.h b/libpurple/protocols.h
--- a/libpurple/protocols.h
+++ b/libpurple/protocols.h
@@ -228,49 +228,6 @@
PurplePresence *presence);
/**
- * purple_protocol_send_attention:
- * @gc: The connection to send the message on.
- * @who: Whose attention to request.
- * @type_code: An index into the protocol's attention_types list determining the type
- * of the attention request command to send. 0 if protocol only defines one
- * (for example, Yahoo and MSN), but protocols are allowed to define more.
- *
- * Send an attention request message.
- *
- * Note that you can't send arbitrary PurpleAttentionType's, because there is
- * only a fixed set of attention commands.
- */
-void purple_protocol_send_attention(PurpleConnection *gc, const char *who,
- guint type_code);
-
-/**
- * purple_protocol_got_attention:
- * @gc: The connection that received the attention message.
- * @who: Who requested your attention.
- * @type_code: An index into the protocol's attention_types list
- * determining the type of the attention request command to
- * send.
- *
- * Process an incoming attention message.
- */
-void purple_protocol_got_attention(PurpleConnection *gc, const char *who,
- guint type_code);
-
-/**
- * purple_protocol_got_attention_in_chat:
- * @gc: The connection that received the attention message.
- * @id: The chat id.
- * @who: Who requested your attention.
- * @type_code: An index into the protocol's attention_types list
- * determining the type of the attention request command to
- * send.
- *
- * Process an incoming attention message in a chat.
- */
-void purple_protocol_got_attention_in_chat(PurpleConnection *gc, int id,
- const char *who, guint type_code);
-
-/**
* purple_protocol_get_media_caps:
* @account: The account the user is on.
* @who: The name of the contact to check capabilities for.
diff --git a/libpurple/protocols.c b/libpurple/protocols.c
--- a/libpurple/protocols.c
+++ b/libpurple/protocols.c
@@ -32,7 +32,6 @@
#include "purpleconversationmanager.h"
#include "purplecredentialmanager.h"
#include "purpleprotocol.h"
-#include "purpleprotocolattention.h"
#include "purpleprotocolmanager.h"
#include "purpleprotocolmedia.h"
#include "purpleprotocolserver.h"
@@ -349,130 +348,6 @@
(GCopyFunc)purple_status_new, presence);
}
-static void
-purple_protocol_attention(PurpleConversation *conv, const char *who,
- guint type, PurpleMessageFlags flags, time_t mtime)
-{
- PurpleAccount *account = purple_conversation_get_account(conv);
- purple_signal_emit(purple_conversations_get_handle(),
- flags == PURPLE_MESSAGE_SEND ? "sent-attention" : "got-attention",
- account, who, conv, type);
-}
-
-void
-purple_protocol_send_attention(PurpleConnection *gc, const char *who, guint type_code)
-{
- PurpleAttentionType *attn;
- PurpleProtocol *protocol;
- PurpleProtocolManager *manager;
- PurpleConversation *im;
- PurpleBuddy *buddy;
- const char *alias;
- gchar *description;
-
- g_return_if_fail(gc != NULL);
- g_return_if_fail(who != NULL);
-
- manager = purple_protocol_manager_get_default();
- protocol = purple_protocol_manager_find(manager,
- purple_account_get_protocol_id(purple_connection_get_account(gc)));
- g_return_if_fail(PURPLE_IS_PROTOCOL_ATTENTION(protocol));
-
- attn = purple_get_attention_type_from_code(purple_connection_get_account(gc), type_code);
-
- if ((buddy = purple_blist_find_buddy(purple_connection_get_account(gc), who)) != NULL) {
- alias = purple_buddy_get_contact_alias(buddy);
- } else {
- alias = who;
- }
-
- if (attn && purple_attention_type_get_outgoing_desc(attn)) {
- description = g_strdup_printf(purple_attention_type_get_outgoing_desc(attn), alias);
- } else {
- description = g_strdup_printf(_("Requesting %s's attention..."), alias);
- }
-
- purple_debug_info("server", "serv_send_attention: sending '%s' to %s\n",
- description, who);
-
- if (!purple_protocol_attention_send_attention(PURPLE_PROTOCOL_ATTENTION(protocol), gc, who, type_code)) {
- return;
- }
-
- im = purple_im_conversation_new(purple_connection_get_account(gc), who);
- purple_conversation_write_system_message(PURPLE_CONVERSATION(im), description, 0);
- purple_protocol_attention(PURPLE_CONVERSATION(im), who, type_code, PURPLE_MESSAGE_SEND, time(NULL));
-
- g_free(description);
-}
-
-static void
-got_attention(PurpleConnection *gc, int id, const char *who, guint type_code)
-{
- PurpleMessageFlags flags;
- PurpleAttentionType *attn;
- PurpleBuddy *buddy;
- const char *alias;
- gchar *description;
- time_t mtime;
-
- mtime = time(NULL);
-
- attn = purple_get_attention_type_from_code(purple_connection_get_account(gc), type_code);
-
- /* PURPLE_MESSAGE_NOTIFY is for attention messages. */
- flags = PURPLE_MESSAGE_SYSTEM | PURPLE_MESSAGE_NOTIFY | PURPLE_MESSAGE_RECV;
-
- /* TODO: if (attn->icon_name) is non-null, use it to lookup an emoticon and display
- * it next to the attention command. And if it is null, display a generic icon. */
-
- if ((buddy = purple_blist_find_buddy(purple_connection_get_account(gc), who)) != NULL)
- alias = purple_buddy_get_contact_alias(buddy);
- else
- alias = who;
-
- if (attn && purple_attention_type_get_incoming_desc(attn)) {
- description = g_strdup_printf(purple_attention_type_get_incoming_desc(attn), alias);
- } else {
- description = g_strdup_printf(_("%s has requested your attention!"), alias);
- }
-
- purple_debug_info("server", "got_attention: got '%s' from %s\n",
- description, who);
-
- if (id == -1)
- purple_serv_got_im(gc, who, description, flags, mtime);
- else
- purple_serv_got_chat_in(gc, id, who, flags, description, mtime);
-
- /* TODO: sounds (depending on PurpleAttentionType), shaking, etc. */
-
- g_free(description);
-}
-
-void
-purple_protocol_got_attention(PurpleConnection *gc, const char *who, guint type_code)
-{
- PurpleConversation *conv = NULL;
- PurpleConversationManager *manager = NULL;
- PurpleAccount *account = purple_connection_get_account(gc);
-
- got_attention(gc, -1, who, type_code);
-
- manager = purple_conversation_manager_get_default();
- conv = purple_conversation_manager_find(manager, account, who);
- if(PURPLE_IS_CONVERSATION(conv)) {
- purple_protocol_attention(conv, who, type_code, PURPLE_MESSAGE_RECV,
- time(NULL));
- }
-}
-
-void
-purple_protocol_got_attention_in_chat(PurpleConnection *gc, int id, const char *who, guint type_code)
-{
- got_attention(gc, id, who, type_code);
-}
-
gboolean
purple_protocol_initiate_media(PurpleAccount *account,
const char *who,
diff --git a/libpurple/protocols/jabber/jabber.h b/libpurple/protocols/jabber/jabber.h
--- a/libpurple/protocols/jabber/jabber.h
+++ b/libpurple/protocols/jabber/jabber.h
@@ -389,8 +389,6 @@
void jabber_register_gateway(JabberStream *js, const char *gateway);
void jabber_register_account(PurpleProtocolServer *protocol_server, PurpleAccount *account);
void jabber_unregister_account(PurpleProtocolServer *protocol_server, PurpleAccount *account, PurpleAccountUnregistrationCb cb, void *user_data);
-gboolean jabber_send_attention(PurpleProtocolAttention *attn, PurpleConnection *gc, const char *username, guint code);
-GList *jabber_attention_types(PurpleProtocolAttention *attn, PurpleAccount *account);
void jabber_convo_closed(PurpleProtocolClient *client, PurpleConnection *gc, const char *who);
PurpleChat *jabber_find_blist_chat(PurpleProtocolClient *client, PurpleAccount *account, const char *name);
gboolean jabber_offline_message(PurpleProtocolClient *client, PurpleBuddy *buddy);
diff --git a/libpurple/protocols/jabber/jabber.c b/libpurple/protocols/jabber/jabber.c
--- a/libpurple/protocols/jabber/jabber.c
+++ b/libpurple/protocols/jabber/jabber.c
@@ -3120,135 +3120,6 @@
return PURPLE_CMD_RET_OK;
}
-static gboolean _jabber_send_buzz(JabberStream *js, const char *username, char **error) {
-
- JabberBuddy *jb;
- JabberBuddyResource *jbr;
- PurpleConnection *gc = js->gc;
- PurpleBuddy *buddy =
- purple_blist_find_buddy(purple_connection_get_account(gc), username);
- const gchar *alias =
- buddy ? purple_buddy_get_contact_alias(buddy) : username;
-
- if(!username)
- return FALSE;
-
- jb = jabber_buddy_find(js, username, FALSE);
- if(!jb) {
- *error = g_strdup_printf(_("Unable to buzz, because there is nothing "
- "known about %s."), alias);
- return FALSE;
- }
-
- jbr = jabber_buddy_find_resource(jb, NULL);
- if (!jbr) {
- *error = g_strdup_printf(_("Unable to buzz, because %s might be offline."),
- alias);
- return FALSE;
- }
-
- if (jabber_resource_has_capability(jbr, NS_ATTENTION)) {
- PurpleXmlNode *buzz, *msg = purple_xmlnode_new("message");
- gchar *to;
-
- to = g_strdup_printf("%s/%s", username, jbr->name);
- purple_xmlnode_set_attrib(msg, "to", to);
- g_free(to);
-
- /* avoid offline storage */
- purple_xmlnode_set_attrib(msg, "type", "headline");
-
- buzz = purple_xmlnode_new_child(msg, "attention");
- purple_xmlnode_set_namespace(buzz, NS_ATTENTION);
-
- jabber_send(js, msg);
- purple_xmlnode_free(msg);
-
- return TRUE;
- } else {
- *error = g_strdup_printf(_("Unable to buzz, because %s does "
- "not support it or does not wish to receive buzzes now."), alias);
- return FALSE;
- }
-}
-
-static PurpleCmdRet jabber_cmd_buzz(PurpleConversation *conv,
- const char *cmd, char **args, char **error, void *data)
-{
- PurpleAccount *account = purple_conversation_get_account(conv);
- JabberStream *js = purple_connection_get_protocol_data(purple_account_get_connection(account));
- const gchar *who;
- gchar *description;
- PurpleBuddy *buddy;
- const char *alias;
- PurpleAttentionType *attn =
- purple_get_attention_type_from_code(account, 0);
-
- if (!args || !args[0]) {
- /* use the buddy from conversation, if it's a one-to-one conversation */
- if (PURPLE_IS_IM_CONVERSATION(conv)) {
- who = purple_conversation_get_name(conv);
- } else {
- return PURPLE_CMD_RET_FAILED;
- }
- } else {
- who = args[0];
- }
-
- buddy = purple_blist_find_buddy(account, who);
- if (buddy != NULL)
- alias = purple_buddy_get_contact_alias(buddy);
- else
- alias = who;
-
- description =
- g_strdup_printf(purple_attention_type_get_outgoing_desc(attn), alias);
- purple_conversation_write_system_message(conv, description,
- PURPLE_MESSAGE_NOTIFY);
- g_free(description);
- return _jabber_send_buzz(js, who, error) ? PURPLE_CMD_RET_OK : PURPLE_CMD_RET_FAILED;
-}
-
-GList *jabber_attention_types(PurpleProtocolAttention *attn, PurpleAccount *account)
-{
- static GList *types = NULL;
-
- if (!types) {
- types = g_list_append(types, purple_attention_type_new("Buzz", _("Buzz"),
- _("%s has buzzed you!"), _("Buzzing %s...")));
- }
-
- return types;
-}
-
-gboolean jabber_send_attention(PurpleProtocolAttention *attn, PurpleConnection *gc, const char *username, guint code)
-{
- JabberStream *js = purple_connection_get_protocol_data(gc);
- gchar *error = NULL;
-
- if (!_jabber_send_buzz(js, username, &error)) {
- PurpleAccount *account = purple_connection_get_account(gc);
- PurpleConversation *conv;
- PurpleConversationManager *manager;
-
- manager = purple_conversation_manager_get_default();
- conv = purple_conversation_manager_find(manager, account, username);
-
- purple_debug_error("jabber", "jabber_send_attention: jabber_cmd_buzz failed with error: %s\n", error ? error : "(NULL)");
-
- if (conv) {
- purple_conversation_write_system_message(conv,
- error, PURPLE_MESSAGE_ERROR);
- }
-
- g_free(error);
- return FALSE;
- }
-
- return TRUE;
-}
-
-
gboolean
jabber_offline_message(PurpleProtocolClient *client, PurpleBuddy *buddy) {
return TRUE;
@@ -3725,12 +3596,6 @@
_("ping <jid>: Ping a user/component/server."), NULL);
commands = g_slist_prepend(commands, GUINT_TO_POINTER(id));
- id = purple_cmd_register("buzz", "w", PURPLE_CMD_P_PROTOCOL,
- PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_PROTOCOL_ONLY |
- PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, proto_id, jabber_cmd_buzz,
- _("buzz: Buzz a user to get their attention."), NULL);
- commands = g_slist_prepend(commands, GUINT_TO_POINTER(id));
-
id = purple_cmd_register("mood", "ws", PURPLE_CMD_P_PROTOCOL,
PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM |
PURPLE_CMD_FLAG_PROTOCOL_ONLY | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS,
@@ -3912,9 +3777,6 @@
jabber_add_feature(NS_XHTML_IM, NULL);
jabber_add_feature(NS_PING, NULL);
- /* Buzz/Attention */
- jabber_add_feature(NS_ATTENTION, jabber_buzz_isenabled);
-
/* Bits Of Binary */
jabber_add_feature(NS_BOB, NULL);
@@ -4204,13 +4066,6 @@
}
static void
-jabber_protocol_attention_iface_init(PurpleProtocolAttentionInterface *iface)
-{
- iface->send_attention = jabber_send_attention;
- iface->get_types = jabber_attention_types;
-}
-
-static void
jabber_protocol_media_iface_init(PurpleProtocolMediaInterface *media_iface)
{
media_iface->initiate_session = jabber_initiate_media;
@@ -4247,9 +4102,6 @@
G_IMPLEMENT_INTERFACE_DYNAMIC(PURPLE_TYPE_PROTOCOL_ROOMLIST,
jabber_protocol_roomlist_iface_init)
- G_IMPLEMENT_INTERFACE_DYNAMIC(PURPLE_TYPE_PROTOCOL_ATTENTION,
- jabber_protocol_attention_iface_init)
-
G_IMPLEMENT_INTERFACE_DYNAMIC(PURPLE_TYPE_PROTOCOL_MEDIA,
jabber_protocol_media_iface_init)
diff --git a/libpurple/protocols/jabber/message.h b/libpurple/protocols/jabber/message.h
--- a/libpurple/protocols/jabber/message.h
+++ b/libpurple/protocols/jabber/message.h
@@ -44,7 +44,6 @@
time_t sent;
gboolean delayed;
gboolean forwarded;
- gboolean hasBuzz;
gboolean outgoing;
char *id;
char *from;
@@ -77,6 +76,4 @@
unsigned int jabber_send_typing(PurpleProtocolIM *pim, PurpleConnection *gc, const char *who, PurpleIMTypingState state);
-gboolean jabber_buzz_isenabled(JabberStream *js, const gchar *namespace);
-
#endif /* PURPLE_JABBER_MESSAGE_H */
diff --git a/libpurple/protocols/jabber/message.c b/libpurple/protocols/jabber/message.c
--- a/libpurple/protocols/jabber/message.c
+++ b/libpurple/protocols/jabber/message.c
@@ -314,26 +314,6 @@
g_free(buf);
}
-static void handle_buzz(JabberMessage *jm) {
- PurpleAccount *account;
-
- /* Delayed buzz MUST NOT be accepted */
- if(jm->delayed)
- return;
-
- /* Reject buzz when it's not enabled */
- if(!jm->js->allowBuzz)
- return;
-
- account = purple_connection_get_account(jm->js->gc);
-
- if (purple_blist_find_buddy(account, jm->from) == NULL)
- return; /* Do not accept buzzes from unknown people */
-
- /* xmpp only has 1 attention type, so index is 0 */
- purple_protocol_got_attention(jm->js->gc, jm->from, 0);
-}
-
static gchar *
jabber_message_xml_to_string_strip_img_smileys(PurpleXmlNode *xhtml)
{
@@ -603,8 +583,6 @@
jm->type = JABBER_MESSAGE_EVENT;
for(items = purple_xmlnode_get_child(child,"items"); items; items = items->next)
jm->eventitems = g_list_append(jm->eventitems, items);
- } else if(purple_strequal(child->name, "attention") && purple_strequal(xmlns, NS_ATTENTION)) {
- jm->hasBuzz = TRUE;
} else if(purple_strequal(child->name, "delay") && purple_strequal(xmlns, NS_DELAYED_DELIVERY)) {
const char *timestamp = purple_xmlnode_get_attrib(child, "stamp");
jm->delayed = TRUE;
@@ -670,9 +648,6 @@
}
}
- if(jm->hasBuzz)
- handle_buzz(jm);
-
switch(jm->type) {
case JABBER_MESSAGE_OTHER:
purple_debug_info("jabber",
@@ -983,7 +958,3 @@
return 0;
}
-
-gboolean jabber_buzz_isenabled(JabberStream *js, const gchar *namespace) {
- return js->allowBuzz;
-}
diff --git a/libpurple/protocols/jabber/namespaces.h b/libpurple/protocols/jabber/namespaces.h
--- a/libpurple/protocols/jabber/namespaces.h
+++ b/libpurple/protocols/jabber/namespaces.h
@@ -79,9 +79,6 @@
/* XEP-0206 XMPP over BOSH */
#define NS_XMPP_BOSH "urn:xmpp:xbosh"
-/* XEP-0224 Attention */
-#define NS_ATTENTION "urn:xmpp:attention:0"
-
/* XEP-0231 BoB (Bits of Binary) */
#define NS_BOB "urn:xmpp:bob"
diff --git a/libpurple/purpleattentiontype.h b/libpurple/purpleattentiontype.h
deleted file mode 100644
--- a/libpurple/purpleattentiontype.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * purple
- * Copyright (C) Pidgin Developers
- *
- * Purple is the legal property of its developers, whose names are too numerous
- * to list here. Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see .
- */
-
-#if !defined(PURPLE_GLOBAL_HEADER_INSIDE) && !defined(PURPLE_COMPILATION)
-# error "only may be included directly"
-#endif
-
-#ifndef PURPLE_ATTENTION_TYPE_H
-#define PURPLE_ATTENTION_TYPE_H
-
-#include
-#include
-
-/**
- * SECTION:purpleattentiontype
- * @section_id: libpurple-purpleattentiontype
- * @title: Attention Types
- */
-
-#define PURPLE_TYPE_ATTENTION_TYPE (purple_attention_type_get_type())
-
-/**
- * PurpleAttentionType:
- *
- * Represents "nudges" and "buzzes" that you may send to a buddy to attract
- * their attention (or vice-versa).
- */
-typedef struct _PurpleAttentionType PurpleAttentionType;
-
-G_BEGIN_DECLS
-
-/**
- * purple_attention_type_get_type:
- *
- * Returns: The #GType for the #PurpleAttentionType boxed structure.
- */
-GType purple_attention_type_get_type(void);
-
-PurpleAttentionType *purple_attention_type_copy(PurpleAttentionType *attn);
-
-/**
- * purple_attention_type_new:
- * @unlocalized_name: A non-localized string that can be used by UIs in need of such
- * non-localized strings. This should be the same as @name,
- * without localization.
- * @name: A localized string that the UI may display for the event. This
- * should be the same string as @unlocalized_name, with localization.
- * @incoming_description: A localized description shown when the event is received.
- * @outgoing_description: A localized description shown when the event is sent.
- *
- * Creates a new #PurpleAttentionType object and sets its mandatory parameters.
- *
- * Returns: A pointer to the new object.
- */
-PurpleAttentionType *purple_attention_type_new(const gchar *unlocalized_name, const gchar *name,
- const gchar *incoming_description, const gchar *outgoing_description);
-
-/**
- * purple_attention_type_get_name:
- * @type: The attention type.
- *
- * Get the attention type's name as displayed by the UI.
- *
- * Returns: The name.
- */
-const gchar *purple_attention_type_get_name(const PurpleAttentionType *type);
-
-/**
- * purple_attention_type_set_name:
- * @type: The attention type.
- * @name: The localized name that will be displayed by UIs. This should be
- * the same string given as the unlocalized name, but with
- * localization.
- *
- * Sets the displayed name of the attention-demanding event.
- */
-void purple_attention_type_set_name(PurpleAttentionType *type, const gchar *name);
-
-/**
- * purple_attention_type_get_incoming_desc:
- * @type: The attention type.
- *
- * Get the attention type's description shown when the event is received.
- *
- * Returns: The description.
- */
-const gchar *purple_attention_type_get_incoming_desc(const PurpleAttentionType *type);
-
-/**
- * purple_attention_type_set_incoming_desc:
- * @type: The attention type.
- * @desc: The localized description for incoming events.
- *
- * Sets the description of the attention-demanding event shown in conversations
- * when the event is received.
- */
-void purple_attention_type_set_incoming_desc(PurpleAttentionType *type, const gchar *desc);
-
-/**
- * purple_attention_type_get_outgoing_desc:
- * @type: The attention type.
- *
- * Get the attention type's description shown when the event is sent.
- *
- * Returns: The description.
- */
-const gchar *purple_attention_type_get_outgoing_desc(const PurpleAttentionType *type);
-
-/**
- * purple_attention_type_set_outgoing_desc:
- * @type: The attention type.
- * @desc: The localized description for outgoing events.
- *
- * Sets the description of the attention-demanding event shown in conversations
- * when the event is sent.
- */
-void purple_attention_type_set_outgoing_desc(PurpleAttentionType *type, const gchar *desc);
-
-/**
- * purple_attention_type_get_icon_name:
- * @type: The attention type.
- *
- * Get the attention type's icon name.
- *
- * Note: Icons are optional for attention events.
- *
- * Returns: The icon name or %NULL if unset/empty.
- */
-const gchar *purple_attention_type_get_icon_name(const PurpleAttentionType *type);
-
-/**
- * purple_attention_type_set_icon_name:
- * @type: The attention type.
- * @name: The icon's name.
- *
- * Sets the name of the icon to display for the attention event; this is optional.
- *
- * Note: Icons are optional for attention events.
- */
-void purple_attention_type_set_icon_name(PurpleAttentionType *type, const gchar *name);
-
-/**
- * purple_attention_type_get_unlocalized_name:
- * @type: The attention type
- *
- * Get the attention type's unlocalized name; this is useful for some UIs.
- *
- * Returns: The unlocalized name.
- */
-const gchar *purple_attention_type_get_unlocalized_name(const PurpleAttentionType *type);
-
-/**
- * purple_attention_type_set_unlocalized_name:
- * @type: The attention type.
- * @ulname: The unlocalized name. This should be the same string given as
- * the localized name, but without localization.
- *
- * Sets the unlocalized name of the attention event; some UIs may need this,
- * thus it is required.
- */
-void purple_attention_type_set_unlocalized_name(PurpleAttentionType *type, const gchar *ulname);
-
-G_END_DECLS
-
-#endif /* PURPLE_ATTENTION_TYPE_H */
diff --git a/libpurple/purpleattentiontype.c b/libpurple/purpleattentiontype.c
deleted file mode 100644
--- a/libpurple/purpleattentiontype.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * purple
- * Copyright (C) Pidgin Developers
- *
- * Purple is the legal property of its developers, whose names are too numerous
- * to list here. Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see .
- */
-
-#include "purpleattentiontype.h"
-
-struct _PurpleAttentionType {
- /* The name to show in GUI elements. */
- const gchar *name;
- /* Shown when received. */
- const gchar *incoming_description;
- /* Shown when sent. */
- const gchar *outgoing_description;
- /* Optional name of the icon to display. */
- const gchar *icon_name;
- /* An unlocalized name for UIs that would rather use that. */
- const gchar *unlocalized_name;
-};
-
-G_DEFINE_BOXED_TYPE(
- PurpleAttentionType,
- purple_attention_type,
- purple_attention_type_copy,
- g_free
-);
-
-/******************************************************************************
- * Public API
- *****************************************************************************/
-PurpleAttentionType *
-purple_attention_type_new(const gchar *unlocalized_name,
- const gchar *name,
- const gchar *incoming_description,
- const gchar *outgoing_description)
-{
- PurpleAttentionType *attn = g_new0(PurpleAttentionType, 1);
-
- attn->unlocalized_name = unlocalized_name;
- attn->name = name;
- attn->incoming_description = incoming_description;
- attn->outgoing_description = outgoing_description;
-
- return attn;
-}
-
-PurpleAttentionType *
-purple_attention_type_copy(PurpleAttentionType *attn) {
- PurpleAttentionType *attn_copy = NULL;
-
- g_return_val_if_fail(attn != NULL, NULL);
-
- attn_copy = g_new(PurpleAttentionType, 1);
- *attn_copy = *attn;
-
- return attn_copy;
-}
-
-const gchar *
-purple_attention_type_get_name(const PurpleAttentionType *type) {
- g_return_val_if_fail(type, NULL);
-
- return type->name;
-}
-
-void
-purple_attention_type_set_name(PurpleAttentionType *type, const gchar *name) {
- g_return_if_fail(type);
-
- type->name = name;
-}
-
-const gchar *
-purple_attention_type_get_incoming_desc(const PurpleAttentionType *type) {
- g_return_val_if_fail(type, NULL);
-
- return type->incoming_description;
-}
-
-void
-purple_attention_type_set_incoming_desc(PurpleAttentionType *type, const gchar *desc) {
- g_return_if_fail(type);
-
- type->incoming_description = desc;
-}
-
-const gchar *
-purple_attention_type_get_outgoing_desc(const PurpleAttentionType *type) {
- g_return_val_if_fail(type, NULL);
-
- return type->outgoing_description;
-}
-
-void
-purple_attention_type_set_outgoing_desc(PurpleAttentionType *type, const gchar *desc) {
- g_return_if_fail(type != NULL);
-
- type->outgoing_description = desc;
-}
-
-const gchar *
-purple_attention_type_get_icon_name(const PurpleAttentionType *type) {
- g_return_val_if_fail(type, NULL);
-
- if(type->icon_name == NULL || *(type->icon_name) == '\0')
- return NULL;
-
- return type->icon_name;
-}
-
-void
-purple_attention_type_set_icon_name(PurpleAttentionType *type, const gchar *name) {
- g_return_if_fail(type);
-
- type->icon_name = name;
-}
-
-const gchar *
-purple_attention_type_get_unlocalized_name(const PurpleAttentionType *type) {
- g_return_val_if_fail(type, NULL);
-
- return type->unlocalized_name;
-}
-
-void
-purple_attention_type_set_unlocalized_name(PurpleAttentionType *type, const gchar *ulname) {
- g_return_if_fail(type);
-
- type->unlocalized_name = ulname;
-}
diff --git a/libpurple/purpleprotocolattention.h b/libpurple/purpleprotocolattention.h
deleted file mode 100644
--- a/libpurple/purpleprotocolattention.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * purple
- * Copyright (C) Pidgin Developers
- *
- * Purple is the legal property of its developers, whose names are too numerous
- * to list here. Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see .
- */
-
-#if !defined(PURPLE_GLOBAL_HEADER_INSIDE) && !defined(PURPLE_COMPILATION)
-# error "only may be included directly"
-#endif
-
-#ifndef PURPLE_ATTENTION_H
-#define PURPLE_ATTENTION_H
-
-#include
-#include
-
-/**
- * SECTION:purpleprotocolattention
- * @section_id: libpurple-purpleprotocolattention
- * @title: Protocol Attention Interface
- * @short_description: Protocol interface for attention.
- *
- * @PurpleProtocolAttention is an interface that PurpleProtocols can implement
- * to support getting a contact's attention.
- */
-
-#include
-#include
-#include
-
-G_BEGIN_DECLS
-
-/**
- * PURPLE_TYPE_PROTOCOL_ATTENTION:
- *
- * The standard _get_type macro for #PurpleProtocolAttention.
- *
- * Since: 3.0.0
- */
-#define PURPLE_TYPE_PROTOCOL_ATTENTION (purple_protocol_attention_get_type())
-
-/**
- * purple_protocol_attention_get_type:
- *
- * Gets the #GType for #PurpleProtocolAttentionInterface.
- *
- * Returns: The #GType for the protocol attention interface.
- *
- * Since: 3.0.0
- */
-
-/**
- * PurpleProtocolAttention:
- *
- * An opaque data structure used to represent an object that implements the
- * #PurpleProtocolAttention interface.
- *
- * Since: 3.0.0
- */
-G_DECLARE_INTERFACE(PurpleProtocolAttention, purple_protocol_attention, PURPLE,
- PROTOCOL_ATTENTION, PurpleProtocol)
-
-/**
- * PurpleProtocolAttentionInterface:
- * @send_attention: Called to send an attention message. See
- * purple_protocol_attention_send_attention().
- * @get_types: Called to list the protocol's attention types. See
- * purple_protocol_attention_get_types().
- *
- * The protocol attention interface.
- *
- * This interface provides attention API for sending and receiving
- * zaps/nudges/buzzes etc.
- *
- * Since: 3.0.0
- */
-struct _PurpleProtocolAttentionInterface {
- /*< private >*/
- GTypeInterface parent;
-
- /*< public >*/
- gboolean (*send_attention)(PurpleProtocolAttention *attention,
- PurpleConnection *pc, const gchar *username,
- guint type);
-
- GList *(*get_types)(PurpleProtocolAttention *attention,
- PurpleAccount *account);
-
- /*< private >*/
- gpointer reserved[4];
-};
-
-/**
- * purple_protocol_attention_get_types:
- * @attention: The #PurpleProtocolAttention.
- * @account: The #PurpleAccount whose attention types to get.
- *
- * Returns a list of #PurpleAttentionType's for @attention.
- *
- * Returns: (transfer container) (element-type PurpleAttentionType): The list of
- * #PurpleAttentionType's.
- *
- * Since: 3.0.0
- */
-GList *purple_protocol_attention_get_types(PurpleProtocolAttention *attention, PurpleAccount *account);
-
-/**
- * purple_protocol_attention_send_attention:
- * @attention: The #PurpleProtocolAttention instance.
- * @pc: The #PurpleConnection to send on
- * @username: The name of the user to send the attention to.
- * @type: The type of attention to send.
- *
- * Sends an attention message of @type to @username.
- *
- * Returns: %TRUE on success, %FALSE otherwise.
- *
- * Since: 3.0.0
- */
-gboolean purple_protocol_attention_send_attention(PurpleProtocolAttention *attention, PurpleConnection *pc, const gchar *username, guint type);
-
-G_END_DECLS
-
-#endif /* PURPLE_PROTOCOL_ATTENTION_H */
diff --git a/libpurple/purpleprotocolattention.c b/libpurple/purpleprotocolattention.c
deleted file mode 100644
--- a/libpurple/purpleprotocolattention.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * purple
- * Copyright (C) Pidgin Developers
- *
- * Purple is the legal property of its developers, whose names are too numerous
- * to list here. Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see .
- */
-
-#include "purpleprotocolattention.h"
-
-G_DEFINE_INTERFACE(PurpleProtocolAttention, purple_protocol_attention,
- PURPLE_TYPE_PROTOCOL)
-
-/******************************************************************************
- * GInterface Implementation
- *****************************************************************************/
-static void
-purple_protocol_attention_default_init(PurpleProtocolAttentionInterface *iface) {
-}
-
-/******************************************************************************
- * Public API
- *****************************************************************************/
-gboolean
-purple_protocol_attention_send_attention(PurpleProtocolAttention *attention,
- PurpleConnection *gc,
- const gchar *username, guint type)
-{
- PurpleProtocolAttentionInterface *iface = NULL;
-
- g_return_val_if_fail(PURPLE_IS_PROTOCOL_ATTENTION(attention), FALSE);
-
- iface = PURPLE_PROTOCOL_ATTENTION_GET_IFACE(attention);
- if(iface && iface->send_attention) {
- return iface->send_attention(attention, gc, username, type);
- }
-
- return FALSE;
-}
-
-GList *
-purple_protocol_attention_get_types(PurpleProtocolAttention *attention,
- PurpleAccount *account)
-{
- PurpleProtocolAttentionInterface *iface = NULL;
-
- g_return_val_if_fail(PURPLE_IS_PROTOCOL_ATTENTION(attention), NULL);
-
- iface = PURPLE_PROTOCOL_ATTENTION_GET_IFACE(attention);
- if(iface && iface->get_types) {
- return iface->get_types(attention, account);
- }
-
- return NULL;
-}
-
diff --git a/libpurple/server.h b/libpurple/server.h
--- a/libpurple/server.h
+++ b/libpurple/server.h
@@ -41,7 +41,6 @@
#include "conversations.h"
#include "group.h"
#include "protocols.h"
-#include "purpleattentiontype.h"
#include "purpleimconversation.h"
#include "purplemessage.h"
@@ -88,17 +87,6 @@
int purple_serv_send_im(PurpleConnection *gc, PurpleMessage *msg);
/**
- * purple_get_attention_type_from_code:
- * @account: The #PurpleAccount
- * @type_code: The protocol specific attention type code to convert
- *
- * Get information about an account's attention commands, from the protocol.
- *
- * Returns: The attention command numbered 'code' from the protocol's attention_types, or NULL.
- */
-PurpleAttentionType *purple_get_attention_type_from_code(PurpleAccount *account, guint type_code);
-
-/**
* purple_serv_get_info:
* @gc: The connection over which to send the typing notification.
* @name: The name of the buddy we were asking information from.
diff --git a/libpurple/server.c b/libpurple/server.c
--- a/libpurple/server.c
+++ b/libpurple/server.c
@@ -34,7 +34,6 @@
#include "purpleconversationmanager.h"
#include "purpleprivate.h"
#include "purpleprotocol.h"
-#include "purpleprotocolattention.h"
#include "purpleprotocolchat.h"
#include "purpleprotocolim.h"
#include "purpleprotocolprivacy.h"
@@ -309,31 +308,6 @@
}
}
-
-PurpleAttentionType *purple_get_attention_type_from_code(PurpleAccount *account, guint type_code)
-{
- PurpleProtocol *protocol;
- PurpleAttentionType* attn;
-
- g_return_val_if_fail(account != NULL, NULL);
-
- protocol = purple_account_get_protocol(account);
-
- /* Lookup the attention type in the protocol's attention_types list, if any. */
- if (PURPLE_IS_PROTOCOL_ATTENTION(protocol)) {
- GList *attention_types;
-
- attention_types = purple_protocol_attention_get_types(
- PURPLE_PROTOCOL_ATTENTION(protocol), account);
- attn = (PurpleAttentionType *)g_list_nth_data(attention_types, type_code);
- } else {
- attn = NULL;
- }
-
- return attn;
-}
-
-
/*
* Move a buddy from one group to another on server.
*
diff --git a/libpurple/tests/meson.build b/libpurple/tests/meson.build
--- a/libpurple/tests/meson.build
+++ b/libpurple/tests/meson.build
@@ -1,6 +1,5 @@
PROGS = [
'account_option',
- 'attention_type',
'circular_buffer',
'credential_manager',
'credential_provider',
@@ -10,7 +9,6 @@
'keyvaluepair',
'markup',
'protocol_action',
- 'protocol_attention',
'protocol_xfer',
'queued_output_stream',
'trie',
diff --git a/libpurple/tests/test_attention_type.c b/libpurple/tests/test_attention_type.c
deleted file mode 100644
--- a/libpurple/tests/test_attention_type.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * purple
- * Copyright (C) Pidgin Developers
- *
- * Purple is the legal property of its developers, whose names are too numerous
- * to list here. Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see .
- */
-
-#include
-#include
-
-#include
-
-/******************************************************************************
- * Tests
- *****************************************************************************/
-static void
-test_purple_attention_type_new(void) {
- PurpleAttentionType *type = NULL;
-
- type = purple_attention_type_new("id", "name", "incoming", "outgoing");
-
- /* check the values new sets */
- g_assert_cmpstr(purple_attention_type_get_unlocalized_name(type), ==, "id");
- g_assert_cmpstr(purple_attention_type_get_name(type), ==, "name");
- g_assert_cmpstr(purple_attention_type_get_incoming_desc(type), ==, "incoming");
- g_assert_cmpstr(purple_attention_type_get_outgoing_desc(type), ==, "outgoing");
-
- /* check that default values are correct */
- g_assert_cmpstr(purple_attention_type_get_icon_name(type), ==, NULL);
-
- g_free(type);
-}
-
-static void
-test_purple_attention_type_copy(void) {
- PurpleAttentionType *type1 = NULL, *type2 = NULL;
-
- type1 = purple_attention_type_new("id", "name", "incoming", "outgoing");
-
- type2 = purple_attention_type_copy(type1);
-
- /* check the values new sets */
- g_assert_cmpstr(purple_attention_type_get_unlocalized_name(type2), ==, "id");
- g_assert_cmpstr(purple_attention_type_get_name(type2), ==, "name");
- g_assert_cmpstr(purple_attention_type_get_incoming_desc(type2), ==, "incoming");
- g_assert_cmpstr(purple_attention_type_get_outgoing_desc(type2), ==, "outgoing");
-
- /* check that default values are correct */
- g_assert_cmpstr(purple_attention_type_get_icon_name(type2), ==, NULL);
-
- g_free(type1);
- g_free(type2);
-}
-
-static void
-test_purple_attention_type_set_unlocalized_name(void) {
- PurpleAttentionType *type = NULL;
-
- type = purple_attention_type_new("id", "name", "incoming", "outgoing");
-
- purple_attention_type_set_unlocalized_name(type, "this-is-my-id");
- g_assert_cmpstr(purple_attention_type_get_unlocalized_name(type), ==, "this-is-my-id");
-
- g_free(type);
-}
-
-static void
-test_purple_attention_type_set_name(void) {
- PurpleAttentionType *type = NULL;
-
- type = purple_attention_type_new("id", "name", "incoming", "outgoing");
-
- purple_attention_type_set_name(type, "this-is-my-name");
- g_assert_cmpstr(purple_attention_type_get_name(type), ==, "this-is-my-name");
-
- g_free(type);
-}
-
-static void
-test_purple_attention_type_set_incoming_desc(void) {
- PurpleAttentionType *type = NULL;
-
- type = purple_attention_type_new("id", "name", "incoming", "outgoing");
-
- purple_attention_type_set_incoming_desc(type, "this-is-my-incoming-desc");
- g_assert_cmpstr(purple_attention_type_get_incoming_desc(type), ==, "this-is-my-incoming-desc");
-
- g_free(type);
-}
-
-static void
-test_purple_attention_type_set_outgoing_desc(void) {
- PurpleAttentionType *type = NULL;
-
- type = purple_attention_type_new("id", "name", "incoming", "outgoing");
-
- purple_attention_type_set_outgoing_desc(type, "this-is-my-outgoing-desc");
- g_assert_cmpstr(purple_attention_type_get_outgoing_desc(type), ==, "this-is-my-outgoing-desc");
-
- g_free(type);
-}
-
-static void
-test_purple_attention_type_set_icon_name(void) {
- PurpleAttentionType *type = NULL;
-
- type = purple_attention_type_new("id", "name", "incoming", "outgoing");
-
- purple_attention_type_set_icon_name(type, "this-is-my-icon-name");
- g_assert_cmpstr(purple_attention_type_get_icon_name(type), ==, "this-is-my-icon-name");
-
- g_free(type);
-}
-
-/******************************************************************************
- * Main
- *****************************************************************************/
-gint
-main(gint argc, gchar **argv) {
- gint res = 0;
-
- g_test_init(&argc, &argv, NULL);
-
- g_test_set_nonfatal_assertions();
-
- g_test_add_func(
- "/attention-type/new",
- test_purple_attention_type_new
- );
-
- g_test_add_func(
- "/attention-type/copy",
- test_purple_attention_type_copy
- );
-
- g_test_add_func(
- "/attention-type/set-unlocalized-name",
- test_purple_attention_type_set_unlocalized_name
- );
-
- g_test_add_func(
- "/attention-type/set-name",
- test_purple_attention_type_set_name
- );
-
- g_test_add_func(
- "/attention-type/set-incoming-desc",
- test_purple_attention_type_set_incoming_desc
- );
-
- g_test_add_func(
- "/attention-type/set-outgoing-desc",
- test_purple_attention_type_set_outgoing_desc
- );
-
- g_test_add_func(
- "/attention-type/set-icon-name",
- test_purple_attention_type_set_icon_name
- );
-
- res = g_test_run();
-
- return res;
-}
diff --git a/libpurple/tests/test_protocol_attention.c b/libpurple/tests/test_protocol_attention.c
deleted file mode 100644
--- a/libpurple/tests/test_protocol_attention.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * purple
- * Copyright (C) Pidgin Developers
- *
- * Purple is the legal property of its developers, whose names are too numerous
- * to list here. Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see .
- */
-
-#include
-#include
-
-#include
-
-#include "test_ui.h"
-
-/******************************************************************************
- * PurpleProtcolAttention Implementations
- *****************************************************************************/
-static GType test_purple_protocol_attention_get_type(void);
-
-typedef struct {
- PurpleProtocol parent;
-
- gboolean send_called;
-} TestPurpleProtocolAttention;
-
-typedef struct {
- PurpleProtocolClass parent;
-} TestPurpleProtocolAttentionClass;
-
-
-static gboolean
-test_purple_protocol_attention_send(PurpleProtocolAttention *attn, PurpleConnection *c, const gchar *username, guint type) {
- TestPurpleProtocolAttention *test_attn = (TestPurpleProtocolAttention *)attn;
-
- test_attn->send_called = TRUE;
-
- return TRUE;
-}
-
-static GList *
-test_purple_protocol_attention_get_types(PurpleProtocolAttention *attn, PurpleAccount *acct) {
- GList *types = NULL;
-
- types = g_list_append(types, purple_attention_type_new("id", "name", "incoming", "outgoing"));
-
- return types;
-}
-
-static void
-test_purple_protocol_attention_iface_init(PurpleProtocolAttentionInterface *iface) {
- iface->send_attention = test_purple_protocol_attention_send;
- iface->get_types = test_purple_protocol_attention_get_types;
-}
-
-G_DEFINE_TYPE_WITH_CODE(
- TestPurpleProtocolAttention,
- test_purple_protocol_attention,
- PURPLE_TYPE_PROTOCOL,
- G_IMPLEMENT_INTERFACE(
- PURPLE_TYPE_PROTOCOL_ATTENTION,
- test_purple_protocol_attention_iface_init
- )
-);
-
-static void
-test_purple_protocol_attention_init(TestPurpleProtocolAttention *prplattn) {
-}
-
-static void
-test_purple_protocol_attention_class_init(TestPurpleProtocolAttentionClass *klass) {
-}
-
-static TestPurpleProtocolAttention *
-test_purple_protocol_attention_new(void) {
- return (TestPurpleProtocolAttention *)g_object_new(
- test_purple_protocol_attention_get_type(),
- "id", "prpl-attention",
- NULL);
-}
-
-/******************************************************************************
- * Tests
- *****************************************************************************/
-static void
-test_purple_protocol_attention_can_send(void) {
- TestPurpleProtocolAttention *attn = test_purple_protocol_attention_new();
- PurpleAccount *a = purple_account_new("prpl-attn-can-send", "prpl-attn");
- PurpleConnection *c = g_object_new(PURPLE_TYPE_CONNECTION, "account", a, NULL);
- gboolean actual = FALSE;
-
- attn->send_called = FALSE;
- actual = purple_protocol_attention_send_attention(PURPLE_PROTOCOL_ATTENTION(attn), c, "someguy", 0);
- g_assert_true(actual);
-
- g_assert_true(attn->send_called);
-}
-
-static void
-test_purple_protocol_attention_can_get_types(void) {
- TestPurpleProtocolAttention *attn = g_object_new(test_purple_protocol_attention_get_type(), NULL);
- PurpleAccount *a = purple_account_new("prpl-attn-can-get-types", "prpl-attn");
- GList *types = NULL;
- PurpleAttentionType *type = NULL;
-
- types = purple_protocol_attention_get_types(PURPLE_PROTOCOL_ATTENTION(attn), a);
- g_assert_true(g_list_length(types) == 1);
-
- /* take the first item and cast it into type */
- type = (PurpleAttentionType *)(types->data);
- g_assert(type);
-
- g_assert_cmpstr(purple_attention_type_get_unlocalized_name(type), ==, "id");
- g_assert_cmpstr(purple_attention_type_get_name(type), ==, "name");
- g_assert_cmpstr(purple_attention_type_get_incoming_desc(type), ==, "incoming");
- g_assert_cmpstr(purple_attention_type_get_outgoing_desc(type), ==, "outgoing");
-}
-
-/******************************************************************************
- * Main
- *****************************************************************************/
-gint
-main(gint argc, gchar **argv) {
- gint res = 0;
-
- g_test_init(&argc, &argv, NULL);
-
- g_test_set_nonfatal_assertions();
-
- test_ui_purple_init();
-
- g_test_add_func(
- "/protocol-attention/send",
- test_purple_protocol_attention_can_send
- );
-
- g_test_add_func(
- "/protocol-attention/get-types",
- test_purple_protocol_attention_can_get_types
- );
-
- res = g_test_run();
-
- return res;
-}
diff --git a/pidgin/gtkconv.c b/pidgin/gtkconv.c
--- a/pidgin/gtkconv.c
+++ b/pidgin/gtkconv.c
@@ -604,23 +604,6 @@
}
static void
-menu_get_attention_cb(GObject *obj, gpointer data)
-{
- PidginConvWindow *win = data;
- PurpleConversation *conv = pidgin_conv_window_get_active_conversation(win);
-
- if (PURPLE_IS_IM_CONVERSATION(conv)) {
- int index;
- if ((GtkAction *)obj == win->menu->get_attention)
- index = 0;
- else
- index = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(obj), "index"));
- purple_protocol_send_attention(purple_conversation_get_connection(conv),
- purple_conversation_get_name(conv), index);
- }
-}
-
-static void
menu_alias_cb(GtkAction *action, gpointer data)
{
PidginConvWindow *win = data;
@@ -1563,7 +1546,6 @@
#endif
{ "SendFile", NULL, N_("Se_nd File..."), NULL, NULL, G_CALLBACK(menu_send_file_cb) },
- { "GetAttention", NULL, N_("Get _Attention"), NULL, NULL, G_CALLBACK(menu_get_attention_cb) },
{ "GetInfo", NULL, N_("_Get Info"), "O", NULL, G_CALLBACK(menu_get_info_cb) },
{ "Invite", NULL, N_("In_vite..."), NULL, NULL, G_CALLBACK(menu_invite_cb) },
{ "MoreMenu", NULL, N_("M_ore"), NULL, NULL, NULL },
@@ -1591,7 +1573,6 @@
""
#endif
""
- ""
""
""
""
@@ -1688,10 +1669,6 @@
gtk_ui_manager_get_action(win->menu->ui,
"/Conversation/ConversationMenu/SendFile");
- win->menu->get_attention =
- gtk_ui_manager_get_action(win->menu->ui,
- "/Conversation/ConversationMenu/GetAttention");
-
/* --- */
win->menu->get_info =
@@ -2968,7 +2945,6 @@
/* Deal with menu items */
gtk_action_set_visible(win->menu->view_log, TRUE);
gtk_action_set_visible(win->menu->send_file, TRUE);
- gtk_action_set_visible(win->menu->get_attention, TRUE);
gtk_action_set_visible(win->menu->get_info, TRUE);
gtk_action_set_visible(win->menu->invite, FALSE);
gtk_action_set_visible(win->menu->alias, TRUE);
@@ -2996,7 +2972,6 @@
/* Deal with menu items */
gtk_action_set_visible(win->menu->view_log, TRUE);
gtk_action_set_visible(win->menu->send_file, FALSE);
- gtk_action_set_visible(win->menu->get_attention, FALSE);
gtk_action_set_visible(win->menu->get_info, FALSE);
gtk_action_set_visible(win->menu->invite, TRUE);
gtk_action_set_visible(win->menu->alias, TRUE);
@@ -3049,7 +3024,6 @@
gtk_action_set_sensitive(win->menu->add, (PURPLE_PROTOCOL_IMPLEMENTS(protocol, SERVER, add_buddy)));
gtk_action_set_sensitive(win->menu->remove, (PURPLE_PROTOCOL_IMPLEMENTS(protocol, SERVER, remove_buddy)));
gtk_action_set_sensitive(win->menu->send_file, can_send_file);
- gtk_action_set_sensitive(win->menu->get_attention, (PURPLE_IS_PROTOCOL_ATTENTION(protocol)));
gtk_action_set_sensitive(win->menu->alias,
(account != NULL) &&
(purple_blist_find_buddy(account, purple_conversation_get_name(conv)) != NULL));
@@ -3070,7 +3044,6 @@
/* Then deal with menu items */
gtk_action_set_sensitive(win->menu->view_log, TRUE);
gtk_action_set_sensitive(win->menu->send_file, FALSE);
- gtk_action_set_sensitive(win->menu->get_attention, FALSE);
gtk_action_set_sensitive(win->menu->get_info, FALSE);
gtk_action_set_sensitive(win->menu->invite, FALSE);
gtk_action_set_sensitive(win->menu->alias, FALSE);
diff --git a/pidgin/resources/Conversations/menu.ui b/pidgin/resources/Conversations/menu.ui
--- a/pidgin/resources/Conversations/menu.ui
+++ b/pidgin/resources/Conversations/menu.ui
@@ -80,10 +80,6 @@
win.send-file
-
- Get _Attention
- win.get-attention
-
- -
_Get Info
win.clear-history
<Primary>O
diff --git a/po/POTFILES.in b/po/POTFILES.in
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -233,7 +233,6 @@
libpurple/purpleaccountpresence.c
libpurple/purpleaccountusersplit.c
libpurple/purpleattachment.c
-libpurple/purpleattentiontype.c
libpurple/purplebuddypresence.c
libpurple/purplechatconversation.c
libpurple/purplechatuser.c
@@ -255,7 +254,6 @@
libpurple/purplepresence.c
libpurple/purpleplugininfo.c
libpurple/purpleprotocol.c
-libpurple/purpleprotocolattention.c
libpurple/purpleprotocolchat.c
libpurple/purpleprotocolclient.c
libpurple/purpleprotocolfactory.c
@@ -280,7 +278,6 @@
libpurple/status.c
libpurple/stun.c
libpurple/tests/test_account_option.c
-libpurple/tests/test_attention_type.c
libpurple/tests/test_circular_buffer.c
libpurple/tests/test_credential_manager.c
libpurple/tests/test_credential_provider.c
@@ -288,7 +285,6 @@
libpurple/tests/test_keyvaluepair.c
libpurple/tests/test_markup.c
libpurple/tests/test_protocol_action.c
-libpurple/tests/test_protocol_attention.c
libpurple/tests/test_protocol_xfer.c
libpurple/tests/test_queued_output_stream.c
libpurple/tests/test_trie.c