im.pidgin.pidgin: 063380b44248adf1293739dd31c99eb79d2cea8d
rekkanoryo at pidgin.im
rekkanoryo at pidgin.im
Sun Jan 13 18:00:39 EST 2008
-----------------------------------------------------------------
Revision: 063380b44248adf1293739dd31c99eb79d2cea8d
Ancestor: 734951f1f407b93dffd9033034527d9fe8f3fc24
Author: rekkanoryo at pidgin.im
Date: 2008-01-13T22:44:01
Branch: im.pidgin.pidgin
Modified files:
libpurple/protocols/jabber/jabber.c
libpurple/protocols/msn/msn.c
libpurple/protocols/msnp9/msn.c
libpurple/protocols/myspace/myspace.h
libpurple/protocols/myspace/zap.c
libpurple/protocols/yahoo/yahoo.c libpurple/prpl.c
libpurple/prpl.h
ChangeLog:
This adds accessor and mutator API for the PurpleAttentionType struct.
I also took the liberty of updating all the prpls that use PurpleAttentionType
to use this new API.
-------------- next part --------------
============================================================
--- libpurple/protocols/jabber/jabber.c 60386b3899753cfe5a0290f7f91453b935ac0db5
+++ libpurple/protocols/jabber/jabber.c d3e6608f911b2932fed29470935404cf5e007819
@@ -2301,14 +2301,10 @@ GList *jabber_attention_types(PurpleAcco
GList *jabber_attention_types(PurpleAccount *account)
{
static GList *types = NULL;
- PurpleAttentionType *attn;
if (!types) {
- attn = g_new0(PurpleAttentionType, 1);
- attn->name = _("Buzz");
- attn->incoming_description = _("%s has buzzed you!");
- attn->outgoing_description = _("Buzzing %s...");
- types = g_list_append(types, attn);
+ types = g_list_append(types, purple_attention_type_new("Buzz", _("Buzz"),
+ _("%s has buzzed you!"), _("Buzzing %s...")));
}
return types;
============================================================
--- libpurple/protocols/msn/msn.c 0cd770aff69ebbc807f60ad0962a08b87afd48fa
+++ libpurple/protocols/msn/msn.c 9c2f0d448e304912e09d35ab72a969446f298815
@@ -126,11 +126,8 @@ msn_attention_types(PurpleAccount *accou
static GList *list = NULL;
if (!list) {
- attn = g_new0(PurpleAttentionType, 1);
- attn->name = _("Nudge");
- attn->incoming_description = _("%s has nudged you!");
- attn->outgoing_description = _("Nudging %s...");
- list = g_list_append(list, attn);
+ list = g_list_append(list, purple_attention_type_new("Nudge", _("Nudge"),
+ _("%s has nudged you!"), _("Nudging %s...")));
}
return list;
============================================================
--- libpurple/protocols/msnp9/msn.c 9ce07254a336e843ef7ce2a7139995a99feabb0d
+++ libpurple/protocols/msnp9/msn.c 4d73f585be43706e79c80a3b343ab9a9f3235f52
@@ -122,15 +122,11 @@ msn_attention_types(PurpleAccount *accou
static GList *
msn_attention_types(PurpleAccount *account)
{
- PurpleAttentionType *attn;
static GList *list = NULL;
if (!list) {
- attn = g_new0(PurpleAttentionType, 1);
- attn->name = _("Nudge");
- attn->incoming_description = _("%s has nudged you!");
- attn->outgoing_description = _("Nudging %s...");
- list = g_list_append(list, attn);
+ list = g_list_append(list, purple_attention_type_new("Nudge", _("Nudge"),
+ _("%s has nudged you!"), _("Nudging %s...")));
}
return list;
============================================================
--- libpurple/protocols/myspace/myspace.h 3ff7642b4fa1325f420abb169ac45be9d51bdef5
+++ libpurple/protocols/myspace/myspace.h 465b856a7a1dcbe133d6182d53ce8b04fc851cb3
@@ -180,8 +180,6 @@
#define MSIM_CONTACT_LIST_IMPORT_ALL_FRIENDS 1
#define MSIM_CONTACT_LIST_IMPORT_TOP_FRIENDS 2
-#define MsimAttentionType PurpleAttentionType
-
/* Functions */
gboolean msim_load(PurplePlugin *plugin);
GList *msim_status_types(PurpleAccount *acct);
============================================================
--- libpurple/protocols/myspace/zap.c 0423ca22b256cd253e196dd9c82ab2232960b578
+++ libpurple/protocols/myspace/zap.c 1387248065b45d0c165c387238348c6e444bcaa9
@@ -29,15 +29,12 @@ msim_attention_types(PurpleAccount *acct
msim_attention_types(PurpleAccount *acct)
{
static GList *types = NULL;
- MsimAttentionType* attn;
+ PurpleAttentionType* attn;
if (!types) {
-#define _MSIM_ADD_NEW_ATTENTION(icn, nme, incoming, outgoing) \
- attn = g_new0(MsimAttentionType, 1); \
- attn->icon_name = icn; \
- attn->name = nme; \
- attn->incoming_description = incoming; \
- attn->outgoing_description = outgoing; \
+#define _MSIM_ADD_NEW_ATTENTION(icn, ulname, nme, incoming, outgoing) \
+ attn = purple_attention_type_new(ulname, nme, incoming, outgoing); \
+ purple_attention_type_set_icon_name(attn, icn); \
types = g_list_append(types, attn);
/* TODO: icons for each zap */
@@ -48,37 +45,46 @@ msim_attention_types(PurpleAccount *acct
* projectile or weapon." This term often has an electrical
* connotation, for example, "he was zapped by electricity when
* he put a fork in the toaster." */
- _MSIM_ADD_NEW_ATTENTION(NULL, _("Zap"), _("%s has zapped you!"), _("Zapping %s..."));
+ _MSIM_ADD_NEW_ATTENTION(NULL, "Zap", _("Zap"), _("%s has zapped you!"),
+ _("Zapping %s..."));
/* Whack means "to hit or strike someone with a sharp blow" */
- _MSIM_ADD_NEW_ATTENTION(NULL, _("Whack"), _("%s has whacked you!"), _("Whacking %s..."));
+ _MSIM_ADD_NEW_ATTENTION(NULL, "Whack", _("Whack"),
+ _("%s has whacked you!"), _("Whacking %s..."));
/* Torch means "to set on fire." Don't worry, this doesn't
* make a whole lot of sense in English, either. Feel free
* to translate it literally. */
- _MSIM_ADD_NEW_ATTENTION(NULL, _("Torch"), _("%s has torched you!"), _("Torching %s..."));
+ _MSIM_ADD_NEW_ATTENTION(NULL, "Torch", _("Torch"),
+ _("%s has torched you!"), _("Torching %s..."));
/* Smooch means "to kiss someone, often enthusiastically" */
- _MSIM_ADD_NEW_ATTENTION(NULL, _("Smooch"), _("%s has smooched you!"), _("Smooching %s..."));
+ _MSIM_ADD_NEW_ATTENTION(NULL, "Smooch", _("Smooch"),
+ _("%s has smooched you!"), _("Smooching %s..."));
/* A hug is a display of affection; wrapping your arms around someone */
- _MSIM_ADD_NEW_ATTENTION(NULL, _("Hug"), _("%s has hugged you!"), _("Hugging %s..."));
+ _MSIM_ADD_NEW_ATTENTION(NULL, "Hug", _("Hug"), _("%s has hugged you!"),
+ _("Hugging %s..."));
/* Slap means "to hit someone with an open/flat hand" */
- _MSIM_ADD_NEW_ATTENTION(NULL, _("Slap"), _("%s has slapped you!"), _("Slapping %s..."));
+ _MSIM_ADD_NEW_ATTENTION(NULL, "Slap", _("Slap"),
+ _("%s has slapped you!"), _("Slapping %s..."));
/* Goose means "to pinch someone on their butt" */
- _MSIM_ADD_NEW_ATTENTION(NULL, _("Goose"), _("%s has goosed you!"), _("Goosing %s..."));
+ _MSIM_ADD_NEW_ATTENTION(NULL, "Goose", _("Goose"),
+ _("%s has goosed you!"), _("Goosing %s..."));
/* A high-five is when two people's hands slap each other
* in the air above their heads. It is done to celebrate
* something, often a victory, or to congratulate someone. */
- _MSIM_ADD_NEW_ATTENTION(NULL, _("High-five"), _("%s has high-fived you!"), _("High-fiving %s..."));
+ _MSIM_ADD_NEW_ATTENTION(NULL, "High-five", _("High-five"),
+ _("%s has high-fived you!"), _("High-fiving %s..."));
/* We're not entirely sure what the MySpace people mean by
* this... but we think it's the equivalent of "prank." Or, for
* someone to perform a mischievous trick or practical joke. */
- _MSIM_ADD_NEW_ATTENTION(NULL, _("Punk"), _("%s has punk'd you!"), _("Punking %s..."));
+ _MSIM_ADD_NEW_ATTENTION(NULL, "Punk", _("Punk"),
+ _("%s has punk'd you!"), _("Punking %s..."));
/* Raspberry is a slang term for the vibrating sound made
* when you stick your tongue out of your mouth with your
@@ -87,7 +93,8 @@ msim_attention_types(PurpleAccount *acct
* gesture, so it does not carry a harsh negative
* connotation. It is generally used in a playful tone
* with friends. */
- _MSIM_ADD_NEW_ATTENTION(NULL, _("Raspberry"), _("%s has raspberried you!"), _("Raspberrying %s..."));
+ _MSIM_ADD_NEW_ATTENTION(NULL, "Raspberry", _("Raspberry"),
+ _("%s has raspberried you!"), _("Raspberrying %s..."));
}
return types;
@@ -99,14 +106,14 @@ msim_send_attention(PurpleConnection *gc
{
GList *types;
MsimSession *session;
- MsimAttentionType *attn;
+ PurpleAttentionType *attn;
PurpleBuddy *buddy;
session = (MsimSession *)gc->proto_data;
/* Look for this attention type, by the code index given. */
types = msim_attention_types(gc->account);
- attn = (MsimAttentionType *)g_list_nth_data(types, code);
+ attn = (PurpleAttentionType *)g_list_nth_data(types, code);
if (!attn) {
purple_debug_info("msim_send_attention", "got invalid zap code %d\n", code);
@@ -200,12 +207,12 @@ msim_blist_node_menu(PurpleBlistNode *no
i = 0;
do
{
- MsimAttentionType *attn;
+ PurpleAttentionType *attn;
- attn = (MsimAttentionType *)types->data;
+ attn = (PurpleAttentionType *)types->data;
- act = purple_menu_action_new(attn->name, PURPLE_CALLBACK(msim_send_zap_from_menu),
- GUINT_TO_POINTER(i), NULL);
+ act = purple_menu_action_new(purple_attention_type_get_name(attn),
+ PURPLE_CALLBACK(msim_send_zap_from_menu), GUINT_TO_POINTER(i), NULL);
zap_menu = g_list_append(zap_menu, act);
++i;
============================================================
--- libpurple/protocols/yahoo/yahoo.c d41adce8d72ac3ff318517ec51bb88fdb653513b
+++ libpurple/protocols/yahoo/yahoo.c 839c14fedd61f40c26a89ae8a1a0f119b4a5cfca
@@ -4165,17 +4165,13 @@ GList *yahoo_attention_types(PurpleAccou
GList *yahoo_attention_types(PurpleAccount *account)
{
- PurpleAttentionType *attn;
static GList *list = NULL;
if (!list) {
/* Yahoo only supports one attention command: the 'buzz'. */
/* This is index number YAHOO_BUZZ. */
- attn = g_new0(PurpleAttentionType, 1);
- attn->name = _("Buzz");
- attn->incoming_description = _("%s has buzzed you!");
- attn->outgoing_description = _("Buzzing %s...");
- list = g_list_append(list, attn);
+ list = g_list_append(list, purple_attention_type_new("Buzz", _("Buzz"),
+ _("%s has buzzed you!"), _("Buzzing %s...")));
}
return list;
============================================================
--- libpurple/prpl.c 0949bb9d1629db6a498bb1da3fc532329c2704a0
+++ libpurple/prpl.c c3199f3d8915499e2d7ff833d7a5648e8d4eafdb
@@ -29,6 +29,107 @@
#include "util.h"
/**************************************************************************/
+/** @name Attention Type API */
+/**************************************************************************/
+PurpleAttentionType *
+purple_attention_type_new(const char *ulname, const char *name,
+ const char *inc_desc, const char *out_desc)
+{
+ PurpleAttentionType *attn = g_new0(PurpleAttentionType, 1);
+
+ purple_attention_type_set_name(attn, name);
+ purple_attention_type_set_incoming_desc(attn, inc_desc);
+ purple_attention_type_set_outgoing_desc(attn, out_desc);
+ purple_attention_type_set_unlocalized_name(attn, ulname);
+
+ return attn;
+}
+
+
+void
+purple_attention_type_set_name(PurpleAttentionType *type, const char *name)
+{
+ g_return_if_fail(type != NULL);
+
+ type->name = name;
+}
+
+void
+purple_attention_type_set_incoming_desc(PurpleAttentionType *type, const char *desc)
+{
+ g_return_if_fail(type != NULL);
+
+ type->incoming_description = desc;
+}
+
+void
+purple_attention_type_set_outgoing_desc(PurpleAttentionType *type, const char *desc)
+{
+ g_return_if_fail(type != NULL);
+
+ type->outgoing_description = desc;
+}
+
+void
+purple_attention_type_set_icon_name(PurpleAttentionType *type, const char *name)
+{
+ g_return_if_fail(type != NULL);
+
+ type->icon_name = name;
+}
+
+void
+purple_attention_type_set_unlocalized_name(PurpleAttentionType *type, const char *ulname)
+{
+ g_return_if_fail(type != NULL);
+
+ type->unlocalized_name = ulname;
+}
+
+const char *
+purple_attention_type_get_name(PurpleAttentionType *type)
+{
+ g_return_val_if_fail(type != NULL, NULL);
+
+ return type->name;
+}
+
+const char *
+purple_attention_type_get_incoming_desc(PurpleAttentionType *type)
+{
+ g_return_val_if_fail(type != NULL, NULL);
+
+ return type->incoming_description;
+}
+
+const char *
+purple_attention_type_get_outgoing_desc(PurpleAttentionType *type)
+{
+ g_return_val_if_fail(type != NULL, NULL);
+
+ return type->outgoing_description;
+}
+
+const char *
+purple_attention_type_get_icon_name(PurpleAttentionType *type)
+{
+ g_return_val_if_fail(type != NULL, NULL);
+
+ if(type->icon_name == NULL || *(type->icon_name) == '\0')
+ return NULL;
+
+ return type->icon_name;
+}
+
+const char *
+purple_attention_type_get_unlocalized_name(PurpleAttentionType *type)
+{
+ g_return_val_if_fail(type != NULL, NULL);
+
+ return type->unlocalized_name;
+}
+
+/**************************************************************************/
/** @name Protocol Plugin API */
/**************************************************************************/
void
============================================================
--- libpurple/prpl.h bc8a3086acdf183f2730e972e0499ddcb00d220c
+++ libpurple/prpl.h 3cf1510eb4041ce78682cd7e995816ba1fffa11d
@@ -99,9 +99,9 @@ struct _PurpleAttentionType
const char *incoming_description; /**< Shown when sent */
const char *outgoing_description; /**< Shown when receied */
const char *icon_name; /**< Icon to display (optional) */
+ const char *unlocalized_name; /**< Unlocalized name for UIs needing it */
/* Reserved fields for future purposes */
- gpointer _reserved1;
gpointer _reserved2;
gpointer _reserved3;
gpointer _reserved4;
@@ -412,6 +412,127 @@ extern "C" {
#endif
/**************************************************************************/
+/** @name Attention Type API */
+/**************************************************************************/
+/*@{*/
+
+/**
+ * Creates a new #PurpleAttentionType object and sets its mandatory parameters.
+ *
+ * @param ulname A non-localized string that can be used by UIs in need of such
+ * non-localized strings. This should be the same as @a name,
+ * without localization.
+ * @param name A localized string that the UI may display for the event. This
+ * should be the same string as @a ulname, with localization.
+ * @param inc_desc A localized description shown when the event is received.
+ * @param out_desc A localized description shown when the event is sent.
+ * @return A pointer to the new object.
+ * @since 2.4.0
+ */
+PurpleAttentionType *purple_attention_type_new(const char *ulname, const char *name,
+ const char *inc_desc, const char *out_desc);
+
+/**
+ * Sets the displayed name of the attention-demanding event.
+ *
+ * @param type The attention type.
+ * @param name The localized name that will be displayed by UIs. This should be
+ * the same string given as the unlocalized name, but with
+ * localization.
+ * @since 2.4.0
+ */
+void purple_attention_type_set_name(PurpleAttentionType *type, const char *name);
+
+/**
+ * Sets the description of the attention-demanding event shown in conversations
+ * when the event is received.
+ *
+ * @param type The attention type.
+ * @param desc The localized description for incoming events.
+ * @since 2.4.0
+ */
+void purple_attention_type_set_incoming_desc(PurpleAttentionType *type, const char *desc);
+
+/**
+ * Sets the description of the attention-demanding event shown in conversations
+ * when the event is sent.
+ *
+ * @param type The attention type.
+ * @param desc The localized description for outgoing events.
+ * @since 2.4.0
+ */
+void purple_attention_type_set_outgoing_desc(PurpleAttentionType *type, const char *desc);
+
+/**
+ * Sets the name of the icon to display for the attention event; this is optional.
+ *
+ * @param type The attention type.
+ * @param name The icon's name.
+ * @note Icons are optional for attention events.
+ * @since 2.4.0
+ */
+void purple_attention_type_set_icon_name(PurpleAttentionType *type, const char *name);
+
+/**
+ * Sets the unlocalized name of the attention event; some UIs may need this,
+ * thus it is required.
+ *
+ * @param type The attention type.
+ * @param ulname The unlocalized name. This should be the same string given as
+ * the localized name, but without localization.
+ * @since 2.4.0
+ */
+void purple_attention_type_set_unlocalized_name(PurpleAttentionType *type, const char *ulname);
+
+/**
+ * Get the attention type's name as displayed by the UI.
+ *
+ * @param type The attention type.
+ * @return The name.
+ * @since 2.4.0
+ */
+const char *purple_attention_type_get_name(PurpleAttentionType *type);
+
+/**
+ * Get the attention type's description shown when the event is received.
+ *
+ * @param type The attention type.
+ * @return The description.
+ * @since 2.4.0
+ */
+const char *purple_attention_type_get_incoming_desc(PurpleAttentionType *type);
+
+/**
+ * Get the attention type's description shown when the event is sent.
+ *
+ * @param type The attention type.
+ * @return The description.
+ * @since 2.4.0
+ */
+const char *purple_attention_type_get_outgoing_desc(PurpleAttentionType *type);
+
+/**
+ * Get the attention type's icon name.
+ *
+ * @param type The attention type.
+ * @return The icon name or @c NULL if unset/empty.
+ * @note Icons are optional for attention events.
+ * @since 2.4.0
+ */
+const char *purple_attention_type_get_icon_name(PurpleAttentionType *type);
+
+/**
+ * Get the attention type's unlocalized name; this is useful for some UIs.
+ *
+ * @param type The attention type
+ * @return The unlocalized name.
+ * @since 2.4.0
+ */
+const char *purple_attention_type_get_unlocalized_name(PurpleAttentionType *type);
+
+/*@}*/
+
+/**************************************************************************/
/** @name Protocol Plugin API */
/**************************************************************************/
/*@{*/
More information about the Commits
mailing list