コンピューティングにおいて、ウィンドウはグラフィカルな制御要素です。ウィンドウは、それが属するプログラムのグラフィカルユーザーインターフェイスの一部を含む視覚領域で構成され、ウィンドウ装飾によって枠付けられています。通常は長方形の形状[ 1 ]を持ち、他のウィンドウの領域と重なることができます。ウィンドウは、1つ以上のプロセスの出力を表示し、入力も許可することができます。
ウィンドウは主にグラフィカルディスプレイに関連付けられており、ポインティングデバイスを用いてポインタで操作できます。テキストのみのディスプレイでも、 Emacsの複数のバッファのように、複数の独立した表示領域を維持する方法としてウィンドウ機能をサポートすることができます。テキストウィンドウは通常キーボードで操作されますが、マウス操作にも対応しているものもあります。
ウィンドウを主要な「メタファー」の一つとして使用するグラフィカルユーザーインターフェース(GUI)はウィンドウシステムと呼ばれ、その主要な構成要素はディスプレイサーバーとウィンドウマネージャである。

このアイデアはスタンフォード研究所(ダグラス・エンゲルバートが率いる)で開発されました。[ 2 ]初期のシステムは複数のウィンドウをサポートしていましたが、ウィンドウの境界を示す明確な方法はありませんでした(ウィンドウの枠線、タイトルバーなど)。[ 3 ]
研究はゼロックス社のパロアルト研究所(PARC )(アラン・ケイが率いる)で続けられた。彼らは重なり合う窓を使用した。[ 4 ]
1980年代にPARCで「 WIMP 」という用語が考案された。これはウィンドウ、アイコン、メニュー、ポインターの頭文字をとったものである。
当時、AppleはPARCと短期間協力していた。AppleはPARCのインターフェースをベースにしたインターフェースを開発した。これは最初にAppleのLisaで使用され、後にMacintoshコンピュータで使用された。[ 5 ]当時、 MicrosoftはMac向けにOfficeアプリケーションを開発していた。これにより、AppleのOSがリリースされる前にMicrosoftはそれにアクセスでき、最終的にMicrosoft Windowsと呼ばれることになるウィンドウシステムの設計に影響を与えたのではないかと推測する人もいる。[ 6 ]
ウィンドウは、デスクトップメタファーと呼ばれる平面上に配置された二次元オブジェクトです。最新の多機能ウィンドウシステムでは、ウィンドウのサイズ変更、移動、非表示、復元、または閉じることができます。
ウィンドウには通常、メニュー バー、ツールバー、コントロール、アイコン、そして多くの場合作業領域など、他のグラフィック オブジェクトが含まれます。作業領域には、ドキュメント、画像、フォルダーの内容、またはその他のメイン オブジェクトが表示されます。作業領域の周囲、ウィンドウの境界内には、関連情報やオプションを表示する、ペインまたはパネルと呼ばれる他の小さなウィンドウ領域が存在する場合があります。単一のドキュメント インターフェイスの作業領域には、メイン オブジェクトが 1 つだけ格納されます。複数のドキュメント インターフェイスの「子ウィンドウ」や、多くの Web ブラウザーのタブなどを使用すると、単一のメイン アプリケーション ウィンドウ内で、複数の類似したドキュメントまたはメイン オブジェクトを利用できるようになります。macOS の一部のウィンドウには、ドロワーと呼ばれる機能があり、これはウィンドウの側面からスライドして追加のオプションを表示するペインです。
グラフィカルユーザーインターフェースとテキストユーザーインターフェースの両方で動作するアプリケーションでは、異なる用語が使用される場合があります。GNU Emacsでは、ディスプレイ内の領域を指すのに「ウィンドウ」という用語を使用しますが、 X11ウィンドウマネージャなどで制御される従来のウィンドウは「フレーム」と呼ばれます。
どのウィンドウも、ウィンドウの装飾とウィンドウの内容に分けることができますが、一部のシステムでは、ミニマリズムの一形態として、意図的にウィンドウの装飾を避けています。

窓の装飾は、ほとんどの窓システムにおいて窓の一部である。
ウィンドウの装飾は通常、各ウィンドウの上部にあるタイトルバーと、他の3辺を囲む最小限の境界線で構成されます。 [ 7 ] Microsoft Windowsでは、これは「非クライアント領域」と呼ばれます。[ 8 ]
現代のウィンドウ装飾で主流となっているレイアウトでは、上部のバーにはそのウィンドウのタイトルと、次のようなウィンドウ関連のアクションを実行するボタンが含まれています。
境界線は主にユーザーがウィンドウのサイズを変更できるようにするために存在するが、ウィンドウの内容とデスクトップ環境の残りの部分との間に視覚的な分離を作り出すためでもある。
ウィンドウの装飾は、オペレーティングシステムの見た目や操作感をデザインする上で重要視されており、一部のシステムでは、使用される色、スタイル、アニメーション効果をカスタマイズできるようになっている。

ウィンドウ枠は、一部のウィンドウマネージャが提供するウィンドウ装飾コンポーネントで、アクティブなウィンドウの周囲に表示されます。一部のウィンドウマネージャでは、背景ウィンドウの周囲にも枠を表示する場合があります。通常、ウィンドウ枠をドラッグすることで、ウィンドウのサイズ変更や移動が可能になります。ただし、一部のウィンドウマネージャは、装飾目的のみでウィンドウの移動機能を持たない、役に立たない枠を提供しています。このようなウィンドウマネージャでは、枠をドラッグしてウィンドウのサイズを変更することはできません。

タイトルバーは、一部のウィンドウマネージャが提供するグラフィカルな制御要素であり、ウィンドウ装飾の一部です。慣例として、ウィンドウの上部に水平なバーとして配置されます。タイトルバーは通常、アプリケーション名または開いているドキュメント名を表示するために使用され、アプリケーションウィンドウの最小化、最大化、閉じる、または巻き上げるためのボタンがタイトルバーに用意されている場合があります。これらの機能は通常、バリアポインティングによる高速かつ不正確な入力を可能にするため、画面の右上隅に配置されます。通常、タイトルバーはウィンドウの移動機能を提供するために使用でき、タイトルバーをつかんでドラッグすることでウィンドウを画面上で移動できます。一部のウィンドウマネージャは、純粋に装飾目的で、ウィンドウの移動機能を提供しないタイトルバーを提供しています。これらのウィンドウマネージャでは、タイトルバーをドラッグしてウィンドウを画面上で移動することはできません。
デフォルトのタイトルバーのテキストには、アプリケーション名や開発者名が含まれることがよくあります。アプリケーションを実行しているホストの名前もよく表示されます。エンドユーザーがタイトルバーのテキストをある程度制御できるように、さまざまな方法(コンピューティング環境に応じて、メニュー選択、エスケープシーケンス、セットアップパラメータ、コマンドラインオプションなど)が存在する場合があります。テキストエディタなどのドキュメント指向アプリケーションでは、編集中のドキュメントのファイル名またはパスが表示されることがあります。ほとんどのWebブラウザは、 HTML要素の内容をタイトルバーにレンダリングし、アプリケーション名が前後に付加される場合もあります。Google Chromeと一部のバージョンのMozilla Firefoxは、タブをタイトルバーに配置します。これにより、タブにメインウィンドウを使用する必要がなくなりますが、通常はタイトルが途中で切れてしまいます。タイトルの先頭にアスタリスクを付けることで、未保存の変更を示すことができます。title
タイトルバーには、ウィンドウに関連するシステムコマンドのウィジェット(最大化、最小化、巻き上げ、閉じるボタンなど)が含まれていることが多く、アプリケーションアイコンや時計などの他のコンテンツが含まれる場合もあります。
ウィンドウマネージャによっては、タイトルバーにアプリケーションウィンドウの最小化、最大化、巻き上げ、または閉じる機能を提供するボタンが用意されています。また、ウィンドウマネージャによっては、タイトルバーではなくタスクバーまたはタスクパネルにタイトルバーボタンを表示する場合もあります。
タイトルバーには、以下のボタンが表示される場合があります。
タイトルバーのボタンや右クリックからコンテキストメニューが表示される場合があることに注意してください。
ウィンドウマネージャによっては、タイトルバーに小さなアイコンが表示されることがあり、そのアイコンは表示されるアプリケーションによって異なる場合があります。タイトルバーのアイコンは、メニューボタンのように動作する場合もあれば、コンテキストメニュー機能を提供する場合もあります。macOSアプリケーションでは、ウィンドウタイトルの横にプロキシアイコンが表示されるのが一般的で、これはファイルマネージャのドキュメントアイコンと同じ機能を持ちます。
ウィンドウマネージャによっては、ウィンドウの内容が何らかの方法で保存または確認されていないことを示すアイコンやシンボルを表示するものがあります。macOSでは閉じるボタンの中央にドットが表示され、RISC OSではタイトルにアスタリスクが追加されます。
一部のタイル型ウィンドウマネージャーは、情報表示のみを目的としたタイトルバーを備えており、操作ボタンやメニューは提供していません。これらのウィンドウマネージャーでは、タイトルバーをドラッグしてウィンドウを画面上で移動することはできません。また、スタッキング型ウィンドウマネージャーのステータスラインのような役割を果たす場合もあります。
ゼロックスPARCは、アイコン、ポップアップメニュー、重なり合うウィンドウを使用し、ポイントアンドクリック方式で簡単に操作できる初のGUIを発表しました。