ftd aims to be a tool for drawing text-based diagrams in the same vein as OmniGraffle, Visio, and Monodraw. It should provide a UI that is WYSIWYG and should be "pixel perfect."
- Must be cross-platform and support Desktop Linux/Windows/Mac. The UI must be consistent across all platforms.
- Must be released in source and binary form as public domain (i.e. prevent crippling from the bondage of licensing).
- A Canvas is made up of Cells. A Cell supports the placement of a single unicode character.
- Support a canvas of at minimum 512x512 Cells.
- Canvas size is inferred by cell occupancy.
- Support placing a Rectangle shape in a canvas. The minimum length must be 2 cells. The minimum height must be 2 cells. We say an NxM Rectangle has length N and height M. Examples:
2x2:
┌┐
└┘
3x2:
┌─┐
└─┘
3x3:
┌─┐
│ │
└─┘
- Support embedding text within the borders of a Rectangle shape. A Rectangle with embedded text is colloquially called a TextBox.
-
Support a Line shape.
-
Lines may have configurable arrow heads.
-
Lines must support attachment to a Rectangle.
-
A Rectangle must support 4 attachment points, in the North/South and East/West mid-points of the borders, specifically the outside mid-point of each side in the rectangle.
-
Rectangle shape must support snap-in with lines using attachment points. At minimum, there should be 4 attachment points: the outside mid-point of each side in the rectangle.
-
Pencil tool with different "tips" (characters), draws will be converted into Rectangles without borders
http://projects.haskell.org/diagrams/