mirror of
https://github.com/aseprite/aseprite.git
synced 2025-02-11 18:41:05 +00:00
Add script::ScopedEngineDelegate
This commit is contained in:
parent
0e3be4ec91
commit
3035820d39
@ -31,7 +31,6 @@ public:
|
|||||||
void onConsolePrint(const char* text) override {
|
void onConsolePrint(const char* text) override {
|
||||||
m_console.printf("%s\n", text);
|
m_console.printf("%s\n", text);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Console m_console;
|
Console m_console;
|
||||||
};
|
};
|
||||||
@ -69,12 +68,11 @@ void RunScriptCommand::onLoadParams(const Params& params)
|
|||||||
void RunScriptCommand::onExecute(Context* context)
|
void RunScriptCommand::onExecute(Context* context)
|
||||||
{
|
{
|
||||||
script::Engine* engine = App::instance()->scriptEngine();
|
script::Engine* engine = App::instance()->scriptEngine();
|
||||||
|
{
|
||||||
ConsoleEngineDelegate delegate;
|
ConsoleEngineDelegate delegate;
|
||||||
engine->setDelegate(&delegate);
|
script::ScopedEngineDelegate scoped(engine, &delegate);
|
||||||
engine->evalFile(m_filename);
|
engine->evalFile(m_filename);
|
||||||
engine->setDelegate(nullptr);
|
}
|
||||||
|
|
||||||
ui::Manager::getDefault()->invalidate();
|
ui::Manager::getDefault()->invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,6 +48,7 @@ namespace app {
|
|||||||
Engine();
|
Engine();
|
||||||
~Engine();
|
~Engine();
|
||||||
|
|
||||||
|
EngineDelegate* delegate() { return m_delegate; }
|
||||||
void setDelegate(EngineDelegate* delegate) {
|
void setDelegate(EngineDelegate* delegate) {
|
||||||
m_delegate = delegate;
|
m_delegate = delegate;
|
||||||
}
|
}
|
||||||
@ -65,6 +66,21 @@ namespace app {
|
|||||||
bool m_printLastResult;
|
bool m_printLastResult;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class ScopedEngineDelegate {
|
||||||
|
public:
|
||||||
|
ScopedEngineDelegate(Engine* engine, EngineDelegate* delegate)
|
||||||
|
: m_engine(engine),
|
||||||
|
m_oldDelegate(engine->delegate()) {
|
||||||
|
m_engine->setDelegate(delegate);
|
||||||
|
}
|
||||||
|
~ScopedEngineDelegate() {
|
||||||
|
m_engine->setDelegate(m_oldDelegate);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
Engine* m_engine;
|
||||||
|
EngineDelegate* m_oldDelegate;
|
||||||
|
};
|
||||||
|
|
||||||
int push_image_iterator_function(lua_State* L, const doc::ImageRef& image);
|
int push_image_iterator_function(lua_State* L, const doc::ImageRef& image);
|
||||||
void push_cel_image(lua_State* L, doc::Cel* cel);
|
void push_cel_image(lua_State* L, doc::Cel* cel);
|
||||||
void push_sprite_cel(lua_State* L, doc::Cel* cel);
|
void push_sprite_cel(lua_State* L, doc::Cel* cel);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user