概要

コンピューティングにおけるウィンドウは、アプリケーション、文書、ダイアログ、またはフォルダーの内容を表示するための、独立した通常は長方形のグラフィカル表示領域です。画面上では、専用の内容領域と操作部を備えた、境界のある領域として現れます。ウィンドウは、別々の表示を用意することで、移動、サイズ変更、最小化、最大化、閉じるといった操作を可能にし、複数の作業を同時に扱えるようにします。タイトルバーや枠線といった視覚的なフレーミングや装飾は、それぞれのウィンドウを識別し管理する助けになります。

一般的な構成要素

多くのウィンドウには、利用者がそれを識別し操作しやすくするための共通した要素があります。

  • タイトルバー — 表示中のアプリケーション、文書、またはフォルダーの名前を示し、しばしば操作部も含みます。
  • 内容領域 — アプリケーションがテキスト、画像、コントロール、埋め込みビューなどを描画する内部領域です。
  • ウィンドウコントロール — 閉じる、最小化、最大化、元に戻す、その他の操作を行うためのボタンです。
  • 枠線とリサイズハンドル — ユーザーがウィンドウのサイズを変更できるようにし、通常は長方形のレイアウトを保ちます(長方形が最も一般的です)。

操作と動作

ユーザーは、ポインティングデバイス、キーボードショートカット、タッチジェスチャー、またはアクセシビリティ用インターフェースを通じてウィンドウを操作します。一般的な動作には、z順での重なり、フォーカスの切り替え、端へのスナップ、タイル配置、タブへのグループ化などがあります。ウィンドウは、他のウィンドウとの操作を一時的に妨げるモーダルの場合もあれば、並行した操作を許すノンモーダルの場合もあります。オペレーティングシステムやデスクトップ環境が提供するウィンドウマネージャーまたはコンポジターは、フォーカスの規則、装飾、そして画面上でウィンドウをどのように合成するかを制御します。

実装と開発者向けAPI

オペレーティングシステムやフレームワークは、開発者がウィンドウを作成・制御できるアプリケーションプログラミングインターフェースを提供します。これらのAPIには、ウィンドウの作成、イベント(サイズ変更、移動、閉じる)の処理、内容の描画、常に最前面表示や透明化といった特定の動作の要求が含まれます。プラットフォームのガイドラインやアプリケーションのドキュメントには、レイアウト、アクセシビリティ、ユーザー操作の推奨パターンが示されています。

歴史とプラットフォーム

ウィンドウ化されたインターフェースの概念は、1960年代から1970年代にかけての初期のグラフィカルユーザーインターフェース研究に由来し、グラフィカル環境の成熟とともに広く採用されました。商用・民生用システムでは、マルチタスクを支える方法として、重なり合い、サイズ変更可能なウィンドウが普及しました。MicrosoftによるWindowsファミリーは、数多くの慣例を確立したよく知られた例であり、同様のウィンドウ概念はmacOS、さまざまなLinuxデスクトップ環境、そして一部のモバイルやタブレットのプラットフォームにも見られます。

用途、変種、アクセシビリティ

ウィンドウは、アプリケーションプログラム、ファイルブラウザー、システムダイアログ、さらにウェブビューやターミナルのような埋め込みコンポーネントを収容します。現代のインターフェースには、取り外し可能なパネル、浮動パレット、タブ付きウィンドウ、分割ビュー、透明化やアニメーションを伴う合成レイヤーといった変種があります。モバイル端末やタッチ主体の機器では、全画面アプリとタスク切り替えが従来の複数の重なり合うウィンドウに取って代わることが多いものの、多くのタブレットや折りたたみ端末では、マルチウィンドウや分割画面モードが引き続き利用できます。アクセシビリティ機能により、スクリーンリーダー、キーボード操作、代替入力デバイスを使ってウィンドウに到達し、操作できるようになっています。

セキュリティとリソースの考慮

ウィンドウの境界は、セキュリティとプライバシーにとっても重要です。システムは、どのウィンドウが入力を取得できるかを制限したり、アプリが機密性の高いUI要素の上に重ねて表示するのを防いだり、機密コンテンツのスクリーンショットを制限したりすることがあります。ウィンドウシステムは、各ウィンドウごとのGPUやメモリの使用量などのリソースを管理します。コンポジット型のウィンドウマネージャーは、ちらつきを抑え、視覚効果を可能にしながら、複数のアプリケーションからの更新を調整します。

表示の概念、インターフェース設計、プラットフォーム固有のガイダンスについては、関連するアプリケーションのドキュメントやベンダーのガイドラインを参照してください。開発者や利用者は、プラットフォームのSDKやアクセシビリティ資源を通じて、ウィンドウを効果的に作成・管理する方法をさらに学べます。