Positions a custom electron tray window
MIT License
Helps to position a electron window as a custom tray menu window. On Windows and OSX the tray bar location is calculated and the window is positioned based on the tray bar location.
On linux the position is calculated based on the current cursor position, because Tray.getBounds()
always returns a Rectangle
with all values set to zero.
npm install --save electron-traywindow-positioner
const positioner = require('electron-traywindow-positioner');
positioner.position(trayWindow, trayBounds);
trayWindow
must be an instance of a BrowserWindow
.trayBounds
must be an instance of Rectangle
returned from tray.getBounds()
const positioner = require('electron-traywindow-positioner');
positioner.calculate(windowBounds, trayBounds);
windowBounds
must be an instance of Rectangle
returned from BrowserWindow.getBounds()
.trayBounds
must be an instance of Rectangle
returned from tray.getBounds()
const alignment = {x: 'left', y: 'up'};
const positioner = require('electron-traywindow-positioner');
positioner.position(trayWindow, trayBounds, alignment);
// or
positioner.calculate(windowBounds, trayBounds, alignment);
alignmet.x
alignment on x axis relative to tray icon when tray bar is top or bottom.
The value can be one of left
, center
or right
, default is center
.
alignmet.y
alignment on y axis relative to tray icon when tray bar is left or right.
The value can be one of up
, center
or down
, default is down
.