シェル拡張 - Qt Wayland Compositor

Waylandでは、シェルは サーフェスセマンティクスを提供する拡張機能です。つまり、サーバーとクライアントがサーフェスについて通信する方法を提供するものです。この文脈では、サーフェスはしばしば "ウィンドウ "とも呼ばれ、これは一般的にコンポジターにおけるサーフェスの表現である。

シェルエクステンションは、クライアントとサーバーが特定の事柄について通信するためのツールを提供します:

  • クライアントがサーバーにサーフェスの目的を知らせる方法を提供できます:例えば、それはツールチップなのか、ポップアップメニューなのか、それとも通常のアプリケーションウィンドウなのか。例えば、ツールチップなのか、ポップアップメニューなのか、それとも通常のアプリケーションウィンドウなのか。それに基づいて、サーバーはウィンドウのジオメトリを決定し、ユーザーがウィンドウとどのようにインタラクションできるかを決定することができる。
  • また、サイズ変更、移動、非表示など、サーフェスを操作するためのプロトコルを提供することもできる。

他の拡張と同様に、シェルのサポートは、WaylandCompositor トップレベルオブジェクトの直接の子としてインスタンス化することでコンポジターに追加されます。Qt でサポートされているシェル拡張は次のとおりです:WlShell XdgShellIviApplication です。

  • XdgShell はデスクトップスタイルのシステムに適したシェルで、いくつものアプリケーションが接続でき、ウィンドウのサイズや位置をユーザーが手動で変更できます。
  • IviApplication は最小限のプロトコルで、もともとはIn-Vehicle Infotainmentシステム向けだった。このプロトコルは、あらかじめ定義されたアプリケーション・セットを実行することができ、多くの場合、あらかじめ割り当てられた画面領域で実行される組み込みシステムに便利です。このプロトコルの詳細については、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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。