From 7d0807d30cf99b37d8cfcd93b6f3c3fd44e85313 Mon Sep 17 00:00:00 2001 From: MatCat Date: Sat, 13 Mar 2021 20:15:45 -0800 Subject: [PATCH] WIP: Copy paste is almost done --- index.html | 6 +++--- js/elements/BasicElements.js | 8 ++++---- js/globalfunctions.js | 2 -- js/logicengine.js | 27 +++++++++++++++++++++++++-- js/main.js | 22 ++++++++++++++++++++++ 5 files changed, 54 insertions(+), 11 deletions(-) diff --git a/index.html b/index.html index 82cabae..7c708b3 100644 --- a/index.html +++ b/index.html @@ -52,9 +52,9 @@
  • Undo
  • Redo
  • -
  • Cut
  • -
  • Copy
  • -
  • Paste
  • +
  • Cut
  • +
  • Copy
  • +
  • Paste
  • Delete
  • Disconnect
  • diff --git a/js/elements/BasicElements.js b/js/elements/BasicElements.js index 2fba696..89249a7 100644 --- a/js/elements/BasicElements.js +++ b/js/elements/BasicElements.js @@ -51,7 +51,7 @@ class LogicNAND extends LogicAND { constructor(_Container, RestoreData = null, logicengine,Inputs) { super(_Container, RestoreData,logicengine,Inputs); this.Name = "NAND"; - this.Width = this.Width + 10; + this.Width = 110; } getOutput(Output=0) { @@ -162,7 +162,7 @@ class LogicNOR extends LogicOR { constructor(_Container, RestoreData = null, logicengine,Inputs) { super(_Container, RestoreData,logicengine,Inputs); this.Name = "NOR"; - this.Width = this.Width + 10; + this.Width = 110; } getOutput(Output=0) { if (super.getOutput() === 0) return false; @@ -289,7 +289,7 @@ class LogicXNOR extends Element { super(_Container, RestoreData,logicengine,2); // Only 2 inputs on XOR this.Name = "XNOR"; this.removeProperty("Inputs"); - this.Width += 10; + this.Width = 110; } getOutput(Output=0) { @@ -368,7 +368,7 @@ class LogicNOT extends Element { super(_Container, RestoreData,logicengine,1); // Only 1 inputs on NOT this.Name = "NOT"; this.removeProperty("Inputs"); - this.Width += 10; + this.Width = 110; } getOutput(Output=0) { diff --git a/js/globalfunctions.js b/js/globalfunctions.js index 0f72efa..ae9ff5e 100644 --- a/js/globalfunctions.js +++ b/js/globalfunctions.js @@ -428,9 +428,7 @@ function loadActiveContainer(Elements) { logicEngine.MovingElement = new Array(logicEngine.ActiveContainer.Selected.length); for (let b = 0; b < logicEngine.ActiveContainer.Selected.length; b++) { - //logicEngine.ActiveContainer.Selected[b].X = (logicEngine.ActiveContainer.Selected[b].X - ((highestX-lowestX)/2)) + logicEngine.Mouse.x; logicEngine.ActiveContainer.Selected[b].X = (logicEngine.ActiveContainer.Selected[b].X - lowestX) + logicEngine.Mouse.x - ((highestX-lowestX)/2); - //logicEngine.ActiveContainer.Selected[b].Y = (logicEngine.ActiveContainer.Selected[b].Y - ((highestY-lowestY)/2)) + logicEngine.Mouse.y; logicEngine.ActiveContainer.Selected[b].Y = (logicEngine.ActiveContainer.Selected[b].Y - lowestY) + logicEngine.Mouse.y - ((highestY-lowestY)/2); logicEngine.MovingElement[b] = { StartX: logicEngine.ActiveContainer.Selected[b].X, diff --git a/js/logicengine.js b/js/logicengine.js index 142ce8f..a0a6d25 100644 --- a/js/logicengine.js +++ b/js/logicengine.js @@ -162,8 +162,31 @@ class LogicEngineSettings { Meta: false, Name: "Help Window", Description: "Opens help window", - Category: "Other"} - + Category: "Other"}, + Cut: {Key: "x", // lowercase + Alt: false, + Shift: false, + Ctrl: true, + Meta: false, + Name: "Cut", + Description: "Cuts selected elements to clipboard", + Category: "Invisible"}, + Copy: {Key: "c", // lowercase + Alt: false, + Shift: false, + Ctrl: true, + Meta: false, + Name: "Copy", + Description: "Copy selected elements to clipboard", + Category: "Invisible"}, + Paste: {Key: "v", // lowercase + Alt: false, + Shift: false, + Ctrl: true, + Meta: false, + Name: "Paste", + Description: "pastes selected elements from clipboard", + Category: "Invisible"} /* keybind_name: {Key: "", // lowercase diff --git a/js/main.js b/js/main.js index b2113bc..1135198 100644 --- a/js/main.js +++ b/js/main.js @@ -176,6 +176,28 @@ rcm_Delete.addEventListener('click', function(evt) { disableSelectedRCMs(true); }); +let tfm_Cut = document.getElementById("tfm_Cut"); +tfm_Cut.addEventListener('click', function(evt) { + document.execCommand('cut'); + disableSelectedRCMs(true); + setTimeout(function(){hideMenus()},10); +}); + +let tfm_Copy = document.getElementById("tfm_Copy"); +tfm_Copy.addEventListener('click', function(evt) { + document.execCommand('copy'); + disableSelectedRCMs(true); + setTimeout(function(){hideMenus()},10); +}); + +let tfm_Paste = document.getElementById("tfm_Paste"); +tfm_Paste.addEventListener('click', function(evt) { + document.execCommand('paste'); + disableSelectedRCMs(true); + setTimeout(function(){hideMenus()},10); +}); + + let tfm_Delete = document.getElementById("tfm_Delete"); tfm_Delete.addEventListener('click', function(evt) { logicEngine.Key_Press({ctrlKey: false, key: "Delete"});