Mercurial > jwe > qt-gui-with-push-parser
diff interpreter.cpp @ 7:04867eba6428
function objects and signals/slots for errors and results
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 23 May 2019 09:27:09 -0400 |
parents | 1b575145197e |
children | 822a2fe5bb51 |
line wrap: on
line diff
--- a/interpreter.cpp Thu May 23 07:41:18 2019 -0400 +++ b/interpreter.cpp Thu May 23 09:27:09 2019 -0400 @@ -15,6 +15,10 @@ interpreter *interpreter::the_interpreter = nullptr; interpreter::interpreter (void) + : m_error_handler ([] (const char *msg) + { std::cerr << "error: " << msg << std::endl; }), + m_result_handler ([] (double value) + { std::cout << value << std::endl; }) { if (the_interpreter) { @@ -42,17 +46,11 @@ // Simulate a delay in calculation. sleep (1); - if (calc::tty_mode) - tty::emit_result (value); - else - gui::emit_result (value); + m_result_handler (value); } void interpreter::emit_error (const char *msg) { - if (calc::tty_mode) - tty::emit_error (msg); - else - gui::emit_error (msg); + m_error_handler (msg); } }