BaseWindow
ウィンドウの作成と制御。
プロセス: メイン
注意
BaseWindow
は、単一ウィンドウに複数のウェブビューを合成する柔軟な方法を提供します。単一のフルサイズウェブビューのみを持つウィンドウの場合、BrowserWindow
クラスの方が簡単な選択肢となる可能性があります。
このモジュールは、app
モジュールの ready
イベントが発行されるまで使用できません。
// In the main process.
const { BaseWindow, WebContentsView } = require('electron')
const win = new BaseWindow({ width: 800, height: 600 })
const leftView = new WebContentsView()
leftView.webContents.loadURL('https://electron.dokyumento.jp')
win.contentView.addChildView(leftView)
const rightView = new WebContentsView()
rightView.webContents.loadURL('https://github.com/electron/electron')
win.contentView.addChildView(rightView)
leftView.setBounds({ x: 0, y: 0, width: 400, height: 600 })
rightView.setBounds({ x: 400, y: 0, width: 400, height: 600 })
親ウィンドウと子ウィンドウ
parent
オプションを使用することで、子ウィンドウを作成できます。
const { BaseWindow } = require('electron')
const parent = new BaseWindow()
const child = new BaseWindow({ parent })
child
ウィンドウは常にparent
ウィンドウの上に表示されます。
モーダルウィンドウ
モーダルウィンドウは、親ウィンドウを無効にする子ウィンドウです。モーダルウィンドウを作成するには、parent
と modal
の両方のオプションを設定する必要があります。
const { BaseWindow } = require('electron')
const parent = new BaseWindow()
const child = new BaseWindow({ parent, modal: true })
プラットフォームに関する注意事項
- macOSでは、モーダルウィンドウは親ウィンドウにアタッチされたシートとして表示されます。
- macOSでは、親ウィンドウが移動した場合、子ウィンドウは親ウィンドウに対する相対位置を維持しますが、WindowsとLinuxでは子ウィンドウは移動しません。
- Linuxでは、モーダルウィンドウのタイプは
dialog
に変更されます。 - Linuxでは、多くのデスクトップ環境がモーダルウィンドウの非表示をサポートしていません。
クラス: BaseWindow
ウィンドウの作成と制御。
プロセス: メイン
BaseWindow
はEventEmitterです。
これは、options
で設定されたネイティブプロパティを使用して新しいBaseWindow
を作成します。
new BaseWindow([options])
minWidth
/maxWidth
/minHeight
/maxHeight
を使用してウィンドウの最小サイズまたは最大サイズを設定する場合、ユーザーを制限するだけです。setBounds
/setSize
またはBrowserWindow
のコンストラクターにサイズ制約に従わないサイズを渡すのを防ぐことはできません。
type
オプションの可能な値と動作は、プラットフォームに依存します。可能な値は次のとおりです。
- Linuxでは、可能な型は
desktop
、dock
、toolbar
、splash
、notification
です。desktop
型は、ウィンドウをデスクトップバックグラウンドウィンドウレベル(kCGDesktopWindowLevel - 1)に配置します。ただし、デスクトップウィンドウはフォーカス、キーボード、またはマウスイベントを受け取りません。グローバルショートカットを使用して、必要最小限の入力を受け取ることはできます。dock
型は、ドックのようなウィンドウの動作を作成します。toolbar
型は、ツールバーのような外観のウィンドウを作成します。splash
型は特定の方法で動作します。ウィンドウのbodyのCSSスタイルに-webkit-app-region: dragが含まれていても、ドラッグできません。この型は、一般的にスプラッシュスクリーンに使用されます。notification
型は、システム通知のように動作するウィンドウを作成します。
- macOSでは、可能な型は
desktop
、textured
、panel
です。textured
型は、メタルグラデーションの外観(NSWindowStyleMaskTexturedBackground
)を追加します。desktop
型は、ウィンドウをデスクトップバックグラウンドウィンドウレベル(kCGDesktopWindowLevel - 1
)に配置します。デスクトップウィンドウはフォーカス、キーボード、またはマウスイベントを受け取りませんが、globalShortcut
を使用して、必要最小限の入力を受け取ることはできます。panel
型は、通常はNSPanel用に予約されているNSWindowStyleMaskNonactivatingPanel
スタイルマスクをランタイムに追加することにより、ウィンドウが全画面アプリの上に浮いていることを可能にします。また、ウィンドウはすべてのスペース(デスクトップ)に表示されます。
- Windowsでは、可能な型は
toolbar
です。
インスタンスイベント
new BaseWindow
で作成されたオブジェクトは、次のイベントを発生させます。
注記: 一部のイベントは特定のオペレーティングシステムでのみ利用可能であり、そのようにラベル付けされています。
イベント: 'close'
戻り値
event
イベント
ウィンドウが閉じられようとしているときに発生します。DOMのbeforeunload
イベントとunload
イベントの前に発生します。event.preventDefault()
を呼び出すと、閉じることがキャンセルされます。
通常、ウィンドウを閉じるかどうかを決定するためにbeforeunload
ハンドラーを使用します。これは、ウィンドウがリロードされた場合にも呼び出されます。Electronでは、undefined
以外の値を返すことで閉じることがキャンセルされます。例:
window.onbeforeunload = (e) => {
console.log('I do not want to be closed')
// Unlike usual browsers that a message box will be prompted to users, returning
// a non-void value will silently cancel the close.
// It is recommended to use the dialog API to let the user confirm closing the
// application.
e.returnValue = false
}
注記: window.onbeforeunload = handler
とwindow.addEventListener('beforeunload', handler)
の動作には微妙な違いがあります。前者はElectron内でより一貫して動作するため、値を返すだけでなく、常にevent.returnValue
を明示的に設定することをお勧めします。
イベント: 'closed'
ウィンドウが閉じられたときに発生します。このイベントを受信したら、ウィンドウへの参照を削除し、それ以上使用しないでください。
イベント: 'session-end' Windows
強制シャットダウン、マシンの再起動、またはセッションログオフのためにウィンドウセッションが終了しようとしているときに発生します。
イベント: 'blur'
ウィンドウがフォーカスを失ったときに発生します。
イベント: 'focus'
ウィンドウがフォーカスを得たときに発生します。
イベント: 'show'
ウィンドウが表示されたときに発生します。
イベント: 'hide'
ウィンドウが非表示になったときに発生します。
イベント: 'maximize'
ウィンドウが最大化されたときに発生します。
イベント: 'unmaximize'
ウィンドウが最大化状態から終了したときに発生します。
イベント: 'minimize'
ウィンドウが最小化されたときに発生します。
イベント: 'restore'
ウィンドウが最小化状態から復元されたときに発生します。
イベント: 'will-resize' macOS Windows
戻り値
event
イベントnewBounds
Rectangle - ウィンドウがリサイズされるサイズ。details
オブジェクトedge
(文字列) - リサイズのためにドラッグされているウィンドウのエッジ。bottom
、left
、right
、top-left
、top-right
、bottom-left
、bottom-right
のいずれかになります。
ウィンドウがリサイズされる前に発生します。event.preventDefault()
を呼び出すと、ウィンドウのリサイズが防止されます。
これは、ウィンドウが手動でリサイズされている場合にのみ発生することに注意してください。setBounds
/setSize
を使用してウィンドウをリサイズしても、このイベントは発生しません。
edge
オプションの可能な値と動作は、プラットフォームに依存します。可能な値は次のとおりです。
- Windowsでは、可能な値は
bottom
、top
、left
、right
、top-left
、top-right
、bottom-left
、bottom-right
です。 - macOSでは、可能な値は
bottom
とright
です。bottom
値は、垂直方向のリサイズを示すために使用されます。right
値は、水平方向のリサイズを示すために使用されます。
イベント: 'resize'
ウィンドウがリサイズされた後に発生します。
イベント: 'resized' macOS Windows
ウィンドウのリサイズが完了したときに一度発生します。
これは通常、ウィンドウが手動でサイズ変更されたときに送出されます。macOSでは、setBounds
/setSize
でウィンドウのサイズを変更し、animate
パラメータをtrue
に設定すると、サイズ変更が完了した後にこのイベントも1回送出されます。
イベント: 'will-move' macOS Windows
戻り値
event
イベントnewBounds
Rectangle - ウィンドウが移動される位置。
ウィンドウが移動される前に送出されます。Windowsでは、event.preventDefault()
を呼び出すと、ウィンドウの移動を阻止できます。
これは、ウィンドウを手動で移動した場合にのみ送出されることに注意してください。setPosition
/setBounds
/center
を使用してウィンドウを移動しても、このイベントは送出されません。
イベント: 'move'
ウィンドウが新しい位置に移動されるときに送出されます。
イベント: 'moved' macOS Windows
ウィンドウが新しい位置に移動されるときに1回送出されます。
注記: macOSでは、このイベントはmove
のエイリアスです。
イベント: 'enter-full-screen'
ウィンドウがフルスクリーン状態になるときに送出されます。
イベント: 'leave-full-screen'
ウィンドウがフルスクリーン状態から抜けるときに送出されます。
イベント: 'always-on-top-changed'
戻り値
event
イベントisAlwaysOnTop
boolean
ウィンドウが常に他のウィンドウの上に表示されるように設定または解除されたときに送出されます。
イベント: 'app-command' Windows Linux
戻り値
event
イベントcommand
string
アプリケーションコマンドが呼び出されるときに送出されます。これらは通常、キーボードのメディアキーまたはブラウザのコマンド、およびWindowsの一部のマウスに組み込まれている「戻る」ボタンに関連しています。
コマンドは小文字になり、アンダースコアはハイフンに置き換えられ、APPCOMMAND_
プレフィックスは削除されます。例:APPCOMMAND_BROWSER_BACKWARD
はbrowser-backward
として送出されます。
const { BaseWindow } = require('electron')
const win = new BaseWindow()
win.on('app-command', (e, cmd) => {
// Navigate the window back when the user hits their mouse back button
if (cmd === 'browser-backward') {
// Find the appropriate WebContents to navigate.
}
})
次のアプリケーションコマンドは、Linuxで明示的にサポートされています。
browser-backward
browser-forward
イベント: 'swipe' macOS
戻り値
event
イベントdirection
string
3本指スワイプで送出されます。可能な方向はup
、right
、down
、left
です。
このイベントを基盤とするメソッドは、画面上のコンテンツがスワイプと共に移動しない、古いmacOSスタイルのトラックパッドスワイプを処理するように構築されています。ほとんどのmacOSトラックパッドはこの種のスワイプを許可するように構成されていません。そのため、正しく送出するには、システム環境設定 > トラックパッド > その他のジェスチャ
の「ページ間のスワイプ」設定を「2本または3本指でスワイプ」に設定する必要があります。
イベント: 'rotate-gesture' macOS
戻り値
event
イベントrotation
Float
トラックパッドの回転ジェスチャで送出されます。回転ジェスチャが終了するまで継続的に送出されます。各送出時のrotation
値は、前回送出以降に回転した角度(度)です。回転ジェスチャでの最後の送出イベントの値は常に0
です。反時計回りの回転値は正で、時計回りの回転値は負です。
イベント: 'sheet-begin' macOS
ウィンドウがシートを開くと送出されます。
イベント: 'sheet-end' macOS
ウィンドウがシートを閉じると送出されます。
イベント: 'new-window-for-tab' macOS
ネイティブの新しいタブボタンがクリックされると送出されます。
イベント: 'system-context-menu' Windows
戻り値
event
イベントpoint
Point - コンテキストメニューがトリガーされた画面座標。
ウィンドウでシステムコンテキストメニューがトリガーされると送出されます。これは通常、ユーザーがウィンドウのクライアント領域以外(ウィンドウのタイトルバー、またはフレームレスウィンドウで-webkit-app-region: drag
として宣言した領域)を右クリックした場合にのみトリガーされます。
event.preventDefault()
を呼び出すと、メニューの表示を阻止できます。
静的メソッド
BaseWindow
クラスには、次の静的メソッドがあります。
BaseWindow.getAllWindows()
BaseWindow[]
を返します - 開いているすべてのブラウザウィンドウの配列。
BaseWindow.getFocusedWindow()
BaseWindow | null
を返します - このアプリケーションでフォーカスされているウィンドウ。そうでない場合はnull
を返します。
BaseWindow.fromId(id)
id
Integer
BaseWindow | null
を返します - 指定されたid
を持つウィンドウ。
インスタンスプロパティ
new BaseWindow
で作成されたオブジェクトには、次のプロパティがあります。
const { BaseWindow } = require('electron')
// In this example `win` is our instance
const win = new BaseWindow({ width: 800, height: 600 })
win.id
読み取り専用
ウィンドウの一意のIDを表すInteger
型のプロパティ。各IDは、Electronアプリケーション全体のすべてのBaseWindow
インスタンス間で一意です。
win.contentView
ウィンドウのコンテンツビューのView
型のプロパティ。
win.tabbingIdentifier
macOS 読み取り専用
BrowserWindow
コンストラクタに渡されたtabbingIdentifier
と等しいstring
型(オプション)のプロパティ。設定されていない場合はundefined
。
win.autoHideMenuBar
ウィンドウのメニューバーが自動的に非表示になるかどうかを決定するboolean
型のプロパティ。設定されると、メニューバーはユーザーが単一のAlt
キーを押したときのみ表示されます。
メニューバーが既に表示されている場合、このプロパティをtrue
に設定しても、すぐに非表示になりません。
win.simpleFullScreen
ウィンドウが単純な(Lion以前の)フルスクリーンモードかどうかを決定するboolean
型のプロパティ。
win.fullScreen
ウィンドウがフルスクリーンモードかどうかを決定するboolean
型のプロパティ。
win.focusable
Windows macOS
ウィンドウがフォーカス可能かどうかを決定するboolean
型のプロパティ。
win.visibleOnAllWorkspaces
macOS Linux
ウィンドウがすべてのワークスペースで表示されるかどうかを決定するboolean
型のプロパティ。
注記: Windowsでは常にfalseを返します。
win.shadow
ウィンドウに影があるかどうかを決定するboolean
型のプロパティ。
win.menuBarVisible
Windows Linux
メニューバーを表示するかどうかを決定するboolean
型のプロパティ。
注記: メニューバーが自動非表示の場合でも、ユーザーは単一のAlt
キーを押してメニューバーを表示できます。
win.kiosk
ウィンドウがキオスクモードかどうかを決定するboolean
型のプロパティ。
win.documentEdited
macOS
ウィンドウのドキュメントが編集されたかどうかを指定するboolean
型のプロパティ。
true
に設定すると、タイトルバーのアイコンがグレーになります。
win.representedFilename
macOS
ウィンドウが表すファイルのパス名を決定するstring
型のプロパティです。ファイルのアイコンはウィンドウのタイトルバーに表示されます。
win.title
ネイティブウィンドウのタイトルを決定するstring
型のプロパティです。
注記: ウェブページのタイトルとネイティブウィンドウのタイトルは異なる場合があります。
win.minimizable
macOS Windows
ユーザーが手動でウィンドウを最小化できるかどうかを決定するboolean
型のプロパティです。
Linuxでは、セッターはノーオペレーションですが、ゲッターはtrue
を返します。
win.maximizable
macOS Windows
ユーザーが手動でウィンドウを最大化できるかどうかを決定するboolean
型のプロパティです。
Linuxでは、セッターはノーオペレーションですが、ゲッターはtrue
を返します。
win.fullScreenable
最大化/ズームウィンドウボタンが全画面モードを切り替えるか、ウィンドウを最大化するかどうかを決定するboolean
型のプロパティです。
win.resizable
ユーザーが手動でウィンドウのサイズを変更できるかどうかを決定するboolean
型のプロパティです。
win.closable
macOS Windows
ユーザーが手動でウィンドウを閉じることができるかどうかを決定するboolean
型のプロパティです。
Linuxでは、セッターはノーオペレーションですが、ゲッターはtrue
を返します。
win.movable
macOS Windows
ユーザーがウィンドウを移動できるかどうかを決定するboolean
型のプロパティです。
Linuxでは、セッターはノーオペレーションですが、ゲッターはtrue
を返します。
win.excludedFromShownWindowsMenu
macOS
ウィンドウがアプリケーションのウィンドウメニューから除外されるかどうかを決定するboolean
型のプロパティです。デフォルトはfalse
です。
const { Menu, BaseWindow } = require('electron')
const win = new BaseWindow({ height: 600, width: 600 })
const template = [
{
role: 'windowmenu'
}
]
win.excludedFromShownWindowsMenu = true
const menu = Menu.buildFromTemplate(template)
Menu.setApplicationMenu(menu)
win.accessibleTitle
スクリーンリーダーなどのアクセシビリティツールにのみ提供される代替タイトルを定義するstring
型のプロパティです。この文字列はユーザーには直接表示されません。
インスタンスメソッド
new BaseWindow
で作成されたオブジェクトには、次のインスタンスメソッドがあります。
注記: 一部のメソッドは特定のオペレーティングシステムでのみ使用可能であり、そのようにラベル付けされています。
win.setContentView(view)
view
View
ウィンドウのコンテンツビューを設定します。
win.getContentView()
View を返します - ウィンドウのコンテンツビュー。
win.destroy()
ウィンドウを強制的に閉じます。ウェブページに対してunload
イベントとbeforeunload
イベントは発生せず、このウィンドウに対してclose
イベントも発生しませんが、closed
イベントが発生することが保証されます。
win.close()
ウィンドウを閉じようとします。これは、ユーザーが手動でウィンドウの閉じるボタンをクリックした場合と同じ効果があります。ただし、ウェブページが閉じられるのをキャンセルする場合があります。close イベントを参照してください。
win.focus()
ウィンドウにフォーカスします。
win.blur()
ウィンドウからフォーカスを削除します。
win.isFocused()
boolean
を返します - ウィンドウがフォーカスされているかどうか。
win.isDestroyed()
boolean
を返します - ウィンドウが破棄されているかどうか。
win.show()
ウィンドウを表示し、フォーカスを与えます。
win.showInactive()
ウィンドウを表示しますが、フォーカスしません。
win.hide()
ウィンドウを隠します。
win.isVisible()
boolean
を返します - ウィンドウがアプリケーションの最前面でユーザーに表示されているかどうか。
win.isModal()
boolean
を返します - 現在のウィンドウがモーダルウィンドウかどうか。
win.maximize()
ウィンドウを最大化します。表示されていない場合は、ウィンドウを表示(ただしフォーカスはしない)します。
win.unmaximize()
ウィンドウの最大化を解除します。
win.isMaximized()
boolean
を返します - ウィンドウが最大化されているかどうか。
win.minimize()
ウィンドウを最小化します。一部のプラットフォームでは、最小化されたウィンドウがDockに表示されます。
win.restore()
最小化された状態からウィンドウを以前の状態に復元します。
win.isMinimized()
boolean
を返します - ウィンドウが最小化されているかどうか。
win.setFullScreen(flag)
flag
boolean
ウィンドウが全画面モードになるかどうかを設定します。
注記: macOSでは、全画面への遷移は非同期に行われます。全画面の状態に依存するアクションがさらに必要な場合は、'enter-full-screen'または'leave-full-screen'イベントを使用してください。
win.isFullScreen()
boolean
を返します - ウィンドウが全画面モードかどうか。
win.setSimpleFullScreen(flag)
macOS
flag
boolean
シンプルな全画面モードに入るか出ます。
シンプルな全画面モードは、Lion(10.7)以前のバージョンのmacOSに見られるネイティブな全画面動作をエミュレートします。
win.isSimpleFullScreen()
macOS
boolean
を返します - ウィンドウがシンプルな(Lion以前の)全画面モードかどうか。
win.isNormal()
boolean
を返します - ウィンドウが通常の状態(最大化されておらず、最小化されておらず、全画面モードではない)かどうか。
win.setAspectRatio(aspectRatio[, extraSize])
aspectRatio
Float - コンテンツビューの一部について維持するアスペクト比。extraSize
Size (オプション) macOS - アスペクト比を維持する際に含まれない追加サイズ。
これにより、ウィンドウはアスペクト比を維持します。追加サイズにより、開発者はピクセルで指定されたスペースをアスペクト比の計算に含めないようにすることができます。このAPIは、ウィンドウのサイズとコンテンツサイズの違いを既に考慮しています。
HDビデオプレーヤーと関連するコントロールを含む通常のウィンドウを検討してください。おそらく、左端に15ピクセルのコントロール、右端に25ピクセルのコントロール、プレーヤーの下に50ピクセルのコントロールがあります。プレーヤー自体内で16:9のアスペクト比(HD @1920x1080の標準アスペクト比)を維持するには、16/9と{width: 40, height: 50}の引数でこの関数を呼び出します。第2の引数は、追加の幅と高さがコンテンツビュー内のどこに存在するかは気にしません。全体的なコンテンツビュー内の追加の幅と高さの領域を合計します。
win.setSize
などのAPIでプログラムによってウィンドウのサイズが変更されると、アスペクト比は尊重されません。
アスペクト比をリセットするには、aspectRatio
値として0を渡します: win.setAspectRatio(0)
。
win.setBackgroundColor(backgroundColor)
backgroundColor
string - 16進数、RGB、RGBA、HSL、HSLA、または名前付きCSSカラー形式の色。アルファチャネルは、16進数タイプではオプションです。
有効なbackgroundColor
値の例
- 16進数
- #fff (RGB略記)
- #ffff (ARGB略記)
- #ffffff (RGB)
- #ffffffff (ARGB)
- RGB
rgb\(([\d]+),\s*([\d]+),\s*([\d]+)\)
- 例: rgb(255, 255, 255)
- RGBA
rgba\(([\d]+),\s*([\d]+),\s*([\d]+),\s*([\d.]+)\)
- 例: rgba(255, 255, 255, 1.0)
- HSL
hsl\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%\)
- 例: hsl(200, 20%, 50%)
- HSLA
hsla\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)
- 例: hsla(200, 20%, 50%, 0.5)
- カラー名
- SkParseColor.cppに一覧があります。
- CSS Color Module Level 3のキーワードに似ていますが、大文字と小文字が区別されます。
- 例:
blueviolet
またはred
- 例:
ウィンドウの背景色を設定します。backgroundColor
の設定を参照してください。
win.previewFile(path[, displayName])
macOS
path
string - QuickLookでプレビューするファイルの絶対パス。Quick Lookは、ファイルの種類を判別するために、パス上のファイル名と拡張子を使用するため、重要です。displayName
string (オプション) - Quick Lookモーダルビューに表示するファイル名。これは純粋に視覚的なものであり、ファイルの種類には影響しません。デフォルトはpath
です。
指定されたパスのファイルをQuick Lookを使用してプレビューします。
win.closeFilePreview()
macOS
現在開いているQuick Lookパネルを閉じます。
win.setBounds(bounds[, animate])
bounds
Partial<Rectangle>animate
boolean (オプション) macOS
指定された範囲にウィンドウのサイズを変更し、移動します。指定されていないプロパティは、現在の値が使用されます。
const { BaseWindow } = require('electron')
const win = new BaseWindow()
// set all bounds properties
win.setBounds({ x: 440, y: 225, width: 800, height: 600 })
// set a single bounds property
win.setBounds({ width: 100 })
// { x: 440, y: 225, width: 100, height: 600 }
console.log(win.getBounds())
注記: macOSでは、y座標の値はトレイの高さより小さくできません。トレイの高さが変わることがあり、オペレーティングシステムによって異なりますが、20~40pxの間です。トレイの高さより小さい値を渡すと、トレイにぴったりとくっついたウィンドウになります。
win.getBounds()
Rectangleを返します - ウィンドウのbounds
をObject
として返します。
注記: macOSでは、返されるy座標の値は、最低でもトレイの高さになります。例えば、トレイの高さが38の場合、win.setBounds({ x: 25, y: 20, width: 800, height: 600 })
を呼び出すと、win.getBounds()
は{ x: 25, y: 38, width: 800, height: 600 }
を返します。
win.getBackgroundColor()
string
を返します - ウィンドウの背景色を16進数(#RRGGBB
)形式で取得します。
backgroundColor
の設定を参照してください。
注記: アルファ値は、赤、緑、青の値と共に返されません。
win.setContentBounds(bounds[, animate])
bounds
Rectangleanimate
boolean (オプション) macOS
ウィンドウのクライアント領域(例:ウェブページ)のサイズを変更し、移動します。
win.getContentBounds()
Rectangleを返します - ウィンドウのクライアント領域のbounds
をObject
として返します。
win.getNormalBounds()
Rectangleを返します - 通常状態のウィンドウの範囲を含みます。
注記: ウィンドウの現在の状態(最大化、最小化、または全画面表示)に関係なく、この関数は常に通常状態のウィンドウの位置とサイズを返します。通常状態では、getBoundsとgetNormalBoundsは同じRectangleを返します。
win.setEnabled(enable)
enable
boolean
ウィンドウを無効化または有効化します。
win.isEnabled()
boolean
を返します - ウィンドウが有効かどうか。
win.setSize(width, height[, animate])
width
Integerheight
Integeranimate
boolean (オプション) macOS
ウィンドウをwidth
とheight
にサイズ変更します。width
またはheight
が設定された最小サイズ制約を下回ると、ウィンドウは最小サイズにスナップします。
win.getSize()
Integer[]
を返します - ウィンドウの幅と高さを含みます。
win.setContentSize(width, height[, animate])
width
Integerheight
Integeranimate
boolean (オプション) macOS
ウィンドウのクライアント領域(例:ウェブページ)をwidth
とheight
にサイズ変更します。
win.getContentSize()
Integer[]
を返します - ウィンドウのクライアント領域の幅と高さを含みます。
win.setMinimumSize(width, height)
width
Integerheight
Integer
ウィンドウの最小サイズをwidth
とheight
に設定します。
win.getMinimumSize()
Integer[]
を返します - ウィンドウの最小幅と高さを含みます。
win.setMaximumSize(width, height)
width
Integerheight
Integer
ウィンドウの最大サイズをwidth
とheight
に設定します。
win.getMaximumSize()
Integer[]
を返します - ウィンドウの最大幅と高さを含みます。
win.setResizable(resizable)
resizable
boolean
ユーザーが手動でウィンドウのサイズを変更できるかどうかを設定します。
win.isResizable()
boolean
を返します - ユーザーが手動でウィンドウのサイズを変更できるかどうか。
win.setMovable(movable)
macOS Windows
movable
boolean
ユーザーがウィンドウを移動できるかどうかを設定します。Linuxでは何も行いません。
win.isMovable()
macOS Windows
boolean
を返します - ユーザーがウィンドウを移動できるかどうか。
Linuxでは常にtrue
を返します。
win.setMinimizable(minimizable)
macOS Windows
minimizable
boolean
ユーザーが手動でウィンドウを最小化できるかどうかを設定します。Linuxでは何も行いません。
win.isMinimizable()
macOS Windows
boolean
を返します - ユーザーが手動でウィンドウを最小化できるかどうか。
Linuxでは常にtrue
を返します。
win.setMaximizable(maximizable)
macOS Windows
maximizable
boolean
ユーザーが手動でウィンドウを最大化できるかどうかを設定します。Linuxでは何も行いません。
win.isMaximizable()
macOS Windows
boolean
を返します - ユーザーが手動でウィンドウを最大化できるかどうか。
Linuxでは常にtrue
を返します。
win.setFullScreenable(fullscreenable)
fullscreenable
boolean
最大化/ズームウィンドウボタンが全画面モードを切り替えるか、ウィンドウを最大化するかどうかを設定します。
win.isFullScreenable()
boolean
を返します - 最大化/ズームウィンドウボタンが全画面モードを切り替えるか、ウィンドウを最大化するかどうか。
win.setClosable(closable)
macOS Windows
closable
boolean
ユーザーが手動でウィンドウを閉じることができるかどうかを設定します。Linuxでは何も行いません。
win.isClosable()
macOS Windows
boolean
を返します - ユーザーが手動でウィンドウを閉じることができるかどうか。
Linuxでは常にtrue
を返します。
win.setHiddenInMissionControl(hidden)
macOS
hidden
boolean
ユーザーがMission Controlに切り替えたときにウィンドウを非表示にするかどうかを設定します。
win.isHiddenInMissionControl()
macOS
boolean
を返します - ユーザーがMission Controlに切り替えたときにウィンドウを非表示にするかどうか。
win.setAlwaysOnTop(flag[, level][, relativeLevel])
flag
booleanlevel
文字列(オプション) macOS Windows - 値には、normal
、floating
、torn-off-menu
、modal-panel
、main-menu
、status
、pop-up-menu
、screen-saver
、および(非推奨)が含まれます。dock
flag
がtrueの場合、デフォルトはfloating
です。flag
がfalseになると、level
はnormal
にリセットされます。floating
からstatus
までは、macOSではDockの下、Windowsではタスクバーの下にウィンドウが配置されます。pop-up-menu
からそれより上のレベルでは、macOSではDockの上、Windowsではタスクバーの上に表示されます。詳細は、macOSドキュメントを参照してください。relativeLevel
整数(オプション) macOS - 指定されたlevel
に対して、このウィンドウを設定するレイヤー数。デフォルトは0
です。Appleは、screen-saver
より1つ以上上のレベルを設定することを推奨していません。
ウィンドウを他のウィンドウの上に常に表示するかどうかを設定します。これを設定した後も、ウィンドウは通常のウィンドウであり、フォーカスできないツールボックスウィンドウではありません。
win.isAlwaysOnTop()
boolean
を返します - ウィンドウが他のウィンドウの上に常に表示されているかどうか。
win.moveAbove(mediaSourceId)
mediaSourceId
文字列 - DesktopCapturerSourceのID形式のウィンドウID。例:「window:1869:0」。
zオーダーの意味で、ソースウィンドウの上にウィンドウを移動します。mediaSourceId
がウィンドウ型でない場合、またはウィンドウが存在しない場合、このメソッドはエラーをスローします。
win.moveTop()
フォーカスに関係なく、ウィンドウを最上位(zオーダー)に移動します。
win.center()
ウィンドウを画面の中央に移動します。
win.setPosition(x, y[, animate])
x
整数y
整数animate
boolean (オプション) macOS
ウィンドウをx
とy
に移動します。
win.getPosition()
Integer[]
を返します - ウィンドウの現在の位置が含まれています。
win.setTitle(title)
title
文字列
ネイティブウィンドウのタイトルをtitle
に変更します。
win.getTitle()
string
を返します - ネイティブウィンドウのタイトル。
注記: ウェブページのタイトルとネイティブウィンドウのタイトルは異なる場合があります。
win.setSheetOffset(offsetY[, offsetX])
macOS
offsetY
浮動小数点数offsetX
浮動小数点数(オプション)
macOSでシートのアタッチメントポイントを変更します。デフォルトでは、シートはウィンドウフレームのすぐ下にアタッチされますが、HTMLでレンダリングされたツールバーの下に表示したい場合があります。例えば
const { BaseWindow } = require('electron')
const win = new BaseWindow()
const toolbarRect = document.getElementById('toolbar').getBoundingClientRect()
win.setSheetOffset(toolbarRect.height)
win.flashFrame(flag)
履歴
バージョン | 変更点 |
---|---|
>=31.0.0 |
|
>=29.0.0 | API ADDED |
flag
boolean
ユーザーの注意を引くためにウィンドウの点滅を開始または停止します。
win.setSkipTaskbar(skip)
macOS Windows
skip
ブール値
タスクバーにウィンドウを表示しないようにします。
win.setKiosk(flag)
flag
boolean
キオスクモードの入退室を行います。
win.isKiosk()
boolean
を返します - ウィンドウがキオスクモードかどうか。
win.isTabletMode()
Windows
boolean
を返します - ウィンドウがWindows 10タブレットモードかどうか。
Windows 10ユーザーはPCをタブレットとして使用できるため、このモードでは、アプリはタイトルバーを大きくしたり、タイトルバーボタンを隠したりするなど、タブレット用にUIを最適化することを選択できます。
このAPIは、ウィンドウがタブレットモードかどうかを返し、resize
イベントを使用してタブレットモードの変更を監視できます。
win.getMediaSourceId()
string
を返します - DesktopCapturerSourceのID形式のウィンドウID。例:「window:1324:0」。
より正確には、形式はwindow:id:other_id
であり、id
はWindowsではHWND
、macOSではCGWindowID
(uint64_t
)、LinuxではWindow
(unsigned long
)です。other_id
は、同じ最上位ウィンドウ内のWebコンテンツ(タブ)を識別するために使用されます。
win.getNativeWindowHandle()
Buffer
を返します - ウィンドウのプラットフォーム固有のハンドル。
ハンドルのネイティブ型は、WindowsではHWND
、macOSではNSView*
、LinuxではWindow
(unsigned long
)です。
win.hookWindowMessage(message, callback)
Windows
message
整数callback
関数wParam
Buffer - WndProcに提供されるwParam
lParam
Buffer - WndProcに提供されるlParam
ウィンドウメッセージをフックします。callback
は、WndProcでメッセージを受信したときに呼び出されます。
win.isWindowMessageHooked(message)
Windows
message
整数
boolean
を返します - メッセージがフックされているかどうかによってtrue
またはfalse
。
win.unhookWindowMessage(message)
Windows
message
整数
ウィンドウメッセージのフックを外します。
win.unhookAllWindowMessages()
Windows
すべてのウィンドウメッセージのフックを外します。
win.setRepresentedFilename(filename)
macOS
filename
文字列
ウィンドウが表すファイルのパス名を設定し、ファイルのアイコンがウィンドウのタイトルバーに表示されます。
win.getRepresentedFilename()
macOS
string
を返します - ウィンドウが表すファイルのパス名。
win.setDocumentEdited(edited)
macOS
edited
ブール値
ウィンドウのドキュメントが編集されたかどうかを指定し、true
に設定するとタイトルバーのアイコンがグレーになります。
win.isDocumentEdited()
macOS
boolean
を返します - ウィンドウのドキュメントが編集されたかどうか。
win.setMenu(menu)
Linux Windows
menu
Menu | null
menu
をウィンドウのメニューバーとして設定します。
win.removeMenu()
Linux Windows
ウィンドウのメニューバーを削除します。
win.setProgressBar(progress[, options])
progress
倍精度浮動小数点数
プログレスバーの進捗値を設定します。有効な範囲は[0, 1.0]です。
progress < 0の場合、プログレスバーを削除します。progress > 1の場合、不定モードに変更します。
Linuxプラットフォームでは、Unityデスクトップ環境のみサポートされており、package.json
のdesktopName
フィールドに*.desktop
ファイル名を指定する必要があります。デフォルトでは、{app.name}.desktop
と想定されます。
Windowsでは、モードを渡すことができます。有効な値はnone
、normal
、indeterminate
、error
、paused
です。モードを設定せずに(ただし、有効範囲内の値で)setProgressBar
を呼び出すと、normal
が想定されます。
win.setOverlayIcon(overlay, description)
Windows
overlay
NativeImage | null - タスクバーアイコンの右下に表示するアイコン。このパラメーターがnull
の場合、オーバーレイはクリアされます。description
文字列 - アクセシビリティスクリーンリーダーに提供される説明。
16 x 16ピクセルのオーバーレイを現在のタスクバーアイコンに設定します。通常は、何らかのアプリケーションの状態を伝えるため、またはユーザーに受動的に通知するために使用されます。
win.invalidateShadow()
macOS
ウィンドウの影を無効にするため、現在のウィンドウシェイプに基づいて再計算されます。
透明なBaseWindow
は、macOSで視覚的なアーティファクトを残すことがあります。このメソッドは、たとえばアニメーションを実行する場合に、これらのアーティファクトをクリアするために使用できます。
win.setHasShadow(hasShadow)
hasShadow
ブール値
ウィンドウに影があるかどうかを設定します。
win.hasShadow()
boolean
を返します - ウィンドウに影があるかどうか。
win.setOpacity(opacity)
Windows macOS
opacity
数値 - 0.0(完全に透明)から1.0(完全に不透明)の間
ウィンドウの不透明度を設定します。Linuxでは、何も行いません。範囲外の数値は[0, 1]の範囲にクランプされます。
win.getOpacity()
number
を返します - 0.0(完全に透明)から1.0(完全に不透明)の間。Linuxでは、常に1を返します。
win.setShape(rects)
Windows Linux 実験的
rects
Rectangle[] - ウィンドウの形状を設定します。空のリストを渡すと、ウィンドウは長方形に戻ります。
ウィンドウの形状を設定すると、システムが描画とユーザー操作を許可するウィンドウ内の領域が決まります。指定された領域の外側には、ピクセルは描画されず、マウスイベントは登録されません。領域外のマウスイベントは、そのウィンドウでは受信されませんが、ウィンドウの後ろにあるものに渡されます。
win.setThumbarButtons(buttons)
Windows
buttons
ThumbarButton[]
boolean
を返します - ボタンが正常に追加されたかどうか
タスクバーボタンレイアウトのウィンドウのサムネイル画像に、指定されたボタンセットを使用してサムネイルツールバーを追加します。boolean
オブジェクトを返し、サムネイルが正常に追加されたかどうかを示します。
スペースが限られているため、サムネイルツールバーのボタン数は7個以下にする必要があります。サムネイルツールバーを設定したら、プラットフォームの制限により、ツールバーを削除することはできません。ただし、空の配列を使用してAPIを呼び出して、ボタンをクリアできます。
buttons
は、Button
オブジェクトの配列です。
Button
オブジェクトicon
NativeImage - サムネイルツールバーに表示されるアイコン。click
関数tooltip
文字列(オプション) - ボタンのツールチップのテキスト。flags
文字列配列(オプション) - ボタンの特定の状態と動作を制御します。デフォルトは['enabled']
です。
flags
は、次のstring
を含むことができる配列です。
enabled
- ボタンはアクティブで、ユーザーが使用できます。disabled
- ボタンは無効になっています。存在しますが、ユーザー操作に応答しないことを示す視覚的な状態になっています。dismissonclick
- ボタンをクリックすると、サムネイルウィンドウがすぐに閉じます。nobackground
- ボタンの境界線を描画せず、画像のみを使用します。hidden
- ボタンはユーザーに表示されません。noninteractive
- ボタンは有効ですが、インタラクティブではありません。押されたボタンの状態は描画されません。この値は、ボタンが通知で使用される場合を目的としています。
win.setThumbnailClip(region)
Windows
region
Rectangle - ウィンドウの領域
タスクバーでウィンドウにカーソルを合わせたときに表示されるサムネイル画像として表示するウィンドウの領域を設定します。空の領域を指定して、サムネイルをウィンドウ全体にすることができます。{ x: 0, y: 0, width: 0, height: 0 }
。
win.setThumbnailToolTip(toolTip)
Windows
toolTip
文字列
タスクバーのウィンドウサムネイルにカーソルを合わせたときに表示されるツールチップを設定します。
win.setAppDetails(options)
Windows
ウィンドウのタスクバーボタンのプロパティを設定します。
注記:relaunchCommand
とrelaunchDisplayName
は常に一緒に設定する必要があります。これらのプロパティのいずれかが設定されていない場合、どちらも使用されません。
win.setIcon(icon)
Windows Linux
icon
NativeImage | 文字列
ウィンドウアイコンを変更します。
win.setWindowButtonVisibility(visible)
macOS
visible
ブーリアン
ウィンドウの信号機ボタンを表示するかどうかを設定します。
win.setAutoHideMenuBar(hide)
Windows Linux
hide
ブーリアン
ウィンドウのメニューバーを自動的に非表示にするかどうかを設定します。設定されると、ユーザーが単一のAlt
キーを押したときにのみメニューバーが表示されます。
メニューバーが既に表示されている場合、setAutoHideMenuBar(true)
を呼び出しても、すぐに非表示になりません。
win.isMenuBarAutoHide()
Windows Linux
boolean
を返します - メニューバーが自動的に非表示になるかどうか。
win.setMenuBarVisibility(visible)
Windows Linux
visible
ブーリアン
メニューバーを表示するかどうかを設定します。メニューバーが自動的に非表示になっている場合でも、ユーザーは単一のAlt
キーを押してメニューバーを表示できます。
win.isMenuBarVisible()
Windows Linux
boolean
を返します - メニューバーが表示されているかどうか。
win.setVisibleOnAllWorkspaces(visible[, options])
macOS Linux
visible
ブーリアン
ウィンドウをすべてのワークスペースに表示するかどうかを設定します。
注記:このAPIはWindowsでは何も行いません。
win.isVisibleOnAllWorkspaces()
macOS Linux
boolean
を返します - ウィンドウがすべてのワークスペースに表示されているかどうか。
注記:このAPIはWindowsでは常にfalseを返します。
win.setIgnoreMouseEvents(ignore[, options])
ignore
ブーリアン
ウィンドウですべてのマウスイベントを無視するようにします。
このウィンドウで発生したすべてマウスイベントは、このウィンドウの下のウィンドウに渡されますが、このウィンドウにフォーカスがある場合、キーボードイベントは引き続き受信されます。
win.setContentProtection(enable)
macOS Windows
enable
boolean
他のアプリによるウィンドウコンテンツのキャプチャを防止します。
macOSでは、NSWindowのsharingTypeをNSWindowSharingNoneに設定します。Windowsでは、WDA_EXCLUDEFROMCAPTURE
を使用してSetWindowDisplayAffinityを呼び出します。Windows 10バージョン2004以降では、ウィンドウは完全にキャプチャから削除されます。古いバージョンのWindowsは、黒いウィンドウをキャプチャするWDA_MONITOR
が適用されているかのように動作します。
win.setFocusable(focusable)
macOS Windows
focusable
ブーリアン
ウィンドウにフォーカスを設定できるかどうかを変更します。
macOSでは、ウィンドウからフォーカスを削除しません。
win.isFocusable()
macOS Windows
boolean
を返します - ウィンドウにフォーカスできるかどうか。
win.setParentWindow(parent)
parent
BaseWindow | null
現在のウィンドウの親ウィンドウとしてparent
を設定します。null
を渡すと、現在のウィンドウはトップレベルウィンドウになります。
win.getParentWindow()
BaseWindow | null
を返します - 親ウィンドウ、または親がない場合はnull
。
win.getChildWindows()
BaseWindow[]
を返します - 全ての子ウィンドウ。
win.setAutoHideCursor(autoHide)
macOS
autoHide
boolean
入力時にカーソルを隠すかどうかを制御します。
win.selectPreviousTab()
macOS
ネイティブタブが有効になっていて、ウィンドウに他のタブがある場合、前のタブを選択します。
win.selectNextTab()
macOS
ネイティブタブが有効になっていて、ウィンドウに他のタブがある場合、次のタブを選択します。
win.showAllTabs()
macOS
ネイティブタブが有効な場合、タブの概要を表示または非表示にします。
win.mergeAllWindows()
macOS
ネイティブタブが有効で、複数のウィンドウが開いている場合、すべてのウィンドウを複数のタブを持つ1つのウィンドウにマージします。
win.moveTabToNewWindow()
macOS
ネイティブタブが有効で、現在のウィンドウに複数のタブがある場合、現在のタブを新しいウィンドウに移動します。
win.toggleTabBar()
macOS
ネイティブタブが有効で、現在のウィンドウにタブが1つしかない場合、タブバーの表示/非表示を切り替えます。
win.addTabbedWindow(baseWindow)
macOS
baseWindow
BaseWindow
ウィンドウインスタンスのタブの後に、タブとしてウィンドウを追加します。
win.setVibrancy(type)
macOS
type
string | null -titlebar
、selection
、menu
、popover
、sidebar
、header
、sheet
、window
、hud
、fullscreen-ui
、tooltip
、content
、under-window
、またはunder-page
のいずれかです。macOS のドキュメント を参照してください。
ウィンドウにバイブランシー効果を追加します。null
または空の文字列を渡すと、ウィンドウのバイブランシー効果が削除されます。
win.setBackgroundMaterial(material)
Windows
material
stringauto
- デスクトップウィンドウマネージャー (DWM) がこのウィンドウのシステム描画バックドロップ素材を自動的に決定します。これはデフォルトです。none
- システムバックドロップを描画しません。mica
- 長時間存在するウィンドウに対応するバックドロップ素材効果を描画します。acrylic
- 一時的なウィンドウに対応するバックドロップ素材効果を描画します。tabbed
- タブ付きタイトルバーを持つウィンドウに対応するバックドロップ素材効果を描画します。
このメソッドは、クライアント領域以外の部分も含めて、ブラウザウィンドウのシステム描画バックグラウンド素材を設定します。
Windows のドキュメント を参照してください。
注記: このメソッドは、Windows 11 22H2 以降でのみサポートされています。
win.setWindowButtonPosition(position)
macOS
position
Point | null
フレームレスウィンドウの信号機ボタンのカスタム位置を設定します。null
を渡すと、位置がデフォルトにリセットされます。
win.getWindowButtonPosition()
macOS
Point | null
を返します - フレームレスウィンドウの信号機ボタンのカスタム位置。カスタム位置がない場合はnull
が返されます。
win.setTouchBar(touchBar)
macOS
touchBar
TouchBar | null
現在のウィンドウのtouchBarレイアウトを設定します。null
またはundefined
を指定すると、タッチバーがクリアされます。このメソッドは、マシンにタッチバーがある場合にのみ効果があります。
注記: TouchBar API は現在実験段階であり、将来の Electron リリースで変更または削除される可能性があります。
win.setTitleBarOverlay(options)
Windows Linux
ウィンドウコントロールオーバーレイが既に有効になっているウィンドウでは、このメソッドはタイトルバーオーバーレイのスタイルを更新します。
Linuxでは、明示的に設定されていない場合、symbolColor
はcolor
に対して最小限のアクセシビリティコントラストを持つように自動的に計算されます。