[GUI] ANNOUNCE: Specification for abstract user interface for
Windows, GNOME and Aqua
Wolfgang Thaller
wolfgang.thaller@gmx.net
Mon, 11 Aug 2003 23:29:13 +0200
Hello Everyone!
Those documents you posted are both great work, IMHO.
Just some fine points;
Axel Simon wrote:
> - have toolbars, each toolbar item correspond to a menu item
> - have toolboxes which lets the user choose between, well, tools
Perfect.
> - have two application setups, document centered and control oriented
Yes, that's a good starting point. Should we postpone the following
more advanced features to later versions of the CGA?
*) multiple document types
For different document types, most non-mac people will probably want
different menus rather than just disabling menu items. On the mac, this
wouldn't be the right thing to do, although there _have_ been respected
Mac OS programs that did that to a limited extent.
*) multi-window documents
Some applications open a separate window for editing objects which are
part of one document (imagine a word-processing app that opens a
separate formula editor window when you double-click a formula).
*) Control-oriented applications and menu bars:
Some control-oriented applications have menu bars --- a MP3 player
application might have one, for example. Others consist of one or more
dialog windows and no application-specific menu commands.
Do Win32 and GNOME users expect the main dialog window to have a menu
bar with the standard commands (About, Quit, Edit commands), and
nothing else? Mac users certainly do, but I've seen many small Windows
& Unix utility apps display just a dialog without any menus.
And now about Krasimir's document:
*) The Services menu in Aqua is filled by the OS. It's contents are
defined by other applications installed on the system. For example,
Apple's Mail application provides "Send Selection" and "Send Mail To"
entries that work on the currently selected text in any application.
In order to support this, an application has to provide information
about what is currenlty selected; for the standard text widgets, this
can be handled transparently by the backend. For other things (the
mechanism isn't limited to text), it's probably too platform-specific
to bother.
*) Open Dialogs on Mac OS allow multiple selection (so you can open
several files at once).
*) Mac application have to specify the document types they support
(together with their associated ic ons, extensions and traditional Mac
OS file type codes), in a separate "property list" file that is
included within the application package. It cannot be specified at
runtime because it has to be available before the application is ever
run.
*) Apart from the use of file extensions, Mac OS also supports
four-character type codes ("HFS file types"). Apple currently
recommends using both, although many programs only use one of the two
methods.
In the open dialog box, a text editor would need to display
*) all files whose HFS file type is 'TEXT'
and *) all files whose HFS file type is unspecified and whose name ends
with ".txt".
For application-specific file formats this is simpler, as it will be
sufficient to use just file extensions.
Also, Mac OS doesn't usually display a "Show all files" option (in most
cases, they don't make sense, after all). Some applications (plain text
editors, hex editors, etc.), provide one, so maybe add another Bool
parameter for that.
I've seen at least one Java application that was next to unusable on
the mac because it expected users to choose "*.*" from a file type menu
that didn't exist in the mac version...
*) Opening files via drag&drop:
In order to open a file on the mac, you drag it to the Application's
icon, not to one of it's window. Dragging something to a window means:
insert it _into_ that document (if possible), not open a new document.
Whether or not it is possible to drag a particular file to the
application icon is determined by the list of supported document types
that I mentioned earlier.
*) The "Zoom" command (Window menu) and the Zoom (+) button in the
window title bar
(both do the same).
Apart from un-minimizing a window, zoom also switches a window between
a user defined size and position and an "optimal" application defined
size and position.
This is similar to the maximize button on other platforms, but it's not
the same. The application-defined size needn't be the full screen; for
example, for word-processing apps, it shouldn't be wider than the
documen'ts page width, and for image processing apps it shouldn't be
larger than the image.
Zooming to full-screen is a good choice, but seldom perfect. For this
to work perfectly, the optimal size has to be calculated by the
application. It's probably OK to ignore this in a first version and add
it as an optional feature later.
Cheers,
Wolfgang