QCAD Application Framework
CAD Application Development and Automation.
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RScriptHandlerRegistry.h
Go to the documentation of this file.
1 #ifndef RSCRIPTHANDLERREGISTRY_H
2 #define RSCRIPTHANDLERREGISTRY_H
3 
4 #include <QList>
5 #include <QMetaType>
6 #include <QString>
7 
8 #include "RNonCopyable.h"
9 #include "RDocumentInterface.h"
10 #include "RAction.h"
11 #include "RGuiAction.h"
12 #include "RScriptAction.h"
13 #include "RMainWindow.h"
14 #include "RSingleton.h"
15 
16 
23 
24  friend class RSingleton;
25 
26 public:
27  typedef RScriptHandler* (*FactoryFunction)();
28 
29  virtual ~RScriptHandlerRegistry();
30 
31  static void registerScriptHandler(FactoryFunction factoryFunction,
32  const QList<QString>& fileExtensions);
33 
34  static RScriptHandler* createScriptHandler(const QString& extension);
35  static RScriptHandler* getGlobalScriptHandler(const QString& extension);
36 
37 protected:
38  static QMap<QString, RScriptHandler*> globalScriptHandlers;
39  static QMap<QString, FactoryFunction> factoryFunctions;
40 };
41 
42 #endif