Dojo (HowTo)







  Easter Eggs




  Martial Arts

Windows: Who does what, and why
The different implementations

By:David K. Every
©Copyright 1999

Read How Windows work to learn about the basic parts of windows (and the nomenclature that I use).

This article is the very basics on how windows are implemented differently on each System.


This was the first (mainstream) User Interface, and Apple did a lot of research to get windowing right. They did a real good job, and are still the yardstick with which the others should be measured. Work at Xerox-PARC (and some work before) defined the import first steps, like the basic concept of overlapping Windows. But Apple helped define almost everything else we use in this metaphor. For example, the titlebar, grow box, close box, and most of the direct manipulation (dragging Windows around to move them, resizing behaviors, etc.) was done by Apple. Apple did a good job, and windowing is very efficient, easy to hit, easy to use, and clear.

How Windows work on a Mac

With the Mac each window is a separate entity from other windows, and each Window can be moved independently.

Palettes are bound to Applications (and their Windows). When you activate an application, other applications palettes hide themselves, and the active applications palettes appear. This reduces palette clutter.

Windows are grouped by Application --users are interacting with applications, not windows. When you pull an application to the front (by selecting one of its Windows), all of its windows come to the front (its windows come in front of all other windows). This can cause unusual grouping. (In figure: Window 1 and Window 3 belong to the same App).

The Mac supports special "popup" Windows. Like Windows that can be docked at the bottom of the screen, or the control strip.

Other Mac Features:

With the Mac you can dramatically change the look and feel of Windows, a highly customizable UI. Apple is expanding that with themes.

The Mac allows you to have odd shaped Windows, like circular Windows, or complex shapes (though it is rarely use, it is becoming more used with themes).

In some ways the Macs windows have not kept up with the times. Many programs use modal dialogs when they shouldn't, and Windows should support live dragging, and the grouped by Application behavior is a tad anachronistic. In most ways they are still the leaders of the pack, with things like popup Windows, live name editing (Allegro/Sonata), and superior shape support.


Microsoft tends to borrow from others, and try to take whatever seems good and add it into a concophony of all the other Systems. Microsoft Windows borrowed their Window behaviors from older text based Windows, from X-Windows (Unix Windows), and some from the Mac. This has lead to an eclectic and inconsistent Windowing System. Usually, the Windowing uses something called MDI (Multiple Document Interface), which is the parent-child windows that are confusing. Sometimes programmers do their own thing to get around MDI (Microsoft is very guilty of this). Even Microsoft has finally realized that MDI is bad, and are now pushing more developers to use SDI (Single Document Interface), which behaves more like the Mac. But it will take 5 or 10 years to make SDI the way most Apps works, until then there will be more Apps sometimes using MDI and sometimes using SDI behaviors (and of course, sometimes doing their own thing). This "sometimes" one way, and "sometimes" another way stuff, makes a bad windowing interface even worse since there is even less predictability.

How Windows work on Microsoft Windows

In MS-Windows there are parent Windows, and child Windows. Child Windows are bound to their parent windows, and embedded inside them. When you move a parent window, the contained child windows move as well. (Children are dependent on parents and contained in them).

Child Windows are bound to their parent windows, but independent of other child windows. You can move a child window anywhere inside of the parent Window that you want -- but it will be cut off by the edges of the parent window.

The default behavior (MDI) did not originally support palettes, so many programs support them differently. Newer tools (MFC) have added palette support, but now Microsoft is recommending that programmers go away from using MDI altogether.

Often Palettes are panes inside a window, but sometimes there are Palettes that behave like Mac. Sometimes there are palettes that behave like floating child windows (they are bound inside the parent Window). Usually, there are palettes that are bound to the edges of the parent window (relocatable) -- but, sometimes those can be torn off and behave like normal (?) floating child palettes. If all this sounds confusing and inconsistent, it is.

Windows are grouped by Application --users are interacting with applications, not windows. When you pull an application (parent window) to the front, it will obstruct all other windows. In order to maximize the size of a child Window, you must also maximize the size of the parent.

There are no popup windows like the Macs control strip or dockable windows. However, the Toolbar behaves sort of like that (it is one special floating Window, that can hide/popup with the proper setting). Also because Microsoft writes both the OS and the Applications, they do special things that others can't -- like having special floating Windows to select among MS-Office applications.

MS-Windows does not allow for odd shaped Windows, rectangles only.

In most ways the Microsoft's Windows have not caught up with the times. Many programs use modal dialogs when they shouldn't, and there are a few styles of interfaces. The older Win1 and Win2 style (with weird tiling Windows). Win3's overlapping Windows. Win95's style of overlapping Windows (aesthetically a little different). Most apps use MDI, but some do not. Windows does not support live dragging (without add-ins).And there are lots of inconsistencies making the interface confusing, and Microsoft is adding more features, making it less consistent as time goes on.


NeXT windows behave mostly like the Mac windows. But there were many little advantages, because NeXT machines were far more expensive (powerful) than early Macs. So they had live dragging and resizing. They could be resized from most edges.

The big advantage with NeXT is the way that windows overlap each other. Since a window is independent of all other windows, when you bring a NeXT window forward, you don't bring ALL the window for that applications forward (unlike on the Mac). This forces there to be System wide window management tools, and causes some problems, but it is better overall. Like all systems, NeXT is not without some confusing things (like poor differentiation between palettes, dialogs and windows). But it is a good windowing system, and I will expand the details of this section over time.


BeWindows behave mostly like the Mac windows, except they have menus embedded inside them, and they have live dragging. They also use color-only highlighting like MS-Windows does (I believe). I'll add the BeOS stuff over time.

[return to Windows]

Created: 04/22/98
Updated: 11/09/02

Top of page

Top of Section