Tim wrote:
An MDI parent frame is not supposed to contain controls. It's just a
container for MDI children. This is not a wxPython thing; it is dictated
by the Windows UI style guides. The user's focus should be drawn to the
MDI children, where the document interaction occurs.
Sam wrote:
Why? I don't see a reason for these strict rules. My point of view is if I
can make 90% of the user's tasks reachable with only one of two clicks then,
barring an extreme performance penalty, I'll gleefully break those silly
guidelines. That, and I want to avoid the "tables within tabs within tabs"
hell I've had to put up with in Java Swing applications. I've grown to HATE
tabs within tabs!
The reason is consistency. When users see an MDI application, they ought to
be able to rely on certain behaviors. Among those reliances is the knowledge
that there won't be any controls in the MDI parent window. Most non-power-
users never use shortcuts.
This is not an arbitrary decision. Microsoft has spent a considerable
fortune doing user interface studies, hidden camera observations of users of
all experience levels, surveys, and so on. They really do have a very good
understanding of what works and what doesn't. When someone writes an
application that violates the guidelines, it makes Windows look bad (many
unsophisticated users don't know the difference), and Microsoft has a strong
incentive to avoid that.
X applications are a hodgepodge of different user interface philosophies,
some good, many bad. I consider myself a sophsticated computer user, but I
still get boggled trying to figure out what to do first when I bring up gimp.
One of the lessons that Microsoft has recently learned is that MDI is a bad
idea for document-based applications. Word 2000 and Excel 2000 have
abandoned MDI altogether; documents now appear in their own windows. Access
still uses MDI, but it has a collection of views into a single database, not
a set of separate databases.
···
--
- Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.