Fixed fullscreen toggling
This commit is contained in:
@@ -39,9 +39,11 @@ function ApertureHandler(canvas) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (axis === 'v') {
|
if (axis === 'v') {
|
||||||
|
active[0].width= active[1].width = canvas.width;
|
||||||
active[0].top = viewport.top - active[0].height + 0.5;
|
active[0].top = viewport.top - active[0].height + 0.5;
|
||||||
active[1].top = viewport.top + viewport.height - 0.5;
|
active[1].top = viewport.top + viewport.height - 0.5;
|
||||||
} else {
|
} else {
|
||||||
|
active[0].height = active[1].height = canvas.height;
|
||||||
active[0].left = viewport.left - active[0].width + 0.5;
|
active[0].left = viewport.left - active[0].width + 0.5;
|
||||||
active[1].left = viewport.left + viewport.width - 0.5;
|
active[1].left = viewport.left + viewport.width - 0.5;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,9 +31,9 @@ function ButtonMenu(canvas, settings) {
|
|||||||
* @param {Function} callback
|
* @param {Function} callback
|
||||||
* @return {ButtonMenu}
|
* @return {ButtonMenu}
|
||||||
*/
|
*/
|
||||||
this.addItem = function(text, callback, isActive) {
|
this.addItem = function(id, text, callback, isActive) {
|
||||||
_textButtons.push(
|
_textButtons.push(
|
||||||
new TextButton(text, settings)
|
new TextButton(id, text, settings)
|
||||||
.onClick(callback)
|
.onClick(callback)
|
||||||
.set({__group: this})
|
.set({__group: this})
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ var DragHandle = function (handler) {
|
|||||||
|
|
||||||
this.setHandlePosition = function() {
|
this.setHandlePosition = function() {
|
||||||
this.__handles.v.set({left: handler.getTracks().v.left}).setCoords();
|
this.__handles.v.set({left: handler.getTracks().v.left}).setCoords();
|
||||||
|
this.__handles.h.set({top: handler.getTracks().h.top}).setCoords();
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -58,11 +58,12 @@ function DragbarHandler(canvas) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.resetPosition = function() {
|
this.resetPosition = function() {
|
||||||
if (!_dragbars.v) {
|
if (!_dragbars.v || !_dragbars.h) {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
_dragbars.v.set({ left: canvas.width - 30 }).setCoords();
|
_dragbars.v.set({ left: canvas.width - 30 }).setCoords();
|
||||||
|
_dragbars.h.set({ top: canvas.height - 30 }).setCoords();
|
||||||
this.__handles.setHandlePosition();
|
this.__handles.setHandlePosition();
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -25,27 +25,41 @@ function ImageEditor(canvasId, args) {
|
|||||||
*/
|
*/
|
||||||
if (_canvas.__type === 'canvas') {
|
if (_canvas.__type === 'canvas') {
|
||||||
_canvas.getButtonMenu()
|
_canvas.getButtonMenu()
|
||||||
.addItem('Flat', function () {
|
.addItem('flat', 'Flat', function () {
|
||||||
_canvas.toggle3D(false);
|
_canvas.toggle3D(false);
|
||||||
})
|
}, true)
|
||||||
.addItem('3D', function () {
|
.addItem('3d', '3D', function () {
|
||||||
_canvas.toggle3D(true);
|
_canvas.toggle3D(true);
|
||||||
})
|
})
|
||||||
.render();
|
.render();
|
||||||
} else {
|
} else {
|
||||||
_canvas.getButtonMenu()
|
_canvas.getButtonMenu()
|
||||||
.addItem(['Show Murals Panel', 'Hide Murals Panel'], function () {
|
.addItem('toggleMurals', ['Show Murals Panel', 'Hide Murals Panel'], function () {
|
||||||
_canvas.getViewport().getGores().enable(this.isActive());
|
_canvas.getViewport().getGores().enable(this.isActive());
|
||||||
})
|
})
|
||||||
.addItem(['Show Ruler', 'Hide Ruler'], function () {
|
.addItem('toggleRulers', ['Show Ruler', 'Hide Ruler'], function () {
|
||||||
_canvas.getViewport().getRulers().enable(this.isActive());
|
_canvas.getViewport().getRulers().enable(this.isActive());
|
||||||
})
|
})
|
||||||
.addItem(['Fullscreen', 'Exit Fullscreen'], function () {
|
.addItem('toggleFullscreen', ['Fullscreen', 'Exit Fullscreen'], function () {
|
||||||
util.toggleFullscreen(_canvas.getSelectionElement().parentNode);
|
util.toggleFullscreen(_canvas.getSelectionElement().parentNode);
|
||||||
})
|
})
|
||||||
.render();
|
.render();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$(_canvas.getSelectionElement().parentNode).bind('webkitfullscreenchange mozfullscreenchange fullscreenchange', function(e) {
|
||||||
|
var isFullscreen = document.fullScreen || document.mozFullScreen || document.webkitIsFullScreen;
|
||||||
|
|
||||||
|
if (isFullscreen) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_canvas.getButtonMenu().getItems().forEach(function(button) {
|
||||||
|
if (button.getId() === 'toggleFullscreen') {
|
||||||
|
button.setActive(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Crops image to desired dimensions
|
* Crops image to desired dimensions
|
||||||
* @param {int} width [description]
|
* @param {int} width [description]
|
||||||
|
|||||||
@@ -77,13 +77,13 @@ function RulerHandler(viewport) {
|
|||||||
viewport.canvas.add(_lines.h);
|
viewport.canvas.add(_lines.h);
|
||||||
viewport.canvas.add(_lines.v);
|
viewport.canvas.add(_lines.v);
|
||||||
|
|
||||||
_rect.h = new TextButton('H', config.rulerHandle)
|
_rect.h = new TextButton('horizontalRuler', 'H', config.rulerHandle)
|
||||||
.set(config.rulerHandle.h(_lines, bounds))
|
.set(config.rulerHandle.h(_lines, bounds))
|
||||||
.addTo(viewport.canvas)
|
.addTo(viewport.canvas)
|
||||||
.on('moving', Event.onMove)
|
.on('moving', Event.onMove)
|
||||||
.trigger('moving');
|
.trigger('moving');
|
||||||
|
|
||||||
_rect.v = new TextButton('V', config.rulerHandle)
|
_rect.v = new TextButton('verticalRuler', 'V', config.rulerHandle)
|
||||||
.set(config.rulerHandle.v(_lines, bounds))
|
.set(config.rulerHandle.v(_lines, bounds))
|
||||||
.addTo(viewport.canvas)
|
.addTo(viewport.canvas)
|
||||||
.on('moving', Event.onMove)
|
.on('moving', Event.onMove)
|
||||||
|
|||||||
@@ -7,12 +7,13 @@ var config = require('../config');
|
|||||||
* @param {String} text - text to be shown inside the button
|
* @param {String} text - text to be shown inside the button
|
||||||
* @param {Object} settings
|
* @param {Object} settings
|
||||||
*/
|
*/
|
||||||
function TextButton(text, settings) {
|
function TextButton(id, text, settings) {
|
||||||
fabric.Group.call(this);
|
fabric.Group.call(this);
|
||||||
|
|
||||||
var _callback = null;
|
var _callback = null;
|
||||||
var _rect = null;
|
var _rect = null;
|
||||||
var _text = null;
|
var _text = null;
|
||||||
|
var _id = id;
|
||||||
var width = settings.rect ? settings.rect.width : 0;
|
var width = settings.rect ? settings.rect.width : 0;
|
||||||
var height = settings.rect ? settings.rect.height : 0;
|
var height = settings.rect ? settings.rect.height : 0;
|
||||||
|
|
||||||
@@ -50,6 +51,10 @@ function TextButton(text, settings) {
|
|||||||
return this.setCoords();
|
return this.setCoords();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.getId = function() {
|
||||||
|
return _id;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {Boolean}
|
* @return {Boolean}
|
||||||
*/
|
*/
|
||||||
@@ -58,9 +63,7 @@ function TextButton(text, settings) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
function handleMouseDown(e) {
|
function handleMouseDown(e) {
|
||||||
_rect.setFill(_rectSettings[this.isActive() ? 'activeFill' : 'fill']);
|
toggleActiveStyle.call(this);
|
||||||
_text.setFill(_textSettings[this.isActive() ? 'activeFill' : 'fill']);
|
|
||||||
this.setText(_textSettings[this.isActive() ? 'textActive' : 'text']);
|
|
||||||
_callback.call(this, e);
|
_callback.call(this, e);
|
||||||
|
|
||||||
if (this.__group) {
|
if (this.__group) {
|
||||||
@@ -68,6 +71,12 @@ function TextButton(text, settings) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function toggleActiveStyle() {
|
||||||
|
_rect.setFill(_rectSettings[this.isActive() ? 'activeFill' : 'fill']);
|
||||||
|
_text.setFill(_textSettings[this.isActive() ? 'activeFill' : 'fill']);
|
||||||
|
this.setText(_textSettings[this.isActive() ? 'textActive' : 'text']);
|
||||||
|
}
|
||||||
|
|
||||||
this.onClick = function(callback) {
|
this.onClick = function(callback) {
|
||||||
_callback = callback || function() {};
|
_callback = callback || function() {};
|
||||||
this.on('mousedown', function (e) {
|
this.on('mousedown', function (e) {
|
||||||
@@ -79,7 +88,7 @@ function TextButton(text, settings) {
|
|||||||
|
|
||||||
this.setActive = function (isActive) {
|
this.setActive = function (isActive) {
|
||||||
this.__active = typeof isActive === 'undefined' ? true : !!isActive;
|
this.__active = typeof isActive === 'undefined' ? true : !!isActive;
|
||||||
handleMouseDown.call(this);
|
toggleActiveStyle.call(this);
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_textSettings.text) {
|
if (_textSettings.text) {
|
||||||
|
|||||||
@@ -5,11 +5,7 @@
|
|||||||
* @param {HTMLElement} elm
|
* @param {HTMLElement} elm
|
||||||
*/
|
*/
|
||||||
function toggleFullscreen(elem) {
|
function toggleFullscreen(elem) {
|
||||||
var isFullScreen =
|
var isFullScreen = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement;
|
||||||
document.fullscreenElement ||
|
|
||||||
document.mozFullScreenElement ||
|
|
||||||
document.webkitFullscreenElement ||
|
|
||||||
document.msFullscreenElement;
|
|
||||||
|
|
||||||
if (isFullScreen) {
|
if (isFullScreen) {
|
||||||
if (document.exitFullscreen) {
|
if (document.exitFullscreen) {
|
||||||
|
|||||||
+3
-2
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
var imageUrl = '//images.photowall.com/products/' + $input.image_id.val() + '.jpg?h=450';
|
var imageUrl = '//images.photowall.com/products/' + $input.image_id.val() + '.jpg?h=450';
|
||||||
|
|
||||||
var editor = new ImageEditor('canvas-editor', {'type': 'canvas'})
|
var editor = new ImageEditor('canvas-editor', {'type': 'wallpaper'})
|
||||||
.loadImage(imageUrl, function() {
|
.loadImage(imageUrl, function() {
|
||||||
$input.w.trigger('input');
|
$input.w.trigger('input');
|
||||||
Event.handleResize();
|
Event.handleResize();
|
||||||
@@ -68,8 +68,9 @@
|
|||||||
editor.canvas.getViewport().setFrame($(this).val());
|
editor.canvas.getViewport().setFrame($(this).val());
|
||||||
},
|
},
|
||||||
handleResize: function() {
|
handleResize: function() {
|
||||||
|
var isFullScreen = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement;
|
||||||
var width = $wrapper.width();
|
var width = $wrapper.width();
|
||||||
var height = $wrapper.height();
|
var height = isFullScreen ? $window.height() : $wrapper.height();
|
||||||
editor.canvas.resize({width: width, height: height});
|
editor.canvas.resize({width: width, height: height});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user