diff --git a/HISTORY.md b/HISTORY.md
index ab90ec5c..615bbe16 100755
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -36,6 +36,9 @@
* Greek, thanks, Alexandros!
* German
+### 2019-02-06
+* Blocks, BYOB: refactored custom block input options and drop-down menus
+
### 2019-02-05
* BYOB: radio button symbols for special slot / drop-down menu options
diff --git a/snap.html b/snap.html
index 33bff7d8..4f308e9c 100755
--- a/snap.html
+++ b/snap.html
@@ -6,13 +6,13 @@
-
+
-
+
diff --git a/src/blocks.js b/src/blocks.js
index eec738ca..4d3290ed 100644
--- a/src/blocks.js
+++ b/src/blocks.js
@@ -148,7 +148,7 @@ CustomCommandBlockMorph, SymbolMorph, ToggleButtonMorph, DialMorph*/
// Global stuff ////////////////////////////////////////////////////////
-modules.blocks = '2019-February-04';
+modules.blocks = '2019-February-06';
var SyntaxElementMorph;
var BlockMorph;
@@ -8917,6 +8917,10 @@ InputSlotMorph.prototype.pianoKeyboardMenu = function () {
menu.selectKey(+this.evaluate());
};
+InputSlotMorph.prototype.directionDialMenu = function () {
+ return {'§_dir': null};
+};
+
InputSlotMorph.prototype.setChoices = function (dict, readonly) {
// externally specify choices and read-only status,
// used for custom blocks
diff --git a/src/byob.js b/src/byob.js
index ed0a6203..897a412e 100644
--- a/src/byob.js
+++ b/src/byob.js
@@ -108,7 +108,7 @@ BooleanSlotMorph, XML_Serializer, SnapTranslator*/
// Global stuff ////////////////////////////////////////////////////////
-modules.byob = '2019-February-05';
+modules.byob = '2019-February-06';
// Declarations
@@ -320,9 +320,20 @@ CustomBlockDefinition.prototype.dropDownMenuOf = function (inputName) {
var fname;
if (this.declarations.has(inputName) &&
this.declarations.get(inputName)[2]) {
- if ( (this.declarations.get(inputName)[2].indexOf('§_') === 0)) {
+ if ((this.declarations.get(inputName)[2].indexOf('§_') === 0)) {
fname = this.declarations.get(inputName)[2].slice(2);
- if (fname !== 'dir') {
+ if (contains(
+ [
+ 'messagesReceivedMenu',
+ 'objectsMenu',
+ 'costumesMenu',
+ 'soundsMenu',
+ 'getVarNamesDict',
+ 'pianoKeyboardMenu',
+ 'directionDialMenu'
+ ],
+ fname
+ )) {
return fname;
}
}
@@ -3713,6 +3724,8 @@ InputSlotDialogMorph.prototype.specialOptionsMenu = function () {
);
}
+ // +++ add another radio button for "options"
+ addSpecialOptions('(none)', '');
addSpecialOptions('messages', '§_messagesReceivedMenu');
addSpecialOptions('objects', '§_objectsMenu');
// addSpecialOptions('data types', '§_typesMenu');