KImageShop design document:
---------------------------

KImageShop is pre-alpha! This is more an idea collection than a design document
right now.

Class overview:
---------------

KImageShopApp
 - derived form koApplication

KImageShopShell
 - derived from koMainWindow

KImageShopDoc
 - derived from Canvas
 - holds and manages the image data

KImageShopView
 - derived from QWidget (implements koViewIf)
 - manages menu-/toolbars and GUI elements in general
 - holds the canvasview

Canvas
 - holds, manages and modifies the image data

CanvasView
 - derived from QWidget
 - forwards events to KImageShopView
 - gets managed/painted by the canvas

Tool
 - tool base class
 - has direct access to the canvas

MoveTool
 - derived from Tool
 - move layers/selections

MoveCommand
 - command fot moving layers (undo/redo)

BrushTool
 - derived from Tool
 - paint with a brush on the canvas

Brush
 - a brush class
 - can load/save brushes

Layer
 - a image layer

LayerList
 - a list if several layers

Channel
 - a layer channel

LayerDialog
 - a non-modal dialog for editing layers

LayerView
 - a view for all layers in a canvas
 - provides context menu when clicking RMB for each layer

KImageShopCommand
- generic command class

Ideas:
------

- Use KScript to implement a scripting server later.

