/soc/2015/akronix/master: bff04969c626: Ported PurplePrefsUiOps ...
Abel 'Akronix' Serrano Juste <[email protected]>
| Newsgroups | gmane.comp.gnome.gaim.cvs |
|---|---|
| Message-ID | <[email protected]> |
Changeset: bff04969c626dafcc918c55737b818921f032471 Author: Abel 'Akronix' Serrano Juste <[email protected]> Date: 2015-07-02 21:22 +0200 Branch: release-2.x.y URL: https://hg.pidgin.im/soc/2015/akronix/master/rev/bff04969c626 Description: Ported PurplePrefsUiOps struct from instantbird diffstat: libpurple/prefs.c | 2 + libpurple/prefs.h | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 0 deletions(-) diffs (97 lines): diff --git a/libpurple/prefs.c b/libpurple/prefs.c --- a/libpurple/prefs.c +++ b/libpurple/prefs.c @@ -40,6 +40,8 @@ #include "win32dep.h" #endif +static PurplePrefsUiOps *prefs_ui_ops = NULL; + struct pref_cb { PurplePrefCallback func; gpointer data; diff --git a/libpurple/prefs.h b/libpurple/prefs.h --- a/libpurple/prefs.h +++ b/libpurple/prefs.h @@ -62,6 +62,49 @@ typedef enum _PurplePrefType typedef void (*PurplePrefCallback) (const char *name, PurplePrefType type, gconstpointer val, gpointer data); + +/** @copydoc _PurplePrefsUiOps */ +typedef struct _PurplePrefsUiOps PurplePrefsUiOps; + +/** Prefs UI operations; + * UIs should implement this if they want to set and handle + * user preferences themselves, rather than using libpurple handlers. + * + * @see @ref ui-ops + */ +struct _PurplePrefsUiOps +{ + void (*add_none)(const char *name); + void (*add_bool)(const char *name, gboolean value); + void (*add_int)(const char *name, int value); + void (*add_string)(const char *name, const char *value); + + void (*set_bool)(const char *name, gboolean value); + void (*set_int)(const char *name, int value); + void (*set_string)(const char *name, const char *value); + + gboolean (*get_bool)(const char *name); + int (*get_int)(const char *name); + const char *(*get_string)(const char *name); + + PurplePrefType (*get_type)(const char *name); + GList *(*get_children_names)(const char *name); + + gboolean (*exists)(const char *name); + void (*remove)(const char *name); + + void (*save)(void); + + void *(*add_observer)(const char *name, gpointer data); + void (*remove_observer)(const char *name, void *observer); + + void (*_purple_reserved1)(void); + void (*_purple_reserved2)(void); + void (*_purple_reserved3)(void); + void (*_purple_reserved4)(void); +}; + + #ifdef __cplusplus extern "C" { #endif @@ -362,6 +405,31 @@ gboolean purple_prefs_load(void); */ void purple_prefs_update_old(void); +/** + * Call the callback of the observer + */ +void purple_prefs_observe(gpointer data); + +/*@}*/ + +/**************************************************************************/ +/** @name UI Registration Functions */ +/**************************************************************************/ +/*@{*/ +/** + * Sets the UI operations structure to be used for preferences. + * + * @param ops The UI operations structure. + */ +void purple_prefs_set_ui_ops(PurplePrefsUiOps *ops); + +/** + * Returns the UI operations structure used for preferences. + * + * @return The UI operations structure in use. + */ +PurplePrefsUiOps *purple_prefs_get_ui_ops(void); + /*@}*/ #ifdef __cplusplus _______________________________________________ Commits mailing list [email protected] https://pidgin.im/cgi-bin/mailman/listinfo/commits