mirror of
https://github.com/rizinorg/cutter.git
synced 2024-12-19 11:26:11 +00:00
57 lines
1.4 KiB
C++
57 lines
1.4 KiB
C++
#ifndef CUTTERPLUGIN_H
|
|
#define CUTTERPLUGIN_H
|
|
|
|
class CutterPlugin;
|
|
class MainWindow;
|
|
|
|
#include "core/Cutter.h"
|
|
#include "widgets/CutterDockWidget.h"
|
|
|
|
class CutterPlugin
|
|
{
|
|
public:
|
|
virtual ~CutterPlugin() = default;
|
|
|
|
/**
|
|
* @brief Initialize the Plugin
|
|
*
|
|
* called right when the plugin is loaded initially
|
|
*/
|
|
virtual void setupPlugin() = 0;
|
|
|
|
/**
|
|
* @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
|
|
*/
|
|
virtual void setupInterface(MainWindow *main) = 0;
|
|
|
|
/**
|
|
* @brief Register any decompiler implemented by the Plugin
|
|
*
|
|
* called during initialization of Cutter, after setupPlugin()
|
|
*/
|
|
virtual void registerDecompilers() {}
|
|
|
|
/**
|
|
* @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() {};
|
|
|
|
virtual QString getName() const = 0;
|
|
virtual QString getAuthor() const = 0;
|
|
virtual QString getDescription() const = 0;
|
|
virtual QString getVersion() const = 0;
|
|
};
|
|
|
|
#define CutterPlugin_iid "org.radare.cutter.plugins.CutterPlugin"
|
|
|
|
Q_DECLARE_INTERFACE(CutterPlugin, CutterPlugin_iid)
|
|
|
|
#endif // CUTTERPLUGIN_H
|