Package Exports
- simple-window-manager
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (simple-window-manager) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
simple-window-manager
A javascript-only Window Manager
features
- basic windowing experience (works great with electron to run multiple windows under one process)
- create normal and modal windows
- optionally snap windows to screen edges and/or other windows
- takes advantage of all the features of the DOM, including undefined width and/or height to automatically adjust size of window based on content
- windows may be resized, maximized, and minimized
- minimize works by minimizing to a small square that can be moved independently. Clicking it restores to its original size and location. Minimizing again moves the small square back to the last minimized location.
- can save and load windowing state (e.g., using localStorage or json files using Electron)
- emits events (using eventemitter3)
- uses javascript animations instead of CSS
rationale
I used Ventus to build internal tools and editors, but I wanted a more configurable solution with a better event model that didn't rely on CSS.
live example
https://davidfig.github.io/window-manager/
installation
npm i simple-window-manager
API documentation
https://davidfig.github.io/window-manager/jsdoc/
simple example
var WM = require('simple-window-manager');
// this is the window manager with one of the default options changed
var wm = new WM({ backgroundColorWindow: 'green' });
// enable window snapping to screen edges and other windows when moving
wm.snap()
// create a window
var window = wm.createWindow({ width: 500, height: 500, title: 'Test Window' });
// set content of window
window.content.style.margin = '10px';
window.content.innerHTML = 'This is a nifty window.';
// open the window
window.open();
License
MIT License
(c) 2018 YOPEY YOPEY LLC by David Figatner