123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550 |
- <!-- 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="90%" target="1.4">
- <title>Port to glib-2.0 and gtk+-2.0</title>
- <description>
- <p>
- Most of the porting work is completed. By default all files
- are compiled with the DISABLE_DEPRECATED definitions that
- prevent us from using deprecated API. Some files however still
- work around this. Mostly this is because they use legacy
- widgets like GtkCList, GtkList or GtkPreview.
- </p>
- </description>
- <contact>
- GIMP Developer List <gimp-developer@xcf.berkeley.edu>
- </contact>
- </entry>
- <entry size="medium" difficulty="easy" status="95%" 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="90%" 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>
- <entry size="small" difficulty="easy" status="0%" target="1.4">
- <title>Image/File Information</title>
- <description>
- <p>
- Additionally to the image comment, GIMP should save and
- manage File Information like "description", "keywords",
- "copyright", "year", etc.
- </p>
- <p>
- File Info data sets should be saveable separately and
- importable from standard formats. See also
- <a href="http://bugzilla.gnome.org/show_bug.cgi?id=56443">this
- bug-report></a>.
- </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="100%" 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="90%" 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="90%" 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="100%" 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="20%" 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>Tools</title>
- <entry size="medium" difficulty="advanced" status="20%" target="1.4">
- <title>Rewrite Path Tool</title>
- <description>
- <p>
- The Path tool should be rewritten from scratch.
- </p>
- </description>
- <contact>
- GIMP Developer List <gimp-developer@xcf.berkeley.edu>
- </contact>
- </entry>
-
- <entry size="medium" difficulty="advanced" status="50%" target="1.4">
- <title>Rewrite Text Tool</title>
- <description>
- <p>
- The Text tool should be rewritten from scratch using Pango to
- layout and PangoFT2 to render.
- </p>
- </description>
- <contact>
- GIMP Developer List <gimp-developer@xcf.berkeley.edu>
- </contact>
- </entry>
- <entry size="small" difficulty="medium" status="0%" target="1.4">
- <title>Add Options to "Stroke"</title>
- <description>
- <p>
- The "Stroke" function should be configurable to optionally
- stroke inside or outside the current selection only.
- </p>
- </description>
- <contact>
- GIMP Developer List <gimp-developer@xcf.berkeley.edu>
- </contact>
- </entry>
- <entry size="small" difficulty="medium" status="0%" target="1.4">
- <title>Allow Transformations on Layer Masks</title>
- <description>
- <p>
- Layers that have masks attached can currently not be manipulated
- using the Transform Tool. It shouldn't be too hard to extend the
- Transform Tool to handle layers with masks correctly.
- </p>
- </description>
- <contact>
- GIMP Developer List <gimp-developer@xcf.berkeley.edu>
- </contact>
- </entry>
- </section> <!-- Tools -->
- <section>
- <title>LibGimp</title>
- <entry size="medium" difficulty="medium" status="95%" 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="30%" 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="95%" 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="90%" 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="10%" 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. This
- would also fix the problem that many plug-ins still use the
- deprecated GtkPreview widget.
- </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>Implement "Open into layer"</title>
- <description>
- <p>
- Add "Open into layer" that will load a file into the
- current image as a new layer (or layers).
- </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 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="90%" 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="60%" 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. GTK+-2.0 has very much
- improved in this area. We need to go through all our dialogs and
- install the relevant hooks to get a reasonable focus chain.
- </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="20%" 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="100%" 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="50%" 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>
|