本文へスキップ

ウィンドウとネイティブサービス

ウィンドウは 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 で停止します。