[nostalgia] Rename Studio Plugins to Modules, add support for builtin Studio modules, make existing modules builtin
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright 2016 - 2020 gary@drinkingtea.net
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <functional>
|
||||
|
||||
#include <QVector>
|
||||
#include <QWizardPage>
|
||||
|
||||
#include "wizard.hpp"
|
||||
|
||||
namespace nostalgia::studio {
|
||||
|
||||
struct EditorMaker {
|
||||
QStringList fileTypes;
|
||||
std::function<class Editor*(QString)> make;
|
||||
};
|
||||
|
||||
class Module {
|
||||
|
||||
public:
|
||||
virtual ~Module() = default;
|
||||
|
||||
virtual QVector<WizardMaker> newWizards(const class Context *ctx);
|
||||
|
||||
virtual QVector<WizardMaker> importWizards(const Context *ctx);
|
||||
|
||||
virtual QWidget *makeEditor(QString path, const class Context *ctx);
|
||||
|
||||
virtual QVector<EditorMaker> editors(const class Context *ctx);
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#define PluginInterface_iid "net.drinkingtea.nostalgia.studio.Module"
|
||||
|
||||
Q_DECLARE_INTERFACE(nostalgia::studio::Module, PluginInterface_iid)
|
||||
Reference in New Issue
Block a user