Mon, 05 Aug 2013 00:47:07 +0530
Added properties "finch_preferences_frame" to FinchPluginInfo, "pidgin_config_frame" to PidginPluginInfo
| finch/gntplugin.c | file | annotate | diff | comparison | revisions | |
| libpurple/plugins.c | file | annotate | diff | comparison | revisions | |
| libpurple/plugins.h | file | annotate | diff | comparison | revisions | |
| pidgin/gtkplugin.c | file | annotate | diff | comparison | revisions |
--- a/finch/gntplugin.c Mon Aug 05 00:27:43 2013 +0530 +++ b/finch/gntplugin.c Mon Aug 05 00:47:07 2013 +0530 @@ -50,6 +50,13 @@ FinchPluginFrame get_pref_frame; } FinchPluginInfoPrivate; +enum +{ + PROP_0, + PROP_FINCH_PREFERENCES_FRAME, + PROP_LAST +}; + static struct { GntWidget *tree; @@ -62,10 +69,56 @@ static GntWidget *process_pref_frame(PurplePluginPrefFrame *frame); +/* Set method for GObject properties */ +static void +finch_plugin_info_set_property(GObject *obj, guint param_id, const GValue *value, + GParamSpec *pspec) +{ + FinchPluginInfoPrivate *priv = FINCH_PLUGIN_INFO_GET_PRIVATE(obj); + + switch (param_id) { + case PROP_FINCH_PREFERENCES_FRAME: + priv->get_pref_frame = g_value_get_pointer(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); + break; + } +} + +/* Get method for GObject properties */ +static void +finch_plugin_info_get_property(GObject *obj, guint param_id, GValue *value, + GParamSpec *pspec) +{ + FinchPluginInfoPrivate *priv = FINCH_PLUGIN_INFO_GET_PRIVATE(obj); + + switch (param_id) { + case PROP_FINCH_PREFERENCES_FRAME: + g_value_set_pointer(value, priv->get_pref_frame); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); + break; + } +} + /* Class initializer function */ static void finch_plugin_info_class_init(FinchPluginInfoClass *klass) { + GObjectClass *obj_class = G_OBJECT_CLASS(klass); + g_type_class_add_private(klass, sizeof(FinchPluginInfoPrivate)); + + /* Setup properties */ + obj_class->get_property = finch_plugin_info_get_property; + obj_class->set_property = finch_plugin_info_set_property; + + g_object_class_install_property(obj_class, PROP_FINCH_PREFERENCES_FRAME, + g_param_spec_pointer("finch_preferences_frame", + "Finch preferences frame callback", + "Callback that returns a GNT preferences frame", + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); } GType
--- a/libpurple/plugins.c Mon Aug 05 00:27:43 2013 +0530 +++ b/libpurple/plugins.c Mon Aug 05 00:47:07 2013 +0530 @@ -306,8 +306,7 @@ priv->ui_requirement = g_strdup(g_value_get_string(value)); break; case PROP_PREFERENCES_FRAME: - purple_plugin_info_set_pref_frame_callback(info, - g_value_get_pointer(value)); + priv->get_pref_frame = g_value_get_pointer(value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); @@ -432,7 +431,7 @@ g_param_spec_pointer(PROP_PREFERENCES_FRAME_S, "Preferences frame callback", "The callback that returns the preferences frame", - G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); } /************************************************************************** @@ -633,17 +632,6 @@ #endif } -void -purple_plugin_info_set_pref_frame_callback(PurplePluginInfo *info, - PurplePluginPrefFrameCallback callback) -{ - PurplePluginInfoPrivate *priv = PURPLE_PLUGIN_INFO_GET_PRIVATE(info); - - g_return_if_fail(priv != NULL); - - priv->get_pref_frame = callback; -} - PurplePluginPrefFrameCallback purple_plugin_info_get_pref_frame_callback(const PurplePluginInfo *info) {
--- a/libpurple/plugins.h Mon Aug 05 00:27:43 2013 +0530 +++ b/libpurple/plugins.h Mon Aug 05 00:47:07 2013 +0530 @@ -420,15 +420,6 @@ GSList *purple_plugin_info_get_dependencies(const PurplePluginInfo *info); /** - * Sets a callback to be invoked to retrieve the preferences frame for a plugin. - * - * @param info The plugin info to set the callback for. - * @param callback The callback that returns the preferences frame. - */ -void purple_plugin_info_set_pref_frame_callback(PurplePluginInfo *info, - PurplePluginPrefFrameCallback callback); - -/** * Returns the callback that retrieves the preferences frame for a plugin. * * @param info The plugin info to get the callback from.
--- a/pidgin/gtkplugin.c Mon Aug 05 00:27:43 2013 +0530 +++ b/pidgin/gtkplugin.c Mon Aug 05 00:47:07 2013 +0530 @@ -47,6 +47,13 @@ PidginPluginConfigFrame get_config_frame; } PidginPluginInfoPrivate; +enum +{ + PROP_0, + PROP_PIDGIN_CONFIG_FRAME, + PROP_LAST +}; + static void plugin_toggled_stage_two(PurplePlugin *plug, GtkTreeModel *model, GtkTreeIter *iter, gboolean unload); @@ -64,10 +71,56 @@ static GtkWidget *pref_button = NULL; static GHashTable *plugin_pref_dialogs = NULL; +/* Set method for GObject properties */ +static void +pidgin_plugin_info_set_property(GObject *obj, guint param_id, const GValue *value, + GParamSpec *pspec) +{ + PidginPluginInfoPrivate *priv = PIDGIN_PLUGIN_INFO_GET_PRIVATE(obj); + + switch (param_id) { + case PROP_PIDGIN_CONFIG_FRAME: + priv->get_config_frame = g_value_get_pointer(value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); + break; + } +} + +/* Get method for GObject properties */ +static void +pidgin_plugin_info_get_property(GObject *obj, guint param_id, GValue *value, + GParamSpec *pspec) +{ + PidginPluginInfoPrivate *priv = PIDGIN_PLUGIN_INFO_GET_PRIVATE(obj); + + switch (param_id) { + case PROP_PIDGIN_CONFIG_FRAME: + g_value_set_pointer(value, priv->get_config_frame); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec); + break; + } +} + /* Class initializer function */ static void pidgin_plugin_info_class_init(PidginPluginInfoClass *klass) { + GObjectClass *obj_class = G_OBJECT_CLASS(klass); + g_type_class_add_private(klass, sizeof(PidginPluginInfoPrivate)); + + /* Setup properties */ + obj_class->get_property = pidgin_plugin_info_get_property; + obj_class->set_property = pidgin_plugin_info_set_property; + + g_object_class_install_property(obj_class, PROP_PIDGIN_CONFIG_FRAME, + g_param_spec_pointer("pidgin_config_frame", + "Pidgin configuration frame callback", + "Callback that returns a GTK configuration frame", + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); } GType