1 /***************************************************************************
2  *                                                                         *
3  *   copyright : (C) 2010 The University of Toronto                        *
4  *                   sbenton@physics.utoronto.ca                           *
5  *                                                                         *
6  *   This program is free software; you can redistribute it and/or modify  *
7  *   it under the terms of the GNU General Public License as published by  *
8  *   the Free Software Foundation; either version 2 of the License, or     *
9  *   (at your option) any later version.                                   *
10  *                                                                         *
11  ***************************************************************************/
12 
13 #ifndef LOCKINPLUGIN_H
14 #define LOCKINPLUGIN_H
15 
16 #include <QFile>
17 
18 #include <basicplugin.h>
19 #include <dataobjectplugin.h>
20 
21 class LockInSource : public Kst::BasicPlugin {
22   Q_OBJECT
23 
24   public:
25     virtual QString _automaticDescriptiveName() const;
26 
27     Kst::VectorPtr inputVector() const;
28     Kst::VectorPtr refVector() const;
29 
30     virtual void change(Kst::DataObjectConfigWidget *configWidget);
31 
32     void setupOutputs();
33     virtual bool algorithm();
34 
35     virtual QStringList inputVectorList() const;
36     virtual QStringList inputScalarList() const;
37     virtual QStringList inputStringList() const;
38     virtual QStringList outputVectorList() const;
39     virtual QStringList outputScalarList() const;
40     virtual QStringList outputStringList() const;
41 
42     virtual void saveProperties(QXmlStreamWriter &s);
43 
44   protected:
45     LockInSource(Kst::ObjectStore *store);
46     ~LockInSource();
47 
48   friend class Kst::ObjectStore;
49 
50 
51 };
52 
53 
54 class LockInPlugin : public QObject, public Kst::DataObjectPluginInterface {
55     Q_OBJECT
Q_INTERFACES(Kst::DataObjectPluginInterface)56     Q_INTERFACES(Kst::DataObjectPluginInterface)
57     Q_PLUGIN_METADATA(IID "com.kst.DataObjectPluginInterface/2.0")
58   public:
59     virtual ~LockInPlugin() {}
60 
61     virtual QString pluginName() const;
62     virtual QString pluginDescription() const;
63 
pluginType()64     virtual DataObjectPluginInterface::PluginTypeID pluginType() const { return Generic; }
65 
hasConfigWidget()66     virtual bool hasConfigWidget() const { return true; }
67 
68     virtual Kst::DataObject *create(Kst::ObjectStore *store, Kst::DataObjectConfigWidget *configWidget, bool setupInputsOutputs = true) const;
69 
70     virtual Kst::DataObjectConfigWidget *configWidget(QSettings *settingsObject) const;
71 };
72 
73 #endif
74 // vim: ts=2 sw=2 et
75