mirror of
https://github.com/lospec/pixel-editor.git
synced 2023-08-10 21:12:51 +03:00
Added back tool resizing
This commit is contained in:
parent
ea45fa4842
commit
3c62a1f0fd
@ -11,8 +11,6 @@ class Tool {
|
|||||||
cursorType = {};
|
cursorType = {};
|
||||||
cursor = undefined;
|
cursor = undefined;
|
||||||
cursorHTMLElement = undefined;
|
cursorHTMLElement = undefined;
|
||||||
currSize = 1;
|
|
||||||
prevSize = 1;
|
|
||||||
|
|
||||||
// Useful coordinates
|
// Useful coordinates
|
||||||
startMousePos = {};
|
startMousePos = {};
|
@ -34,19 +34,21 @@ const ToolManager = (() => {
|
|||||||
|
|
||||||
let mousePos = Input.getCursorPosition(mouseEvent);
|
let mousePos = Input.getCursorPosition(mouseEvent);
|
||||||
|
|
||||||
switch(mouseEvent.which) {
|
if (!Input.isDragging()) {
|
||||||
case 1:
|
switch(mouseEvent.which) {
|
||||||
if (!Input.isDragging()) {
|
case 1:
|
||||||
currTool.onStart(mousePos, mouseEvent.target);
|
currTool.onStart(mousePos, mouseEvent.target);
|
||||||
}
|
break;
|
||||||
break;
|
case 2:
|
||||||
case 2:
|
panTool.onStart(mousePos, mouseEvent.target);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
break;
|
currTool.onRightStart(mousePos, mouseEvent.target);
|
||||||
default:
|
break;
|
||||||
break;
|
default:
|
||||||
}
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onMouseMove(mouseEvent) {
|
function onMouseMove(mouseEvent) {
|
||||||
@ -57,7 +59,20 @@ const ToolManager = (() => {
|
|||||||
currTool.onHover(mousePos, mouseEvent.target);
|
currTool.onHover(mousePos, mouseEvent.target);
|
||||||
|
|
||||||
if (Input.isDragging()) {
|
if (Input.isDragging()) {
|
||||||
currTool.onDrag(mousePos, mouseEvent.target);
|
switch (mouseEvent.which) {
|
||||||
|
case 1:
|
||||||
|
currTool.onDrag(mousePos, mouseEvent.target);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
panTool.onDrag(mousePos, mouseEvent.target);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
currTool.onRightDrag(mousePos, mouseEvent.target);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
console.log("wtf");
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,18 +81,20 @@ const ToolManager = (() => {
|
|||||||
return;
|
return;
|
||||||
let mousePos = Input.getCursorPosition(mouseEvent);
|
let mousePos = Input.getCursorPosition(mouseEvent);
|
||||||
|
|
||||||
switch(mouseEvent.which) {
|
if (Input.isDragging()) {
|
||||||
case 1:
|
switch(mouseEvent.which) {
|
||||||
if (Input.isDragging()) {
|
case 1:
|
||||||
currTool.onEnd(mousePos);
|
currTool.onEnd(mousePos);
|
||||||
}
|
break;
|
||||||
break;
|
case 2:
|
||||||
case 2:
|
panTool.onEnd(mousePos);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
break;
|
currTool.onRightEnd(mousePos, mouseEvent.target);
|
||||||
default:
|
break;
|
||||||
break;
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
// ellipse
|
|
||||||
Events.on('click','ellipse-button', function(e){
|
|
||||||
// If the user clicks twice on the button, they change the draw mode
|
|
||||||
if (currentTool.name == 'ellipse') {
|
|
||||||
if (ellipseDrawMode == 'empty') {
|
|
||||||
ellipseDrawMode = 'fill';
|
|
||||||
setEllipseToolSvg();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ellipseDrawMode = 'empty';
|
|
||||||
setEllipseToolSvg();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
tool.ellipse.switchTo();
|
|
||||||
}
|
|
||||||
}, false);
|
|
||||||
|
|
||||||
// ellipse bigger
|
|
||||||
Events.on('click',"ellipse-bigger-button", function(){
|
|
||||||
tool.ellipse.brushSize++;
|
|
||||||
}, false);
|
|
||||||
|
|
||||||
// ellipse smaller
|
|
||||||
Events.on('click',"ellipse-smaller-button", function(e){
|
|
||||||
if(tool.ellipse.brushSize > 1)
|
|
||||||
tool.ellipse.brushSize--;
|
|
||||||
}, false);
|
|
@ -12,7 +12,7 @@
|
|||||||
//=include ColorModule.js
|
//=include ColorModule.js
|
||||||
//=include _drawLine.js
|
//=include _drawLine.js
|
||||||
|
|
||||||
//=include _tools.js
|
//=include Tool.js
|
||||||
|
|
||||||
//=include tools/ResizableTool.js
|
//=include tools/ResizableTool.js
|
||||||
//=include tools/SelectionTool.js
|
//=include tools/SelectionTool.js
|
||||||
@ -53,7 +53,6 @@
|
|||||||
//=include SplashPage.js
|
//=include SplashPage.js
|
||||||
|
|
||||||
/**buttons**/
|
/**buttons**/
|
||||||
//=include _toolButtons.js
|
|
||||||
//=include FileManager.js
|
//=include FileManager.js
|
||||||
//=include TopMenuModule.js
|
//=include TopMenuModule.js
|
||||||
//=include _ellipse.js
|
//=include _ellipse.js
|
||||||
|
@ -1,5 +1,32 @@
|
|||||||
class ResizableTool extends Tool {
|
class ResizableTool extends Tool {
|
||||||
|
startResizePos = undefined;
|
||||||
|
currSize = 1;
|
||||||
|
prevSize = 1;
|
||||||
|
|
||||||
constructor(name, options, switchFunc) {
|
constructor(name, options, switchFunc) {
|
||||||
super(name, options, switchFunc);
|
super(name, options, switchFunc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onRightStart(mousePos, mouseEvent) {
|
||||||
|
this.startResizePos = mousePos;
|
||||||
|
}
|
||||||
|
|
||||||
|
onRightDrag(mousePos, mouseEvent) {
|
||||||
|
//get new brush size based on x distance from original clicking location
|
||||||
|
let distanceFromClick = mousePos[0]/zoom - this.startResizePos[0]/zoom;
|
||||||
|
|
||||||
|
let brushSizeChange = Math.round(distanceFromClick/10);
|
||||||
|
let newBrushSize = this.currSize + brushSizeChange;
|
||||||
|
|
||||||
|
//set the brush to the new size as long as its bigger than 1 and less than 128
|
||||||
|
this.currSize = Math.min(Math.max(1,newBrushSize), 128);
|
||||||
|
|
||||||
|
//fix offset so the cursor stays centered
|
||||||
|
this.updateCursor();
|
||||||
|
this.onHover(this.startResizePos, mouseEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
onRightEnd(mousePos, mouseEvent) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
@ -1,12 +0,0 @@
|
|||||||
new Tool('resizeline', {
|
|
||||||
cursor: 'default',
|
|
||||||
});
|
|
||||||
|
|
||||||
new Tool('ellipse', {
|
|
||||||
cursor: 'none',
|
|
||||||
brushPreview: true,
|
|
||||||
});
|
|
||||||
|
|
||||||
new Tool('moveselection', {
|
|
||||||
cursor: 'crosshair',
|
|
||||||
});
|
|
Loading…
Reference in New Issue
Block a user