TODO:
=====
* When creating an object and moving the mouse to resize it. Warp the
  pointer to the handle that is being moved.
  
* Change cursors more often, ie. when the mouse is grabbed for
  resizing/moving stuff.
  
* Run purify on Dia. I don't have purify, anyone who has it is welcome
  to try!
  
* Tab order in properties dialogs. (How do you specify this in gtk?)

* If you hold down shift while moving the handle of an 'Element',
  scale while keeping same proportions.
  
* Should be able to change background color.

* Is there a better way to calculate font-properties? Rendering 100 pixel high
  fonts is very slow.
  
* Draw the paper-size on the screen.
  
* Add export to WMF capabilities for windows stuff.

* Accelerators for buttons in the toolbar.

* Implement transitive selection. This means you select an object and all
  objects it is somehow connected to.
  
* resizable groups.

* auto-save backup files

* Add more network objects

* render_object: better distance_from that can be specified by the
  object programmer.
  
* Vector image object (for maps and stuff). CGM? SVG?

* Add pre-selectable stereotypes to all UML objects with stereotypes.

* Add keyboard shortcuts in the "UML - Class" properties dialog.

* In "UML - Class" properties dialog. Scroll to the end of the
  properties list when new properties are added. Same thing with
  operations. 

* Add some kind of 'plug-in api' so that libraries like uml can add new
  functions to the menus (like: load UMX or export SQL ). This is the
  reason that DiagramData was broken out of Diagram and moved to
  lib/diagramdata.h.
  [ this has partly been done with the export filters interface.  More
    to come with adding menu items and such -- James. ]

* Implement guides.  Probably swipe the guide implementation from
  gimp-1.1.

* Change the way plugins are registered.  As we get more plugins, the
  user will probably want a bit more control over what is and isn't
  loaded.  If we are going to do an interface for this, we really need
  some way for plugins to describe what they do (ie. a short description
  and a plugin name to show in a dialog box).


Interesting Stuff from the real Visio:
======================================
This part contains some stuff that exist in the Windows program
Visio. These are not on my "TODO" list for stuff to be implemented
right now, but they are nice to have around in case someone wants to
work with Dia and needs ideas for new cool stuff.

* Move connection points
* Fill patterns
* line patterns
* shadow color
* object corner types
* Editing of groups in a separate window
* Perspecitve point
* Lockable handles
* Rotate stuff, to complex to be implemented in this version.
