タスクトレイ
タスクトレイ (Task tray) またはシステムトレイ (System tray) とは、グラフィカルユーザインタフェースの一種で、小さなアイコン表示などによってアプリケーションソフトウェアなどの起動状態を一覧的に示すことを可能にする機能の呼称である。
Microsoft Windows
編集デフォルトの状態で画面の右下(タスクバーの右端)にある。スタートアップ時の起動アプリだけでなく、あとで起動させたもののアイコン表示も可能である。
ソフトウェアの種類によっては最小化時タスクトレイに格納されるものやタスクトレイで起動するもの(タスクバーのタスクスイッチに登録されない)も存在する。また、通常タスクトレイに格納できないソフトウェアを強制的にタスクトレイへと格納するツールも存在する。
Windowsの場合、この部分の正式名称は通知領域 (notification area) という。Windows XP日本語版のヘルプでも通知領域という呼称のみが使われている。Windows 2000日本語版ではインジケータ領域という呼称が使われていた。しかし、マイクロソフトのナレッジベースではタスクトレイ・システムトレイの呼称も用いられている。
大手メーカー製パソコンなど多数のアプリケーションがインストールされた環境では、必要以上に数多くのアイコンが登録され煩雑になる。そこでWindows XP以降ではアイコンごとに「常に表示」「一定時間操作しない場合に隠す」「常に非表示」を選択できるようになり、整理が可能になった。隠されたアイコンはタスクトレイ左端のボタンを押すと一時的に表示できる。
Windows 7では、タスクトレイのアイコンは基本的に非表示の扱いになった。アイコンはユーザーの許可を得た物だけが表示され、それ以外はボタンをクリックするとポップアップで一覧表示されるようになっている。使用頻度に応じて表示/非表示を切り替える機能はない(ベータ1時点)。
Windows 2000以前では、タスクバーの中でタスクトレイのみが凹んだトレイのようなデザインになっていた。Windows XPのLunaビジュアルスタイルではタスクトレイが異なる色で表示され、Windows Vista以降ではデザイン上の差はなくなっている。なおXP - 7でも設定によって2000以前のようなクラシック表示にすることも可能であるが、Windows 8/8.1ではそれもできなくなった。
X Window System
編集LinuxなどのUnix系システムではGNOMEやKDEなどのデスクトップ環境で利用できる。通常、GNOMEでは画面上のパネルに表示され、KDEでは画面下のタスクバー(KDE 3までは Kicker、KDE 4からは Plasma に統合)に表示される。また、GNOMEとKDEではタスクトレイを非表示にすることができる。
freedesktop.orgにはプロトコル仕様[1]が存在し、仕様ではKDEに倣ってタスクトレイを「システムトレイ」と呼んでいる。Xlibから直接システムトレイを利用する場合、XEvent構造体に含まれるXClientMessageEvent構造体にシステムトレイに関するデータなどを設定し、XEvent構造体を引数としてXSendEvent関数を呼ぶ。これによって、システムトレイのウィンドウにメッセージが送られる。
Xlibを直接用いなくても、GTK、KDELibsやQtなどのウィジェット・ツールキットが提供する関数やクラスを使うことで、システムトレイを扱うことができる。GNOMEで使われるGTKではGtkStatusIconオブジェクト[2]が扱い、KDEで使われるKDELibsバージョン3ではKSystemTrayクラス[3]、バージョン4ではKSystemTrayIconクラス[4]が扱っている。
バージョン3までKDEでは独自のプロトコルを提供していた[5]。しかし、KSystemTrayIconクラスが継承するX11版QtのQSystemTrayIconクラス[6]や、GTKのGtkStatusIconオブジェクトではfreedesktop.orgのプロトコル仕様に従って実装されている。また、これらのプロトコルよりも柔軟性の高い新しいプロトコルが2009年に開発され[7][8]、KDE 4.3で導入された[9]。このプロトコルはD-Busを活用している[10]。
脚注
編集- ^ Specifications/systemtray-spec
- ^ GtkStatusIcon
- ^ KSystemTray Class Reference
- ^ KSystemTrayIcon Class Reference
- ^ The KDE System Tray Docking Protocol
- ^ QSystemTrayIcon Class Reference
- ^ KNotificationItem specification - first draft
- ^ Introducing Notification Icons
- ^ KDE 4.3.0 Caizen Release Announcement
- ^ Implementation details