Closed GoogleCodeExporter closed 8 years ago
update with type conversion.
language:
Blockly.Language.text_prompt = {
// Prompt statement.
category: 'Text',
helpUrl: 'http://www.liv.ac.uk/HPC/HTMLF90Course/HTMLF90CourseNotesnode92.html',
init: function() {
this.setColour(160);
this.appendTitle('read');
var menu = new Blockly.FieldDropdown(this.OPERATORS);
this.appendTitle(menu, 'TYPE');
this.appendInput('', Blockly.INPUT_VALUE, 'TEXT');
this.setOutput(true);
this.setTooltip('Prompt for user input with the specified text.');
}
};
Blockly.Language.text_prompt.OPERATORS =
[['string', 'STRING'], ['integer', 'INTEGER']];
python generator:
Blockly.Python.text_prompt = function() {
// prompt a user input dialog.
var mode = this.getTitleValue('TYPE');
console.log(mode);
var operator = Blockly.Python.text_prompt.OPERATORS[mode];
var argument0 = Blockly.Python.valueToCode(this, 'TEXT', true) || '\'\'';
return operator+'(raw_input(' + argument0 + '));\n';
};
Blockly.Python.text_prompt.OPERATORS = {
STRING: 'str',
INTEGER: 'int'
};
Original comment by gasolin
on 16 Jun 2012 at 8:02
Issue 29 has been merged into this issue.
Original comment by gasolin
on 16 Jun 2012 at 8:06
Done in r260 and r261.
Modal I/O is a terrible UI experience. As such, Print and Prompt should be
treated as emergency functions. Any real environment would have much better
I/O APIs. But they are still very useful for debugging and "Hello World"
applications.
Since this is an emergency debugging function, I've converted the prompt
message input into an inline field. This is simpler and sufficient most of the
time. If one really wants a dynamically customizable message field, then one
should probably be using a better API.
Type conversion functions are also something we need, but I've folded them into
this block, again for convenience.
The use of window.prompt in Dart is questionable. It will only work in a
browser, not in the command-line version. Likewise there's a complicated
asynchronous readLine version that only works in the command-line version and
not the browser.
Original comment by neil.fra...@gmail.com
on 19 Jun 2012 at 1:01
Original issue reported on code.google.com by
gasolin
on 10 Jun 2012 at 5:47