At 09:19 25/09/2004 -0500, Ted Campbell wrote:
>I've created a child window as per the instructions in the PythonCard
>documentation. But when I got it working, I was surprised to find that
>this was a free-standing window -- I was wanting a "child window" that
>operates only within the frame of an existing window. I seem to recall the
>expression "multiple document interface" (MDI) from some programming
>context. Is this possible within the pythonCard framework, i.e., to create
>a child window that is constrained entirely within the bounds of a larger
>application window? Thanks.
short answer: It's not supported directly in PythonCard, but it is in
wxPython, so you should be able to use the wxPython features directly, but
still do some (much) of your program in PythonCard. The wxPython Demo
program includes MDI samples (under "Base frames and Dialogs"). Note the
comment there which says
>Although Microsoft has deprecated the MDI model, wxWindows still supports
>it. Here are a couple samples of how to use it - one straightforward, the
>other showing how the MDI interface can be integrated into a SashWindow
>interface.
long answer: yes, MDI is short for Multiple Document Interface, also known
as Microsoft's 1990's solution to complex UIs. (Not that it was invented by
MS - merely adopted and pushed by them). For a while, MS were preaching
this as *the* way to do complex user interfaces, but they've backed away
from it quite a lot. See
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwue/html/ch10a.asp
and the sub-link to Multiple Window Interface for details (go to the bottom
of the sub-page for reasons for/against choosing MDI).
Most modern programs have turned away from MDI in favour of either SDI
(Single Document interface), or notebook-style ("workbooks" on the MS page
above), or multiple panes using splitters/sashes (and/or docking
sub-windows) to provide user control.
PythonCard (latest version in CVS) supports notebooks - see Kevin's posting
and samples on this list earlier this month (around 13th/14th), and he
indicated that splitter support may happen in the near future.
So - personal answer - avoid it if you can, try one of the other design
approaches.
-- Alex.
|