Mercurial > pidgin
comparison plugins/HOWTO @ 94:9f6ce50ffb78
[gaim-migrate @ 104]
Woohoo, the landing of the plugins. Nearly everything necessary is here. The
only thing missing is that you can't load a plugin without signing on first
(at least, not without some trickery).
committer: Tailor Script <tailor@pidgin.im>
| author | Eric Warmenhoven <eric@warmenhoven.org> |
|---|---|
| date | Sun, 09 Apr 2000 11:18:25 +0000 |
| parents | 5ca21b68eb29 |
| children | 19cffb5bd129 |
comparison
equal
deleted
inserted
replaced
| 93:5ca21b68eb29 | 94:9f6ce50ffb78 |
|---|---|
| 1 Ok, this howto is going to be really short and sweet and to the point. | 1 Ok, this howto is going to be really short and sweet and to the point. |
| 2 | 2 |
| 3 First off, before you do anything else, in all of the files for your plugin, | 3 First off, before you do anything else, in all of the files for your plugin, |
| 4 put the lines | 4 put the lines |
| 5 | 5 |
| 6 #define GAIM_PLUGIN | 6 #define GAIM_PLUGINS |
| 7 #include "gaim.h" | 7 #include "gaim.h" |
| 8 | 8 |
| 9 I mean this. Without this, all kinds of things will not work correctly. If you | 9 I mean this. Without this, all kinds of things will not work correctly. If you |
| 10 really want to know exactly what this does, read ../src/gaim.h and learn. But | 10 really want to know exactly what this does, read ../src/gaim.h and learn. But |
| 11 if you don't want to do that, just know that it's important. | 11 if you don't want to do that, just know that it's important. |
| 12 | 12 |
| 13 Now that you've put that there, make sure gaim.h is in your include path. | 13 Now that you've put that there, make sure gaim.h is in your include path. |
| 14 | 14 |
| 15 Ok, now you're ready to write the plugin. | 15 Ok, now you're ready to write the plugin. |
| 16 | 16 |
| 17 The only function that is required is gaim_plugin_init(). This gets called as | 17 The only function that is required is gaim_plugin_init(void *). This gets |
| 18 soon as it gets loaded (sort of - man dlopen for more details). If your | 18 called as soon as it gets loaded (sort of - man dlopen for more details). If |
| 19 function never returns, it will crash gaim! If your plugin uses up all the | 19 your function never returns, it will crash gaim! If your plugin uses up all |
| 20 memory in the system, it will crash gaim! Once your plugin gets loaded, it | 20 the memory in the system, it will crash gaim! Once your plugin gets loaded, |
| 21 effectively becomes a part of gaim, and anything that goes wrong will look | 21 it effectively becomes a part of gaim, and anything that goes wrong will look |
| 22 like it is a problem with gaim itself. I write bugfree code! :) Therefore, it | 22 like it is a problem with gaim itself. I write bugfree code! :) Therefore, it |
| 23 is your problem, not mine. | 23 is your problem, not mine. (I'm usually nice and willing to help you with your |
| 24 problems though.) | |
| 25 | |
| 26 The void * that gets passed to gaim_plugin_init is the handle for the plugin. | |
| 27 DO NOT CHANGE THIS POINTER! Bad things will happen. You've been warned. It's | |
| 28 needed for connecting to signals and things. It's a good idea to remember it | |
| 29 somehow. | |
| 24 | 30 |
| 25 You can basically do anything you want in the plugin. You can make function | 31 You can basically do anything you want in the plugin. You can make function |
| 26 calls, change public widgets, display new widgets, things like that. But the | 32 calls, change public widgets, display new widgets, things like that. But the |
| 27 really need thing is you can do things at events. For example, when one of | 33 really need thing is you can do things at events. For example, when one of |
| 28 your buddies signs on, you can instantly send them a message. You can modify | 34 your buddies signs on, you can instantly send them a message. You can modify |
