昨日の作業で、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件のフィードバック