using System; using System.Drawing; namespace BizHawk.Client.EmuHawk.CustomControls { public interface IControlRenderer : IDisposable { /// /// Required to use before calling drawing methods /// IDisposable LockGraphics(Graphics g); /// /// Measure the width and height of string when drawn /// using the given font /// SizeF MeasureString(string str, Font font); void SetBrush(Color color); void SetSolidPen(Color color); void PrepDrawString(Font font, Color color, bool rotate = false); /// /// Draw the given string using the given font and foreground color at the X/Y of the given rect. /// Text not fitting inside of the rect will be truncated /// void DrawString(string str, Rectangle rect); void DrawRectangle(Rectangle rect); void FillRectangle(Rectangle rect); /// /// Draw a bitmap object at the given position /// void DrawBitmap(Bitmap bitmap, Point point); void Line(int x1, int y1, int x2, int y2); } }