Menu buttons can be made active/inactive programattically

This commit is contained in:
Rikard Bartholf
2017-05-16 15:41:29 +02:00
parent b0888a58cd
commit 86f3964a3d
4 changed files with 40 additions and 23 deletions
+6 -1
View File
@@ -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;
}; };
+24 -18
View File
@@ -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
+9 -3
View File
@@ -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
View File
@@ -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');
}); });