Mercurial > pidgin
comparison src/plugin.h @ 9015:67421e0dc497
[gaim-migrate @ 9791]
(05:54:53) siege: that's the first pass on merging the two action sources
(05:55:27) siege: using it right now, seems to be working fine. You may
want to look it over though...
(05:56:04) siege: found a small mem-leak in a GList getting created and not
destroyed, this fixes that as well
(13:20:40) KingAnt: LSchiere: Well it's probably ok. I haven't even had a
chance to look at the commit for the other thing
committer: Tailor Script <tailor@pidgin.im>
| author | Luke Schierer <lschiere@pidgin.im> |
|---|---|
| date | Sat, 22 May 2004 17:33:38 +0000 |
| parents | c209e287bb6e |
| children | f8e395a054e2 |
comparison
equal
deleted
inserted
replaced
| 9014:51b5b3a622ce | 9015:67421e0dc497 |
|---|---|
| 32 | 32 |
| 33 typedef struct _GaimPlugin GaimPlugin; | 33 typedef struct _GaimPlugin GaimPlugin; |
| 34 typedef struct _GaimPluginInfo GaimPluginInfo; | 34 typedef struct _GaimPluginInfo GaimPluginInfo; |
| 35 typedef struct _GaimPluginUiInfo GaimPluginUiInfo; | 35 typedef struct _GaimPluginUiInfo GaimPluginUiInfo; |
| 36 typedef struct _GaimPluginLoaderInfo GaimPluginLoaderInfo; | 36 typedef struct _GaimPluginLoaderInfo GaimPluginLoaderInfo; |
| 37 | |
| 38 typedef struct _GaimPluginAction GaimPluginAction; | |
| 37 | 39 |
| 38 typedef int GaimPluginPriority; /**< Plugin priority. */ | 40 typedef int GaimPluginPriority; /**< Plugin priority. */ |
| 39 | 41 |
| 40 #include "pluginpref.h" | 42 #include "pluginpref.h" |
| 41 | 43 |
| 87 void (*destroy)(GaimPlugin *plugin); | 89 void (*destroy)(GaimPlugin *plugin); |
| 88 | 90 |
| 89 void *ui_info; | 91 void *ui_info; |
| 90 void *extra_info; | 92 void *extra_info; |
| 91 GaimPluginUiInfo *prefs_info; | 93 GaimPluginUiInfo *prefs_info; |
| 92 GList *(*actions)(GaimPlugin *plugin); | 94 GList *(*actions)(GaimPlugin *plugin, gpointer context); |
| 93 }; | 95 }; |
| 94 | 96 |
| 95 /** | 97 /** |
| 96 * Extra information for loader plugins. | 98 * Extra information for loader plugins. |
| 97 */ | 99 */ |
| 135 #define GAIM_PLUGIN_HAS_PREF_FRAME(plugin) \ | 137 #define GAIM_PLUGIN_HAS_PREF_FRAME(plugin) \ |
| 136 ((plugin)->info != NULL && (plugin)->info->prefs_info != NULL) | 138 ((plugin)->info != NULL && (plugin)->info->prefs_info != NULL) |
| 137 | 139 |
| 138 #define GAIM_PLUGIN_UI_INFO(plugin) \ | 140 #define GAIM_PLUGIN_UI_INFO(plugin) \ |
| 139 ((GaimPluginUiInfo*)(plugin)->info->prefs_info) | 141 ((GaimPluginUiInfo*)(plugin)->info->prefs_info) |
| 142 | |
| 143 | |
| 144 /** | |
| 145 * The structure used in the actions member of GaimPluginInfo | |
| 146 */ | |
| 147 struct _GaimPluginAction { | |
| 148 char *label; | |
| 149 void (*callback)(GaimPluginAction *); | |
| 150 | |
| 151 /** set to the owning plugin */ | |
| 152 GaimPlugin *plugin; | |
| 153 | |
| 154 /** NULL for plugin actions menu, set to the GaimConnection for | |
| 155 account actions menu */ | |
| 156 gpointer context; | |
| 157 }; | |
| 158 | |
| 159 #define GAIM_PLUGIN_HAS_ACTIONS(plugin) \ | |
| 160 ((plugin)->info != NULL && (plugin)->info->actions != NULL) | |
| 161 | |
| 162 #define GAIM_PLUGIN_ACTIONS(plugin, context) \ | |
| 163 (GAIM_PLUGIN_HAS_ACTIONS(plugin)? \ | |
| 164 (plugin)->info->actions(plugin, context): NULL) | |
| 165 | |
| 140 | 166 |
| 141 /** | 167 /** |
| 142 * Handles the initialization of modules. | 168 * Handles the initialization of modules. |
| 143 */ | 169 */ |
| 144 #if !defined(GAIM_PLUGINS) || defined(GAIM_STATIC_PRPL) | 170 #if !defined(GAIM_PLUGINS) || defined(GAIM_STATIC_PRPL) |
| 156 initfunc((plugin)); \ | 182 initfunc((plugin)); \ |
| 157 return gaim_plugin_register(plugin); \ | 183 return gaim_plugin_register(plugin); \ |
| 158 } | 184 } |
| 159 #endif | 185 #endif |
| 160 | 186 |
| 187 | |
| 161 #ifdef __cplusplus | 188 #ifdef __cplusplus |
| 162 extern "C" { | 189 extern "C" { |
| 163 #endif | 190 #endif |
| 164 | 191 |
| 165 | 192 |
| 479 */ | 506 */ |
| 480 GList *gaim_plugins_get_all(void); | 507 GList *gaim_plugins_get_all(void); |
| 481 | 508 |
| 482 /*@}*/ | 509 /*@}*/ |
| 483 | 510 |
| 511 | |
| 512 /** | |
| 513 * Allocates and returns a new GaimPluginAction. | |
| 514 */ | |
| 515 GaimPluginAction *gaim_plugin_action_new(char* label, void (*callback)(GaimPluginAction *)); | |
| 516 | |
| 484 #ifdef __cplusplus | 517 #ifdef __cplusplus |
| 485 } | 518 } |
| 486 #endif | 519 #endif |
| 487 | 520 |
| 488 #endif /* _GAIM_PLUGIN_H_ */ | 521 #endif /* _GAIM_PLUGIN_H_ */ |
