import { BrowserWindow , BrowserWindowConstructorOptions } from "electron" ; import log from "electron-log" ; import { IPCMessageNames } from "../ipc/IPCMessageNames" ; /**
 * Overlay style electron window
 */ export class CompositeWindow extends BrowserWindow { private isInteractive = false ; constructor ( opts ? ) { super ( { ... opts , ... { alwaysOnTop : true , focusable : false , frame : false , skipTaskbar : true , transparent : true } } ) ; this . setIgnoreMouseEvents ( true ) ; } /**
     * Toggles window interactivity - making it clickable and whatnot
     */ public toggleWindowInteractivity ( ) { this . isInteractive = ! this . isInteractive ; this . setFocusable ( this . isInteractive ) ; this . setIgnoreMouseEvents ( ! this . isInteractive ) ; this . webContents . send ( IPCMessageNames . ToggleEditMode , this . isInteractive ) ; log . info ( 'toggled compositor interactivity' ) ; } /**
     * Toggles dev tools overlay - showing chrome dev tools in the electron window
     */ public toggleDevTools ( ) { this . webContents . toggleDevTools ( ) ; log . info ( 'toggled compositor DevTools' ) ; } }