[wxPython] I may need a MDI reality check

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.

Tim Roberts wrote:

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.

I'm glad to hear it. I've always hated MDI apps..why be limited to only
the size of the parent window when placing document windows? The result
is that you end up having to maximize the parent window, whcih covers up
everything else. I think this whole design philosophy started when
people had smaller monitors and didn't use more than one application at
the same time. I think the lesson here is don't even try to use MDI.

By the way, MDI is only suppoprted in a kludgy way by wxGTK (and
wxMotif, and I don't know about wxMac), so if you are writing a cross
platform app, you really don't want to do it!

-Chris

···

--
Christopher Barker, Ph.D.
Oceanographer
                                        
NOAA/OR&R/HAZMAT (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception

Chris.Barker@noaa.gov

Greetings,

Tim wrote:

<SNIP>

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.

I doubt if throwing an object tree and info panel on the left side of the
MDI parent window will surprise very many users.

Most non-power-users never use shortcuts.

Sure they do. I've known plenty that used alt-tab to flip over to Outlook
to write me hate mail about the Java apps I inflicted upon them. :wink:

This is not an arbitrary decision. Microsoft has spent a considerable
fortune doing user interface studies,

Could you have made a more dubious appeal to authority than Microsoft?

hidden camera observations of users of all experience levels, surveys, and
so on.

Thanks for the warning! I've managed to find and deactivate all their
hidden cameras. :slight_smile:

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.

As much as I'd like to make Microsoft look bad, I'd better do what they say
from now on so they don't blackmail me with those hidden camera
observations... :wink:

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.

Well, there's probably hundreds of things you can do with Gimp. My app will
not be anywhere as complex or useful as 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.

Is MDI a bad idea for all document-based applications or just the
elephantine ones that most users would only open two or three documents in
at a time? What was their reasoning?

I'm not bound to the MDI concept for my app. It wouldn't be uncommon for a
user to have 10 or 20 heterogeneous objects of various complexities open at
once. If there's a more user-friendly paradigm than an object browser with
MDI then I'd be happy to learn and use it.

--
- Tim Roberts, timr@probo.com
  Providenza & Boekelheide, Inc.

Sam

Greetings,

Tim Roberts wrote:
> 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.

I'm glad to hear it. I've always hated MDI apps..why be limited to only
the size of the parent window when placing document windows? The result
is that you end up having to maximize the parent window, whcih covers up
everything else.

Ah, I'm guessing you're a Linux user.

I've known close to fifty UNIX users and every one of them has liked to have
multiple apps visible on their screen. I've known hundreds of Windows users
and most, but not all, of them like to maximize their applications and
switch between them using the taskbar or alt-tab.

I think this whole design philosophy started when
people had smaller monitors and didn't use more than one application at
the same time. I think the lesson here is don't even try to use MDI.

The lesson I'm taking from this is that I'll annoy over 20% of my target
users by using MDI in my application. That's really something to consider.

We're probably not salesmen or marketers here. We're most likely
programmers, engineers, scientists, and students. We don't have to counter
every point or objection. It's far better to weigh the pros and cons of
alternatives.

So far I've considered:
1). Multiple windows.
2). Notebooks full of notebooks. Tabs within tabs.
3). MDI.

I wonder if MDI is as much of a resource hog as the Notebook technique.
Some users would commonly have 16 or so objects open at once.

By the way, MDI is only suppoprted in a kludgy way by wxGTK (and
wxMotif, and I don't know about wxMac), so if you are writing a cross
platform app, you really don't want to do it!

How bad is MDI on wxGTK?

I'm still in the planning and experimenting stage for my app. I'm very open
to suggestions that would be more user-friendly and portable than MDI.

-Chris

--
Christopher Barker, Ph.D.
Oceanographer

Oceanographer? That sounds like an interesting line of work.

Sam

How bad is MDI on wxGTK?

It's implemented with a wxNotebook.

···

--
Robin Dunn
Software Craftsman
robin@AllDunn.com Java give you jitters?
http://wxPython.org Relax with wxPython!

Thanks Chris for your great demo of the led's. I can now understand much of
the drawing + looking at the demo code and will be using it in one of my apps
for gnuMed (my BMI calculator (body mass index) - where I need to be able to
draw elipses etc).

Question:

one seems to be able to set the wxPen to a rgb colour value, but I couldn't
find the syntax anywhere to set the wxBrush, except to a named colour.

Can one use rgb with the Brush, if so, could someone help with the syntax.

Thanks

one seems to be able to set the wxPen to a rgb colour value, but I

couldn't

find the syntax anywhere to set the wxBrush, except to a named colour.

Can one use rgb with the Brush, if so, could someone help with the syntax.

Through the magic of SWIG and yours truly, these are equivallent:

    b = wxBrush("BLUE", wxSOLID)
    b = wxBrush("#0000FF", wxSOLID)
    b = wxBrush(wxColour(0,0,255), wxSOLID)

The two strings are automatically converted to a wxColour by a SWIG typemap.

···

--
Robin Dunn
Software Craftsman
robin@AllDunn.com Java give you jitters?
http://wxPython.org Relax with wxPython!

Robin Dunn wrote:

Through the magic of SWIG and yours truly, these are equivallent:

    b = wxBrush("BLUE", wxSOLID)
    b = wxBrush("#0000FF", wxSOLID)
    b = wxBrush(wxColour(0,0,255), wxSOLID)

The two strings are automatically converted to a wxColour by a SWIG typemap.

Cool! I had no idea you could do this, now I can go chop a bunch of code
out of my stuff that did a string-->wxColor translation.

Robin, you are a wonder.

-Chris

···

--
Christopher Barker, Ph.D.
Oceanographer
                                        
NOAA/OR&R/HAZMAT (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception

Chris.Barker@noaa.gov

Sam Leming wrote:

> I'm glad to hear it. I've always hated MDI apps..why be limited to only
> the size of the parent window when placing document windows? The result
> is that you end up having to maximize the parent window, whcih covers up
> everything else.

Ah, I'm guessing you're a Linux user.

You bet.

I've known close to fifty UNIX users and every one of them has liked to have
multiple apps visible on their screen. I've known hundreds of Windows users
and most, but not all, of them like to maximize their applications and
switch between them using the taskbar or alt-tab.

Is it cause or effect? One thought is that until recently Windows really
hasn't been able to run multiple apps at the same time anyway. It did
task switching, but not multitasking (at least not well). Also, the
nature of *nix is that you use a lot of little applications, that each
do a different part of your task, rather than one single large
integrated application. Also, on Window, MDI is pretty common, so you
are pretty much forced to maximize an app to use it!

The lesson I'm taking from this is that I'll annoy over 20% of my target
users by using MDI in my application. That's really something to consider.

I guess the next question is how much of the rest of your audience will
be annoyed if you don't use it :slight_smile:

I wonder if MDI is as much of a resource hog as the Notebook technique.
Some users would commonly have 16 or so objects open at once.

That's alot of objects. I don't think having 16 windows open at once
would be all that usefull with or without MDI, What you need is a good
way to switch between the different objects, and bring the ones you want
forward easily. Some kind of tree view or list box sound promicing here.
(and maybe some kind of alt+tab switching as well)

By the way, on Linux I use KDE, and at+tab switch between apps all the
time. What I don't want is for a window that is not in focus to
disappear altogether, I still want to be able to read it.

How bad is MDI on wxGTK?

It is implimented as a NOtebook control, so you would be better off
building your interface around a notebook yourself, of you think that's
a good option.

Oceanographer? That sounds like an interesting line of work.

It is, but I still spend most of my day parked in fronmt of a computer
like most of the rest of you!

-Chris

···

--
Christopher Barker, Ph.D.
Oceanographer
                                        
NOAA/OR&R/HAZMAT (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception

Chris.Barker@noaa.gov

Hey Chris, you've just gotto be as dumb as me to ask the right questions in
the first place. It's amazing what you can uncover!!!!!. Your right, Robin is
a wonder.

Regards

···

On Friday 07 June 2002 2:19 am, you wrote:

Robin Dunn wrote:
> Through the magic of SWIG and yours truly, these are equivallent:
>
> b = wxBrush("BLUE", wxSOLID)
> b = wxBrush("#0000FF", wxSOLID)
> b = wxBrush(wxColour(0,0,255), wxSOLID)
>
> The two strings are automatically converted to a wxColour by a SWIG
> typemap.

Cool! I had no idea you could do this, now I can go chop a bunch of code
out of my stuff that did a string-->wxColor translation.

Robin, you are a wonder.

-Chris