2001-02-24 Michael Natterer <mitch@gimp.org> * TODO.xml: updated. * app/appenums.h * app/apptypes.h: prefixed the cursor stuff with "Gimp", added the new stock tool cursor enum. Removed the old ToolType enum. * app/cursorutil.[ch] * app/gdisplay.[ch]: removed the old ToolType enum and prefixed the functions with "gimp_". Also stripped all "toggle cursor" stuff from the cursor code, so the new API is easier and not depending on the tool system. All existing tool cursors can be used via the new stock tool cursor enum, so no tool has to fiddle around with bitmap cursors. There will be an cursorutil function for registering stock tool cursor types on the fly. * app/disp_callbacks.c * app/scroll.[ch]: moved the display scrollbar callbacks from scroll.[ch] to disp_callbacks.c. Removed some crap from scroll.h * app/tools/tool.[ch]: removed the BitmapCursor pointers from the tool class struct and add cursor and toggle cursor IDs to the GimpTool struct. Work in progress. * app/dialog_handler.c * app/tools/bezier_select.c * app/tools/blend.c * app/tools/bucket_fill.c * app/tools/by_color_select.c * app/tools/clone.c * app/tools/color_picker.c * app/tools/convolve.c * app/tools/crop.c * app/tools/dodgeburn.c * app/tools/edit_selection.c * app/tools/ellipse_select.c * app/tools/flip_tool.c * app/tools/free_select.c * app/tools/fuzzy_select.c * app/tools/ink.c * app/tools/iscissors.c * app/tools/magnify.c * app/tools/measure.c * app/tools/move.c * app/tools/paint_core.[ch] * app/tools/perspective_tool.c * app/tools/rect_select.c * app/tools/rotate_tool.c * app/tools/scale_tool.c * app/tools/shear_tool.c * app/tools/text_tool.c * app/tools/transform_core.[ch]: changed accordingly. Did this "blind" for most tools because they don't compile. The changes are minimal, so there should be no conflicts.
453 lines
14 KiB
XML
453 lines
14 KiB
XML
<!-- Stuff that is scheduled to be done. Ideas do not go here, put
|
|
them into the old TODO file for now.
|
|
|
|
This is used to generate the online TODO list for GIMP using the
|
|
script docs/make-todo. There is a script on developer.gimp.org
|
|
that updates this file daily from anoncvs. If you modify this file,
|
|
you should check for parse errors by running:
|
|
|
|
$ docs/make-todo TODO.xml > /dev/null
|
|
|
|
before committing, or you may screw up the online version -->
|
|
|
|
<todo logourl="wilber.png">
|
|
<title>GIMP TODO List</title>
|
|
|
|
<section>
|
|
<title>General</title>
|
|
|
|
<entry size="big" difficulty="advanced" status="0%" target="1.4">
|
|
<title>Port to glib-2.0 and gtk+-2.0</title>
|
|
<description>
|
|
<p>
|
|
This is directly connected to the objectification task mentioned
|
|
below and should probably be addressed after all objects have
|
|
been reviewed.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="easy" status="80%" target="1.4">
|
|
<title>Header cleanup</title>
|
|
<description>
|
|
<p>
|
|
Headers should only include other headers if absolutely necessary
|
|
(for derived objects for example). All functions must be
|
|
properly prototyped.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="big" difficulty="medium" status="20%" target="1.4">
|
|
<title>Code reorganization</title>
|
|
<description>
|
|
<p>
|
|
Split the core into several subdirectories and build libtool
|
|
convenience libraries which are then linked together to form
|
|
the gimp binary.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="80%" target="1.4">
|
|
<title>Unify color data types</title>
|
|
<description>
|
|
<p>
|
|
LibGimp already has a new type GimpRGB. This should be used
|
|
whereever possible. If necessary we can change this to a
|
|
more generic struct later. Migrating to GimpRGB first will make
|
|
this much easier.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="advanced" status="0%" target="1.4">
|
|
<title>Script-Fu overhaul</title>
|
|
<description>
|
|
<p>
|
|
Script-Fu shouldn't be an extension running all the time, but
|
|
an interpreter that gets started once a script is run and
|
|
terminates after script execution. This should also solve the
|
|
problem of having multiple scripts running at the same time.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
</section> <!-- General -->
|
|
|
|
<section>
|
|
<title>Objectification</title>
|
|
|
|
<entry size="small" difficulty="easy" status="80%" target="1.4">
|
|
<title>Generic GimpObject</title>
|
|
<description>
|
|
<p>
|
|
Directly derived from GObject, should probably have a name
|
|
argument.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="30%" target="1.4">
|
|
<title>Cleanup existing internal objects</title>
|
|
<description>
|
|
<p>
|
|
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.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="advanced" status="80%" target="1.4">
|
|
<title>Generic data structures</title>
|
|
<description>
|
|
<p>
|
|
Brushes, Patterns, Gradients should be derived from a GimpData
|
|
object. This object has to provide hooks to generate previews.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="70%" target="1.4">
|
|
<title>Generic object container(s)</title>
|
|
<description>
|
|
<p>
|
|
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.
|
|
</p>
|
|
<p>
|
|
This container will be used for lists of brushes, patterns,
|
|
layers, channels, paths, ...
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="advanced" status="0%" target="1.4">
|
|
<title>Abstract GimpBrush object and derived brush types</title>
|
|
<description>
|
|
<p>
|
|
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.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
</section> <!-- Objectification -->
|
|
|
|
<section>
|
|
<title>LibGimp</title>
|
|
|
|
<entry size="medium" difficulty="medium" status="50%" target="1.4">
|
|
<title>Restructure LibGimp</title>
|
|
<description>
|
|
<p>
|
|
Put libgimp, libgimpui (and new libs) into their own
|
|
subdirectories. Install all header files under
|
|
$prefix/include/gimp-MAJOR.MINOR/ and change gimptool
|
|
accordingly.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="easy" status="20%" target="1.4">
|
|
<title>Utility library</title>
|
|
<description>
|
|
<p>
|
|
Put utility functions that are also used by the core into
|
|
a separate library.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="0%" target="1.4">
|
|
<title>File plug-in library</title>
|
|
<description>
|
|
<p>
|
|
Write a library with a bunch of common functions for file plug-ins
|
|
to remove code duplication in these plug-ins.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="90%" target="1.4">
|
|
<title>Move GCK functionality into LibGimp</title>
|
|
<description>
|
|
<p>
|
|
libgck, as found in the plug-ins dir has some nice functions we
|
|
want to clean up and make available in LibGimp so they can be
|
|
used by the core and plug-ins.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
</section> <!-- LibGimp -->
|
|
|
|
<section>
|
|
<title>User Interface</title>
|
|
|
|
<entry size="medium" difficulty="medium" status="70%" target="1.4">
|
|
<title>Abstract Container Views</title>
|
|
<description>
|
|
<p>
|
|
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, ...)
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="big" difficulty="advanced" status="0%" target="1.4">
|
|
<title>Effect Preview Widget</title>
|
|
<description>
|
|
<p>
|
|
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.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="easy" status="100%" target="1.4">
|
|
<title>Optionally disable tearoff windows</title>
|
|
<description>
|
|
<p>
|
|
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.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="easy" status="100%" target="1.4">
|
|
<title>Implement "Save a Copy as..."</title>
|
|
<description>
|
|
<p>
|
|
Add a "Save a Copy as" function which works as "Save as" but
|
|
leaves the image's name untouched.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="easy" status="0%" target="1.4">
|
|
<title>Optionally set a different background for the image window</title>
|
|
<description>
|
|
<p>
|
|
It's often useful to view the image you're editing on a pure
|
|
white or pure black background instead of the theme's default
|
|
background.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="medium" status="0%" target="1.4">
|
|
<title>Fullscreen image view</title>
|
|
<description>
|
|
<p>
|
|
Add a possibility to show the image fullscreen (padded with the
|
|
configured canvas background color).
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="60%" target="1.4">
|
|
<title>Cleanup GIMP's color selectors</title>
|
|
<description>
|
|
<p>
|
|
The pluggable color selectors need to be overhauled. Move
|
|
the numerical input fields, the sliders, the "old" and "new"
|
|
color buttons and a color history out of the notebook so
|
|
they are always visible. Optionally allow an alpha value to
|
|
be specified. Maybe reduce the size of the color area in the
|
|
"GIMP" color selector.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="0%" target="1.4">
|
|
<title>Better keyboard navigation</title>
|
|
<description>
|
|
<p>
|
|
Think about a proper way to make all menus and dialogs accesible
|
|
and navigationable without using a mouse.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="0%" target="1.4">
|
|
<title>Move DND functions into LibGimp</title>
|
|
<description>
|
|
<p>
|
|
Move the DND functionality into LibGimp. This needs to be done
|
|
differently for app and plug-ins, but should be handled
|
|
transparently.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="medium" difficulty="medium" status="10%" target="1.4">
|
|
<title>Add more widgets</title>
|
|
<description>
|
|
<p>
|
|
Lost of existing user interface elements can be implemented as
|
|
proper widgets in libgimpui, so they are useable from everywhere.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="easy" status="0%" target="1.4">
|
|
<title>Add an Option to separately switch off the Layer Boundary</title>
|
|
<description>
|
|
<p>
|
|
Currently the Layer boundary (the yellow dotted line around
|
|
the active layer) can only be switched off together with the
|
|
selection. This is evil.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
<entry size="small" difficulty="easy" status="0%" target="1.4">
|
|
<title>Display the Memory Consumption of the Image</title>
|
|
<description>
|
|
<p>
|
|
The current memory size of the image should always be
|
|
available in the interface. Also show the new size of the
|
|
image in the "Resize" and "Set Canvas Size" dialogs.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
</section> <!-- User Interface -->
|
|
|
|
<section>
|
|
<title>Help System</title>
|
|
|
|
<entry size="medium" difficulty="medium" status="0%" target="1.4">
|
|
<title>Rethink Plug-In and Script Help</title>
|
|
<description>
|
|
<p>
|
|
Currently a Plug-In's help file determined by the application
|
|
from it's executable name. This is broken because is does not
|
|
cover multiple PDB procedures implemented in one Plug-In.
|
|
</p>
|
|
<p>
|
|
A possible solution would be to pass the relative path to the
|
|
help file to gimp_install_procedure(). A similar fix should be
|
|
applied to Script-Fu and Perl.
|
|
</p>
|
|
</description>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
</section> <!-- Help System -->
|
|
|
|
<section>
|
|
<title>Internationalization</title>
|
|
|
|
<entry size="small" difficulty="medium" status="0%" target="1.4">
|
|
<title>Context-Sensitive Translations</title>
|
|
<description>
|
|
<p>
|
|
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.
|
|
</p>
|
|
<p>
|
|
There is a patch with a possible solution on ftp.gimp.org,
|
|
but actually we'd like something cleaner if possible.
|
|
</p>
|
|
</description>
|
|
<url>ftp://ftp.gimp.org/pub/gimp/patches/gimp-chyla-20001207-0.patch</url>
|
|
<contact>
|
|
GIMP Developer List <gimp-developer@xcf.berkeley.edu>
|
|
</contact>
|
|
</entry>
|
|
|
|
</section> <!-- Internationalization -->
|
|
|
|
</todo>
|