[code] Navigation in the console history.

The user can copy previous commands or results, into the clipboard or in
the console prompt.

Change-Id: I280fff2d4937f4d17ab6c8907d6e5c359a322372
This commit is contained in:
Léa Saviot
2017-10-25 17:11:41 +02:00
committed by Romain Goyet
parent 745eddfa05
commit 239e702d37
8 changed files with 66 additions and 18 deletions

View File

@@ -11,7 +11,7 @@
namespace Code {
class ConsoleController : public ViewController, public ListViewDataSource, public ScrollViewDataSource, public TextFieldDelegate, public MicroPython::ExecutionEnvironment {
class ConsoleController : public ViewController, public ListViewDataSource, public SelectableTableViewDataSource, public SelectableTableViewDelegate, public TextFieldDelegate, public MicroPython::ExecutionEnvironment {
public:
static constexpr KDText::FontSize k_fontSize = KDText::FontSize::Large;
@@ -31,9 +31,10 @@ public:
void removeExtensionIfAny(char * name);
// ViewController
View * view() override { return &m_tableView; }
View * view() override { return &m_selectableTableView; }
void viewWillAppear() override;
void didBecomeFirstResponder() override;
bool handleEvent(Ion::Events::Event event) override;
// ListViewDataSource
int numberOfRows() override;
@@ -45,6 +46,9 @@ public:
int typeAtLocation(int i, int j) override;
void willDisplayCellAtLocation(HighlightCell * cell, int i, int j) override;
// SelectableTableViewDelegate
void tableViewDidChangeSelection(SelectableTableView * t, int previousSelectedCellX, int previousSelectedCellY) override;
// TextFieldDelegate
bool textFieldShouldFinishEditing(TextField * textField, Ion::Events::Event event) override;
bool textFieldDidReceiveEvent(TextField * textField, Ion::Events::Event event) override;
@@ -68,7 +72,7 @@ private:
int firstNewLineCharIndex(const char * text, size_t length);
int m_rowHeight;
ConsoleStore m_consoleStore;
TableView m_tableView;
SelectableTableView m_selectableTableView;
ConsoleLineCell m_cells[k_numberOfLineCells];
ConsoleEditCell m_editCell;
char * m_pythonHeap;