mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
Enable to give options at run-time
This commit is contained in:
committed by
EmilieNumworks
parent
af877c19bb
commit
c5e525ddb7
@@ -18,6 +18,14 @@ const Image * App::Descriptor::icon() {
|
||||
return ImageStore::CodeIcon;
|
||||
}
|
||||
|
||||
App::Snapshot::Snapshot() :
|
||||
#if EPSILON_GETOPT
|
||||
m_lockOnConsole(false),
|
||||
#endif
|
||||
m_scriptStore()
|
||||
{
|
||||
}
|
||||
|
||||
App * App::Snapshot::unpack(Container * container) {
|
||||
return new App(container, this);
|
||||
}
|
||||
@@ -35,10 +43,40 @@ ScriptStore * App::Snapshot::scriptStore() {
|
||||
return &m_scriptStore;
|
||||
}
|
||||
|
||||
#if EPSILON_GETOPT
|
||||
bool App::Snapshot::lockOnConsole() const {
|
||||
return m_lockOnConsole;
|
||||
}
|
||||
|
||||
void App::Snapshot::setOpt(const char * name, char * value) {
|
||||
if (strcmp(name, "script") == 0) {
|
||||
m_scriptStore.deleteAllScripts();
|
||||
char * separator = strchr(value, ':');
|
||||
if (!separator) {
|
||||
return;
|
||||
}
|
||||
*separator = 0;
|
||||
const char * scriptName = value;
|
||||
const char * scriptContent = separator+1;
|
||||
Code::ScriptTemplate script(scriptName, scriptContent);
|
||||
m_scriptStore.addScriptFromTemplate(&script);
|
||||
return;
|
||||
}
|
||||
if (strcmp(name, "lock-on-console") == 0) {
|
||||
m_lockOnConsole = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
App::App(Container * container, Snapshot * snapshot) :
|
||||
::App(container, snapshot, &m_codeStackViewController, I18n::Message::Warning),
|
||||
m_listFooter(&m_codeStackViewController, &m_menuController, &m_menuController, ButtonRowController::Position::Bottom, ButtonRowController::Style::EmbossedGrey, ButtonRowController::Size::Large),
|
||||
m_menuController(&m_listFooter, snapshot->scriptStore(), &m_listFooter),
|
||||
m_menuController(&m_listFooter, snapshot->scriptStore(), &m_listFooter
|
||||
#if EPSILON_GETOPT
|
||||
, snapshot->lockOnConsole()
|
||||
#endif
|
||||
),
|
||||
m_codeStackViewController(&m_modalViewController, &m_listFooter),
|
||||
m_toolboxActionForTextArea([](void * sender, const char * text) {
|
||||
TextArea * textArea = static_cast<TextArea *>(sender);
|
||||
|
||||
Reference in New Issue
Block a user