34 lines
890 B
C++

#pragma once
#include <QtScript/qscriptcontext.h>
#include <QtCore/QMap>
#include <QtCore/QtCore>
#include <QtScript/qscriptengine.h>
#include <vector>
#include "./defs/base.hpp"
#include "./defs/simple.hpp"
class ToonBoomExamples {
public:
ToonBoomExamples() {
addExample(new SimpleExample());
addExample(new ToolbarExample());
}
void addExample(BaseExample *example) { examples.push_back(example); }
QScriptValue getExamples(QScriptEngine *engine) {
QScriptValue obj = engine->newObject();
for (auto &example : examples) {
auto lambda = example->run();
QScriptValue scriptFunc =
CallbackWrapper<decltype(lambda)>::create(engine, std::move(lambda));
obj.setProperty(example->jsName(), scriptFunc);
}
return obj;
}
~ToonBoomExamples() {}
private:
std::vector<BaseExample *> examples;
};