Files
chrome-extensions-samples/apps/samples/windows/main.js
Sam Thorogood 8af19b8ca9 move
2020-12-04 09:18:01 +11:00

105 lines
2.3 KiB
JavaScript

var windows = [];
/**
* Resets the windows and removes
* any interval that is running
*/
function reset() {
windows.forEach( function (w) {
w.contentWindow.close();
} );
windows.length = 0;
}
/**
* Initialise and launch the windows
* @see http://developer.chrome.com/apps/app.window.html
*/
function launch() {
// reset everything
reset();
// create the original window
chrome.app.window.create('original.html', {
id: "mainwin",
innerBounds: {
top: 128,
left: 128,
width: 300,
height: 300,
minHeight: 300,
maxWidth: 500,
minWidth: 300
},
frame: 'none'
},
// when that is created store it
// and create the copycat window
function(originalWindow) {
windows.push(originalWindow);
chrome.app.window.create('copycat.html', {
id: "copywin",
innerBounds: {
top: 128,
left: 428 + 5,
width: 300,
height: 300,
minHeight: 300,
maxWidth: 500,
minWidth: 300
},
frame: 'none'
},
function(copycatWindow) {
// store the copycat
windows.push(copycatWindow);
// now have the copycat watch the
// original window for changes
originalWindow.onClosed.addListener(reset);
copycatWindow.onClosed.addListener(reset);
originalWindow.onBoundsChanged.addListener(function() {
var bounds = originalWindow.outerBounds;
copycatWindow.outerBounds.left = bounds.left + bounds.width + 5;
});
copycatWindow.onRestored.addListener(function() {
console.log('copy restored');
if (originalWindow.isMinimized())
originalWindow.restore();
})
originalWindow.onRestored.addListener(function() {
console.log('copy restored');
if (copycatWindow.isMinimized())
copycatWindow.restore();
})
originalWindow.focus();
});
});
}
/**
* Minimises both the original and copycat windows
* @see http://developer.chrome.com/apps/app.window.html
*/
function minimizeAll() {
windows.forEach( function (w) {
w.minimize();
});
}
// @see http://developer.chrome.com/apps/app.runtime.html
chrome.app.runtime.onLaunched.addListener(launch);