From 74dfc90a4291ff12228288e45bdbfe714869bac3 Mon Sep 17 00:00:00 2001 From: Jon Palmisciano Date: Thu, 15 Dec 2022 11:55:13 -0500 Subject: Add new "Create Array" dialog --- ui/createarraydialog.h | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 ui/createarraydialog.h (limited to 'ui/createarraydialog.h') diff --git a/ui/createarraydialog.h b/ui/createarraydialog.h new file mode 100644 index 00000000..d14bbca3 --- /dev/null +++ b/ui/createarraydialog.h @@ -0,0 +1,49 @@ +#include "uitypes.h" + +#include +#include +#include +#include + +class CreateArrayDialog : public QDialog +{ + Q_OBJECT + + BinaryViewRef m_data; + + uint64_t m_startAddress; + TypeRef m_elementType; + uint64_t m_elementCount; + + QLineEdit* m_startField; + QComboBox* m_countTypeDropdown; + QComboBox* m_typeDropdown; + QSpinBox* m_countField; + + QPushButton* m_acceptButton; + + void validate(); + +public: + CreateArrayDialog(BinaryViewRef data, QWidget* parent = nullptr); + + /// Set the initial start address, element type, and element count for + /// the dialog. The element type may be null if no default is desired; a + /// default will be chosen by the dialog. + void setInitialState(uint64_t start, TypeRef elementType, uint64_t count); + + /// Get the desired start address from the accepted dialog. + uint64_t startAddress() const; + + /// Get the desired array element type from the accepted dialog. + /// + /// The returned value will NOT be of `Type::ArrayType(...)`, but rather + /// the element inside. + TypeRef elementType() const; + + /// Get the desired element count from the accepted dialog. + uint64_t elementCount() const; + + void accept() override; + void reject() override; +}; -- cgit v1.3.1