I've been thinking more today about Treatise's documents (projects), and their basic organisational structure.
I've put together a UI mockup for a sample Treatise project, and I'm soliciting feedback.
You can view the mockup with or without an annotated overlay; here's
the <a href="http://www.scotlandsoftware.com/images/treatise/treatise_ui_mockup_annotated.png">annotated screenshot</a>, and here's the
<a href="http://www.scotlandsoftware.com/images/treatise/treatise_ui_mockup.png">plain screenshot</a>. Please don't distribute or
republish these images.
A few clarifying notes:
- The horiztonal area just above the main editing area, which shows the name of the Section or Note currently being edited,
will likely be a borderless popup menu, offering quick navigation to recently-viewed Sections and Notes. There will also be
keyboard shortcuts to go "back" and "forward", the same way as Project Builder's editing windows work. This will allow
the user to very quickly switch between Sections and Notes without having to resort to the mouse or the lists on the left of
the window. We could also offer keyboard shortcuts to go to the next or previous Section/Note in the list.
- Each section and note will have its own Undo history; the Sections and Notes lists will visually indicate "dirty" documents
somehow; probably by showing their names in bold or similar.
- It's my intention to also offer a project-level Undo, to roll back changes in project metadata (author, copyright, keywords etc),
the organisation of the Sections and Notes lists, and other such "global" edits.
- There will be a Save Project command which will save all edited Sections and Notes at once. There will also be an individual
Save Section/Note command (triggered by command-S) which will save only the currently focused item. I may offer a preference as to
whether command-S saves the current item or the whole project (or indeed just offer customisable keybindings).
- Dragging a Note into the Sections list (but not directly onto a Section in the list) will create a new Section with the dragged
Note's title and content. Dragging a Section into the Notes list will work similarly, perhaps also automatically linking the new Note
to the dragged Section.
- Dragging a Note directly onto a Section in the list will link that Note to that Section. As a convenience, dragging a Section directly
onto a Note in the list will also link the Note to the dragged Section.
- Dragging a Section or Note into the editing area will insert the dragged item's content at the drop location, unless the dragged item
is the one currently being edited (in which case the drop will not be permitted).
- The project file-format will be a package, whose root level contains an XML project metadata file and two directories: Sections and Notes.
These directories' contents will mirror that of the Sections and Notes lists. Individual items will probably be stored as RTFD packages,
at least provisionally during development. Notes will have an additional XML metadata file listing the Sections to which they are linked.
- The "Trash" folders for both Sections and Notes will be folders within the appropriate directories in the file package. I might prevent the user
naming a Section or Note "Trash", or instead use a special name for the Trash folders in the file-package.
- The document window interface will be completely keyboard-navigable. There will be a keyboard shortcut to refocus the Sections and Notes lists
at any time (since you can't just tab out of the editing area, as it will accept tabs as part of the text).
The UI mockup and these notes comprise the very barest fraction of my own development notes for Treatise. Never fear; much further discussion
to come, including the mention of words and phrases such as "markup", "LaTeX", "formatting", "Final Draft", "thesaurus", "stylesheets", "printing",
and many more.
Comments, suggestions and other feedback duly solicited. Many thanks to all those who have offered thoughts and encouragement via email, iChat
and the blog. I'm confident that with your input we can create an intuitive and powerful writing tool for our beloved OS X.