| > Still, I wonder if there is still a place for MDI that we are missing out on because it is out of style. Image editing is the obvious example. Most image editors use tabs and this is annoying because you often want to have multiple images visible at the same time - especially when you are painting something and want to have references or have a palette in a separate window that you pick colors from. Also it is useful to have two or more views of the same image in different zoom levels visible at the same time (some applications provide a special case for this, but really is just a hack for not having true MDI). FWIW Krita has a MDI mode, although it implements the functionality itself (well, Qt does it, but that is details) and it is sub-par to the native functionality (e.g. when moving or resizing windows you always get an outline like in Win3.1 instead of having the window follow the mouse). Another example is chat programs - i always loved how i could tile multiple channel windows in mIRC, for example (all other - graphical - IRC clients i've used over the years only allow a single channel to be visible). Text editors are sometimes good, although this probably needs to be paired with a tabbed interface. But over the last few years i actually ended up using an old C compiler (Borland C... well, it also does C++ but i don't use that :-P), partly because of its compilation speed but also because i like the MDI interface [1] (although i dislike the ugly Vista theme... i think one of the reasons people stopped using MDI is because of how ugly the theme looks and how big and wasteful the window borders are) because i can overlap and move windows around. Generally speaking i think whenever you want to have multiple views visible at the same time in a program with some elements of the program always visible (e.g. a toolbar, a property editor, etc), MDI is helpful. Docked and tabbed interfaces very often end up with elements being stretched and/or jumbled and forced to align with each other. Of course some of that stuff could also be done with virtual desktops, but often it is useful to be able to take the entire "window group" and move it around in the screen or minimize it. Some window managers allow you to do such things though (e.g. in Window Maker - my favorite window manager - you can hide all the windows of a program in one go, select a bunch of windows and move them to different virtual desktops with the mouse wheel and move them around as a group). Interestingly Mac OS X solves some of that by using the global menu bar as the static always-there element and the auto-hiding inspectors. Or at least did until some years ago, some of Apple's newer apps go for the docked panel approach whereas previously it would be a floating inspector. [1] https://i.imgur.com/SPJKrjE.png |