swap color : initial implementation

This commit is contained in:
jdescottes 2014-07-06 23:56:50 +02:00
parent 707a69182f
commit 304a5c06da
2 changed files with 23 additions and 11 deletions

View File

@ -20,10 +20,22 @@
ns.ColorPicker.prototype.applyToolAt = function(col, row, color, frame, overlay, event) {
if (frame.containsPixel(col, row)) {
var sampledColor = frame.getPixel(col, row);
if (event.button == Constants.LEFT_BUTTON) {
$.publish(Events.SELECT_PRIMARY_COLOR, [sampledColor]);
} else if (event.button == Constants.RIGHT_BUTTON) {
$.publish(Events.SELECT_SECONDARY_COLOR, [sampledColor]);
if (event.ctrlKey) {
pskl.app.piskelController.getPiskel().getLayers().forEach(function (l) {
l.getFrames().forEach(function (f) {
f.forEachPixel(function (pixelColor,x,y) {
if (pixelColor === sampledColor) {
f.setPixel(x, y, pskl.app.paletteController.getPrimaryColor());
}
});
});
});
} else {
if (event.button == Constants.LEFT_BUTTON) {
$.publish(Events.SELECT_PRIMARY_COLOR, [sampledColor]);
} else if (event.button == Constants.RIGHT_BUTTON) {
$.publish(Events.SELECT_SECONDARY_COLOR, [sampledColor]);
}
}
}
};

View File

@ -84,19 +84,19 @@
return [this.id, this.version].join('-');
};
ns.Frame.prototype.setPixel = function (col, row, color) {
if (this.containsPixel(col, row)) {
var p = this.pixels[col][row];
ns.Frame.prototype.setPixel = function (x, y, color) {
if (this.containsPixel(x, y)) {
var p = this.pixels[x][y];
if (p !== color) {
this.pixels[col][row] = color;
this.pixels[x][y] = color;
this.version++;
}
}
};
ns.Frame.prototype.getPixel = function (col, row) {
if (this.containsPixel(col, row)) {
return this.pixels[col][row];
ns.Frame.prototype.getPixel = function (x, y) {
if (this.containsPixel(x, y)) {
return this.pixels[x][y];
} else {
return null;
}