Fixed possibility to use different texts for buttons and moved mirror functionality
This commit is contained in:
@@ -6,6 +6,7 @@ var ButtonMenu = require('./ButtonMenu');
|
|||||||
var DragbarHandler = require('./DragbarHandler');
|
var DragbarHandler = require('./DragbarHandler');
|
||||||
var Viewport = require('./Viewport');
|
var Viewport = require('./Viewport');
|
||||||
var ThreeDHandler = require('./3dHandler');
|
var ThreeDHandler = require('./3dHandler');
|
||||||
|
var MirrorHandler = require('./MirrorHandler');
|
||||||
|
|
||||||
var $document = $(document);
|
var $document = $(document);
|
||||||
|
|
||||||
@@ -96,6 +97,14 @@ var Canvas = fabric.util.createClass(fabric.Canvas, {
|
|||||||
return this.__image;
|
return this.__image;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {Viewport}
|
||||||
|
*/
|
||||||
|
getMirror: function () {
|
||||||
|
return this.__mirror ||
|
||||||
|
(this.__mirror = new MirrorHandler(this.getImage()));
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {Viewport}
|
* @return {Viewport}
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -8,6 +8,16 @@ function ImageEditor(canvasId, args) {
|
|||||||
|
|
||||||
var _settings = $.extend({
|
var _settings = $.extend({
|
||||||
type: 'wallpaper',
|
type: 'wallpaper',
|
||||||
|
buttons: {
|
||||||
|
flat: 'Flat',
|
||||||
|
threeD: '3d',
|
||||||
|
showMurals: 'Show Murals Panel',
|
||||||
|
hideMurals: 'Hide Murals Panel',
|
||||||
|
showRulers: 'Show Ruler',
|
||||||
|
hideRulers: 'Hide Ruler',
|
||||||
|
showFullscreen: 'Fullscreen',
|
||||||
|
hideFullscreen: 'Exit Fullscreen',
|
||||||
|
}
|
||||||
}, args);
|
}, args);
|
||||||
|
|
||||||
// Initialize canvas
|
// Initialize canvas
|
||||||
@@ -24,22 +34,22 @@ function ImageEditor(canvasId, args) {
|
|||||||
*/
|
*/
|
||||||
if (_canvas.__type === 'canvas') {
|
if (_canvas.__type === 'canvas') {
|
||||||
_canvas.getButtonMenu()
|
_canvas.getButtonMenu()
|
||||||
.addItem('flat', 'Flat', function () {
|
.addItem('flat', _settings.buttons.flat, function () {
|
||||||
_canvas.toggle3D(false);
|
_canvas.toggle3D(false);
|
||||||
}, true)
|
}, true)
|
||||||
.addItem('3d', '3D', function () {
|
.addItem('3d', _settings.buttons.threeD, function () {
|
||||||
_canvas.toggle3D(true);
|
_canvas.toggle3D(true);
|
||||||
})
|
})
|
||||||
.render();
|
.render();
|
||||||
} else {
|
} else {
|
||||||
_canvas.getButtonMenu()
|
_canvas.getButtonMenu()
|
||||||
.addItem('toggleMurals', ['Show Murals Panel', 'Hide Murals Panel'], function () {
|
.addItem('toggleMurals', [_settings.buttons.showMurals, _settings.buttons.hideMurals], function () {
|
||||||
_canvas.getViewport().getGores().enable(this.isActive());
|
_canvas.getViewport().getGores().enable(this.isActive());
|
||||||
})
|
})
|
||||||
.addItem('toggleRulers', ['Show Ruler', 'Hide Ruler'], function () {
|
.addItem('toggleRulers', [_settings.buttons.showRulers, _settings.buttons.hideRulers], function () {
|
||||||
_canvas.getViewport().getRulers().enable(this.isActive());
|
_canvas.getViewport().getRulers().enable(this.isActive());
|
||||||
})
|
})
|
||||||
.addItem('toggleFullscreen', ['Fullscreen', 'Exit Fullscreen'], function () {
|
.addItem('toggleFullscreen', [_settings.buttons.showFullscreen, _settings.buttons.hideFullscreen], function () {
|
||||||
util.toggleFullscreen(_canvas.getSelectionElement().parentNode);
|
util.toggleFullscreen(_canvas.getSelectionElement().parentNode);
|
||||||
})
|
})
|
||||||
.render();
|
.render();
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
function ImageTransformationHandler(img) {
|
function ImageTransformationHandler(img) {
|
||||||
var _transformations = {
|
|
||||||
mirrored: 0
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets information about how the cropped image is dragged
|
* Gets information about how the cropped image is dragged
|
||||||
@@ -39,8 +36,8 @@ function ImageTransformationHandler(img) {
|
|||||||
|
|
||||||
var returnValue = $.extend(
|
var returnValue = $.extend(
|
||||||
{},
|
{},
|
||||||
_transformations,
|
|
||||||
{
|
{
|
||||||
|
mirrored: img.canvas.getMirror().getStatus(),
|
||||||
width: viewportData.dim.width,
|
width: viewportData.dim.width,
|
||||||
height: viewportData.dim.height,
|
height: viewportData.dim.height,
|
||||||
},
|
},
|
||||||
@@ -55,21 +52,6 @@ function ImageTransformationHandler(img) {
|
|||||||
|
|
||||||
return returnValue;
|
return returnValue;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {String} name
|
|
||||||
* @param {*} args
|
|
||||||
* @return {ImageTransformationHandler}
|
|
||||||
*/
|
|
||||||
this.set = function (name, args) {
|
|
||||||
switch (name) {
|
|
||||||
case 'mirror':
|
|
||||||
_transformations.mirrored = (img.flipX = args) ? 1 : 0;
|
|
||||||
}
|
|
||||||
img.setCoords().canvas.renderAll();
|
|
||||||
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = ImageTransformationHandler;
|
module.exports = ImageTransformationHandler;
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
function MirrorHandler(img) {
|
||||||
|
|
||||||
|
var _mirrored = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {Boolean} checked
|
||||||
|
* @return {MirrorHandler}
|
||||||
|
*/
|
||||||
|
this.set = function(checked) {
|
||||||
|
_mirrored = (img.flipX = checked) ? 1 : 0;
|
||||||
|
img.setCoords().canvas.renderAll();
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.getStatus = function() {
|
||||||
|
return _mirrored;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = MirrorHandler;
|
||||||
+12
-2
@@ -54,7 +54,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function handleMirrorChange() {
|
function handleMirrorChange() {
|
||||||
editor.canvas.getImage().transformation.set('mirror', this.checked);
|
editor.canvas.getMirror().set(this.checked);
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleNoCropChange() {
|
function handleNoCropChange() {
|
||||||
@@ -101,7 +101,17 @@
|
|||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
editor = new ImageEditor('canvas-editor', {
|
editor = new ImageEditor('canvas-editor', {
|
||||||
type: 'wallpaper',
|
type: 'canvas',
|
||||||
|
buttons: {
|
||||||
|
flat: 'Flat',
|
||||||
|
threeD: '3D',
|
||||||
|
showMurals: 'Show Murals Panel',
|
||||||
|
hideMurals: 'hide-murals',
|
||||||
|
showRulers: 'show-rulers',
|
||||||
|
hideRulers: 'hide-rulers',
|
||||||
|
showFullscreen: 'show-fullscreen',
|
||||||
|
hideFullscreen: 'hide-fullscreen',
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.loadImage(imageUrl, function() {
|
.loadImage(imageUrl, function() {
|
||||||
$input.w.trigger('input');
|
$input.w.trigger('input');
|
||||||
|
|||||||
Reference in New Issue
Block a user