gimp/plug-ins/dbbrowser
Michael Natterer ecb0b58439 Changed the semantics of GIMP_EXTENSION and (to some extent) of
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.
2003-06-19 17:12:00 +00:00
..
.cvsignore The .cvsignores should have .libs too 1998-01-09 09:53:59 +00:00
Makefile.am app/base/Makefile.am automake-1.6 seems to use yet another variable to 2002-06-07 23:00:46 +00:00
README Initial revision 1997-11-24 22:05:25 +00:00
dbbrowser.c Changed the semantics of GIMP_EXTENSION and (to some extent) of 2003-06-19 17:12:00 +00:00
dbbrowser_utils.c minor cleanups. (struct dbbrowser_t): use GimpDBBrowserApplyCallback type 2003-06-16 11:40:11 +00:00
dbbrowser_utils.h code formating paranoia. 2001-07-30 00:46:09 +00:00
gimpprocbrowser.c minor cleanups. (struct dbbrowser_t): use GimpDBBrowserApplyCallback type 2003-06-16 11:40:11 +00:00
gimpprocbrowser.h code formating paranoia. 2001-07-30 00:46:09 +00:00
gimpprocview.c minor cleanups. (struct dbbrowser_t): use GimpDBBrowserApplyCallback type 2003-06-16 11:40:11 +00:00
plugin-browser.c Changed the semantics of GIMP_EXTENSION and (to some extent) of 2003-06-19 17:12:00 +00:00
procedure-browser.c Changed the semantics of GIMP_EXTENSION and (to some extent) of 2003-06-19 17:12:00 +00:00

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.