Multiple-document interface: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
Alter: url. URLs might have been anonymized. | Use this bot. Report bugs. | Suggested by AManWithNoPlan | #UCB_CommandLine
Kylras (talk | contribs)
Link suggestions feature: 2 links added.
 
(6 intermediate revisions by 5 users not shown)
Line 1:
{{Short description|Type of software application interface}}{{Nf|date=August 2024}}[[Image:Some X windows.svg|thumb|An example of a multiple-document interface layout]]
A '''multiple-document interface''' ('''MDI''') is a [[graphical user interface]] in which multiple windows reside under a single parent window. Such systems often allow child windows to embed other windows inside them as well, creating complex [[Hierarchy#Nested hierarchy|nested hierarchies]]. This contrasts with '''single-document interfaces''' ('''SDI''') where all windows are independent of each other.
 
Line 9:
Some applications allow the user to switch between these modes at their choosing, depending on personal preference or the task at hand.
 
Nearly all [[graphical user interface]] toolkits to date provide at least one solution for designing MDIs. A notable exception was [[Cocoa (API)|Apple's Cocoa API]] until the advent of tabbed window groups in [[MacOS High Sierra]]. The [[Java (programming language)|Java]] GUI toolkit, [[Swing (Java)|Swing]], for instance, provides the class {{Javadoc:SE|package=javax.swing|javax/swing|JDesktopPane|module=java.desktop}} which serves as a container for individual frames (class {{Javadoc:SE|package=javax.swing|javax/swing|JInternalFrame|module=java.desktop}}). [[GTK]] lacks any standardized support for MDI.
 
===Advantages===
* With multiple-document interfaces (and also [[tabbed document interface]]s), a single [[menu bar]] and/or [[toolbar]] is shared between all child windows, reducing clutter and increasing efficient use of screen space. This argument is less relevant on an operating system which uses a common menu bar.
* An application's child windows can be hidden/shown/minimized/maximized as a whole.
* Features such as "Tile" and "Cascade" can be implemented for the child windows.
* Authors of [[Cross-platform software|cross-platform]] applications can provide their users with consistent application behaviour between platforms.
* If the windowing environment and OS lack good window management, the application author can implement it themselves.
* Modularity: An advanced window manager can be upgraded independently of the applications.
Line 41:
* [[Kate (text editor)|Kate]]: Text editor designed for the [[KDE Software Compilation]], with advanced features and a sophisticated MDI
* [[Macromedia Studio]] for Windows: a hybrid interface; TDI unless document windows are un-maximized. (They are maximized by default.)
* [[Microsoft Excel]] 2003: SDI if you start new instances of the application, but MDI if you click the "File ? New" menu (but child windows optionally appear on the OS taskbar). SDI only as of 2013.
* [[Microsoft Word]] 2003: MDI until [[Microsoft Office]] 97. After 2000, Word has a [[Multiple Top-Level Windows Interface]], thus exposing to shell individual SDI instances, while the operating system recognizes it as a single instance of an MDI application. In Word 2000, this was the only interface available, but 2002 and later offer MDI as an option. [[Microsoft Foundation Classes]] (which Office is loosely based on) supports this metaphor since version 7.0, as a new feature in [[Visual Studio]] 2002. SDI only as of 2013.
* [[Mozilla Firefox|Firefox]]: TDI by default, can be SDI
Line 83:
* [[Visual Studio|Visual Studio 6]]
* [[Visual Studio .NET]]
* [[Visual Studio Code]]
* [[RSS Bandit]]
* [[JEdit]]
Line 99 ⟶ 100:
* [[Tiling window manager]]
* [[Integrated development environment]]
* [[Center stage (user interface)]] - a user interface pattern used with single-document or IDE-style interfaces
 
==References==