|
1 | 1 | var selected = null, // Object of the element to be moved |
2 | 2 | mousePos = {x: 0, y: 0}, // Stores x & y coordinates of the mouse pointer |
3 | 3 | dragOffset = {x: 0, y: 0}, // Stores offset between dragged element and mouse |
| 4 | + highlight = true, |
4 | 5 | DEFAULT_TEXT = 'breadfish', |
5 | 6 | SCRIPTING_AREA = $('.scriptingArea')[0]; |
6 | 7 | var blocksDatabase, // all blocks by ID. Not an array in case we decide to use md5's or something later |
@@ -68,6 +69,8 @@ function BlockWrapper(inPalette) { |
68 | 69 | if(block.block_context_menu) block.elem.removeEventListener('contextmenu', block.block_context_menu); |
69 | 70 | if(block.block_mouse_down) block.elem.removeEventListener('mousedown', block.block_mouse_down); |
70 | 71 | if(block.block_mouse_up) block.elem.removeEventListener('mouseup', block.block_mouse_up); |
| 72 | + if(block.block_mouse_over) block.elem.removeEventListener('mouseover', block.block_mouse_over); |
| 73 | + if(block.block_mouse_out) block.elem.removeEventListener('mouseout', block.block_mouse_out); |
71 | 74 | if(block.add_quicktext) block.quickText.removeEventListener('click', block.add_quicktext); |
72 | 75 | if(block.add_attr_ev) block.addAttr.removeEventListener('click', block.add_attr_ev); |
73 | 76 | if(block.remove_attr_ev) block.removeAttr.removeEventListener('click', block.remove_attr_ev); |
@@ -278,8 +281,8 @@ function Block(type, name, opts) { |
278 | 281 | this.addAttr = document.createElement('span'); |
279 | 282 | this.addAttr.classList.add('add-attr'); |
280 | 283 | this.attrControls.appendChild(this.addAttr); |
281 | | - this.addAttr.addEventListener('click', block.add_attr_ev = function(e, name, value) { |
282 | | - var attr = new BlockAttribute(name, value); |
| 284 | + this.addAttr.addEventListener('click', block.add_attr_ev = function(e) { |
| 285 | + var attr = new BlockAttribute(); |
283 | 286 | block.header.insertBefore(attr.elem, block.attrControls); |
284 | 287 | block.attrs.push(attr); |
285 | 288 | }); |
@@ -347,7 +350,23 @@ function Block(type, name, opts) { |
347 | 350 | return false; |
348 | 351 | } |
349 | 352 |
|
| 353 | + this.elem.addEventListener('mouseover', block.block_mouse_over = function(ev) { |
| 354 | + if(highlight && block.htmlElem) { |
| 355 | + ev.stopPropagation(); |
| 356 | + block.elem.classList.add('highlightBlock'); |
| 357 | + block.htmlElem.style.outline = '3px solid gold'; |
| 358 | + } |
| 359 | + }); |
| 360 | + this.elem.addEventListener('mouseout', block.block_mouse_out = function(ev) { |
| 361 | + block.elem.classList.remove('highlightBlock'); |
| 362 | + if(block.htmlElem) { |
| 363 | + block.htmlElem.style.outline = ''; |
| 364 | + } |
| 365 | + }); |
| 366 | + |
350 | 367 | this.elem.addEventListener('mousedown', block.block_mouse_down = function(ev) { |
| 368 | + block.block_mouse_out(); |
| 369 | + detachHtmlElem(block) |
351 | 370 | if (ev.which == 3 |
352 | 371 | || testBlockContents(ev.target)) return; |
353 | 372 | ev.stopPropagation(); |
|
0 commit comments