mirror of https://github.com/GNOME/gimp.git
![]() 2003-06-19 Michael Natterer <mitch@gimp.org> Changed the semantics of GIMP_EXTENSION and (to some extent) of GIMP_PLUGIN: The old meaning of EXTENSION was "I live in the toolbox" and PLUGIN meant "I take RUN-MODE,IMAGE,DRAWABLE args (but only if I am invoked interactively)". This is completely useless, since living in the toolbox means having "<Toolbox>" in the menu_path and taking RUN-MODE,IMAGE,DRAWABLE means just that, regardless of what type of procedure we are. The new meaning of GIMP_PLUGIN is just "I am an ordinary procedure, I am invoked, do my job and finish", while GIMP_EXTENSION means "I will install temporary procedures and I will keep running to keep them available". (A GIMP_EXTENSION *must* call gimp_extension_ack() now to tell the core that it's ready to run, or the core will block waiting for the message !!!). * configure.in: bumped version number to 1.3.16. * libgimpbase/gimpprotocol.h: increased protocol version number so old extensions will refuse to load. * app/gui/plug-in-commands.c (plug_in_run_cmd_callback): don't blindly pass RUN-MODE,IMAGE,DRAWABLE to GIMP_PLUGIN procedures but look at their parameters and pass them either RUN-MODE, or RUN-MODE,IMAGE, or RUN-MODE,IMAGE,DRAWABLE. * app/pdb/procedural_db.c: cleaned up, better error reporting, replaced an impossible error message by g_return_if_fail() * app/plug-in/plug-in-message.c (plug_in_handle_proc_install): better error messages. * app/plug-in/plug-in-params.c: allocate parameter arrays using g_new0() so we don't have to worry about uninitialized stuff later. * app/plug-in/plug-in-run.c (plug_in_run): wait for gimp_extension_ack() installation confirmation for ALL extensions, not just for automatically started ones. * app/plug-in/plug-ins.c: cleanup. * libgimp/gimp.[ch]: cleaned up and API-documented massively. Made all magic values given in the GPConfig message static and added accessor functions for them. Added gimp_tile_width()/height(). Added new function gimp_extension_enable() which turns on asynchronous processing of temp_proc run requests without having to enter an endless gimp_extension_process() loop. Moved all private functions to the end of the file. Added tons of g_return_if_fail() all over the place. Call gimp_run_procedure2() from gimp_run_procedure() instead of duplicating the code. Indentation, spacing, stuff... * libgimp/gimptile.[ch]: removed gimp_tile_width()/height(). * libgimp/gimpdrawable.c * libgimp/gimppixelrgn.c * libgimp/gimptile.c: use the gimp_tile_width()/height() accessor functions. * libgimp/gimp.def: added gimp_extension_enable. * libgimp/gimpmenu.c: removed evil code which connected to _readchannel manually and use gimp_extension_enable() for watching temp_procs. * plug-ins/helpbrowser/helpbrowser.c: removed the same evil code here and call gimp_extension_enable(). Call gimp_extension_ack() to let the core know that the temp_proc is installed. * plug-ins/script-fu/script-fu.c: made all procedures except the permanently running "extension_script_fu" ordinary GIMP_PLUGIN procedures. * plug-ins/common/curve_bend.c * plug-ins/common/plugindetails.c * plug-ins/common/screenshot.c * plug-ins/common/uniteditor.c * plug-ins/common/winclipboard.c * plug-ins/dbbrowser/dbbrowser.c * plug-ins/gfli/gfli.c * plug-ins/twain/twain.c * plug-ins/webbrowser/webbrowser.c * plug-ins/winsnap/winsnap.c: made them all ordinary GIMP_PLUGIN procedures and renamed them from "extension_*" to "plug_in_*". Random cleanups. * app/widgets/gimphelp.c * plug-ins/maze/maze_face.c: call "plug_in_web_browser" now. |
||
---|---|---|
.. | ||
.cvsignore | ||
Makefile.am | ||
README | ||
dbbrowser.c | ||
dbbrowser_utils.c | ||
dbbrowser_utils.h | ||
gimpprocbrowser.c | ||
gimpprocbrowser.h | ||
gimpprocview.c | ||
plugin-browser.c | ||
procedure-browser.c |
README
dbbrowser: a development tool for the GIMP version 0.08 - 26th sept 1997 Programming by Thomas Noel <thomas@minet.net> (mail to him only, please) Documentation and insane comments by Olivier Tharan <olive@minet.net> Wise Comments And Good Laughs (TM) by Olivier Fontenelle <fonto@minet.net> INSTALL, BUGS, TODO, CHANGELOG : see below The actual and original README (c) Olivier Tharan (he's a friend of mine, yep) Let me introduce myself... -------------------------- My name is dbbrowser, but I have been known in my youth as dblist, almost as of version 0.05! I am an extension for the Gimp and my purpose is to display a list of all the procedures that have registered themselves in the procedure database. The main thing I do is a gimp_query_procedure and a pair of gimp_query_database. What can this marvel do ? ------------------------- The dbbrowser window is divided into two parts. On the left, you have a scrolling list containing the names of all the procedures registered within Gimp. When you click on one of them, its name, description and author(s) are displayed on the right side, altogether with the types and parameters the procedure takes and what it returns. All this is rather brilliantly completed by two search buttons, one for a by-name search, the other one for a by-blurb search. Just enter any regexp you have in mind in the text widget beneath the list and click on the appropriate button; the results of the search are automagically displayed in the scrolling list. Even fancier: script-fu-console integration ------------------------------------------- dbbrowser comes handy with a patch for script-fu-console.c which adds a button named ``Browse'' to the right of the console text widget. Clicking on the button launches dbbrowser from which you still can choose any procedure. But in the dbbrowser window, a fourth button has appeared, appropriately named ``Apply'', for its goal is to take the selected procedure and its arguments, and insert them into the script-fu console command line. It would save developers a great deal of pain to debug their scripts (or even to develop some!) More information : http://www.minet.net/~thomas/dbbrowser/ ---------------- (the following had been written by me, so, it's not *really* in english :) INSTALL These files go to gimp-xx.xx.xx/plug-ins/dbbrowser. That does not erase the files "Makefile*", so the plug-in is easy to re-compile : just do a "make" in this directory. Then, "make install" (as root) to install the plug-in. If it breaks, wait for GIMP 1.0 :) (or mail to <thomas@minet.net>) BUGS/TODO - refresh problem for the scrolled list (as in gtkfileselection) - add the "help" field (I wait for a "usable" gtk_text) - arg... well... my english is too bad to explain my others ideas :) CHANGELOG 26 Sept : 0.08 * delete all "gtk_widget_hide/destroy" sequences. * change the internal list structure (use gtk_objet_get/set_user_data) * try to optimize the first drawing (is it a success ?) 25 June : 0.07 * first public release (0.07) -- Bon c'est pas tout ca les gars, mais j'ai mal a la tete, personne n'a une aspirine ? Non ? Bon.