Ejemplo n.º 1
0
        void populateList(XapEntry entry)
        {
            string p = (entry == null ? Root : entry.FullPath);

            if (entry != null)
            {
                entry.Children = new List <XapEntry>();
            }
            foreach (string d in Directory.GetDirectories(p))
            {
                XapEntry e = new XapEntry(d, this, true);
                populateList(e);
                if (entry == null)
                {
                    List.Add(e);
                }
                else
                {
                    entry.Children.Add(e);
                }
            }
            foreach (string f in Directory.GetFiles(p))
            {
                XapEntry e = new XapEntry(f, this, false);
                if (entry == null)
                {
                    List.Add(e);
                }
                else
                {
                    entry.Children.Add(e);
                }
            }
        }
Ejemplo n.º 2
0
 private void disasmTree_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
 {
     if ((sender as TreeView).SelectedItem != null)
     {
         // scroll to member logic
         TreeViewItem  si = ((sender as TreeView).SelectedItem as TreeViewItem);
         List <string> tp = new List <string> {
             "TypeDefinition", "MethodDefinition", "PropertyDefinition", "FieldDefinition", "EventDefinition"
         };
         if (tp.Contains(si.Tag.GetType().Name))
         {
             AshFile  af = (disasmFile.Child as AshFile);
             string   g  = string.Empty;
             string[] td = nd.Decompile(si.Tag).Text.Split('\r');
             if (si.Tag.GetType().Name == tp[0])
             {
                 g = td[2].Trim();
             }
             else
             {
                 if (!td[0].Contains("[CompilerGenerated]"))
                 {
                     g = td[0].Trim();
                     if (g.Contains(";"))
                     {
                         g = g.Substring(0, g.IndexOf(';'));
                     }
                 }
                 else
                 {
                     MessageBox.Show("This member is compiler generated.");
                 }
             }
             LocateInCode(g);
         }
         else if (si.Tag.GetType().Name == "EmbeddedResource" && si.Items.Count == 0)
         {
             //if (NeedsSave && MessageBoxResult.Yes == MessageBox.Show("Save current changes?", "Save changes", MessageBoxButton.YesNo)) Save();
             XapEditor.decompiler.ResourceDecompiler rdec = new decompiler.ResourceDecompiler(si.Tag as Mono.Cecil.EmbeddedResource);
             string tmp = Path.GetTempFileName();
             //AshFile af = new AshFile(this.pwner, tmp, EditorType.Resource);
             foreach (KeyValuePair <string, string> kv in rdec.Entries)
             {
                 //af.reEntries.Items.Add(new ComboBoxItem() { Content = kv.Key, Tag = kv.Value });
                 si.Items.Add(nd.GetTreeItem(XapEntry.GetIconForExtension(Path.GetExtension(kv.Key)), kv.Key, kv.Key, kv.Key, string.Format("{0} bytes", new FileInfo(kv.Value).Length)));
                 bool iF = kv.Key.Replace('\\', '/').Contains("/");
             }
             //disasmFile.Child = af;
         }
     }
 }
Ejemplo n.º 3
0
 void populateList(XapEntry entry)
 {
     string p = (entry == null ? Root : entry.FullPath);
     if (entry != null) entry.Children = new List<XapEntry>();
     foreach(string d in Directory.GetDirectories(p))
     {
         XapEntry e = new XapEntry(d, this, true);
         populateList(e);
         if (entry == null) List.Add(e);
         else entry.Children.Add(e);
     }
     foreach (string f in Directory.GetFiles(p))
     {
         XapEntry e = new XapEntry(f, this, false);
         if (entry == null) List.Add(e);
         else entry.Children.Add(e);
     }
 }