From 131df18b0094b74a11cd2fbb3057d63566856fbe Mon Sep 17 00:00:00 2001 From: Romain Goyet Date: Tue, 10 Mar 2020 20:54:14 -0400 Subject: [PATCH] [python] A module can now ask to present a view controller --- apps/code/console_controller.cpp | 5 +++++ apps/code/console_controller.h | 1 + python/port/port.h | 2 ++ 3 files changed, 8 insertions(+) diff --git a/apps/code/console_controller.cpp b/apps/code/console_controller.cpp index 5d236b337..c1ce3d886 100644 --- a/apps/code/console_controller.cpp +++ b/apps/code/console_controller.cpp @@ -183,6 +183,11 @@ const char * ConsoleController::inputText(const char * prompt) { return text; } +void ConsoleController::displayViewController(ViewController * controller) { + stackViewController()->push(controller); + Container::activeApp()->setFirstResponder(controller); // FIXME: Shouldn't this be in Escher? +} + void ConsoleController::viewWillAppear() { ViewController::viewWillAppear(); loadPythonEnvironment(); diff --git a/apps/code/console_controller.h b/apps/code/console_controller.h index a27733f74..1fe9b7d34 100644 --- a/apps/code/console_controller.h +++ b/apps/code/console_controller.h @@ -66,6 +66,7 @@ public: void refreshPrintOutput() override; void printText(const char * text, size_t length) override; const char * inputText(const char * prompt) override; + void displayViewController(ViewController * controller) override; #if EPSILON_GETOPT bool locked() const { diff --git a/python/port/port.h b/python/port/port.h index 63b721336..55441e2fb 100644 --- a/python/port/port.h +++ b/python/port/port.h @@ -4,6 +4,7 @@ extern "C" { #include } +#include namespace MicroPython { @@ -21,6 +22,7 @@ public: virtual void displaySandbox() {} virtual void hideSandbox() {} virtual void resetSandbox() {} + virtual void displayViewController(ViewController * controller) {} virtual void printText(const char * text, size_t length) {} virtual void refreshPrintOutput() {} void interrupt();