* 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
* 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, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
#include "purplekeyvaluepair.h"
struct _PurplePluginPrefFrame
PurplePluginPrefType type;
PurpleStringFormatType format;
purple_plugin_pref_frame_new()
PurplePluginPrefFrame *frame;
frame = g_new0(PurplePluginPrefFrame, 1);
purple_plugin_pref_frame_destroy(PurplePluginPrefFrame *frame)
g_return_if_fail(frame != NULL);
g_list_free_full(frame->prefs, (GDestroyNotify)purple_plugin_pref_destroy);
purple_plugin_pref_frame_add(PurplePluginPrefFrame *frame, PurplePluginPref *pref)
g_return_if_fail(frame != NULL);
g_return_if_fail(pref != NULL);
frame->prefs = g_list_append(frame->prefs, pref);
purple_plugin_pref_frame_get_prefs(PurplePluginPrefFrame *frame)
g_return_val_if_fail(frame != NULL, NULL);
g_return_val_if_fail(frame->prefs != NULL, NULL);
pref = g_new0(PurplePluginPref, 1);
purple_plugin_pref_new_with_name(const char *name)
g_return_val_if_fail(name != NULL, NULL);
pref = g_new0(PurplePluginPref, 1);
pref->name = g_strdup(name);
purple_plugin_pref_new_with_label(const char *label)
g_return_val_if_fail(label != NULL, NULL);
pref = g_new0(PurplePluginPref, 1);
pref->label = g_strdup(label);
purple_plugin_pref_new_with_name_and_label(const char *name, const char *label)
g_return_val_if_fail(name != NULL, NULL);
g_return_val_if_fail(label != NULL, NULL);
pref = g_new0(PurplePluginPref, 1);
pref->name = g_strdup(name);
pref->label = g_strdup(label);
purple_plugin_pref_destroy(PurplePluginPref *pref)
g_return_if_fail(pref != NULL);
g_list_free_full(pref->choices, (GDestroyNotify)purple_key_value_pair_free);
purple_plugin_pref_set_name(PurplePluginPref *pref, const char *name)
g_return_if_fail(pref != NULL);
g_return_if_fail(name != NULL);
pref->name = g_strdup(name);
purple_plugin_pref_get_name(PurplePluginPref *pref)
g_return_val_if_fail(pref != NULL, NULL);
purple_plugin_pref_set_label(PurplePluginPref *pref, const char *label)
g_return_if_fail(pref != NULL);
g_return_if_fail(label != NULL);
pref->label = g_strdup(label);
purple_plugin_pref_get_label(PurplePluginPref *pref)
g_return_val_if_fail(pref != NULL, NULL);
purple_plugin_pref_set_bounds(PurplePluginPref *pref, int min, int max)
g_return_if_fail(pref != NULL);
g_return_if_fail(pref->name != NULL);
if (purple_prefs_get_pref_type(pref->name) != PURPLE_PREF_INT)
purple_debug_warning("pluginpref",
"purple_plugin_pref_set_bounds: %s is not an integer pref\n",
void purple_plugin_pref_get_bounds(PurplePluginPref *pref, int *min, int *max)
g_return_if_fail(pref != NULL);
g_return_if_fail(pref->name != NULL);
if (purple_prefs_get_pref_type(pref->name) != PURPLE_PREF_INT)
purple_debug_warning("pluginpref",
"purple_plugin_pref_get_bounds: %s is not an integer pref\n",
purple_plugin_pref_set_pref_type(PurplePluginPref *pref, PurplePluginPrefType type)
g_return_if_fail(pref != NULL);
purple_plugin_pref_get_pref_type(PurplePluginPref *pref)
g_return_val_if_fail(pref != NULL, PURPLE_PLUGIN_PREF_NONE);
purple_plugin_pref_add_choice(PurplePluginPref *pref, const char *label, gpointer choice)
PurpleKeyValuePair *pref_choice;
g_return_if_fail(pref != NULL);
g_return_if_fail(label != NULL);
g_return_if_fail(choice || purple_prefs_get_pref_type(pref->name) == PURPLE_PREF_INT);
pref_choice = purple_key_value_pair_new(label, choice);
pref->choices = g_list_append(pref->choices, pref_choice);
purple_plugin_pref_get_choices(PurplePluginPref *pref)
g_return_val_if_fail(pref != NULL, NULL);
purple_plugin_pref_set_max_length(PurplePluginPref *pref, unsigned int max_length)
g_return_if_fail(pref != NULL);
pref->max_length = max_length;
purple_plugin_pref_get_max_length(PurplePluginPref *pref)
g_return_val_if_fail(pref != NULL, 0);
purple_plugin_pref_set_masked(PurplePluginPref *pref, gboolean masked)
g_return_if_fail(pref != NULL);
purple_plugin_pref_get_masked(PurplePluginPref *pref)
g_return_val_if_fail(pref != NULL, FALSE);
purple_plugin_pref_set_format_type(PurplePluginPref *pref, PurpleStringFormatType format)
g_return_if_fail(pref != NULL);
g_return_if_fail(pref->type == PURPLE_PLUGIN_PREF_STRING_FORMAT);
purple_plugin_pref_get_format_type(PurplePluginPref *pref)
g_return_val_if_fail(pref != NULL, 0);
if (pref->type != PURPLE_PLUGIN_PREF_STRING_FORMAT)
return PURPLE_STRING_FORMAT_TYPE_NONE;