mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
51 lines
1.4 KiB
JavaScript
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;
|
||
|
};
|
||
|
|
||
|
})();
|