evwt
Version:
89 lines (57 loc) • 2.37 kB
Markdown
A smarter BrowserWindow that automatically remembers its size and position.
?> 🧠 The default background.js is already set up with EvWindow out of the box.
```js
import { EvWindow } from 'evwt/background';
// Electron BrowserWindow options
// https://www.electronjs.org/docs/api/browser-window#new-browserwindowoptions
let options = {
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
};
let restoreId = 'main'; // or a file path, database ID, etc in multiwindow apps
let evWindow = new EvWindow(restoreId, options);
let win = evWindow.browserWindow; // access the browserWindow for the full Electron API
```
A window created in this way will have its size and position remembered across restarts.
> Window state is saved based on the restoreId to evwt-ui-state.json in the [userData](https://www.electronjs.org/docs/api/app#appgetpathname) directory
EvWindow can arrange windows on the screen in various ways. See reference below for all options.
```js
import { EvWindow } from 'evwt/background';
EvWindow.arrange('tile'); // tile, cascade, rows or columns
```
<a name="module_EvWindow"></a>
* [EvWindow](
* _instance_
* [.addEnvironmentClasses()](
* _static_
* [.fromBrowserWindow(win)](
* [.arrange(arrangement)](
<a name="module_EvWindow+addEnvironmentClasses"></a>
Add CSS classes to body based on environment
**Kind**: instance method of [<code>EvWindow</code>](
<a name="module_EvWindow.fromBrowserWindow"></a>
Return the EvWindow associated with the passed BrowserWindow
**Kind**: static method of [<code>EvWindow</code>](
**Returns**: EvWindow
| Param | Type |
| --- | --- |
| win | <code>BrowserWindow</code> |
<a name="module_EvWindow.arrange"></a>
Arranges windows on the screen.
**Kind**: static method of [<code>EvWindow</code>](
| Param | Type | Description |
| --- | --- | --- |
| arrangement | <code>String</code> | `tile`, `cascade`, `rows` or `columns` |