2018-06-26 07:40:08 +00:00
|
|
|
#ifndef CUTTERPLUGIN_H
|
|
|
|
#define CUTTERPLUGIN_H
|
|
|
|
|
|
|
|
class CutterPlugin;
|
|
|
|
class MainWindow;
|
|
|
|
|
2019-02-22 16:50:45 +00:00
|
|
|
#include "core/Cutter.h"
|
2018-06-26 07:40:08 +00:00
|
|
|
#include "widgets/CutterDockWidget.h"
|
|
|
|
|
|
|
|
class CutterPlugin
|
|
|
|
{
|
|
|
|
public:
|
2019-03-23 11:23:31 +00:00
|
|
|
virtual ~CutterPlugin() = default;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Initialize the Plugin
|
|
|
|
*
|
|
|
|
* called right when the plugin is loaded initially
|
|
|
|
*/
|
2019-02-09 16:21:31 +00:00
|
|
|
virtual void setupPlugin() = 0;
|
2019-03-23 11:23:31 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Setup any UI components for the Plugin
|
|
|
|
* @param main the MainWindow to add any UI to
|
|
|
|
*
|
|
|
|
* called after Cutter's core UI has been initialized
|
|
|
|
*/
|
2019-02-07 16:19:05 +00:00
|
|
|
virtual void setupInterface(MainWindow *main) = 0;
|
2018-06-26 07:40:08 +00:00
|
|
|
|
2019-03-23 11:23:31 +00:00
|
|
|
/**
|
|
|
|
* @brief Shutdown the Plugin
|
|
|
|
*
|
|
|
|
* called just before the Plugin is deleted.
|
|
|
|
* This method is usually only relevant for Python Plugins where there is no
|
|
|
|
* direct equivalent of the destructor.
|
|
|
|
*/
|
|
|
|
virtual void terminate() {};
|
|
|
|
|
2019-02-09 16:21:31 +00:00
|
|
|
virtual QString getName() const = 0;
|
|
|
|
virtual QString getAuthor() const = 0;
|
|
|
|
virtual QString getDescription() const = 0;
|
|
|
|
virtual QString getVersion() const = 0;
|
2018-06-26 07:40:08 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#define CutterPlugin_iid "org.radare.cutter.plugins.CutterPlugin"
|
|
|
|
|
|
|
|
Q_DECLARE_INTERFACE(CutterPlugin, CutterPlugin_iid)
|
|
|
|
|
|
|
|
#endif // CUTTERPLUGIN_H
|