blob: 5b5550a3b3f276cd67cac020f0fc83e1f9556084 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
#pragma once
#include <QtWidgets/QDialog>
#include <QtWidgets/QLabel>
#include <QtCore/QStringListModel>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QLineEdit>
#include <QtCore/QTimer>
#include <QtCore/QThread>
#include <QToolTip>
#include "binaryninjaapi.h"
#include "dialogtextedit.h"
#include "clickablelabel.h"
class BINARYNINJAUIAPI PossibleValueSetDialog: public QDialog
{
Q_OBJECT
QComboBox* m_combo;
QLineEdit* m_value;
QStringListModel* m_model;
QLabel* m_prompt;
QString m_promptText;
ClickableLabel* m_valueLabel;
BinaryViewRef m_view;
bool m_resultValid;
QStringList m_historyEntries;
int m_historySize;
QFont m_defaultFont;
bool m_initialTextSelection;
BinaryNinja::PossibleValueSet m_valueSet;
QPushButton* m_acceptButton;
QPalette m_defaultPalette;
QString m_parseError;
uint64_t m_here;
QTimer* m_updateTimer;
private Q_SLOTS:
void accepted();
void checkParse();
void updateTimerEvent();
void showHelp();
void stateChanged(const QString&);
public:
PossibleValueSetDialog(QWidget* parent, BinaryViewRef view, uint64_t here);
BinaryNinja::PossibleValueSet getPossibleValueSet() const { return m_valueSet; }
static BNRegisterValueType getRegisterValueTypeFromString(const std::string& stateStr);
};
static const QStringList valueSets = {
"ConstantValue",
"ConstantPointerValue",
"StackFrameOffset",
"SignedRangeValue",
"UnsignedRangeValue",
"InSetOfValues",
"NotInSetOfValues",
"UndeterminedValue",
};
|