Frameworks/libpurple.framework/Versions/0.6.2/Headers/pluginpref.h
author Zachary West <zacw@adium.im>
Fri Aug 21 13:25:11 2009 -0700 (2009-08-21)
changeset 2592 e8d15275025e
parent 1739 Frameworks/libpurple.framework/Versions/0.6.0/Headers/pluginpref.h@8b0daad9656c
permissions -rw-r--r--
im.pidgin.adium.1-4 at 267c6165e02e34318a1823960bd04c0639952f73
Evan@653
     1
/**
Evan@653
     2
 * @file pluginpref.h Plugin Preferences API
Evan@653
     3
 * @ingroup core
Evan@653
     4
 */
Evan@653
     5
Evan@653
     6
/* purple
Evan@653
     7
 *
Evan@653
     8
 * Purple is the legal property of its developers, whose names are too numerous
Evan@653
     9
 * to list here.  Please refer to the COPYRIGHT file distributed with this
Evan@653
    10
 * source distribution.
Evan@653
    11
 *
Evan@653
    12
 * This program is free software; you can redistribute it and/or modify
Evan@653
    13
 * it under the terms of the GNU General Public License as published by
Evan@653
    14
 * the Free Software Foundation; either version 2 of the License, or
Evan@653
    15
 * (at your option) any later version.
Evan@653
    16
 *
Evan@653
    17
 * This program is distributed in the hope that it will be useful,
Evan@653
    18
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Evan@653
    19
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Evan@653
    20
 * GNU General Public License for more details.
Evan@653
    21
 *
Evan@653
    22
 * You should have received a copy of the GNU General Public License
Evan@653
    23
 * along with this program; if not, write to the Free Software
Evan@653
    24
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
Evan@653
    25
 *
Evan@653
    26
 */
Evan@653
    27
#ifndef _PURPLE_PLUGINPREF_H_
Evan@653
    28
#define _PURPLE_PLUGINPREF_H_
Evan@653
    29
Evan@653
    30
typedef struct _PurplePluginPrefFrame		PurplePluginPrefFrame;
Evan@653
    31
typedef struct _PurplePluginPref			PurplePluginPref;
Evan@653
    32
Evan@653
    33
/**
Evan@653
    34
 * String format for preferences.
Evan@653
    35
 */
Evan@653
    36
typedef enum
Evan@653
    37
{
Evan@653
    38
	PURPLE_STRING_FORMAT_TYPE_NONE      = 0,          /**< The string is plain text. */
Evan@653
    39
	PURPLE_STRING_FORMAT_TYPE_MULTILINE = 1 << 0,     /**< The string can have newlines. */
Evan@653
    40
	PURPLE_STRING_FORMAT_TYPE_HTML      = 1 << 1      /**< The string can be in HTML. */
Evan@653
    41
} PurpleStringFormatType;
Evan@653
    42
Evan@653
    43
typedef enum {
Evan@653
    44
	PURPLE_PLUGIN_PREF_NONE,
Evan@653
    45
	PURPLE_PLUGIN_PREF_CHOICE,
Evan@653
    46
	PURPLE_PLUGIN_PREF_INFO,              /**< no-value label */
Evan@653
    47
	PURPLE_PLUGIN_PREF_STRING_FORMAT      /**< The preference has a string value. */
Evan@653
    48
} PurplePluginPrefType;
Evan@653
    49
Evan@653
    50
#include <glib.h>
Evan@653
    51
#include "prefs.h"
Evan@653
    52
Evan@653
    53
#ifdef __cplusplus
Evan@653
    54
extern "C" {
Evan@653
    55
#endif
Evan@653
    56
Evan@653
    57
/**************************************************************************/
Evan@653
    58
/** @name Plugin Preference API                                           */
Evan@653
    59
/**************************************************************************/
Evan@653
    60
/*@{*/
Evan@653
    61
Evan@653
    62
/**
Evan@653
    63
 * Create a new plugin preference frame
Evan@653
    64
 *
Evan@653
    65
 * @return a new PurplePluginPrefFrame
Evan@653
    66
 */
Evan@653
    67
PurplePluginPrefFrame *purple_plugin_pref_frame_new(void);
Evan@653
    68
Evan@653
    69
/**
Evan@653
    70
 * Destroy a plugin preference frame
Evan@653
    71
 *
Evan@653
    72
 * @param frame The plugin frame to destroy
Evan@653
    73
 */
Evan@653
    74
void purple_plugin_pref_frame_destroy(PurplePluginPrefFrame *frame);
Evan@653
    75
Evan@653
    76
/**
Evan@653
    77
 * Adds a plugin preference to a plugin preference frame
Evan@653
    78
 *
Evan@653
    79
 * @param frame The plugin frame to add the preference to
Evan@653
    80
 * @param pref  The preference to add to the frame
Evan@653
    81
 */
Evan@653
    82
void purple_plugin_pref_frame_add(PurplePluginPrefFrame *frame, PurplePluginPref *pref);
Evan@653
    83
Evan@653
    84
/**
Evan@653
    85
 * Get the plugin preferences from a plugin preference frame
Evan@653
    86
 *
Evan@653
    87
 * @param frame The plugin frame to get the plugin preferences from
Evan@653
    88
 * @constreturn a GList of plugin preferences
Evan@653
    89
 */
Evan@653
    90
GList *purple_plugin_pref_frame_get_prefs(PurplePluginPrefFrame *frame);
Evan@653
    91
Evan@653
    92
/**
Evan@653
    93
 * Create a new plugin preference
Evan@653
    94
 *
Evan@653
    95
 * @return a new PurplePluginPref
Evan@653
    96
 */
Evan@653
    97
PurplePluginPref *purple_plugin_pref_new(void);
Evan@653
    98
Evan@653
    99
/**
Evan@653
   100
 * Create a new plugin preference with name
Evan@653
   101
 *
Evan@653
   102
 * @param name The name of the pref
Evan@653
   103
 * @return a new PurplePluginPref
Evan@653
   104
 */
Evan@653
   105
PurplePluginPref *purple_plugin_pref_new_with_name(const char *name);
Evan@653
   106
Evan@653
   107
/**
Evan@653
   108
 * Create a new plugin preference with label
Evan@653
   109
 *
Evan@653
   110
 * @param label The label to be displayed
Evan@653
   111
 * @return a new PurplePluginPref
Evan@653
   112
 */
Evan@653
   113
PurplePluginPref *purple_plugin_pref_new_with_label(const char *label);
Evan@653
   114
Evan@653
   115
/**
Evan@653
   116
 * Create a new plugin preference with name and label
Evan@653
   117
 *
Evan@653
   118
 * @param name  The name of the pref
Evan@653
   119
 * @param label The label to be displayed
Evan@653
   120
 * @return a new PurplePluginPref
Evan@653
   121
 */
Evan@653
   122
PurplePluginPref *purple_plugin_pref_new_with_name_and_label(const char *name, const char *label);
Evan@653
   123
Evan@653
   124
/**
Evan@653
   125
 * Destroy a plugin preference
Evan@653
   126
 *
Evan@653
   127
 * @param pref The preference to destroy
Evan@653
   128
 */
Evan@653
   129
void purple_plugin_pref_destroy(PurplePluginPref *pref);
Evan@653
   130
Evan@653
   131
/**
Evan@653
   132
 * Set a plugin pref name
Evan@653
   133
 *
Evan@653
   134
 * @param pref The plugin pref
Evan@653
   135
 * @param name The name of the pref
Evan@653
   136
 */
Evan@653
   137
void purple_plugin_pref_set_name(PurplePluginPref *pref, const char *name);
Evan@653
   138
Evan@653
   139
/**
Evan@653
   140
 * Get a plugin pref name
Evan@653
   141
 *
Evan@653
   142
 * @param pref The plugin pref
Evan@653
   143
 * @return The name of the pref
Evan@653
   144
 */
Evan@653
   145
const char *purple_plugin_pref_get_name(PurplePluginPref *pref);
Evan@653
   146
Evan@653
   147
/**
Evan@653
   148
 * Set a plugin pref label
Evan@653
   149
 *
Evan@653
   150
 * @param pref  The plugin pref
Evan@653
   151
 * @param label The label for the plugin pref
Evan@653
   152
 */
Evan@653
   153
void purple_plugin_pref_set_label(PurplePluginPref *pref, const char *label);
Evan@653
   154
Evan@653
   155
/**
Evan@653
   156
 * Get a plugin pref label
Evan@653
   157
 *
Evan@653
   158
 * @param pref The plugin pref
Evan@653
   159
 * @return The label for the plugin pref
Evan@653
   160
 */
Evan@653
   161
const char *purple_plugin_pref_get_label(PurplePluginPref *pref);
Evan@653
   162
Evan@653
   163
/**
Evan@653
   164
 * Set the bounds for an integer pref
Evan@653
   165
 *
Evan@653
   166
 * @param pref The plugin pref
Evan@653
   167
 * @param min  The min value
Evan@653
   168
 * @param max  The max value
Evan@653
   169
 */
Evan@653
   170
void purple_plugin_pref_set_bounds(PurplePluginPref *pref, int min, int max);
Evan@653
   171
Evan@653
   172
/**
Evan@653
   173
 * Get the bounds for an integer pref
Evan@653
   174
 *
Evan@653
   175
 * @param pref The plugin pref
Evan@653
   176
 * @param min  The min value
Evan@653
   177
 * @param max  The max value
Evan@653
   178
 */
Evan@653
   179
void purple_plugin_pref_get_bounds(PurplePluginPref *pref, int *min, int *max);
Evan@653
   180
Evan@653
   181
/**
Evan@653
   182
 * Set the type of a plugin pref
Evan@653
   183
 *
Evan@653
   184
 * @param pref The plugin pref
Evan@653
   185
 * @param type The type
Evan@653
   186
 */
Evan@653
   187
void purple_plugin_pref_set_type(PurplePluginPref *pref, PurplePluginPrefType type);
Evan@653
   188
Evan@653
   189
/**
Evan@653
   190
 * Get the type of a plugin pref
Evan@653
   191
 *
Evan@653
   192
 * @param pref The plugin pref
Evan@653
   193
 * @return The type
Evan@653
   194
 */
Evan@653
   195
PurplePluginPrefType purple_plugin_pref_get_type(PurplePluginPref *pref);
Evan@653
   196
Evan@653
   197
/**
Evan@653
   198
 * Set the choices for a choices plugin pref
Evan@653
   199
 *
Evan@653
   200
 * @param pref  The plugin pref
Evan@653
   201
 * @param label The label for the choice
Evan@653
   202
 * @param choice  A gpointer of the choice
Evan@653
   203
 */
Evan@653
   204
void purple_plugin_pref_add_choice(PurplePluginPref *pref, const char *label, gpointer choice);
Evan@653
   205
Evan@653
   206
/**
Evan@653
   207
 * Get the choices for a choices plugin pref
Evan@653
   208
 *
Evan@653
   209
 * @param pref The plugin pref
Evan@653
   210
 * @constreturn GList of the choices
Evan@653
   211
 */
Evan@653
   212
GList *purple_plugin_pref_get_choices(PurplePluginPref *pref);
Evan@653
   213
Evan@653
   214
/**
Evan@653
   215
 * Set the max length for a string plugin pref
Evan@653
   216
 *
Evan@653
   217
 * @param pref       The plugin pref
Evan@653
   218
 * @param max_length The max length of the string
Evan@653
   219
 */
Evan@653
   220
void purple_plugin_pref_set_max_length(PurplePluginPref *pref, unsigned int max_length);
Evan@653
   221
Evan@653
   222
/**
Evan@653
   223
 * Get the max length for a string plugin pref
Evan@653
   224
 *
Evan@653
   225
 * @param pref The plugin pref
Evan@653
   226
 * @return the max length
Evan@653
   227
 */
Evan@653
   228
unsigned int purple_plugin_pref_get_max_length(PurplePluginPref *pref);
Evan@653
   229
Evan@653
   230
/**
Evan@653
   231
 * Sets the masking of a string plugin pref
Evan@653
   232
 *
Evan@653
   233
 * @param pref The plugin pref
Evan@653
   234
 * @param mask The value to set
Evan@653
   235
 */
Evan@653
   236
void purple_plugin_pref_set_masked(PurplePluginPref *pref, gboolean mask);
Evan@653
   237
Evan@653
   238
/**
Evan@653
   239
 * Gets the masking of a string plugin pref
Evan@653
   240
 *
Evan@653
   241
 * @param pref The plugin pref
Evan@653
   242
 * @return The masking
Evan@653
   243
 */
Evan@653
   244
gboolean purple_plugin_pref_get_masked(PurplePluginPref *pref);
Evan@653
   245
Evan@653
   246
/**
Evan@653
   247
 * Sets the format type for a formattable-string plugin pref. You need to set the
Evan@653
   248
 * pref type to PURPLE_PLUGIN_PREF_STRING_FORMAT first before setting the format.
Evan@653
   249
 *
Evan@653
   250
 * @param pref	 The plugin pref
Evan@653
   251
 * @param format The format of the string
Evan@653
   252
 */
Evan@653
   253
void purple_plugin_pref_set_format_type(PurplePluginPref *pref, PurpleStringFormatType format);
Evan@653
   254
Evan@653
   255
/**
Evan@653
   256
 * Gets the format type of the formattable-string plugin pref.
Evan@653
   257
 *
Evan@653
   258
 * @param pref The plugin pref
Evan@653
   259
 * @return The format of the pref
Evan@653
   260
 */
Evan@653
   261
PurpleStringFormatType purple_plugin_pref_get_format_type(PurplePluginPref *pref);
Evan@653
   262
Evan@653
   263
/*@}*/
Evan@653
   264
Evan@653
   265
#ifdef __cplusplus
Evan@653
   266
}
Evan@653
   267
#endif
Evan@653
   268
Evan@653
   269
#endif /* _PURPLE_PLUGINPREF_H_ */