/soc/2013/ankitkv/gobjectification: 78f27f38b9ad: Refactored gg ...
Ankit Vani
a at nevitus.org
Sun Aug 11 15:21:40 EDT 2013
Changeset: 78f27f38b9ad654e7767b849b375ab151d60234c
Author: Ankit Vani <a at nevitus.org>
Date: 2013-08-12 00:17 +0530
Branch: soc.2013.gobjectification.plugins
URL: https://hg.pidgin.im/soc/2013/ankitkv/gobjectification/rev/78f27f38b9ad
Description:
Refactored gg to use the new plugin API
diffstat:
libpurple/protocols/gg/gg.c | 117 +++++++++++++++++++------------------------
1 files changed, 51 insertions(+), 66 deletions(-)
diffs (225 lines):
diff --git a/libpurple/protocols/gg/gg.c b/libpurple/protocols/gg/gg.c
--- a/libpurple/protocols/gg/gg.c
+++ b/libpurple/protocols/gg/gg.c
@@ -146,10 +146,10 @@ static void ggp_callback_buddylist_load_
/*
*/
-/* static void ggp_action_buddylist_save(PurplePluginAction *action) {{{ */
-static void ggp_action_buddylist_save(PurplePluginAction *action)
+/* static void ggp_action_buddylist_save(PurpleProtocolAction *action) {{{ */
+static void ggp_action_buddylist_save(PurpleProtocolAction *action)
{
- PurpleConnection *gc = (PurpleConnection *)action->context;
+ PurpleConnection *gc = action->connection;
purple_request_file(action, _("Save buddylist..."), NULL, TRUE,
G_CALLBACK(ggp_callback_buddylist_save_ok), NULL,
@@ -157,9 +157,9 @@ static void ggp_action_buddylist_save(Pu
gc);
}
-static void ggp_action_buddylist_load(PurplePluginAction *action)
+static void ggp_action_buddylist_load(PurpleProtocolAction *action)
{
- PurpleConnection *gc = (PurpleConnection *)action->context;
+ PurpleConnection *gc = action->connection;
purple_request_file(action, _("Load buddylist from file..."), NULL,
FALSE,
@@ -1288,56 +1288,56 @@ static void ggp_keepalive(PurpleConnecti
}
}
-static void ggp_action_chpass(PurplePluginAction *action)
+static void ggp_action_chpass(PurpleProtocolAction *action)
{
- ggp_account_chpass((PurpleConnection *)action->context);
+ ggp_account_chpass(action->connection);
}
-static void ggp_action_status_broadcasting(PurplePluginAction *action)
+static void ggp_action_status_broadcasting(PurpleProtocolAction *action)
{
- ggp_status_broadcasting_dialog((PurpleConnection *)action->context);
+ ggp_status_broadcasting_dialog(action->connection);
}
-static void ggp_action_search(PurplePluginAction *action)
+static void ggp_action_search(PurpleProtocolAction *action)
{
- ggp_pubdir_search((PurpleConnection *)action->context, NULL);
+ ggp_pubdir_search(action->connection, NULL);
}
-static void ggp_action_set_info(PurplePluginAction *action)
+static void ggp_action_set_info(PurpleProtocolAction *action)
{
- ggp_pubdir_set_info((PurpleConnection *)action->context);
+ ggp_pubdir_set_info(action->connection);
}
-static GList *ggp_actions(PurplePlugin *plugin, gpointer context)
+static GList *ggp_get_actions(PurpleConnection *gc)
{
GList *m = NULL;
- PurplePluginAction *act;
+ PurpleProtocolAction *act;
- act = purple_plugin_action_new(_("Change password..."),
+ act = purple_protocol_action_new(_("Change password..."),
ggp_action_chpass);
m = g_list_append(m, act);
- act = purple_plugin_action_new(_("Show status only for buddies"),
+ act = purple_protocol_action_new(_("Show status only for buddies"),
ggp_action_status_broadcasting);
m = g_list_append(m, act);
m = g_list_append(m, NULL);
- act = purple_plugin_action_new(_("Find buddies..."),
+ act = purple_protocol_action_new(_("Find buddies..."),
ggp_action_search);
m = g_list_append(m, act);
- act = purple_plugin_action_new(_("Set User Info"),
+ act = purple_protocol_action_new(_("Set User Info"),
ggp_action_set_info);
m = g_list_append(m, act);
m = g_list_append(m, NULL);
- act = purple_plugin_action_new(_("Save buddylist to file..."),
+ act = purple_protocol_action_new(_("Save buddylist to file..."),
ggp_action_buddylist_save);
m = g_list_append(m, act);
- act = purple_plugin_action_new(_("Load buddylist from file..."),
+ act = purple_protocol_action_new(_("Load buddylist from file..."),
ggp_action_buddylist_load);
m = g_list_append(m, act);
@@ -1369,11 +1369,14 @@ static GHashTable * ggp_get_account_text
static PurplePluginProtocolInfo prpl_info =
{
+ "prpl-gg", /* id */
+ "Gadu-Gadu", /* name */
sizeof(PurplePluginProtocolInfo), /* struct_size */
OPT_PROTO_REGISTER_NOSCREENNAME | OPT_PROTO_IM_IMAGE,
NULL, /* user_splits */
NULL, /* protocol_options */
{"png", 1, 1, 200, 200, 0, PURPLE_ICON_SCALE_DISPLAY | PURPLE_ICON_SCALE_SEND}, /* icon_spec */
+ ggp_get_actions, /* get_actions */
ggp_list_icon, /* list_icon */
ggp_list_emblem, /* list_emblem */
ggp_status_buddy_text, /* status_text */
@@ -1442,44 +1445,6 @@ static PurplePluginProtocolInfo prpl_inf
NULL /* get_public_alias */
};
-static gboolean ggp_load(PurplePlugin *plugin);
-static gboolean ggp_unload(PurplePlugin *plugin);
-
-static PurplePluginInfo info = {
- PURPLE_PLUGIN_MAGIC, /* magic */
- PURPLE_MAJOR_VERSION, /* major_version */
- PURPLE_MINOR_VERSION, /* minor_version */
- PURPLE_PLUGIN_PROTOCOL, /* plugin type */
- NULL, /* ui_requirement */
- 0, /* flags */
- NULL, /* dependencies */
- PURPLE_PRIORITY_DEFAULT, /* priority */
-
- "prpl-gg", /* id */
- "Gadu-Gadu", /* name */
- DISPLAY_VERSION, /* version */
-
- N_("Gadu-Gadu Protocol Plugin"), /* summary */
- N_("Polish popular IM"), /* description */
- "boler at sourceforge.net", /* author */
- PURPLE_WEBSITE, /* homepage */
-
- ggp_load, /* load */
- ggp_unload, /* unload */
- NULL, /* destroy */
-
- NULL, /* ui_info */
- &prpl_info, /* extra_info */
- NULL, /* prefs_info */
- ggp_actions, /* actions */
-
- /* padding */
- NULL,
- NULL,
- NULL,
- NULL
-};
-
static void purple_gg_debug_handler(int level, const char * format, va_list args) {
PurpleDebugLevel purple_level;
char *msg = g_strdup_vprintf(format, args);
@@ -1503,9 +1468,27 @@ static void purple_gg_debug_handler(int
g_free(msg);
}
+static PurplePluginInfo *
+plugin_query(GError **error)
+{
+ return purple_plugin_info_new(
+ "id", "prpl-gg",
+ "name", "Gadu-Gadu",
+ "version", DISPLAY_VERSION,
+ "category", N_("Protocol"),
+ "summary", N_("Gadu-Gadu Protocol Plugin"),
+ "description", N_("Polish popular IM"),
+ "author", "boler at sourceforge.net",
+ "website", PURPLE_WEBSITE,
+ "abi-version", PURPLE_ABI_VERSION,
+ NULL
+ );
+}
+
static PurpleAccountOption *ggp_server_option;
-static void init_plugin(PurplePlugin *plugin)
+static gboolean
+plugin_load(PurplePlugin *plugin, GError **error)
{
PurpleAccountOption *option;
GList *encryption_options = NULL;
@@ -1541,25 +1524,27 @@ static void init_plugin(PurplePlugin *pl
option);
gg_debug_handler = purple_gg_debug_handler;
-}
-static gboolean ggp_load(PurplePlugin *plugin)
-{
purple_debug_info("gg", "Loading Gadu-Gadu protocol plugin with "
"libgadu %s...\n", gg_libgadu_version());
ggp_resolver_purple_setup();
ggp_servconn_setup(ggp_server_option);
-
+
+ purple_protocols_add(&prpl_info);
+
return TRUE;
}
-static gboolean ggp_unload(PurplePlugin *plugin)
+static gboolean
+plugin_unload(PurplePlugin *plugin, GError **error)
{
ggp_servconn_cleanup();
+ purple_protocols_remove(&prpl_info);
+
return TRUE;
}
-PURPLE_INIT_PLUGIN(gg, init_plugin, info);
+PURPLE_PLUGIN_INIT(gg, plugin_query, plugin_load, plugin_unload);
/* vim: set ts=8 sts=0 sw=8 noet: */
More information about the Commits
mailing list