コード例 #1
0
        public override void Execute(TVContext context)
        {
            int secretNum = new Random().Next() % 10;

            MsgBox.Instance.Ask <int?>("Number", null, "Guess a number", null, s => {
                int num;
                if (string.IsNullOrWhiteSpace(s))
                {
                    return("Enter a number");
                }
                if (!int.TryParse(s, out num))
                {
                    return("Not an integer");
                }
                if (num == 42)
                {
                    return("Nope!");
                }
                if (num != secretNum)
                {
                    return("WRONG!!!");
                }
                return(string.Empty);
            });
        }
コード例 #2
0
ファイル: TreeViewCtxMenus.cs プロジェクト: zz110/dnSpy
 IMDTokenNode GetTokenNode(TVContext context)
 {
     if (context.Nodes.Length == 0)
     {
         return(null);
     }
     return(context.Nodes[0] as IMDTokenNode);
 }
コード例 #3
0
ファイル: TreeViewCtxMenus.cs プロジェクト: zz110/dnSpy
        public override string GetHeader(TVContext context)
        {
            var node = GetTokenNode(context);

            if (node == null)
            {
                return(string.Empty);
            }
            return($"Copy token {node.Reference.MDToken.Raw:X8}");
        }
コード例 #4
0
ファイル: TreeViewCtxMenus.cs プロジェクト: zz110/dnSpy
        public override void Execute(TVContext context)
        {
            var instr = GetSecondInstruction(context);

            if (instr != null)
            {
                try {
                    Clipboard.SetText($"Second instruction: {instr}");
                }
                catch (ExternalException) { }
            }
        }
コード例 #5
0
ファイル: TreeViewCtxMenus.cs プロジェクト: zz110/dnSpy
        public override void Execute(TVContext context)
        {
            var node = GetTokenNode(context);

            if (node != null)
            {
                try {
                    Clipboard.SetText($"{node.Reference.MDToken.Raw:X8}");
                }
                catch (ExternalException) { }
            }
        }
コード例 #6
0
ファイル: TreeViewCtxMenus.cs プロジェクト: zz110/dnSpy
        Instruction GetSecondInstruction(TVContext context)
        {
            if (context.Nodes.Length == 0)
            {
                return(null);
            }
            var methNode = context.Nodes[0] as MethodNode;

            if (methNode == null)
            {
                return(null);
            }
            var body = methNode.MethodDef.Body;

            if (body == null || body.Instructions.Count < 2)
            {
                return(null);
            }
            return(body.Instructions[1]);
        }
コード例 #7
0
ファイル: TreeViewCtxMenus.cs プロジェクト: zz110/dnSpy
 public override bool IsVisible(TVContext context) => context.Nodes.Length > 0;
コード例 #8
0
ファイル: TreeViewCtxMenus.cs プロジェクト: zz110/dnSpy
 public override void Execute(TVContext context) => MsgBox.Instance.Show("Command #2");
コード例 #9
0
ファイル: TreeViewCtxMenus.cs プロジェクト: zz110/dnSpy
 public override bool IsEnabled(TVContext context) => context.Nodes.Length > 1;
コード例 #10
0
ファイル: TreeViewCtxMenus.cs プロジェクト: zz110/dnSpy
 public override bool IsEnabled(TVContext context) => GetSecondInstruction(context) != null;
コード例 #11
0
ファイル: TreeViewCtxMenus.cs プロジェクト: zz110/dnSpy
 public override bool IsVisible(TVContext context) => GetTokenNode(context) != null;
コード例 #12
0
ファイル: TreeViewCtxMenus.cs プロジェクト: zz110/dnSpy
 public override bool IsEnabled(TVContext context) => context.Nodes.Length == 1 && context.Nodes[0] is ModuleDocumentNode;
コード例 #13
0
 public override bool IsEnabled(TVContext context) => context.Nodes.Length == 1 && context.Nodes[0] is IModuleFileNode;
コード例 #14
0
ファイル: TreeViewCtxMenus.cs プロジェクト: ohyeah521/dnSpy-1
 public override bool IsEnabled(TVContext context) => !(GetSecondInstruction(context) is null);
コード例 #15
0
ファイル: TreeViewCtxMenus.cs プロジェクト: ohyeah521/dnSpy-1
 public override bool IsVisible(TVContext context) => !(GetTokenNode(context) is null);