예제 #1
0
        private void btnTMFPicker_Click(object sender, EventArgs e)
        {
            switch (currentPOT)
            {
            case PickOperandType.None:
                ((InstructionInfo)instructionEditor.DragItem).NewInstruction.Operand = null;
                lblTMFPicker.Text = string.Empty;
                RedrawBoth();
                break;

            case PickOperandType.FieldReference:
                MultiPicker <FieldReference> .ShowStructure(dataStruct, StructureView.Fields, x => true, ApplyOperand);

                break;

            case PickOperandType.MethodReference:
                MultiPicker <MethodReference> .ShowStructure(dataStruct, StructureView.Methods, x => true, ApplyOperand);

                break;

            case PickOperandType.TypeReference:
                var typPicker = MultiPicker <TypeReference> .ShowStructure(dataStruct, StructureView.Classes, x => true, ApplyOperand);

                AddGenericsToToolBox(typPicker);
                break;

            case PickOperandType.TMFReferenceDynamic:
                var mrfPicker = MultiPicker <MemberReference> .ShowStructure(dataStruct, StructureView.All, x => true, ApplyOperand);

                AddGenericsToToolBox(mrfPicker);
                break;

            case PickOperandType.InstructionArrReference:
                Instruction[] oldop = ((InstructionInfo)instructionEditor.DragItem).NewInstruction.Operand as Instruction[];
                InstructArrPicker.Instance.ShowStructure(mInstructBox.Items, oldop, x => ApplyOperand(x));
                break;

            default:
                Log.Write(Log.Level.Warning, $"OperandType \"{currentPOT}\" cannot be processed with the TMFPicker");
                break;
            }
        }
예제 #2
0
 private void btnPickMethod_Click(object sender, EventArgs e)
 {
     MultiPicker <MethodDefinition> .ShowStructure(dataStruct, StructureView.Methods, x => true, LoadMetDef, true);
 }