File indexing completed on 2023-10-01 07:35:55
0001 /* 0002 SPDX-License-Identifier: GPL-2.0-or-later 0003 SPDX-FileCopyrightText: 2009 Alexander Rieder <alexanderrieder@gmail.com> 0004 */ 0005 0006 #ifndef _REXTENSIONS_H 0007 #define _REXTENSIONS_H 0008 0009 #include "extension.h" 0010 #include "directives/plotdirectives.h" 0011 0012 class RScriptExtension : public Cantor::ScriptExtension 0013 { 0014 public: 0015 explicit RScriptExtension(QObject* parent); 0016 ~RScriptExtension() override = default; 0017 public Q_SLOTS: 0018 QString runExternalScript(const QString& path) override; 0019 QString scriptFileFilter() override; 0020 QString highlightingMode() override; 0021 }; 0022 0023 class RPlotExtension : public Cantor::AdvancedPlotExtension, 0024 public Cantor::AdvancedPlotExtension::DirectiveAcceptor<Cantor::PlotTitleDirective>, 0025 public Cantor::AdvancedPlotExtension::DirectiveAcceptor<Cantor::OrdinateScaleDirective>, 0026 public Cantor::AdvancedPlotExtension::DirectiveAcceptor<Cantor::AbscissScaleDirective> 0027 { 0028 public: 0029 explicit RPlotExtension(QObject* parent); 0030 ~RPlotExtension() override = default; 0031 QString accept(const Cantor::PlotTitleDirective&) const override; 0032 QString accept(const Cantor::OrdinateScaleDirective&) const override; 0033 QString accept(const Cantor::AbscissScaleDirective&) const override; 0034 0035 protected: 0036 QString plotCommand() const override { return QLatin1String("plot"); } 0037 }; 0038 0039 class RVariableManagementExtension : public Cantor::VariableManagementExtension 0040 { 0041 public: 0042 explicit RVariableManagementExtension(QObject* parent); 0043 ~RVariableManagementExtension() override = default; 0044 QString addVariable(const QString& name, const QString& value) override; 0045 QString setValue(const QString& name, const QString& value) override; 0046 QString removeVariable(const QString& name) override; 0047 QString saveVariables(const QString& fileName) override; 0048 QString loadVariables(const QString& fileName) override; 0049 QString clearVariables() override; 0050 }; 0051 0052 #endif /* _REXTENSIONS_H */