Swiftフレームワーク – WaylandとX11で表示を統一

昨日の作業で、Waylandバックエンドを追加しましたが、今日は、WaylandとX11でウィンドウの表示を合わせるために、WindowDecorationというクラスを追加しました。今回の拡張で、ZIKUU独自スタイルのウィンドウとLinux側のデフォルトスタイルのウィンドウを選べるようになりました。

上のスクリーンショットがWaylandのZIKUUスタイルウィンドウ。

下のスクリーンショットがX11のZIKUUスタイルウィンドウ。

さらにOpenStep準拠のCordinateシステムを追加し、NSView相当のViewクラスを追加。

マウスイベントを、Wayland/X11から受け取って、それをCordinateシステムに翻訳しています。

下のスクリーンショットは、Viewがイベント受取り、状態(この場合はビューの色)を変えて、

Objective-Cの

- setNeedsDisplay: true

に相当するメッセージを送って、再描画が走るようにしたものです。

この時点で、

  • ウィンドウのクローズボタンの反応
  • ウィンドウのリサイズ
  • リサイズ可能領域にマウスを移動したときにカーソル形状の変更
  • WaylandとX11とで、同じアプリケーションコードで描画可能
  • Window/Viewでのマウスイベントの受信と処理

辺りまでできるようになりました。

もう少し頑張れば、Viewシステムの基本APIが揃いそうです。

「Swiftフレームワーク – WaylandとX11で表示を統一」への1件のフィードバック

コメントする