GIMP TODO List
General Port to glib-2.0 and gtk+-2.0

This is directly connected to the objectification task mentioned below and should probably be addressed after all objects have been reviewed.

GIMP Developer List <gimp-developer@xcf.berkeley.edu>
Header cleanup

Headers should only include other headers if absolutely necessary (for derived objects for example). All functions must be properly prototyped.

GIMP Developer List <gimp-developer@xcf.berkeley.edu>
Code reorganization

Split the core into several subdirectories and build libtool convenience libraries which are then linked together to form the gimp binary.

GIMP Developer List <gimp-developer@xcf.berkeley.edu>
Objectification Generic GimpObject

Directly derived from GObject, should probably have a name argument.

GIMP Developer List <gimp-developer@xcf.berkeley.edu>
Cleanup existing internal objects

GimpDrawable, Layer, GimpImage, GDisplay need to be redone as proper GimpObjects. Write new objects (with proper names) and port all stuff to the new objects incrementally.

GIMP Developer List <gimp-developer@xcf.berkeley.edu>
Generic data structures

Brushes, Patterns, Gradients should be derived from a GimpData object. This object has to provide hooks to generate previews.

GIMP Developer List <gimp-developer@xcf.berkeley.edu>
Generic object container(s)

A GimpContainer that holds GimpObject objects. Comparable to the GCimContainer, but no serialization for now. Should probably dispatch "changed" (or other) signals from its children.

This container will be used for lists of brushes, patterns, layers, channels, paths, ...

GIMP Developer List <gimp-developer@xcf.berkeley.edu>
Abstract GimpBrush object and derived brush types

The GimpBrush object we have now is not a generic BrushProvider. We need an abstract object to derive the different kinds of brushes from (BrushPipes, parametric brushes, ...). It has to provide methods for the PaintCore to transparently select and use the brush data. Paint tools should have to care about the brush type as less as possible.

GIMP Developer List <gimp-developer@xcf.berkeley.edu>
LibGimp Restructure LibGimp

Put libgimp, libgimpui (and new libs) into their own subdirectories under a toplevel libs directory. Install all libs under $prefix/lib/gimp/1.3/ and change gimptool accordingly.

GIMP Developer List <gimp-developer@xcf.berkeley.edu>
Utility library

Put utility functions that are also used by the core into a seperate library.

GIMP Developer List <gimp-developer@xcf.berkeley.edu>
File plug-in library

Write a library with a bunch of common functions for file plug-ins to remove code duplication in these plug-ins.

GIMP Developer List <gimp-developer@xcf.berkeley.edu>
User Interface Abstract Container Views

Views on data stored in a GimpContainer. The objects need to provide hooks that this view can use to show data like patterns, brushes, etc. in different views (list, grid, ...)

GIMP Developer List <gimp-developer@xcf.berkeley.edu>
Effect Preview Widget

A generic preview widget with functions like scrolling and zooming useable by effect filters. Should have adaptive supersampling, progressive display (if possible) and other neat stuff.

GIMP Developer List <gimp-developer@xcf.berkeley.edu>
Optionally disable tearoff windows

Add an option to the Preferences to disable tearoff menus. Some people seem to be annoyed by it and it should be trivial to make them optional.

GIMP Developer List <gimp-developer@xcf.berkeley.edu>
Implement "Save a Copy..."

Add a "Save a Copy" function which works as "Save as" but leaves the image's name untouched.

GIMP Developer List <gimp-developer@xcf.berkeley.edu>
Better keyboard navigation

Think about a proper way to make all menus and dialogs accesible and navigationable without using a mouse.

GIMP Developer List <gimp-developer@xcf.berkeley.edu>
Internationalization Context-sensitive translations

The same english string used in different contexts may need to be translated differently in other languages. Think of a way to implement this using gettext or come up with something better.

There is a patch with a possible solution on ftp.gimp.org, but actually we'd like something cleaner if possible.

ftp://ftp.gimp.org/pub/gimp/patches/gimp-chyla-20001207-0.patch GIMP Developer List <gimp-developer@xcf.berkeley.edu>