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イベントnewBoundsRectangle - ウィンドウがリサイズされるサイズ。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イベントnewBoundsRectangle - ウィンドウが移動される位置。
ウィンドウが移動される前に送出されます。Windowsでは、event.preventDefault()を呼び出すと、ウィンドウの移動を阻止できます。
これは、ウィンドウを手動で移動した場合にのみ送出されることに注意してください。setPosition/setBounds/centerを使用してウィンドウを移動しても、このイベントは送出されません。
イベント: 'move'
ウィンドウが新しい位置に移動されるときに送出されます。
イベント: 'moved' macOS Windows
ウィンドウが新しい位置に移動されるときに1回送出されます。
注記: macOSでは、このイベントはmoveのエイリアスです。
イベント: 'enter-full-screen'
ウィンドウがフルスクリーン状態になるときに送出されます。
イベント: 'leave-full-screen'
ウィンドウがフルスクリーン状態から抜けるときに送出されます。
イベント: 'always-on-top-changed'
戻り値
eventイベントisAlwaysOnTopboolean
ウィンドウが常に他のウィンドウの上に表示されるように設定または解除されたときに送出されます。
イベント: 'app-command' Windows Linux
戻り値
eventイベントcommandstring
アプリケーションコマンドが呼び出されるときに送出されます。これらは通常、キーボードのメディアキーまたはブラウザのコマンド、および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-backwardbrowser-forward
イベント: 'swipe' macOS
戻り値
eventイベントdirectionstring
3本指スワイプで送出されます。可能な方向はup、right、down、leftです。
このイベントを基盤とするメソッドは、画面上のコンテンツがスワイプと共に移動しない、古いmacOSスタイルのトラックパッドスワイプを処理するように構築されています。ほとんどのmacOSトラックパッドはこの種のスワイプを許可するように構成されていません。そのため、正しく送出するには、システム環境設定 > トラックパッド > その他のジェスチャの「ページ間のスワイプ」設定を「2本または3本指でスワイプ」に設定する必要があります。
イベント: 'rotate-gesture' macOS
戻り値
eventイベントrotationFloat
トラックパッドの回転ジェスチャで送出されます。回転ジェスチャが終了するまで継続的に送出されます。各送出時のrotation値は、前回送出以降に回転した角度(度)です。回転ジェスチャでの最後の送出イベントの値は常に0です。反時計回りの回転値は正で、時計回りの回転値は負です。
イベント: 'sheet-begin' macOS
ウィンドウがシートを開くと送出されます。
イベント: 'sheet-end' macOS
ウィンドウがシートを閉じると送出されます。
イベント: 'new-window-for-tab' macOS
ネイティブの新しいタブボタンがクリックされると送出されます。
イベント: 'system-context-menu' Windows
戻り値
eventイベントpointPoint - コンテキストメニューがトリガーされた画面座標。
ウィンドウでシステムコンテキストメニューがトリガーされると送出されます。これは通常、ユーザーがウィンドウのクライアント領域以外(ウィンドウのタイトルバー、またはフレームレスウィンドウで-webkit-app-region: dragとして宣言した領域)を右クリックした場合にのみトリガーされます。
event.preventDefault()を呼び出すと、メニューの表示を阻止できます。
静的メソッド
BaseWindowクラスには、次の静的メソッドがあります。
BaseWindow.getAllWindows()
BaseWindow[]を返します - 開いているすべてのブラウザウィンドウの配列。
BaseWindow.getFocusedWindow()
BaseWindow | nullを返します - このアプリケーションでフォーカスされているウィンドウ。そうでない場合はnullを返します。
BaseWindow.fromId(id)
idInteger
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)
viewView
ウィンドウのコンテンツビューを設定します。
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)
flagboolean
ウィンドウが全画面モードになるかどうかを設定します。
注記: macOSでは、全画面への遷移は非同期に行われます。全画面の状態に依存するアクションがさらに必要な場合は、'enter-full-screen'または'leave-full-screen'イベントを使用してください。
win.isFullScreen()
booleanを返します - ウィンドウが全画面モードかどうか。
win.setSimpleFullScreen(flag) macOS
flagboolean
シンプルな全画面モードに入るか出ます。
シンプルな全画面モードは、Lion(10.7)以前のバージョンのmacOSに見られるネイティブな全画面動作をエミュレートします。
win.isSimpleFullScreen() macOS
booleanを返します - ウィンドウがシンプルな(Lion以前の)全画面モードかどうか。
win.isNormal()
booleanを返します - ウィンドウが通常の状態(最大化されておらず、最小化されておらず、全画面モードではない)かどうか。
win.setAspectRatio(aspectRatio[, extraSize])
aspectRatioFloat - コンテンツビューの一部について維持するアスペクト比。extraSizeSize (オプション) 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)
backgroundColorstring - 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
pathstring - QuickLookでプレビューするファイルの絶対パス。Quick Lookは、ファイルの種類を判別するために、パス上のファイル名と拡張子を使用するため、重要です。displayNamestring (オプション) - Quick Lookモーダルビューに表示するファイル名。これは純粋に視覚的なものであり、ファイルの種類には影響しません。デフォルトはpathです。
指定されたパスのファイルをQuick Lookを使用してプレビューします。
win.closeFilePreview() macOS
現在開いているQuick Lookパネルを閉じます。
win.setBounds(bounds[, animate])
boundsPartial<Rectangle>animateboolean (オプション) 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])
boundsRectangleanimateboolean (オプション) macOS
ウィンドウのクライアント領域(例:ウェブページ)のサイズを変更し、移動します。
win.getContentBounds()
Rectangleを返します - ウィンドウのクライアント領域のboundsをObjectとして返します。
win.getNormalBounds()
Rectangleを返します - 通常状態のウィンドウの範囲を含みます。
注記: ウィンドウの現在の状態(最大化、最小化、または全画面表示)に関係なく、この関数は常に通常状態のウィンドウの位置とサイズを返します。通常状態では、getBoundsとgetNormalBoundsは同じRectangleを返します。
win.setEnabled(enable)
enableboolean
ウィンドウを無効化または有効化します。
win.isEnabled()
booleanを返します - ウィンドウが有効かどうか。
win.setSize(width, height[, animate])
widthIntegerheightIntegeranimateboolean (オプション) macOS
ウィンドウをwidthとheightにサイズ変更します。widthまたはheightが設定された最小サイズ制約を下回ると、ウィンドウは最小サイズにスナップします。
win.getSize()
Integer[]を返します - ウィンドウの幅と高さを含みます。
win.setContentSize(width, height[, animate])
widthIntegerheightIntegeranimateboolean (オプション) macOS
ウィンドウのクライアント領域(例:ウェブページ)をwidthとheightにサイズ変更します。
win.getContentSize()
Integer[]を返します - ウィンドウのクライアント領域の幅と高さを含みます。
win.setMinimumSize(width, height)
widthIntegerheightInteger
ウィンドウの最小サイズをwidthとheightに設定します。
win.getMinimumSize()
Integer[]を返します - ウィンドウの最小幅と高さを含みます。
win.setMaximumSize(width, height)
widthIntegerheightInteger
ウィンドウの最大サイズをwidthとheightに設定します。
win.getMaximumSize()
Integer[]を返します - ウィンドウの最大幅と高さを含みます。
win.setResizable(resizable)
resizableboolean
ユーザーが手動でウィンドウのサイズを変更できるかどうかを設定します。
win.isResizable()
booleanを返します - ユーザーが手動でウィンドウのサイズを変更できるかどうか。
win.setMovable(movable) macOS Windows
movableboolean
ユーザーがウィンドウを移動できるかどうかを設定します。Linuxでは何も行いません。
win.isMovable() macOS Windows
booleanを返します - ユーザーがウィンドウを移動できるかどうか。
Linuxでは常にtrueを返します。
win.setMinimizable(minimizable) macOS Windows
minimizableboolean
ユーザーが手動でウィンドウを最小化できるかどうかを設定します。Linuxでは何も行いません。
win.isMinimizable() macOS Windows
booleanを返します - ユーザーが手動でウィンドウを最小化できるかどうか。
Linuxでは常にtrueを返します。
win.setMaximizable(maximizable) macOS Windows
maximizableboolean
ユーザーが手動でウィンドウを最大化できるかどうかを設定します。Linuxでは何も行いません。
win.isMaximizable() macOS Windows
booleanを返します - ユーザーが手動でウィンドウを最大化できるかどうか。
Linuxでは常にtrueを返します。
win.setFullScreenable(fullscreenable)
fullscreenableboolean
最大化/ズームウィンドウボタンが全画面モードを切り替えるか、ウィンドウを最大化するかどうかを設定します。
win.isFullScreenable()
booleanを返します - 最大化/ズームウィンドウボタンが全画面モードを切り替えるか、ウィンドウを最大化するかどうか。
win.setClosable(closable) macOS Windows
closableboolean
ユーザーが手動でウィンドウを閉じることができるかどうかを設定します。Linuxでは何も行いません。
win.isClosable() macOS Windows
booleanを返します - ユーザーが手動でウィンドウを閉じることができるかどうか。
Linuxでは常にtrueを返します。
win.setHiddenInMissionControl(hidden) macOS
hiddenboolean
ユーザーがMission Controlに切り替えたときにウィンドウを非表示にするかどうかを設定します。
win.isHiddenInMissionControl() macOS
booleanを返します - ユーザーがMission Controlに切り替えたときにウィンドウを非表示にするかどうか。
win.setAlwaysOnTop(flag[, level][, relativeLevel])
flagbooleanlevel文字列(オプション) macOS Windows - 値には、normal、floating、torn-off-menu、modal-panel、main-menu、status、pop-up-menu、screen-saver、および(非推奨)が含まれます。dockflagが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整数animateboolean (オプション) 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 |
flagboolean
ユーザーの注意を引くためにウィンドウの点滅を開始または停止します。
win.setSkipTaskbar(skip) macOS Windows
skipブール値
タスクバーにウィンドウを表示しないようにします。
win.setKiosk(flag)
flagboolean
キオスクモードの入退室を行います。
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関数wParamBuffer - WndProcに提供されるwParamlParamBuffer - 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
menuMenu | 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
overlayNativeImage | 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 実験的
rectsRectangle[] - ウィンドウの形状を設定します。空のリストを渡すと、ウィンドウは長方形に戻ります。
ウィンドウの形状を設定すると、システムが描画とユーザー操作を許可するウィンドウ内の領域が決まります。指定された領域の外側には、ピクセルは描画されず、マウスイベントは登録されません。領域外のマウスイベントは、そのウィンドウでは受信されませんが、ウィンドウの後ろにあるものに渡されます。
win.setThumbarButtons(buttons) Windows
buttonsThumbarButton[]
booleanを返します - ボタンが正常に追加されたかどうか
タスクバーボタンレイアウトのウィンドウのサムネイル画像に、指定されたボタンセットを使用してサムネイルツールバーを追加します。booleanオブジェクトを返し、サムネイルが正常に追加されたかどうかを示します。
スペースが限られているため、サムネイルツールバーのボタン数は7個以下にする必要があります。サムネイルツールバーを設定したら、プラットフォームの制限により、ツールバーを削除することはできません。ただし、空の配列を使用してAPIを呼び出して、ボタンをクリアできます。
buttonsは、Buttonオブジェクトの配列です。
ButtonオブジェクトiconNativeImage - サムネイルツールバーに表示されるアイコン。click関数tooltip文字列(オプション) - ボタンのツールチップのテキスト。flags文字列配列(オプション) - ボタンの特定の状態と動作を制御します。デフォルトは['enabled']です。
flagsは、次のstringを含むことができる配列です。
enabled- ボタンはアクティブで、ユーザーが使用できます。disabled- ボタンは無効になっています。存在しますが、ユーザー操作に応答しないことを示す視覚的な状態になっています。dismissonclick- ボタンをクリックすると、サムネイルウィンドウがすぐに閉じます。nobackground- ボタンの境界線を描画せず、画像のみを使用します。hidden- ボタンはユーザーに表示されません。noninteractive- ボタンは有効ですが、インタラクティブではありません。押されたボタンの状態は描画されません。この値は、ボタンが通知で使用される場合を目的としています。
win.setThumbnailClip(region) Windows
regionRectangle - ウィンドウの領域
タスクバーでウィンドウにカーソルを合わせたときに表示されるサムネイル画像として表示するウィンドウの領域を設定します。空の領域を指定して、サムネイルをウィンドウ全体にすることができます。{ x: 0, y: 0, width: 0, height: 0 }。
win.setThumbnailToolTip(toolTip) Windows
toolTip文字列
タスクバーのウィンドウサムネイルにカーソルを合わせたときに表示されるツールチップを設定します。
win.setAppDetails(options) Windows
ウィンドウのタスクバーボタンのプロパティを設定します。
注記:relaunchCommandとrelaunchDisplayNameは常に一緒に設定する必要があります。これらのプロパティのいずれかが設定されていない場合、どちらも使用されません。
win.setIcon(icon) Windows Linux
iconNativeImage | 文字列
ウィンドウアイコンを変更します。
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
enableboolean
他のアプリによるウィンドウコンテンツのキャプチャを防止します。
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)
parentBaseWindow | null
現在のウィンドウの親ウィンドウとしてparentを設定します。nullを渡すと、現在のウィンドウはトップレベルウィンドウになります。
win.getParentWindow()
BaseWindow | null を返します - 親ウィンドウ、または親がない場合はnull。
win.getChildWindows()
BaseWindow[] を返します - 全ての子ウィンドウ。
win.setAutoHideCursor(autoHide) macOS
autoHideboolean
入力時にカーソルを隠すかどうかを制御します。
win.selectPreviousTab() macOS
ネイティブタブが有効になっていて、ウィンドウに他のタブがある場合、前のタブを選択します。
win.selectNextTab() macOS
ネイティブタブが有効になっていて、ウィンドウに他のタブがある場合、次のタブを選択します。
win.showAllTabs() macOS
ネイティブタブが有効な場合、タブの概要を表示または非表示にします。
win.mergeAllWindows() macOS
ネイティブタブが有効で、複数のウィンドウが開いている場合、すべてのウィンドウを複数のタブを持つ1つのウィンドウにマージします。
win.moveTabToNewWindow() macOS
ネイティブタブが有効で、現在のウィンドウに複数のタブがある場合、現在のタブを新しいウィンドウに移動します。
win.toggleTabBar() macOS
ネイティブタブが有効で、現在のウィンドウにタブが1つしかない場合、タブバーの表示/非表示を切り替えます。
win.addTabbedWindow(baseWindow) macOS
baseWindowBaseWindow
ウィンドウインスタンスのタブの後に、タブとしてウィンドウを追加します。
win.setVibrancy(type) macOS
typestring | null -titlebar、selection、menu、popover、sidebar、header、sheet、window、hud、fullscreen-ui、tooltip、content、under-window、またはunder-pageのいずれかです。macOS のドキュメント を参照してください。
ウィンドウにバイブランシー効果を追加します。nullまたは空の文字列を渡すと、ウィンドウのバイブランシー効果が削除されます。
win.setBackgroundMaterial(material) Windows
materialstringauto- デスクトップウィンドウマネージャー (DWM) がこのウィンドウのシステム描画バックドロップ素材を自動的に決定します。これはデフォルトです。none- システムバックドロップを描画しません。mica- 長時間存在するウィンドウに対応するバックドロップ素材効果を描画します。acrylic- 一時的なウィンドウに対応するバックドロップ素材効果を描画します。tabbed- タブ付きタイトルバーを持つウィンドウに対応するバックドロップ素材効果を描画します。
このメソッドは、クライアント領域以外の部分も含めて、ブラウザウィンドウのシステム描画バックグラウンド素材を設定します。
Windows のドキュメント を参照してください。
注記: このメソッドは、Windows 11 22H2 以降でのみサポートされています。
win.setWindowButtonPosition(position) macOS
positionPoint | null
フレームレスウィンドウの信号機ボタンのカスタム位置を設定します。nullを渡すと、位置がデフォルトにリセットされます。
win.getWindowButtonPosition() macOS
Point | null を返します - フレームレスウィンドウの信号機ボタンのカスタム位置。カスタム位置がない場合はnullが返されます。
win.setTouchBar(touchBar) macOS
touchBarTouchBar | null
現在のウィンドウのtouchBarレイアウトを設定します。nullまたはundefinedを指定すると、タッチバーがクリアされます。このメソッドは、マシンにタッチバーがある場合にのみ効果があります。
注記: TouchBar API は現在実験段階であり、将来の Electron リリースで変更または削除される可能性があります。
win.setTitleBarOverlay(options) Windows Linux
ウィンドウコントロールオーバーレイが既に有効になっているウィンドウでは、このメソッドはタイトルバーオーバーレイのスタイルを更新します。
Linuxでは、明示的に設定されていない場合、symbolColorはcolorに対して最小限のアクセシビリティコントラストを持つように自動的に計算されます。