00001 #ifndef FILEEXPORTER_H 00002 #define FILEEXPORTER_H 00003 00004 #include <QGenericPlugin> 00005 #include "Plugin.h" 00006 #include <ExtendedGraph.h> 00007 00008 #define ExporterPlugin_iid "ch.epfl.lap.elfe.LayoutPlugin" 00009 00010 namespace Elve { 00011 00019 class FileExporterPlugin : public QObject, public Plugin 00020 { 00021 Q_OBJECT 00022 public: 00026 FileExporterPlugin(); 00027 00035 virtual void exportGraph(const QString& filename, const SharedEGraph& eg) = 0; 00036 00042 QGraphicsScene* sceneForGraph(const SharedEGraph& eg); 00043 00051 virtual QString formatName() = 0; 00052 00060 virtual QString fileFilter() = 0; 00061 00069 virtual std::string cliName() = 0; 00070 }; 00071 00072 } 00073 Q_DECLARE_INTERFACE(Elve::FileExporterPlugin,ExporterPlugin_iid) 00074 00075 00076 00077 #define ELVE_EXPORTER(Exporter,full_name,filter,cli_name)\ 00078 public:\ 00079 inline QString formatName() override {return (full_name);}\ 00080 inline QString fileFilter() override {return filter;}\ 00081 inline std::string cliName() override {return (cli_name);} 00082 00083 #endif // FILEEXPORTER_H