シェル拡張 - Qt Wayland Compositor
Waylandでは、シェルは サーフェスセマンティクスを提供する拡張機能です。つまり、サーバーとクライアントがサーフェスについて通信する方法を提供するものです。この文脈では、サーフェスはしばしば "ウィンドウ "とも呼ばれ、これは一般的にコンポジターにおけるサーフェスの表現である。
シェルエクステンションは、クライアントとサーバーが特定の事柄について通信するためのツールを提供します:
- クライアントがサーバーにサーフェスの目的を知らせる方法を提供できます:例えば、それはツールチップなのか、ポップアップメニューなのか、それとも通常のアプリケーションウィンドウなのか。例えば、ツールチップなのか、ポップアップメニューなのか、それとも通常のアプリケーションウィンドウなのか。それに基づいて、サーバーはウィンドウのジオメトリを決定し、ユーザーがウィンドウとどのようにインタラクションできるかを決定することができる。
- また、サイズ変更、移動、非表示など、サーフェスを操作するためのプロトコルを提供することもできる。
他の拡張と同様に、シェルのサポートは、WaylandCompositor トップレベルオブジェクトの直接の子としてインスタンス化することでコンポジターに追加されます。Qt でサポートされているシェル拡張は次のとおりです:WlShell XdgShell とIviApplication です。
- XdgShell はデスクトップスタイルのシステムに適したシェルで、いくつものアプリケーションが接続でき、ウィンドウのサイズや位置をユーザーが手動で変更できます。
- IviApplication は最小限のプロトコルで、もともとは車載インフォテインメント・システム向けだった。このプロトコルは、あらかじめ定義されたアプリケーション・セットを実行できる組み込みシステムに便利で、多くの場合、あらかじめ割り当てられた画面領域で実行される。このプロトコルの詳細については、IVI Compositor の例を参照してください。
- QtShell は Qt アプリケーションに特化したシェルで、Qt で利用可能なウィンドウ管理機能をサポートしています。コンポジターとクライアントアプリケーションの両方がQtで書かれており、アプリケーションがウィンドウの手動配置や "bring-to-front "などの機能を悪用しないと信頼されているプラットフォームに適しています。
- WlShell はサードパーティ製アプリケーションとの互換性のために有用です。これもデスクトップスタイルのシェルですが、非推奨となり、 に取って代わられました。XdgShell
組み込みシステムをボトムアップで設計する場合、どのシェル拡張を使うかを決めるルールはあ りません。XdgShell IviApplicationシステムがどのような機能を必要とするか、Qt で書かれていないアプリケーションや独自の要件を持つアプリケーションがあるかどうかによって、決定が左右されるはずです。
Qt Wayland Compositorは複数のシェル拡張を同時にサポートすることもできます。上記の3つのシェル拡張をすべてサポートしている例については、Minimal QMLの例を参照してください。
©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。