/**
* Navigation bar fullscreen button class
* @param {module:components.PSVNavBar} navbar
* @constructor
* @extends module:components/buttons.PSVNavBarButton
* @memberof module:components/buttons
*/
function PSVNavBarFullscreenButton(navbar) {
PSVNavBarButton.call(this, navbar);
this.create();
}
PSVNavBarFullscreenButton.prototype = Object.create(PSVNavBarButton.prototype);
PSVNavBarFullscreenButton.prototype.constructor = PSVNavBarFullscreenButton;
PSVNavBarFullscreenButton.id = 'fullscreen';
PSVNavBarFullscreenButton.className = 'psv-button psv-button--hover-scale psv-fullscreen-button';
PSVNavBarFullscreenButton.icon = 'fullscreen-in.svg';
PSVNavBarFullscreenButton.iconActive = 'fullscreen-out.svg';
/**
* @override
*/
PSVNavBarFullscreenButton.prototype.create = function() {
PSVNavBarButton.prototype.create.call(this);
this.psv.on('fullscreen-updated', this);
};
/**
* @override
*/
PSVNavBarFullscreenButton.prototype.destroy = function() {
this.psv.off('fullscreen-updated', this);
PSVNavBarButton.prototype.destroy.call(this);
};
/**
* @override
*/
PSVNavBarFullscreenButton.prototype.supported = function() {
return !!PhotoSphereViewer.SYSTEM.fullscreenEvent;
};
/**
* Handle events
* @param {Event} e
* @private
*/
PSVNavBarFullscreenButton.prototype.handleEvent = function(e) {
switch (e.type) {
// @formatter:off
case 'fullscreen-updated': this.toggleActive(e.args[0]); break;
// @formatter:on
}
};
/**
* @override
* @description Toggles fullscreen
*/
PSVNavBarFullscreenButton.prototype._onClick = function() {
this.psv.toggleFullscreen();
};