This section is somehow focused to developers who wish to know more about
AMIGIFT internals. However, note this is an end-user documentation and
therefore we'll not give a in deep documentation on development, just the
very basics on how you can get started...
Starting with the GUI part, what GiFTMui basically needs to work with new plugins
is just a MUI's Public Custom Class (.mcc) located inside the AMIGIFT:PlugIns
directory, this class could be a subclass of whatever you want, but
obviously the quicker way would be creating it as a subclass of
MUIC_Group, it should return a valid MUI Object which will be
placed as a children of a PageGroup on the preferences window.
The class will allow end-users to configure your plugin (similar to what
happens with MUI's MCPs, which are used to configure Public MCCs, in this
aspect you could see GiFTMui as a MCC and your PlugIn.mcc as a MCP ;), your
plugin.mcc should additionally handle the reading and writing of
the corresponding giftd-style's config file (those found into/as
as them are available for the rest of plugins as well.
There is provided a Demo.mcc and Demo.PlugIn (with full source code, of course)
which demostrates how this works, The Demo.PlugIn source is just a quickstart
on how to write PlugIns, but for better info and examples the OpenFT sources
are the best choice.
NOTE that how GiFTMui will handle your plugin is based on the plugin's filename
as found into the AMIGIFT:PlugIns/
folder, and the *.mcc and image (logo) based on that name, e.g. it founds into
AMIGIFT:PlugIns a file named
BacaBurra.PlugIn then it extracts the name and stores it as "BacaBurra"
(case sensitive!, at least for MUI..), then it tryes to load the mcc using:
(additional tags support may come later if needed, just request it if you need them..)
And then the logos loaded as well as:
(being fixed width/height a requirement, 32x32 and 16x16 respectively)
Note that giFTMui will still work with your plugin if neither the MCC nor the
logos are found!, what we understand as your plugin needs no configuration,
being the logo replaced with a build-in image (with a "?" sign) if
yours aren't found.
If you create a MCC, you'll need to implement the following MUI Methods on
your class dispatcher:
#define MUIM_GIFTMUI_MCCLOADCONFIG 0x800FF00A
#define MUIM_GIFTMUI_MCCSAVECONFIG 0x800FF00B
Such methods will be invoked by GiFTMui when a user uses "Save To Disk ALL"
or "Load From Disk ALL" menu options. be aware you must return the
same method-id if your function succeed, and something else otherwise.
As you could see, how GiFTMui handles plugins is quite easyly, as seen for MCCs,
regarding how to create network plugins, we encourage you to take a look at the
sources for other plugins, specially OpenFT, as previously stated, you'll learn
a lot more than what we can explain right now here... Since this is a end-user
documentation (quite long already, indeed) we'll not enter in more details on
development, but you are of course invited to join our mailing-lists where you
are free to ask for anything you wish to know, or contact the author(s) directly
if you prefer this way.
$Id: index.php,v 2.0 2009/08/06 22:47:32 diegocr Exp $