From a62b22229f6279ddd2720dbf0a2e6a98de4ec692 Mon Sep 17 00:00:00 2001 From: "Evan W. Patton" Date: Tue, 11 Oct 2016 17:15:08 -0400 Subject: [PATCH] Add missing menu options --- core/block_svg.js | 16 +++++++++++++++- core/workspace_svg.js | 41 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/core/block_svg.js b/core/block_svg.js index 4d4a7299b..f17dc5c5f 100644 --- a/core/block_svg.js +++ b/core/block_svg.js @@ -581,7 +581,7 @@ Blockly.BlockSvg.prototype.onMouseDown_ = function(e) { } // This event has been handled. No need to bubble up to the document. e.stopPropagation(); - e.preventDefault(); + //e.preventDefault(); }; /** @@ -738,6 +738,20 @@ Blockly.BlockSvg.prototype.showContextMenu_ = function(e) { menuOptions.push(disableOption); } + // Option to copy to backpack. + var backpackOption = { + enabled:true, + text: Blockly.Msg.COPY_TO_BACKPACK + + " (" + Blockly.getMainWorkspace().backpack.count() + ")", + callback: function() { + if (Blockly.selected && Blockly.selected.isDeletable() && + Blockly.selected.workspace == Blockly.mainWorkspace) { + Blockly.getMainWorkspace().backpack.addToBackpack(Blockly.selected); + } + } + }; + menuOptions.push(backpackOption); + // Option to delete this block. // Count the number of blocks that are nested in this block. var descendantCount = this.getDescendants().length; diff --git a/core/workspace_svg.js b/core/workspace_svg.js index 9cfdea64f..371f6008a 100644 --- a/core/workspace_svg.js +++ b/core/workspace_svg.js @@ -742,7 +742,7 @@ Blockly.WorkspaceSvg.prototype.onMouseDown_ = function(e) { } // This event has been handled. No need to bubble up to the document. e.stopPropagation(); - e.preventDefault(); + //e.preventDefault(); }; /** @@ -893,6 +893,13 @@ Blockly.WorkspaceSvg.prototype.showContextMenu_ = function(e) { menuOptions.push(cleanOption); } + var exportOption = {enabled: true}; + exportOption.text = Blockly.Msg.EXPORT_IMAGE; + exportOption.callback = function() { + Blockly.ExportBlocksImage.onclickExportBlocks(Blockly.getMainWorkspace().getMetrics()); + } + menuOptions.push(exportOption); + // Add a little animation to collapsing and expanding. var DELAY = 10; if (this.options.collapse) { @@ -925,7 +932,7 @@ Blockly.WorkspaceSvg.prototype.showContextMenu_ = function(e) { ms += DELAY; } } - this.resetArrangements(); + Blockly.getMainWorkspace().resetArrangements(); }; // Option to collapse top blocks. @@ -1120,6 +1127,36 @@ Blockly.WorkspaceSvg.prototype.showContextMenu_ = function(e) { arrangeOptionV.callback(); } + // Retrieve from backpack option. + var backpackRetrieve = {enabled: true}; + backpackRetrieve.text = Blockly.Msg.BACKPACK_GET + " (" + + Blockly.getMainWorkspace().backpack.count() + ")"; + backpackRetrieve.callback = function() { + if (Blockly.getMainWorkspace().backpack) { + Blockly.getMainWorkspace().backpack.pasteBackpack(this.backpack); + } + } + menuOptions.push(backpackRetrieve); + + // Copy all blocks to backpack option. + var backpackCopyAll = {enabled: true}; + backpackCopyAll.text = Blockly.Msg.COPY_ALLBLOCKS; + backpackCopyAll.callback = function() { + if (Blockly.getMainWorkspace().backpack) { + Blockly.getMainWorkspace().backpack.addAllToBackpack(); + } + } + menuOptions.push(backpackCopyAll); + + // Clear backpack. + var backpackClear = {enabled: true}; + backpackClear.text = Blockly.Msg.BACKPACK_EMPTY; + backpackClear.callback = function() { + Blockly.getMainWorkspace().backpack.clear(); + backpackRetrieve.text = Blockly.Msg.BACKPACK_GET; + } + menuOptions.push(backpackClear); + // Option to get help. var helpOption = {enabled: false}; helpOption.text = Blockly.Msg.HELP;