// // // // // // using System; using System.Collections; using System.Collections.Generic; using System.Drawing; using System.Text; using System.Windows.Forms; using ICSharpCode.Core; using ICSharpCode.TextEditor; using ICSharpCode.TextEditor.Document; using ICSharpCode.SharpDevelop.Dom; namespace ICSharpCode.SharpDevelop.Bookmarks { /// /// Bookmark used to give additional operations for class members. /// Does not derive from SDBookmark because it is not stored in the central BookmarkManager, /// but only in the document's BookmarkManager. /// public class ClassMemberBookmark : Bookmark { IMember member; public IMember Member { get { return member; } } public ClassMemberBookmark(IDocument document, IMember member) : base(document, member.Region.BeginLine - 1) { this.member = member; } public override void Click(Control parent, MouseEventArgs e) { MenuService.ShowContextMenu(this, "/SharpDevelop/ViewContent/DefaultTextEditor/ClassMemberContextMenu", parent, e.X, e.Y); } protected void DrawIcon(int iconIndex, Graphics g, Point p) { g.DrawImageUnscaled(ClassBrowserIconService.ImageList.Images[iconIndex], p); } } public class PropertyBookmark : ClassMemberBookmark { IProperty property; public PropertyBookmark(IDocument document, IProperty property) : base(document, property) { this.property = property; } public override void Draw(IconBarMargin margin, Graphics g, Point p) { DrawIcon(ClassBrowserIconService.GetIcon(property), g, p); } } public class MethodBookmark : ClassMemberBookmark { IMethod method; public MethodBookmark(IDocument document, IMethod method) : base(document, method) { this.method = method; } public override void Draw(IconBarMargin margin, Graphics g, Point p) { DrawIcon(ClassBrowserIconService.GetIcon(method), g, p); } } }