// * // * Copyright (C) 2008 Roger Alsing : http://www.RogerAlsing.com // * // * This library is free software; you can redistribute it and/or modify it // * under the terms of the GNU Lesser General Public License 2.1 or later, as // * published by the Free Software Foundation. See the included license.txt // * or http://www.gnu.org/copyleft/lesser.html for details. // * // * using System; using System.Drawing; using Alsing.SourceCode; namespace Alsing.Windows.Forms.SyntaxBox.Painter { /// /// /// public interface IPainter : IDisposable { /// /// Measures the length of a specific row in pixels /// Size MeasureRow(Row xtr, int Count); /// /// Renders the entire screen /// void RenderAll(); /// /// Renders the entire screen /// /// Target Graphics object void RenderAll(Graphics g); /// /// Renders the caret only /// /// void RenderCaret(Graphics g); /// /// /// /// void RenderRow(int RowIndex); /// /// Returns a Point (Column,Row in the active document) from the x and y screen pixel positions. /// TextPoint CharFromPixel(int X, int Y); /// /// Called by the control to notify the Painter object that the client area has resized. /// void Resize(); /// /// Called by the control to notify the Painter object that one or more Appearance properties has changed. /// void InitGraphics(); /// /// Measures the length of a string in pixels /// Size MeasureString(string str); int GetMaxCharWidth(); } }