MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / _get_form_input

Method _get_form_input

python/interaction.py:644–716  ·  view source on GitHub ↗
(self, ctxt, fields, count, title)

Source from the content-addressed store, hash-verified

642 log_error(traceback.format_exc())
643
644 def _get_form_input(self, ctxt, fields, count, title):
645 try:
646 field_objs = []
647 for i in range(0, count):
648 if fields[i].type == FormInputFieldType.LabelFormField:
649 field_objs.append(LabelField(fields[i].prompt))
650 elif fields[i].type == FormInputFieldType.SeparatorFormField:
651 field_objs.append(SeparatorField())
652 elif fields[i].type == FormInputFieldType.TextLineFormField:
653 field_objs.append(
654 TextLineField(
655 fields[i].prompt, default=fields[i].stringDefault if fields[i].hasDefault else None
656 )
657 )
658 elif fields[i].type == FormInputFieldType.MultilineTextFormField:
659 field_objs.append(
660 MultilineTextField(
661 fields[i].prompt, default=fields[i].stringDefault if fields[i].hasDefault else None
662 )
663 )
664 elif fields[i].type == FormInputFieldType.IntegerFormField:
665 field_objs.append(
666 IntegerField(fields[i].prompt, default=fields[i].intDefault if fields[i].hasDefault else None)
667 )
668 elif fields[i].type == FormInputFieldType.AddressFormField:
669 view = None
670 if fields[i].view:
671 view = binaryview.BinaryView(handle=core.BNNewViewReference(fields[i].view))
672 field_objs.append(
673 AddressField(
674 fields[i].prompt, view, fields[i].currentAddress,
675 default=fields[i].addressDefault if fields[i].hasDefault else None
676 )
677 )
678 elif fields[i].type == FormInputFieldType.ChoiceFormField:
679 choices = []
680 for j in range(0, fields[i].count):
681 choices.append(fields[i].choices[j])
682 field_objs.append(
683 ChoiceField(
684 fields[i].prompt, choices, default=fields[i].choiceDefault if fields[i].hasDefault else None
685 )
686 )
687 elif fields[i].type == FormInputFieldType.OpenFileNameFormField:
688 field_objs.append(
689 OpenFileNameField(
690 fields[i].prompt, fields[i].ext,
691 default=fields[i].stringDefault if fields[i].hasDefault else None
692 )
693 )
694 elif fields[i].type == FormInputFieldType.SaveFileNameFormField:
695 field_objs.append(
696 SaveFileNameField(
697 fields[i].prompt, fields[i].ext, fields[i].defaultName,
698 default=fields[i].stringDefault if fields[i].hasDefault else None
699 )
700 )
701 elif fields[i].type == FormInputFieldType.DirectoryNameFormField:

Callers

nothing calls this directly

Calls 15

get_form_inputMethod · 0.95
LabelFieldClass · 0.85
SeparatorFieldClass · 0.85
TextLineFieldClass · 0.85
MultilineTextFieldClass · 0.85
IntegerFieldClass · 0.85
AddressFieldClass · 0.85
ChoiceFieldClass · 0.85
OpenFileNameFieldClass · 0.85
SaveFileNameFieldClass · 0.85
DirectoryNameFieldClass · 0.85
log_errorFunction · 0.85

Tested by

no test coverage detected