
High Priority:
==============


* update About panel (draw text using AGG?)

* implement full set of properties for each object type
	(FillStroke?, BitmapStroke?)
	-> investigate "Opacity" setting for Fill and Bitmap objects

* "EditObjectAction" is now used much more frequently, it needs to tell
	its copies of objects to forget their cache, otherwise RAM is wasted.


* port more filters from ArtPaint (maybe Emboss and some of the auto
	correction filters?)

* do a Hue Shift filter

* do a WarpSharp filter using libwarpsharp.so :-)

* find solution for "cache becomes invalid unnecessarily" problem in
	BrushStroke::SetToPropertyObject()

---

* support B_MOUSE_WHEEL_CHANGED in Property list and Text tool text input view

* drag'n'drop objects from Object list to Layer list

* "Merge Layers" mode that keeps objects

* "Freeze" only selected objects

* add Gradient tool

* Circle and Rectangle tool

* display common Properties for multiple selected objects and allow editing them, applying the value to each same property of the selected objects

---

* reimplement string lookup using map (string->string instead of index->string)

* progress display when saving
	-> detaching of saving into separate threads would be nice

* redesign Stroke::Draw() (break up in non-virtual Stroke::Draw()
	(which uses cache if available) and non-cache based virtual
	implementation)

* make new base class for objects,
	-> split up into objects, that modify a bitmap in some certain way
		(Renderer), and classes that provide an alpha bitmap for the Renderer
		to know which parts to modify if no alpha bitmap is present, the
		entire bitmap gets modified

* investigate transparency problems when blending in linear RGB


Medium Priority:
================

* better slider control width numerical input (text/slider combo)

* selection of multiple items with second mouse button in list views

* duplicate history items (n number of instances, with xy offset each)

* invers order for selected history items

* port more filters from ArtPaint

* implement flattening a BMessage in a TIFF tag
	-> reimplement project saving to use TIFF
	-> thereby avoid having stuff in RAM twice while loading/saving


Low Priority:
=============

* finish printing (hard job with buggy file drivers and no real printer!)

* numbering of unnamed canvas

* settings:
	- the gamma used to linearize R'G'B'


Would be nice:
==============

* try to obtain LZO licence
	-> using ZLIB for now

* search and replace for object colors,
* contrast and brightness for object colors?

* combine bottom layers to speed up blending while drawing

* grouping of objects
	- needs outline listviews

* selections
	-> "done" for copying rectangular area to the system clipboard

* attachable layer effects

* redesign layers to use something else than bitmaps (tiles)

* it might be smart to split up pixel data into indiviual channels
	(would help compression)

* use swapping to lay off unused tiles of layers
	-> tile should be system page size, so we would actually use the
		systems VM automatically

* full implementation of compositing tree rather than list of layers
	-> needs outline list view too

* implement global settings (class) file for DimensionControl
	(user addable dimensions), NodeWatching!

* per canvas "styles" and color palette, referenced by objects,
	with overrides for individual paremeters.

* clip dirty bounds to actually visible area in CanvasView::Draw() (need to replace BRect with BRegion though)!
  -> should be awesome improvement in speed when zoomed in far enough
  -> on the other hand, user will most likely do changes to pretty much the
     visible region anyways

* make progress indication and coordinate info two separate parts in the info view

