NCL Composer  0.1.5
 All Classes Functions Variables Pages
IPluginFactory.h
1 /* Copyright (c) 2011 Telemidia/PUC-Rio.
2  * All rights reserved. This program and the accompanying materials
3  * are made available under the terms of the Eclipse Public License v1.0
4  * which accompanies this distribution, and is available at
5  * http://www.eclipse.org/legal/epl-v10.html
6  *
7  * Contributors:
8  * Telemidia/PUC-Rio - initial API and implementation
9  */
10 #ifndef ILAYOUTPLUGIN_H
11 #define ILAYOUTPLUGIN_H
12 
13 #include <QtPlugin>
14 #include <QString>
15 #include <QtGui/QIcon>
16 
17 #include "../util/ComposerCoreControl_global.h"
18 
19 #include "../util/Utilities.h"
20 using namespace composer::core::util;
21 
22 #include "IPlugin.h"
23 using namespace composer::extension;
24 
25 namespace composer {
26  namespace extension {
35 class COMPOSERCORESHARED_EXPORT IPluginFactory {
36 
37 public:
38  virtual ~IPluginFactory() {}
39 
46  virtual IPlugin* createPluginInstance() = 0;
47 
61  virtual void releasePluginInstance(IPlugin *) = 0;
62 
63  virtual QString id() const = 0;
64  virtual QString name() const = 0;
65 
66  virtual QIcon icon() const { return QIcon(); }
67  virtual QWidget* getPreferencePageWidget() { return NULL; }
68  virtual void setDefaultValues() {}
69  virtual void applyValues() {}
70 
71  virtual QList<LanguageType> getSupportedLanguages()
72  {
73  QList<LanguageType> lTypes;
74  lTypes.append(NCL);
75  return lTypes;
76  }
77 
78  /*Useful information about the plugin (go to XML?)*/
79  virtual QString version() { return "Unknown";}
80  virtual QString compatVersion() {return "Unknown";}
81  virtual QString vendor() {return "Unknown";}
82  virtual QString copyright() {return "Unknown";}
83  virtual QString license() {return "Unknown";}
84  virtual QString description() {return "Unknown";}
85  virtual QString url() {return "Unknown";}
86  virtual QString category() {return "Unknown";}
87 };
88 
89 } } //end namespace
90 
95 Q_DECLARE_INTERFACE(IPluginFactory,
96  "br.telemidia.pucrio.composer.IPluginFactory")
97 
98 #endif // ILAYOUTPLUGIN_H