// // // // // $Revision: 1965 $ // using System; namespace ICSharpCode.TextEditor.Gui.CompletionWindow { public interface ICompletionData : IComparable { int ImageIndex { get; } string Text { get; set; } string Description { get; set; } /// /// Gets a priority value for the completion data item. /// When selecting items by their start characters, the item with the highest /// priority is selected first. /// double Priority { get; } /// /// Insert the element represented by the completion data into the text /// editor. /// /// TextArea to insert the completion data in. /// Character that should be inserted after the completion data. /// \0 when no character should be inserted. /// Returns true when the insert action has processed the character /// ; false when the character was not processed. bool InsertAction(TextArea textArea, char ch); } public class DefaultCompletionData : ICompletionData { string text; string description; int imageIndex; public int ImageIndex { get { return imageIndex; } } public string Text { get { return text; } set { text = value; } } public string Description { get { return description; } set { description = value; } } double priority; public double Priority { get { return priority; } set { priority = value; } } public virtual bool InsertAction(TextArea textArea, char ch) { textArea.InsertString(text); return false; } public DefaultCompletionData(string text, string description, int imageIndex) { this.text = text; this.description = description; this.imageIndex = imageIndex; } public int CompareTo(object obj) { if (obj == null || !(obj is DefaultCompletionData)) { return -1; } return text.CompareTo(((DefaultCompletionData)obj).Text); } } }