MDI - Multiple Document Interface. A GUI interface widget.

As Darren New once posted, "Multiple Document Interface, or some such. Each document gets a sub-window inside the main application window. A left-over from when windows took a large percentage of resources to make work, back in the Win3 days, so it was more efficient to have one document in the same window." Also, Windows users want to iconify an application with all its windows, and their window manager doesn't provide for what X11 adepts regard as a "wm group".

Robert Heller says "this is the window-manager-in-a-window hack".

Ilya Zakharevich once analyzed that "group-like z-order behavior" is the only real significance to MDI--well, that, along with group minimize/restore.

GPS has posted a page on Internal Movable Windows that looks a lot like MDI.

Those who are contemplating adding MDI to their applications should be aware that it is not universally loved, and feelings about it run high both ways. The TCT has got into extensive discussions about it [L1 ], and there was also quite a thread at Fog Creek Software's discussion list [L2 ]. Many people, including a fair number of well-respected usability experts, find it downright evil. Others insist upon it.

Sander van Grieken writes: "It's not just a matter of writing Tk support for it. X11 lacks support for application hinting for MDI and so the WM cannot know what windows to manage and decorate. You're stuck using a 'notebook' approach, or to manage and render the decorations yourself (both suck). See also [L3 ]"

As of 2002, commercial applications sold by Microsoft appear largely to have abandoned MDI. FW: Why would you say that? Office and Works use it pretty much exclusively. slebetman: Because it's partly true. While Excel (at lease Excel 2000) still uses MDI, Word have abandoned it. And to most people MS Word IS Office

escargo 21 Nov 2002 - What part of mkWidgets needs to be downloaded to get the metademo shown in this picture?


[Do readers think this should be inlined in this page?] RS thinks so ;-) FW doesn't, since the image is now broken ;)

Sam Tregar's saMDI [L4 ] looks well-behaved. It depends on stooop.

 What: Myrmeco
 Description: Trial version of a commercial Tcl/Tk IDE for Windows 95/98/2000/NT.
        Supports Multithreads, Unicode, and the Tcl Stubs interface.
        Includes project, command and console view, smart MDI editor with
        color coding of command keywords and comments,
        command keyword editor, Tcl/Tk 8.2 core, and a debugger.  Also
        includes a web builder (MyrmecoWeb),
        MyrmecoWiz, a wizard for generating c/c++ code templates for Tcl
        extensions, MyrmecoTk, a component based framework for GUI applications,
        Salan, a Tcl extension for HTML, CGI, and XML.
        Platform: Windows 95/98/2000/NT 4.0
        Current version is 2.3.
 Updated: 11/1998
 Contact: mailto:[email protected]

 What: PVM
 Description: Paradigm Visual Make is a software development environment
        written in Tcl/Tk.  It incorporates a text editor, software
        project (aka makefile) editor and enables you to develop and
        build your packages within a single program.  It can start an
        external debugger, and execute almost any external text program,
        putting its output into a specialized PVM text window.  It
        looks like a Microsoft MDI application.  Requires Unix, X,
        Tk 4.1 or higher, and xlsfonts.
 Updated: 08/1998
 Contact: mailto:[email protected] (Andrew Guryanov)

ActiveTcl (Frankinet)

 What: MDI
 Where: ???
 Description: A widget to handle multiple documents in a host application
        window.  Using scwoop's composite widget package, it allows any other
        widget to be managed as a client in the MDI host window.  Works
        with STOOOP-2.3/SCWOOP-1.3 and newer.
 Updated: 11/1996
 Contact: mailto:[email protected] (Joel Crisp) ???

 What: Miscellaneous Tcl procs (Kraus)
 Description: mkGeneric - a collection of Tcl 8 commands that contact
        found missing.  Includes a variety of math functions, list functions
        programming constructs, output options, etc.
        mkClasses - a Tcl object class and methods mechanism,
        mkTables - a collection of Tcl scripts that treat lists as if they
        were 'tables' (a list whose elements are themselves lists),
        mkThreads - thread support for Tcl/Tk scripts,
        mkWidgets - megawidget support for Tk, with MDI widget and
         other goodies.
 Updated: 11/2002
 Contact: mailto:[email protected] (Michael Kraus)

 What: Mysund_MDI
 Description: Tcl/Tk package that emulates the Win95/NT Multiple Document
        Interface look and feel.  Requires Tcl/Tk 8.0.
        To make this run on Unix/Linux, take a look at the readme.txt
 Updated: 08/1998
 Contact: mailto:[email protected] (Jesper Svensson)

 What: saMDI
 Description: Multi-Document-Interface (MDI) for Tcl/Tk.  Looks
        more like X window system.  Relies on stooop.
        This version is not for use in a commercial product -
        email contact to make arrangements.
 Updated: 06/1998
 Contact: mailto:[email protected]


Mtiwidgets apparently offers an mtiwidgets::mdiframe widget.

Tk::MDI [L5 ] is available for Perl/Tk.

From the Tk (and a more practical) perspective, what is the difference between an MDI and Tk's notebooks?

FW: The MDI model is where an application window is treated like a desktop of its own, with child windows (typically) individual documents. In MDI terms, a tabbed notebook is much like an MDI with a bar to switch documents and with child windows that can't be unmaximized.

Larry Smith See also WeeDesk.

Bryan Oakley From a practical standpoint there is not much difference between MDI and tabs. MDI gives you variable sized windows whereas tabs give you uniformly sized windows, but they both serve the purpose of giving you multiple views or instances or windows or whatever.

From a usability point of view, however, there is a world of difference. In a nutshell, MDI forces the user to learn two desktop metaphors and juggle between them -- the real desktop and your apps simulated desktop. Window management requires more cognitive effort for no real gain.

escargo - From a usability and uniformity viewpoint, I would like to be able to switch between documents the same way I switch between windows. It is confusing to be able to use ALT-TAB to switch between applications (and messages in Outlook), but NOT be able to use ALT-TAB to switch between documents when using Word on Microsoft Windows