mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[apps/code] Add a model program
Change-Id: I79b74f1f245d98d1ce02a590ee25de2c4fbb3c59
This commit is contained in:
@@ -2,6 +2,7 @@ app_objs += $(addprefix apps/code/,\
|
||||
app.o\
|
||||
editor_controller.o\
|
||||
menu_controller.o\
|
||||
program.o\
|
||||
)
|
||||
|
||||
app_images += apps/code/code_icon.png
|
||||
|
||||
@@ -18,6 +18,11 @@ const Image * App::Descriptor::icon() {
|
||||
return ImageStore::CodeIcon;
|
||||
}
|
||||
|
||||
App::Snapshot::Snapshot() :
|
||||
m_program()
|
||||
{
|
||||
}
|
||||
|
||||
App * App::Snapshot::unpack(Container * container) {
|
||||
return new App(container, this);
|
||||
}
|
||||
@@ -27,6 +32,14 @@ App::Descriptor * App::Snapshot::descriptor() {
|
||||
return &descriptor;
|
||||
}
|
||||
|
||||
void App::Snapshot::reset() {
|
||||
m_program.setContent("");
|
||||
}
|
||||
|
||||
Program * App::Snapshot::program() {
|
||||
return &m_program;
|
||||
}
|
||||
|
||||
App::App(Container * container, Snapshot * snapshot) :
|
||||
::App(container, snapshot, &m_menuController, I18n::Message::Warning),
|
||||
m_betaVersionController(I18n::Message::BetaVersion, I18n::Message::BetaVersionMessage1, I18n::Message::BetaVersionMessage2, I18n::Message::BetaVersionMessage3, I18n::Message::BetaVersionMessage4),
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <escher.h>
|
||||
#include "menu_controller.h"
|
||||
#include "program.h"
|
||||
#include "../shared/message_controller.h"
|
||||
|
||||
namespace Code {
|
||||
@@ -17,12 +18,14 @@ public:
|
||||
};
|
||||
class Snapshot : public ::App::Snapshot {
|
||||
public:
|
||||
Snapshot();
|
||||
App * unpack(Container * container) override;
|
||||
void reset() override;
|
||||
Descriptor * descriptor() override;
|
||||
Program * program();
|
||||
private:
|
||||
Program m_program;
|
||||
};
|
||||
//int numberOfTimers() override;
|
||||
//Timer * timerAtIndex(int i) override;
|
||||
//bool processEvent(Ion::Events::Event) override;
|
||||
void didBecomeActive(Window * window) override;
|
||||
private:
|
||||
App(Container * container, Snapshot * snapshot);
|
||||
|
||||
35
apps/code/program.cpp
Normal file
35
apps/code/program.cpp
Normal file
@@ -0,0 +1,35 @@
|
||||
#include "program.h"
|
||||
|
||||
namespace Code {
|
||||
|
||||
Program::Program() :
|
||||
m_buffer("")
|
||||
{
|
||||
const char * program =
|
||||
|
||||
"import kandinsky\n"
|
||||
"red = kandinsky.color(255,0,0)\n"
|
||||
"blue = kandinsky.color(0,0,255)\n"
|
||||
"for i in range(100):\n"
|
||||
" for j in range(100):\n"
|
||||
" if ((i+j)%2 == 0):\n"
|
||||
" kandinsky.set_pixel(i, j, red)\n"
|
||||
" else:\n"
|
||||
" kandinsky.set_pixel(i, j, blue)\n";
|
||||
|
||||
memcpy(m_buffer, program, 1024);
|
||||
}
|
||||
|
||||
const char * Program::readOnlyContent() const {
|
||||
return m_buffer;
|
||||
}
|
||||
|
||||
char * Program::editableContent() {
|
||||
return m_buffer;
|
||||
}
|
||||
|
||||
void Program::setContent(const char * program) {
|
||||
memcpy(m_buffer, program, k_bufferSize);
|
||||
}
|
||||
|
||||
}
|
||||
22
apps/code/program.h
Normal file
22
apps/code/program.h
Normal file
@@ -0,0 +1,22 @@
|
||||
#ifndef CODE_PROGRAM_H
|
||||
#define CODE_PROGRAM_H
|
||||
|
||||
#include <escher.h>
|
||||
|
||||
namespace Code {
|
||||
|
||||
class Program {
|
||||
public:
|
||||
Program();
|
||||
const char * readOnlyContent() const;
|
||||
char * editableContent();
|
||||
void setContent(const char * program);
|
||||
private:
|
||||
constexpr static int k_bufferSize = 1024;
|
||||
char m_buffer[k_bufferSize];
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user