WingHexAsm/winghexasm.h

53 lines
1.3 KiB
C++

#ifndef WINGHEXASM_H
#define WINGHEXASM_H
#include "../WingHexExplorer/wing-hex-explorer.sourcecode/WingHexExplorer/plugin/iwingplugin.h"
#include "keystone/keystone.h"
#include <QCheckBox>
#include <QComboBox>
#include <QTextBrowser>
class WingHexAsm : public IWingPlugin {
Q_OBJECT
#if QT_VERSION >= 0x050000
Q_PLUGIN_METADATA(IID IWINGPLUGIN_INTERFACE_IID FILE "WingHexAsm.json")
#endif // QT_VERSION >= 0x050000
Q_INTERFACES(IWingPlugin)
public:
WingHexAsm(QObject *parent = nullptr);
bool init(QList<WingPluginInfo> loadedplugin) override;
~WingHexAsm() override;
void unload() override;
int sdkVersion() override;
QMenu *registerMenu() override;
QToolButton *registerToolButton() override;
void
registerDockWidget(QMap<QDockWidget *, Qt::DockWidgetArea> &rdw) override;
QString pluginName() override;
QString pluginAuthor() override;
uint pluginVersion() override;
QString signature() override;
QString pluginComment() override;
void plugin2MessagePipe(WingPluginMessage type, QList<QVariant> msg) override;
private:
void asmCode(QString code);
private:
QMenu *menu;
QToolButton *tbtn;
QWidget *w;
QDockWidget *dw;
QTextBrowser *txtAsm;
QComboBox *arch, *mode;
QCheckBox *cbintel;
ks_arch karch = ks_arch::KS_ARCH_X86;
ks_mode kmode = ks_mode::KS_MODE_64;
};
#endif // WINGHEXASM_H