I propose to build an ASCII art editor. The editor will enable a user to read in a text file, or create a new text file. The user can then edit the file by typing in text, or using basic paint-like tools to edit the text. This will handle some of the complexities involved in vertically aligning text.
This interface is representative of a direct-manipulation interface. The user is allowed to edit the text in a manner more like actually manipulating graphics. It will also be menu-driven, as well as supporting a simple toolbar. This benchmark is similar to some specialized text editors, but is mostly a hybrid between common text editors and painting programs.
This task is representative of using built-in widgets in a way outside the way they were intended. Using a mouse as an input device to put text is not a usual interface. This will test how extensible a tool might be in supporting creative solutions. I will also be implementing a single-level Undo feature to test how difficult this will be.
Some features of both text editors and paint programs I have left out of this benchmark. I will leave out diagonal lines, or other shapes. This would be more a test of skill in writing an algorithm to draw diagonal lines and circles, rather than testing the interface itself. I will also only support one font style and size, for the same reason. There will also be no insert mode for text entry, only overtype mode. These could be tested in a future benchmark.
ArtSCII will be implemented in a variety of windowing operating systems. It will be menu-driven, and will have a toolbar. The following sections describe the interface in more detail.
The File menu will contain standard commands for files: New, Open, Save, Exit. There will be no support for multiple files. New will create a new, empty file. Open will open an existing text file. Save will save the current file, including extra blanks (this is left as an exercise for future benchmarks). Exit will leave the program.
The Edit menu will contain standard editing options: Undo, Cut, Copy, Paste, Clear.
The tool bar will allow the user the quickly select one of seven tools to use. The tools are: Box selection, eraser, brush, text, box, filled box, line. There will also be two other fields for the user to input the character to use when painting. One field will be the horizontal character, and the other will be the character used for vertical lines.