* PluginPref Example Plugin * Copyright (C) 2004, Gary Kramlich <amc_grim@users.sf.net> * 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 /* When writing a third-party plugin, do not include libpurple's internal.h * included below. This file is for internal libpurple use only. We're including * it here for our own convenience. */ /* This file includes all the libpurple headers */ static PurplePluginPrefFrame * get_plugin_pref_frame(PurplePlugin *plugin) { PurplePluginPrefFrame *frame; frame = purple_plugin_pref_frame_new(); ppref = purple_plugin_pref_new_with_label("boolean"); purple_plugin_pref_frame_add(frame, ppref); ppref = purple_plugin_pref_new_with_name_and_label( "/plugins/core/pluginpref_example/bool", purple_plugin_pref_frame_add(frame, ppref); ppref = purple_plugin_pref_new_with_label("integer"); purple_plugin_pref_frame_add(frame, ppref); ppref = purple_plugin_pref_new_with_name_and_label( "/plugins/core/pluginpref_example/int", purple_plugin_pref_set_bounds(ppref, 0, 255); purple_plugin_pref_frame_add(frame, ppref); ppref = purple_plugin_pref_new_with_name_and_label( "/plugins/core/pluginpref_example/int_choice", purple_plugin_pref_set_pref_type(ppref, PURPLE_PLUGIN_PREF_CHOICE); purple_plugin_pref_add_choice(ppref, "One", GINT_TO_POINTER(1)); purple_plugin_pref_add_choice(ppref, "Two", GINT_TO_POINTER(2)); purple_plugin_pref_add_choice(ppref, "Four", GINT_TO_POINTER(4)); purple_plugin_pref_add_choice(ppref, "Eight", GINT_TO_POINTER(8)); purple_plugin_pref_add_choice(ppref, "Sixteen", GINT_TO_POINTER(16)); purple_plugin_pref_add_choice(ppref, "Thirty Two", GINT_TO_POINTER(32)); purple_plugin_pref_add_choice(ppref, "Sixty Four", GINT_TO_POINTER(64)); purple_plugin_pref_add_choice(ppref, "One Hundred Twenty Eight", GINT_TO_POINTER(128)); purple_plugin_pref_frame_add(frame, ppref); ppref = purple_plugin_pref_new_with_label("string"); purple_plugin_pref_frame_add(frame, ppref); ppref = purple_plugin_pref_new_with_name_and_label( "/plugins/core/pluginpref_example/string", purple_plugin_pref_frame_add(frame, ppref); ppref = purple_plugin_pref_new_with_name_and_label( "/plugins/core/pluginpref_example/masked_string", purple_plugin_pref_set_masked(ppref, TRUE); purple_plugin_pref_frame_add(frame, ppref); ppref = purple_plugin_pref_new_with_name_and_label( "/plugins/core/pluginpref_example/max_string", "string pref\n(max length of 16)"); purple_plugin_pref_set_max_length(ppref, 16); purple_plugin_pref_frame_add(frame, ppref); ppref = purple_plugin_pref_new_with_name_and_label( "/plugins/core/pluginpref_example/multiline", "multiline string pref"); purple_plugin_pref_set_pref_type(ppref, PURPLE_PLUGIN_PREF_STRING_FORMAT); purple_plugin_pref_set_format_type(ppref, PURPLE_STRING_FORMAT_TYPE_MULTILINE); purple_plugin_pref_frame_add(frame, ppref); ppref = purple_plugin_pref_new_with_name_and_label( "/plugins/core/pluginpref_example/html", purple_plugin_pref_set_pref_type(ppref, PURPLE_PLUGIN_PREF_STRING_FORMAT); purple_plugin_pref_set_format_type(ppref, PURPLE_STRING_FORMAT_TYPE_HTML); purple_plugin_pref_frame_add(frame, ppref); ppref = purple_plugin_pref_new_with_name_and_label( "/plugins/core/pluginpref_example/string_choice", purple_plugin_pref_set_pref_type(ppref, PURPLE_PLUGIN_PREF_CHOICE); purple_plugin_pref_add_choice(ppref, "red", "red"); purple_plugin_pref_add_choice(ppref, "orange", "orange"); purple_plugin_pref_add_choice(ppref, "yellow", "yellow"); purple_plugin_pref_add_choice(ppref, "green", "green"); purple_plugin_pref_add_choice(ppref, "blue", "blue"); purple_plugin_pref_add_choice(ppref, "purple", "purple"); purple_plugin_pref_frame_add(frame, ppref); static PurplePluginInfo * plugin_query(GError **error) const gchar * const authors[] = { "Gary Kramlich <amc_grim@users.sf.net>", return purple_plugin_info_new( "id", "core-pluginpref_example", "name", "Pluginpref Example", "version", DISPLAY_VERSION, "summary", "An example of how to use pluginprefs", "description", "An example of how to use pluginprefs", "website", PURPLE_WEBSITE, "abi-version", PURPLE_ABI_VERSION, "pref-frame-cb", get_plugin_pref_frame, plugin_load(PurplePlugin *plugin, GError **error) purple_prefs_add_none("/plugins/core/pluginpref_example"); purple_prefs_add_bool("/plugins/core/pluginpref_example/bool", TRUE); purple_prefs_add_int("/plugins/core/pluginpref_example/int", 0); purple_prefs_add_int("/plugins/core/pluginpref_example/int_choice", 1); purple_prefs_add_string("/plugins/core/pluginpref_example/string", purple_prefs_add_string("/plugins/core/pluginpref_example/max_string", purple_prefs_add_string("/plugins/core/pluginpref_example/multiline", purple_prefs_add_string("/plugins/core/pluginpref_example/html", purple_prefs_add_string("/plugins/core/pluginpref_example/masked_string", "masked"); purple_prefs_add_string("/plugins/core/pluginpref_example/string_choice", "red"); plugin_unload(PurplePlugin *plugin, GError **error) PURPLE_PLUGIN_INIT(ppexample, plugin_query, plugin_load, plugin_unload);