1
0
Fork 0
x64dbg/x64_dbg_gui/Project/Src/Gui/SettingsDialog.h

105 lines
2.6 KiB
C++

#ifndef SETTINGSDIALOG_H
#define SETTINGSDIALOG_H
#include <QDialog>
#include "Bridge.h"
#include "ExceptionRangeDialog.h"
namespace Ui {
class SettingsDialog;
}
class SettingsDialog : public QDialog
{
Q_OBJECT
public:
explicit SettingsDialog(QWidget *parent = 0);
~SettingsDialog();
void SaveSettings();
private slots:
void on_chkSystemBreakpoint_stateChanged(int arg1);
void on_chkTlsCallbacks_stateChanged(int arg1);
void on_chkEntryBreakpoint_stateChanged(int arg1);
void on_chkDllEntry_stateChanged(int arg1);
void on_chkThreadEntry_stateChanged(int arg1);
void on_chkDllLoad_stateChanged(int arg1);
void on_chkDllUnload_stateChanged(int arg1);
void on_chkThreadStart_stateChanged(int arg1);
void on_chkThreadEnd_stateChanged(int arg1);
void on_chkDebugStrings_stateChanged(int arg1);
void on_radioUnsigned_clicked();
void on_radioSigned_clicked();
void on_radioInt3Short_clicked();
void on_radioInt3Long_clicked();
void on_radioUd2_clicked();
void on_btnSave_clicked();
void on_btnAddRange_clicked();
void on_btnDeleteRange_clicked();
void on_btnAddLast_clicked();
private:
//enums
enum CalcType
{
calc_signed=0,
calc_unsigned=1
};
enum BreakpointType
{
break_int3short=0,
break_int3long=1,
break_ud2=2
};
//structures
struct RangeStruct
{
unsigned long start;
unsigned long end;
};
struct RangeStructLess
{
bool operator()(const RangeStruct a, const RangeStruct b) const
{
return a.start < b.start;
}
};
struct SettingsStruct
{
//Event Tab
bool eventSystemBreakpoint;
bool eventTlsCallbacks;
bool eventEntryBreakpoint;
bool eventDllEntry;
bool eventThreadEntry;
bool eventDllLoad;
bool eventDllUnload;
bool eventThreadStart;
bool eventThreadEnd;
bool eventDebugStrings;
//Engine Tab
CalcType engineCalcType;
BreakpointType engineBreakpointType;
//Exception Tab
QList<RangeStruct>* exceptionRanges;
};
//variables
Ui::SettingsDialog *ui;
SettingsStruct settings;
QList<RangeStruct> realExceptionRanges;
//functions
void GetSettingBool(const char* section, const char* name, bool* set);
Qt::CheckState bool2check(bool checked);
void LoadSettings();
void AddRangeToList(RangeStruct range);
};
#endif // SETTINGSDIALOG_H