summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2016-09-22 00:20:13 -0400
committerRusty Wagner <rusty@vector35.com>2016-09-22 00:21:40 -0400
commitae7f75fd33a49a25f5d8d735ae876e2c4ba55339 (patch)
treedf344c69c13c77698120daf230f97c95b068a402 /binaryninjacore.h
parent0ee439859c9f09ed0d725bef385bcc9ac6d635a1 (diff)
Adding API to create simple dialogs with multiple input fields
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 6339b1c3..b6d2f7ed 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -1073,6 +1073,36 @@ extern "C"
CancelButton = 3
};
+ enum BNFormInputFieldType
+ {
+ LabelFormField,
+ SeparatorFormField,
+ TextLineFormField,
+ MultilineTextFormField,
+ IntegerFormField,
+ AddressFormField,
+ ChoiceFormField,
+ OpenFileNameFormField,
+ SaveFileNameFormField,
+ DirectoryNameFormField
+ };
+
+ struct BNFormInputField
+ {
+ BNFormInputFieldType type;
+ const char* prompt;
+ BNBinaryView* view; // For AddressFormField
+ uint64_t currentAddress; // For AddressFormField
+ const char** choices; // For ChoiceFormField
+ size_t count; // For ChoiceFormField
+ const char* ext; // For OpenFileNameFormField, SaveFileNameFormField
+ const char* defaultName; // For SaveFileNameFormField
+ int64_t intResult;
+ uint64_t addressResult;
+ char* stringResult;
+ size_t indexResult;
+ };
+
struct BNInteractionHandlerCallbacks
{
void* context;
@@ -1091,6 +1121,7 @@ extern "C"
bool (*getSaveFileNameInput)(void* ctxt, char** result, const char* prompt, const char* ext,
const char* defaultName);
bool (*getDirectoryNameInput)(void* ctxt, char** result, const char* prompt, const char* defaultName);
+ bool (*getFormInput)(void* ctxt, BNFormInputField* fields, size_t count, const char* title);
BNMessageBoxButtonResult (*showMessageBox)(void* ctxt, const char* title, const char* text,
BNMessageBoxButtonSet buttons, BNMessageBoxIcon icon);
};
@@ -2107,6 +2138,8 @@ extern "C"
BINARYNINJACOREAPI bool BNGetSaveFileNameInput(char** result, const char* prompt, const char* ext,
const char* defaultName);
BINARYNINJACOREAPI bool BNGetDirectoryNameInput(char** result, const char* prompt, const char* defaultName);
+ BINARYNINJACOREAPI bool BNGetFormInput(BNFormInputField* fields, size_t count, const char* title);
+ BINARYNINJACOREAPI void BNFreeFormInputResults(BNFormInputField* fields, size_t count);
BINARYNINJACOREAPI BNMessageBoxButtonResult BNShowMessageBox(const char* title, const char* text,
BNMessageBoxButtonSet buttons, BNMessageBoxIcon icon);