JGimp TODO

FOR NEXT RELEASE (0.9)
- Fix the README documentation

Major bugs
* None known at this point

Essentials for a 1.0 release
* Need to be able to specify whether to build with or without Jython support in configure script (Adam)
* Need to have Jython in CLASSPATH for compiling with Jython support
* Jython needs to have "import pdb_names" rather than a function to do the same...
* JythonInterpreter should install the interactive interpreter as an extension with a menu
  entry (when that capability is added)
* Pass in both default and user-custom-directories for Java-based plug-ins, Jython scripts
* Test suites for pixel read/write routines
* Pass in boolean to writePixels to indicate if it is an undoable write
* Check for memory leaks with allocated C objects
* Consistent logging of errors and messages in Java and C code
* Remove unnecessary synchronized stuff from Java code (like in the proxy)
* There is a pretty significant memory leak somewhere... I don't know if it is in
  the JGimp core library, or the Side Views/Camellie stuff. I need to do some tests with the core
  libray to figure out if it is the cause of the problem
* Jython script support:
  - Backwards-compatibility with PyGimp?
* Testsuite:
  - Clean it up by either ripping out Java version and writing it in Jython, or
    rewriting current Java version

Non-essentials for a 1.0 release
* Fully document C code according to GIMP conventions or doxygen conventions
* See if we can thread calls to get pixel regions (synchronized in JGimpPlugInProxy now)
* Figure out how to unload us from the PDB if we don't initialize the JVM correctly
* Optimize read/writing pixels between Java and the GIMP using tile caches. Make sure it can
  be done in a thread-safe way. This capability is essential for memory-efficiency when
  processing large images
* There is a potential bug in gimpdrawable.c, version 1.2.2, in gimp_drawable_mask_bounds
  where that function will not set x1 and y1 if gimage_bmask_bounds(...) returns false.
  So in JGimpMacros, in the code to duplicate an image, there is an extra function call
  to get around this problem
* Optimize JGimpImagePanel so that the same buffer can be reused when reading in a new image
* JGimpImagePanel cannot display all possible image types yet
* Figure out if there is a way to have the same JVM be used for both plug-ins and extensions
  (currently, jgimp is loaded twice, once for plug-ins, another for extensions)
* Figure out how to handle internationalization issues for plug-ins (like use ResourceBundles in Java)
* Describe Camellie
* Add Side Views as basic component, accessible through Jython on Java
* Automatic generation of dialog box for scripts, like PyGimp?

Embedded JGimp todo:
- Any jar file loaded as the main app should close the GIMP down when it closes

Documentation:
- In comparison to PyGimp:
	- The Jython implementation has a global namespace, so scripts can call one another
	- All PDB functions can be read in to be directly called, rather than going through PDB object
- Describe what is needed to create a plug-in (just have to implement interfaces)
