// 310 x 350 protected virtual void RenderFilePanel(Rectangle panel, int index, TreeGumpNode node) { if (FileMime.IsCommonText(SelectedFile)) { var content = File.ReadAllText(SelectedFile.FullName); AddHtml(panel.X, panel.Y, panel.Width, panel.Height, content, HtmlColor, Color.Black); } }
protected void RenderPanel(Rectangle panel, int index, TreeGumpNode node) { if (SelectedFile != null) { RenderFilePanel(panel, index, node); } else { RenderDirectoryPanel(panel, index, node); } }
// 310 x 350 protected virtual void RenderDirectoryPanel(Rectangle2D panel, int index, TreeGumpNode node) { var x = panel.X + 20; var y = panel.Y + 20; var w = panel.Width - 40; var h = panel.Height - 20; var xx = x; var yy = y; var subIndex = 0; var xMax = w / 65; var yMax = h / 110; var max = xMax * yMax; var range = Enumerable.Empty <FileSystemInfo>() .Union(SelectedDirectory.EnumerateDirectories().OrderByNatural(d => d.Name)) .Union(SelectedDirectory.EnumerateFiles().OrderByNatural(f => f.Name)); foreach (var info in range.Take(max)) { // 65 x 110 if (info is DirectoryInfo) { var dir = (DirectoryInfo)info; // 56 x 80 AddButton(xx, yy, 9810, 9810, b => SelectDirectory(dir)); // 56 x 50 AddHtml(xx, yy + 50, 56, 40, info.Name.WrapUOHtmlCenter(), true, false); // 56 x 40 } else if (info is FileInfo) { var file = (FileInfo)info; // 56 x 80 AddButton(xx + 5, yy, 2234, 2234, b => SelectFile(file)); // 46 x 50 AddHtml(xx, yy + 50, 56, 40, info.Name.WrapUOHtmlCenter(), true, false); // 56 x 40 } if (++subIndex % xMax == 0) { xx = x; yy += 110; } else { xx += 65; } } }
protected override void OnSelected(TreeGumpNode oldNode, TreeGumpNode newNode) { var path = GetPath(newNode); if (Directory.Exists(path)) { SelectedDirectory = new DirectoryInfo(path); } SelectedFile = null; base.OnSelected(oldNode, newNode); }
private string GetPath(TreeGumpNode node) { if (RootDirectory.Parent != null) { return(Path.Combine( RootDirectory.Parent.FullName, node.FullName.Replace(TreeGumpNode.Separator, IOUtility.PathSeparator)) .Trim(IOUtility.PathSeparator)); } return(Path.Combine(RootDirectory.FullName, node.FullName.Replace(TreeGumpNode.Separator, IOUtility.PathSeparator)) .Trim(IOUtility.PathSeparator)); }
protected override void OnSelected(int index, TreeGumpNode node) { var path = GetPath(node); if (Directory.Exists(path)) { SelectedDirectory = new DirectoryInfo(path); } SelectedFile = null; base.OnSelected(index, node); }
private void MapTree(Dictionary <TreeGumpNode, Action <Rectangle, int, TreeGumpNode> > list, DirectoryInfo dir) { TreeGumpNode node = GetPath(dir); list[node] = RenderPanel; var dirs = dir.EnumerateDirectories(); foreach (var d in dirs.OrderByNatural(d => d.Name)) { node = GetPath(dir); if (node >= SelectedNode) { MapTree(list, d); } else { list[node] = RenderPanel; } } }
// 310 x 350 protected virtual void RenderFilePanel(Rectangle2D panel, int index, TreeGumpNode node) { }