⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 classbrowser.cs

📁 c#精彩编程百例(源代码)
💻 CS
字号:
//  ClassBrowser.cs
//  Copyright (C) 2000 Mike Krueger
//
//  This program is free software; you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation; either version 2 of the License, or
//  (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program; if not, write to the Free Software
//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

using System;
using System.IO;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing;
using System.Collections;
using System.Resources;
using System.Xml;

namespace SharpDevelop.Gui.Navigation {
	
	/*
	/// <summary>
	/// This class is a TreeNode, which is used in the Project Scout tree view of the project
	/// </summary>
	public class ClassBrowserNode : TreeNode 
	{	
		ProjectNodeType type;
		ContentWindow      window;
		long line ;
		string file;
		
		public ClassBrowserNode(ProjectNodeType type, string text, string file, long line) : base(text) 
		{
			this.file = file;
			this.line = line;
			this.type = type;
			initMe();
		}
		
		void initMe()
		{
			switch (type) {
				case ProjectNodeType.Project:
					ForeColor  = Color.Black;
					ImageIndex  = SelectedImageIndex = 0;
				break;
				case ProjectNodeType.Folder:
					ForeColor  = Color.Black;
					ImageIndex = SelectedImageIndex = 1;
				break;
				case ProjectNodeType.TextFile:
					ForeColor     = Color.Black;
					ImageIndex    = SelectedImageIndex = 2;
				break;
			}
		}
		
		public long Line {
			get {
				return line;
			}
			set {
				line = value;
			}
		}
		
		public ContentWindow Window {
			get {
				return window;
			}
			set {
				window = value;
			}
		}
		
		public ProjectNodeType Type {
			get {
				return type;
			}
			set {
				type = value;
			}
		}
		
		public string FileName {
			get {
				return file;
			}
		}
	}
	
	/// <summary>
	/// This class is the project scout tree view
	/// </summary>
	public class ClassBrowser : TreeView
	{
		public CSParser parser = new CSParser();
		
		public void Parse(Buffer buffer)
		{
			parser.Parse(buffer);
			ClassBrowserNode node = new ClassBrowserNode(ProjectNodeType.Project, "PROJECT", "", 0);
			GenerateTree(node, parser.Global);
			Nodes.Clear();
			Nodes.Add(node);
		}
		public void Parse(Project p)
		{
			parser.Parse(p);
			ClassBrowserNode node = new ClassBrowserNode(ProjectNodeType.Project, "PROJECT", "", 0);
			GenerateTree(node, parser.Global);
			Nodes.Clear();
			Nodes.Add(node);
		}
		
		void GenerateTree(ClassBrowserNode curnode, Class c)
		{
			foreach (MemberInfo mi in c.Members) {
				curnode.Nodes.Add(new ClassBrowserNode(ProjectNodeType.TextFile, mi.Name, mi.FileName, mi.Line));
//				switch (mi.type) {
//					case Field:
//						curnode.Nodes.Add(new ClassBrowserNode(ProjectNodeType.TextFile, c.Name, c.FileName, c.Line));
//					break;
//					case Property:
//					break;
//					case Method:
//					break;
//				}
			}
		}
		
		void GenerateTree(ClassBrowserNode curnode, Namespace ns)
		{
			foreach (Class c in ns.Classes) {
				ClassBrowserNode newnode = new ClassBrowserNode(ProjectNodeType.TextFile, c.Name, c.FileName, c.Line);
				curnode.Nodes.Add(newnode);
				GenerateTree(newnode, c);
			}
			
			foreach (Namespace n in ns.Namespaces) {
				ClassBrowserNode newnode = new ClassBrowserNode(ProjectNodeType.Folder, n.Name, "", n.Line);
				curnode.Nodes.Add(newnode);
				GenerateTree(newnode, n);
			}
		}
		ResourceManager resources  = null;
		
		
		public ClassBrowser()
		{
			resources = new ResourceManager("ClassBrowserResources", this.GetType().Module.Assembly);
			ImageList imglist = new ImageList();
			
			imglist.Images.Add((Bitmap)resources.GetObject("C#Icon"));
			imglist.Images.Add((Bitmap)resources.GetObject("NameSpace"));
			imglist.Images.Add((Bitmap)resources.GetObject("Class"));
			imglist.Images.Add((Bitmap)resources.GetObject("InternalClass"));
			imglist.Images.Add((Bitmap)resources.GetObject("ProtectedClass"));
			imglist.Images.Add((Bitmap)resources.GetObject("PrivateClass"));
			imglist.Images.Add((Bitmap)resources.GetObject("Method"));
			imglist.Images.Add((Bitmap)resources.GetObject("InternalMethod"));
			imglist.Images.Add((Bitmap)resources.GetObject("ProtectedMethod"));
			imglist.Images.Add((Bitmap)resources.GetObject("PrivateMethod"));
			imglist.Images.Add((Bitmap)resources.GetObject("Property"));
			imglist.Images.Add((Bitmap)resources.GetObject("InternalProperty"));
			imglist.Images.Add((Bitmap)resources.GetObject("ProtectedProperty"));
			imglist.Images.Add((Bitmap)resources.GetObject("PrivateProperty"));
			imglist.Images.Add((Bitmap)resources.GetObject("Field"));
			imglist.Images.Add((Bitmap)resources.GetObject("InternalField"));
			imglist.Images.Add((Bitmap)resources.GetObject("ProtectedField"));
			imglist.Images.Add((Bitmap)resources.GetObject("PrivateField"));
			
			this.ImageList = imglist;
			
			LabelEdit     = false;
			HotTracking   = false;
			AllowDrop     = true;
			HideSelection = false;
		}
		
	}*/
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -