core.h

00001 
00005 /* purple
00006  *
00007  * Purple is the legal property of its developers, whose names are too numerous
00008  * to list here.  Please refer to the COPYRIGHT file distributed with this
00009  * source distribution.
00010  *
00011  * This program is free software; you can redistribute it and/or modify
00012  * it under the terms of the GNU General Public License as published by
00013  * the Free Software Foundation; either version 2 of the License, or
00014  * (at your option) any later version.
00015  *
00016  * This program is distributed in the hope that it will be useful,
00017  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00018  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019  * GNU General Public License for more details.
00020  *
00021  * You should have received a copy of the GNU General Public License
00022  * along with this program; if not, write to the Free Software
00023  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
00024  *
00025  * @see @ref core-signals
00026  */
00027 #ifndef _PURPLE_CORE_H_
00028 #define _PURPLE_CORE_H_
00029 
00030 typedef struct PurpleCore PurpleCore;
00031 
00032 typedef struct
00033 {
00034     void (*ui_prefs_init)(void);
00035     void (*debug_ui_init)(void); /* Unfortunate necessity. */
00036     void (*ui_init)(void);
00037     void (*quit)(void);
00038     GHashTable* (*get_ui_info)(void);
00039 
00040     void (*_purple_reserved1)(void);
00041     void (*_purple_reserved2)(void);
00042     void (*_purple_reserved3)(void);
00043 } PurpleCoreUiOps;
00044 
00045 #ifdef __cplusplus
00046 extern "C" {
00047 #endif
00048 
00059 gboolean purple_core_init(const char *ui);
00060 
00065 void purple_core_quit(void);
00066 
00079 gboolean purple_core_quit_cb(gpointer unused);
00080 
00086 const char *purple_core_get_version(void);
00087 
00093 const char *purple_core_get_ui(void);
00094 
00100 PurpleCore *purple_get_core(void);
00101 
00107 void purple_core_set_ui_ops(PurpleCoreUiOps *ops);
00108 
00114 PurpleCoreUiOps *purple_core_get_ui_ops(void);
00115 
00125 gboolean purple_core_migrate(void);
00126 
00135 gboolean purple_core_ensure_single_instance(void);
00136 
00146 GHashTable* purple_core_get_ui_info(void);
00147 
00148 #ifdef __cplusplus
00149 }
00150 #endif
00151 
00152 #endif /* _PURPLE_CORE_H_ */
00153 
00154 /*
00155 
00156                                                   /===-
00157                                                 `//"\\   """"`---.___.-""
00158              ______-==|                         | |  \\           _-"`
00159        __--"""  ,-/-==\\                        | |   `\        ,'
00160     _-"       /'    |  \\            ___         / /      \      /
00161   .'        /       |   \\         /"   "\    /' /        \   /'
00162  /  ____  /         |    \`\.__/-""  D O   \_/'  /          \/'
00163 /-'"    """""---__  |     "-/"   O G     R   /'        _--"`
00164                   \_|      /   R    __--_  t ),   __--""
00165                     '""--_/  T   _-"_>--<_\ h '-" \
00166                    {\__--_/}    / \\__>--<__\ e B  \
00167                    /'   (_/  _-"  | |__>--<__|   U  |
00168                   |   _/) )-"     | |__>--<__|  R   |
00169                   / /" ,_/       / /__>---<__/ N    |
00170                  o-o _//        /-"_>---<__-" I    /
00171                  (^("          /"_>---<__-  N   _-"
00172                 ,/|           /__>--<__/  A  _-"
00173              ,//('(          |__>--<__|  T  /                  .----_
00174             ( ( '))          |__>--<__|    |                 /' _---_"\
00175          `-)) )) (           |__>--<__|  O |               /'  /     "\`\
00176         ,/,'//( (             \__>--<__\  R \            /'  //        ||
00177       ,( ( ((, ))              "-__>--<_"-_  "--____---"' _/'/        /'
00178     `"/  )` ) ,/|                 "-_">--<_/-__       __-" _/
00179   ._-"//( )/ )) `                    ""-'_/_/ /"""""""__--"
00180    ;'( ')/ ,)(                              """"""""""
00181   ' ') '( (/
00182     '   '  `
00183 
00184 */