// *
// * 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();
}
}