Window (computing)

In computing, a window is a graphical control element. It consists of a visual area containing some of the graphical user interface of the program it belongs to and is framed by a window decoration. It usually has a rectangular shape[1] that can overlap with the area of other windows. It displays the output of and may allow input to one or more processes.

Windows are primarily associated with graphical displays, where they can be manipulated with a pointer by employing some kind of pointing device. Text-only displays can also support windowing, as a way to maintain multiple independent display areas, such as multiple buffers in Emacs. Text windows are usually controlled by keyboard, though some also respond to the mouse.

A graphical user interface (GUI) using windows as one of its main "metaphors" is called a windowing system, whose main components are the display server and the window manager.

History

[edit]
Example of windows on a text-only display. Each grey-bordered area is a separate window showing a different file.

The idea was developed at the Stanford Research Institute (led by Douglas Engelbart).[2] Their earliest systems supported multiple windows, but there was no obvious way to indicate boundaries between them (such as window borders, title bars, etc.).[3]

Research continued at Xerox Corporation's Palo Alto Research Center / PARC (led by Alan Kay). They used overlapping windows.[4]

During the 1980s the term "WIMP", which stands for window, icon, menu, pointer, was coined at PARC.[citation needed]

Apple had worked with PARC briefly at that time. Apple developed an interface based on PARC's interface. It was first used on Apple's Lisa and later Macintosh computers.[5] Microsoft was developing Office applications for the Mac at that time. Some speculate that this gave them access to Apple's OS before it was released and thus influenced the design of the windowing system in what would eventually be called Microsoft Windows.[6]

Properties

[edit]

Windows are two dimensional objects arranged on a plane called the desktop metaphor. In a modern full-featured windowing system they can be resized, moved, hidden, restored or closed.

Windows usually include other graphical objects, possibly including a menu-bar, toolbars, controls, icons and often a working area. In the working area, the document, image, folder contents or other main object is displayed. Around the working area, within the bounding window, there may be other smaller window areas, sometimes called panes or panels, showing relevant information or options. The working area of a single document interface holds only one main object. "Child windows" in multiple document interfaces, and tabs for example in many web browsers, can make several similar documents or main objects available within a single main application window. Some windows in macOS have a feature called a drawer, which is a pane that slides out the side of the window and to show extra options.

Applications that can run either under a graphical user interface or in a text user interface may use different terminology. GNU Emacs uses the term "window" to refer to an area within its display while a traditional window, such as controlled by an X11 window manager, is called a "frame".

Any window can be split into the window decoration and the window's content, although some systems purposely eschew window decoration as a form of minimalism.

Window decoration

[edit]
Typical elements of a window. The window decoration is drawn by an OS-level process such as a window manager. The drawing of the content is the task of application software.

The window decoration is a part of a window in most windowing systems.

Window decoration typically consists of a title bar, usually along the top of each window and a minimal border around the other three sides.[7] On Microsoft Windows this is called "non-client area".[8]

In the predominant layout for modern window decorations, the top bar contains the title of that window and buttons which perform windowing-related actions such as:

  • Close
  • Maximize
  • Minimize
  • Resize
  • Roll-up

The border exists primarily to allow the user to resize the window, but also to create a visual separation between the window's contents and the rest of the desktop environment.

Window decorations are considered important for the design of the look and feel of an operating system and some systems allow for customization of the colors, styles and animation effects used.

Window border

[edit]
Stacking window managers draw borders around the windows, while compositing window managers draw drop shadows around the windows

Window border is a window decoration component provided by some window managers, that appears around the active window. Some window managers may also display a border around background windows. Typically window borders enable the window to be resized or moved by dragging the border. Some window managers provide useless borders which are purely for decorative purposes and offer no window motion facility. These window managers do not allow windows to be resized by using a drag action on the border.

Title bar

[edit]
A title bar of GNOME Calculator

The title bar is a graphical control element and part of the window decoration provided by some window managers. As a convention, it is located at the top of the window as a horizontal bar. The title bar is typically used to display the name of the application or the name of the open document, and may provide title bar buttons for minimizing, maximizing, closing or rolling up of application windows. These functions are typically placed in the top-right of the screen to allow fast and inaccurate inputs through barrier pointing. Typically title bars can be used to provide window motion enabling the window to be moved around the screen by grabbing the title bar and dragging it. Some window managers[which?] provide title bars which are purely for decorative purposes and offer no window motion facility. These window managers do not allow windows to be moved around the screen by using a drag action on the title bar.

Default title-bar text often incorporates the name of the application and/or of its developer. The name of the host running the application also appears frequently. Various methods (menu-selections, escape sequences, setup parameters, command-line options – depending on the computing environment) may exist to give the end-user some control of title-bar text. Document-oriented applications like a text editor may display the filename or path of the document being edited. Most web browsers will render the contents of the HTML element title in their title bar, sometimes pre- or postfixed by the application name. Google Chrome and some versions of Mozilla Firefox place their tabs in the title bar. This makes it unnecessary to use the main window for the tabs, but usually results in the title becoming truncated. An asterisk at its beginning may be used to signify unsaved changes.

The title bar often contains widgets for system commands relating to the window, such as a maximize, minimize, rollup and close buttons; and may include other content such as an application icon, a clock, etc.

Title bar buttons

[edit]

Some window managers provide title bar buttons which provide the facility to minimize, maximize, roll-up or close application windows. Some window managers may display the title bar buttons in the task bar or task panel, rather than in the title bars.

The following buttons may appear in the title bar:

  • Close
  • Maximize
  • Minimize
  • Resize
  • Roll-up (or WindowShade)

Note that a context menu may be available from some title bar buttons or by right-clicking.

Title bar icon

[edit]

Some window managers display a small icon in the title bar that may vary according to the application on which it appears. The title bar icon may behave like a menu button, or may provide a context menu facility. macOS applications commonly have a proxy icon next to the window title that functions the same as the document's icon in the file manager.

Document status icon

[edit]

Some window managers display an icon or symbol to indicate that the contents of the window have not been saved or confirmed in some way: macOS displays a dot in the center of its close button; RISC OS appends an asterisk to the title.

Tiling window managers

[edit]

Some tiling window managers provide title bars which are purely for informative purposes and offer no controls or menus. These window managers do not allow windows to be moved around the screen by using a drag action on the title bar and may also serve the purpose of a status line from stacking window managers.

[edit]
OS Icon Send to Back Close Maximize Menu bar Minimize Pin (Keep on top) Resize Roll-up (Window shade) Status Context menu Notes
Unix-like with X11 Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Many X window managers for Unix-like systems allow customization of the type and placement of buttons shown in the title bar.
macOS Yes Yes Yes Yes Yes Yes Buttons are on the left side of the title bar. Icon is a proxy for the document's filesystem representation.
RISC OS Yes Yes Yes Yes Yes Yes
Windows Yes Yes Yes Yes Yes Yes Yes Icon is menu of window actions

See also

[edit]

References

[edit]
  1. ^ Reimer, Jeremy (2005). "A History of the GUI (Part 3)". Ars Technica. Archived from the original on 2009-09-08. Retrieved 2009-09-14.
  2. ^ Reimer, Jeremy (2005). "A History of the GUI (Part 1)". Ars Technica. Archived from the original on 2009-09-18. Retrieved 2009-09-14.
  3. ^ Reimer, Jeremy (2005). "A History of the GUI (Part 2)". Ars Technica. Archived from the original on 2009-09-08. Retrieved 2009-09-14.
  4. ^ "PARC History - A Legacy Of Innovation And Inventing The Future". Palo Alto Research Center Incorporated. 19 October 2023. Archived from the original on 3 December 2023. Retrieved 8 December 2023. Xerox PARC debuts the first GUI, which uses icons, pop-up menus, and overlapping windows that can be controlled easily using a point-and-click technique.
  5. ^ Reimer, Jeremy (2005). "A History of the GUI (Part 4)". Ars Technica. Archived from the original on 2009-09-08. Retrieved 2009-09-14.
  6. ^ Reimer, Jeremy (2005). "A History of the GUI (Part 5)". Ars Technica. Archived from the original on 2009-09-07. Retrieved 2009-09-14.
  7. ^ "Unknown".[permanent dead link]
  8. ^ "Nonclient Area - Win32 apps". Archived from the original on 2024-06-03. Retrieved 2024-06-03.