mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 08:47:28 +01:00
This was a very large buffer that took a lot of RAM space (the size of the storage). Instead of having it, we just move the available space of the storage at the end of the edited script, and move it back when the edition finishes. This is slower but saves a lot of space.
46 lines
1.3 KiB
C++
46 lines
1.3 KiB
C++
#ifndef CODE_EDITOR_CONTROLLER_H
|
|
#define CODE_EDITOR_CONTROLLER_H
|
|
|
|
#include <escher.h>
|
|
#include "script.h"
|
|
#include "editor_view.h"
|
|
#include "variable_box_controller.h"
|
|
#include "../shared/input_event_handler_delegate.h"
|
|
|
|
namespace Code {
|
|
|
|
class MenuController;
|
|
class ScriptParameterController;
|
|
class App;
|
|
|
|
class EditorController : public ViewController, public TextAreaDelegate, public Shared::InputEventHandlerDelegate {
|
|
public:
|
|
EditorController(MenuController * menuController, App * pythonDelegate);
|
|
void setScript(Script script);
|
|
|
|
/* ViewController */
|
|
View * view() override { return &m_editorView; }
|
|
bool handleEvent(Ion::Events::Event event) override;
|
|
void didBecomeFirstResponder() override;
|
|
void viewWillAppear() override;
|
|
void viewDidDisappear() override;
|
|
ViewController::DisplayParameter displayParameter() override { return ViewController::DisplayParameter::WantsMaximumSpace; }
|
|
|
|
/* TextAreaDelegate */
|
|
bool textAreaDidReceiveEvent(TextArea * textArea, Ion::Events::Event event) override;
|
|
|
|
/* InputEventHandlerDelegate */
|
|
VariableBoxController * variableBoxForInputEventHandler(InputEventHandler * textInput) override;
|
|
|
|
private:
|
|
StackViewController * stackController();
|
|
EditorView m_editorView;
|
|
Script m_script;
|
|
MenuController * m_menuController;
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|
|
|