📄 classbrowser.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 + -