I've been putting together a chart detailing all of the interactions,
objects, menus and interface components we've discussed. In doing so,
I've run across a few pieces of conflicting and unclear information I'd
like to get your help with. I'm not done yet, so this isn't a complete
view of the system, but getting these details straightened out should
help us have a better view of how all of these pieces are interrelated.
Comments and corrections are welcome, as always.
Right Click
==============================
In various places we have stated that the right-click is responsible
for:
1. Repositioning the main (vertical) menu to directly under the mouse
(GNUstep guidelines)
2. Popping up circular (context) menus (I assume this is accessed via
right click, as context menus often are) (Etoile Flash presentation)
3. Toggling between Pick and Drop mode and the regular mode (Pick and
Drop guidelines)
I don't think all of these can be accomplished via a right click, as
they seem incompatible with one another. I would argue against creating
modes as much as possible, so I would prefer that Pick and Drop were
handled via a different type of interaction, perhaps by selecting the
item to be picked and pressing the Pick key (see Dedicated Keys below),
or selecting the item to be picked and dragging it to the Lower Left
corner (see Hot Corners below) to toggle the Shelf on, and releasing
the item over the Shelf. Dropping would be the result of either
pressing the Drop key at the insertion point or dragging the item to be
dropped to the Lower Left corner to toggle the Shelf off and releasing
at the insertion point.
Menus
==============================
There seems to be interest in using both vertical menus and circular
menus. Should we use both types, and, if so, how?
Here's my proposal:
Both types have their advantages, so we should use both. Circular menus
should be used for items which don't change regularly and have few
top-level options, vertical menus should be use items which can change
regularly and have a lot of items. It makes the most sense for me to
use vertical menus to manage Component interaction with Objects (Text,
Table, Image, Audio, Person, Video, etc), and use circular menus to
manage interaction with the organizational items, such as Projects,
Documents, and Shelves and Applets.
Since Components can be installed by the user to suit their methods of
interaction with an Object, a vertical menu gives the most flexibility
in terms of positioning within a list and number of items. It also
makes sense since Objects will be the things most frequently interacted
with to be able to use tear off menus to customize the work
environment.
Things like Documents and Projects will have well-defined methods of
interaction. They are the prime candidate for circular menus, since
users will likely not be creating Components to interact with them.
Here are my initial ideas for items in the circular menus (I'm sure
there are things I haven't thought of yet):
Project
-----------------------------
- New
-- Project
-- Document
-- Object
-- Annotation
- Duplicate
- Hide/Show Annotations
- Preferences
-- Background
-- Metadata
Document
-----------------------------
- New Object
- Duplicate
- Save Checkpoint
- Publish
- View Checkpoint History
- Synchronize (for multi-user documents)
- Preferences
-- Size
-- Margins
-- Metadata
Shelf
-----------------------------
- New Applet
Applet
-----------------------------
- Preferences
-- Sticky
-- (Additional Preferences as they relate to the specific Applet)
All Objects would have two default items in their vertical menus:
Install New Component, and Link (to pipe data from one Object to
another). All others would be customizable.
You may notice that some standard menu items are missing: Undo, Redo,
Delete, Pick, Drop (or Cut, Copy, Paste). I suggest that these be made
Dedicated Keys.
Dedicated Keys
==============================
Certain actions will be so frequent and/or work on so many types of
items (Objects, Documents, Projects), it makes sense to dedicate
keyboard keys to them rather than take up menu space. I suggest the
following items get dedicated keys (probably F1 - F12):
- Zoom In
- Zoom Out
- Search (Search Again would be Shift-Search)
- Hide/Show Shelf
- Scroll (for moving through a zoomed-in Project, I'll explain below)
- Pick (Pick a Copy would be Shift-Pick)
- Drop (Drop a Copy would be Shift-Drop)
- Undo
- Redo
Shelf
==============================
We currently have two different Shelf implementation ideas: Tabbed
Shelf and "Dashboard" Shelf. Both are containers for two types of
information: extremely temporary info and extremely permanent info. The
Shelf stores files which need to be transferred between Projects or as
the result of a Pick -- I call this the Buffer portion of the Shelf.
The Shelf also stores Applets and documents which need to be readily
accessed across many Projects -- I call this the Storage portion of the
Shelf. It is unclear to me whether these should be two visually
distinct sections, or even two totally different Shelves.
I would also like more info on what a Tabbed Shelf offers that a
Dashboard Shelf doesn't. It seems to me to be unnecessary, assuming we
allow Applets to be sticky.
Folders vs Projects
==============================
It has been said that we may use Folders as well as Projects. What is
the advantage to having both? Having two types of containers, when
Projects offer much more functionality over Folders, seems like it
would confuse the user.
Hot Corners
==============================
The four corners are good hot spots for frequently used commands. I
would recommend that the corners be activated on click so as to prevent
accidental activation. I have assigned commands to three of the four
corners:
Upper Left: Zoom Out
Upper Right: Zoom In to current selection
Lower Left: Hide/Show Shelf
That's all for now -- like I said, this outline is incomplete and I'm
sure I've missed a few things here or there, but please weigh in on
these issues because this determines how Etoile will look in the end.
J.