ウィンドウとネイティブサービス
ウィンドウは app.whenReady() のあとに作成します。各ウィンドウは独自の UI ルートを持ちます。
#ウィンドウのライフタイム
new Window({
title: "My App",
width: 720,
height: 480,
renderer: createRenderer(App),
});onClose と on("closed", ...) は、ウィンドウがなくなったあとに実行されます。onCloseRequested はクローズを保留できるので、保存を確認できます。whenReady() は、非表示のウィンドウも含め、ネイティブウィンドウが存在したあとに解決します。
Dock アイコンは app.on("reopen", ...) で扱い、hasVisibleWindows が false のときにウィンドウを開きます。
#コマンドとサービス
import { app, Clipboard, Dialog, Menu, Shell, Screen } from "@quickgui/native";
await app.whenReady();
const displays = await Screen.getAllDisplays();
const selected = await Dialog.showOpenDialog({ properties: ["openDirectory"] });値を返す呼び出しは Promise です。メニュー、ファイルダイアログ、クリップボード、外観、通知、トレイアイコンは @quickgui/native から利用できます。トレイアイコンを参照してください。
#イベントとファイル監視
ウィンドウのイベントには、フォーカス、リサイズ、外観、最小化、フルスクリーン、クローズがあります。アプリケーションのイベントには ready、reopen、アクティベーション、終了、URL を開く処理が含まれます。プロジェクトファイルには Bun のファイル監視を使い、ウィンドウに属するウォッチャーは onCleanup で停止します。
