Menu buttons can be made active/inactive programattically
This commit is contained in:
@@ -32,12 +32,17 @@ function ButtonMenu(canvas, settings) {
|
|||||||
* @param {Function} callback
|
* @param {Function} callback
|
||||||
* @return {ButtonMenu}
|
* @return {ButtonMenu}
|
||||||
*/
|
*/
|
||||||
this.addItem = function(text, callback) {
|
this.addItem = function(text, callback, isActive) {
|
||||||
_textButtons.push(
|
_textButtons.push(
|
||||||
new TextButton(text, settings)
|
new TextButton(text, settings)
|
||||||
.onClick(callback)
|
.onClick(callback)
|
||||||
.set({__group: this})
|
.set({__group: this})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (isActive) {
|
||||||
|
_textButtons[_textButtons.length - 1].setActive();
|
||||||
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -18,24 +18,30 @@ function ImageEditor(canvasId, args) {
|
|||||||
__type: _settings.type
|
__type: _settings.type
|
||||||
});
|
});
|
||||||
|
|
||||||
if (_canvas.__type === 'canvas') {
|
/**
|
||||||
_canvas.getButtonMenu()
|
* @TODO: Refactor this. Since Canvas knows the type of editor it probably
|
||||||
.addItem('3D', function () {})
|
* better could reside there.
|
||||||
.addItem('Flat', function () {})
|
*/
|
||||||
.render();
|
$(function () {
|
||||||
} else {
|
if (_canvas.__type === 'canvas') {
|
||||||
_canvas.getButtonMenu()
|
_canvas.getButtonMenu()
|
||||||
.addItem(['Show Murals Panel', 'Hide Murals Panel'], function () {
|
.addItem('3D', function () {})
|
||||||
_canvas.getViewport().getGores().enable(this.isActive());
|
.addItem('Flat', function () {})
|
||||||
})
|
.render();
|
||||||
.addItem(['Show Ruler', 'Hide Ruler'], function () {
|
} else {
|
||||||
_canvas.getViewport().getRulers().enable(this.isActive());
|
_canvas.getButtonMenu()
|
||||||
})
|
.addItem(['Show Murals Panel', 'Hide Murals Panel'], function () {
|
||||||
.addItem(['Fullscreen', 'Exit Fullscreen'], function () {
|
_canvas.getViewport().getGores().enable(this.isActive());
|
||||||
util.toggleFullscreen(_canvas.getSelectionElement().parentNode);
|
})
|
||||||
})
|
.addItem(['Show Ruler', 'Hide Ruler'], function () {
|
||||||
.render();
|
_canvas.getViewport().getRulers().enable(this.isActive());
|
||||||
}
|
})
|
||||||
|
.addItem(['Fullscreen', 'Exit Fullscreen'], function () {
|
||||||
|
util.toggleFullscreen(_canvas.getSelectionElement().parentNode);
|
||||||
|
})
|
||||||
|
.render();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Crops image to desired dimensions
|
* Crops image to desired dimensions
|
||||||
|
|||||||
@@ -56,8 +56,6 @@ function TextButton(text, settings) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
function handleMouseDown(e) {
|
function handleMouseDown(e) {
|
||||||
this.__active = !this.__active;
|
|
||||||
|
|
||||||
_rect.setFill(_rectSettings[this.isActive() ? 'activeFill' : 'fill']);
|
_rect.setFill(_rectSettings[this.isActive() ? 'activeFill' : 'fill']);
|
||||||
this.setText(_textSettings[this.isActive() ? 'textActive' : 'text']);
|
this.setText(_textSettings[this.isActive() ? 'textActive' : 'text']);
|
||||||
_callback.call(this, e);
|
_callback.call(this, e);
|
||||||
@@ -69,10 +67,18 @@ function TextButton(text, settings) {
|
|||||||
|
|
||||||
this.onClick = function(callback) {
|
this.onClick = function(callback) {
|
||||||
_callback = callback || function() {};
|
_callback = callback || function() {};
|
||||||
this.on('mousedown', handleMouseDown);
|
this.on('mousedown', function (e) {
|
||||||
|
this.__active = !this.__active;
|
||||||
|
handleMouseDown.call(this, e);
|
||||||
|
}.bind(this));
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.setActive = function (isActive) {
|
||||||
|
this.__active = typeof isActive === 'undefined' ? true : !!isActive;
|
||||||
|
handleMouseDown.call(this);
|
||||||
|
};
|
||||||
|
|
||||||
if (_textSettings.text) {
|
if (_textSettings.text) {
|
||||||
this.setText(_textSettings.text);
|
this.setText(_textSettings.text);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -13,7 +13,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');
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user