piskel/dev/js/service/pensize/PenSizeService.js
2017-05-22 09:56:42 +02:00

51 lines
1.4 KiB
JavaScript

(function () {
var ns = $.namespace('pskl.service.pensize');
var MIN_PENSIZE = 1;
var MAX_PENSIZE = 32;
/**
* Service to retrieve and modify the current pen size.
*/
ns.PenSizeService = function () {
this.size = MIN_PENSIZE;
};
ns.PenSizeService.prototype.init = function () {
this.size = pskl.UserSettings.get(pskl.UserSettings.PEN_SIZE);
var shortcuts = pskl.service.keyboard.Shortcuts;
pskl.app.shortcutService.registerShortcut(shortcuts.MISC.INCREASE_PENSIZE, this.increasePenSize_.bind(this));
pskl.app.shortcutService.registerShortcut(shortcuts.MISC.DECREASE_PENSIZE, this.decreasePenSize_.bind(this));
};
ns.PenSizeService.prototype.increasePenSize_ = function () {
this.setPenSize(this.size + 1);
};
ns.PenSizeService.prototype.decreasePenSize_ = function () {
this.setPenSize(this.size - 1);
};
ns.PenSizeService.prototype.getPenSize = function () {
return this.size;
};
ns.PenSizeService.prototype.setPenSize = function (size) {
if (this.isPenSizeValid_(size) && size != this.size) {
this.size = size;
pskl.UserSettings.set(pskl.UserSettings.PEN_SIZE, size);
$.publish(Events.PEN_SIZE_CHANGED);
}
};
ns.PenSizeService.prototype.isPenSizeValid_ = function (size) {
if (isNaN(size)) {
return false;
}
return size >= MIN_PENSIZE && size <= MAX_PENSIZE;
};
})();