#region --- License ---
/* Copyright (c) 2006, 2007 Stefanos Apostolopoulos
* See license.txt for license info
*/
#endregion
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using OpenTK.Graphics.Text;
namespace OpenTK.Graphics
{
///
/// Defines the interface for a TextPrinter.
///
public interface ITextPrinter : IDisposable
{
#region Print
///
/// Prints text using the specified color and layout options.
///
/// The System.String to print.
/// The System.Drawing.Font that will be used to print text.
/// The System.Drawing.Color that will be used to print text.
void Print(string text, Font font, Color color);
///
/// Prints text using the specified color and layout options.
///
/// The System.String to print.
/// The System.Drawing.Font that will be used to print text.
/// The System.Drawing.Color that will be used to print text.
/// The System.Drawing.Rectangle that defines the bounds for text layout.
void Print(string text, Font font, Color color, RectangleF rect);
///
/// Prints text using the specified color and layout options.
///
/// The System.String to print.
/// The System.Drawing.Font that will be used to print text.
/// The System.Drawing.Color that will be used to print text.
/// The System.Drawing.Rectangle that defines the bounds for text layout.
/// The OpenTK.Graphics.TextPrinterOptions that will be used to print text.
void Print(string text, Font font, Color color, RectangleF rect, TextPrinterOptions options);
///
/// Prints text using the specified color and layout options.
///
/// The System.String to print.
/// The System.Drawing.Font that will be used to print text.
/// The System.Drawing.Color that will be used to print text.
/// The System.Drawing.Rectangle that defines the bounds for text layout.
/// The OpenTK.Graphics.TextPrinterOptions that will be used to print text.
/// The OpenTK.Graphics.TextAlignment that will be used to print text.
void Print(string text, Font font, Color color, RectangleF rect, TextPrinterOptions options, TextAlignment alignment);
///
/// Prints text using the specified color and layout options.
///
/// The System.String to print.
/// The System.Drawing.Font that will be used to print text.
/// The System.Drawing.Color that will be used to print text.
/// The System.Drawing.Rectangle that defines the bounds for text layout.
/// The OpenTK.Graphics.TextPrinterOptions that will be used to print text.
/// The OpenTK.Graphics.TextAlignment that will be used to print text.
/// The OpenTK.Graphics.TextDirection that will be used to print text.
void Print(string text, Font font, Color color, RectangleF rect, TextPrinterOptions options, TextAlignment alignment, TextDirection direction);
#endregion
#region Measure
///
/// Measures text using the specified layout options.
///
/// The System.String to measure.
/// The System.Drawing.Font that will be used to measure text.
/// The System.Drawing.Rectangle that defines the bounds for text layout.
/// An OpenTK.Graphics.TextExtents instance that contains the results of the measurement.
TextExtents Measure(string text, Font font);
///
/// Measures text using the specified layout options.
///
/// The System.String to measure.
/// The System.Drawing.Font that will be used to measure text.
/// The System.Drawing.Rectangle that defines the bounds for text layout.
/// The OpenTK.Graphics.TextPrinterOptions that will be used to measure text.
/// An OpenTK.Graphics.TextExtents instance that contains the results of the measurement.
TextExtents Measure(string text, Font font, RectangleF rect);
///
/// Measures text using the specified layout options.
///
/// The System.String to measure.
/// The System.Drawing.Font that will be used to measure text.
/// The System.Drawing.Rectangle that defines the bounds for text layout.
/// The OpenTK.Graphics.TextPrinterOptions that will be used to measure text.
/// The OpenTK.Graphics.TextAlignment that will be used to measure text.
/// An OpenTK.Graphics.TextExtents instance that contains the results of the measurement.
TextExtents Measure(string text, Font font, RectangleF rect, TextPrinterOptions options);
///
/// Measures text using the specified layout options.
///
/// The System.String to measure.
/// The System.Drawing.Font that will be used to measure text.
/// The System.Drawing.Rectangle that defines the bounds for text layout.
/// The OpenTK.Graphics.TextPrinterOptions that will be used to measure text.
/// The OpenTK.Graphics.TextAlignment that will be used to measure text.
/// An OpenTK.Graphics.TextExtents instance that contains the results of the measurement.
TextExtents Measure(string text, Font font, RectangleF rect, TextPrinterOptions options, TextAlignment alignment);
///
/// Measures text using the specified layout options.
///
/// The System.String to measure.
/// The System.Drawing.Font that will be used to measure text.
/// The System.Drawing.Rectangle that defines the bounds for text layout.
/// The OpenTK.Graphics.TextPrinterOptions that will be used to measure text.
/// The OpenTK.Graphics.TextAlignment that will be used to measure text.
/// The OpenTK.Graphics.TextDirection that will be used to measure text.
/// An OpenTK.Graphics.TextExtents instance that contains the results of the measurement.
TextExtents Measure(string text, Font font, RectangleF rect, TextPrinterOptions options, TextAlignment alignment, TextDirection direction);
#endregion
#region Begin
///
/// Sets up a resolution-dependent orthographic projection.
///
void Begin();
#endregion
///
/// Restores the projection and modelview matrices to their previous state.
///
#region End
void End();
#endregion
#region Obsolete
[Obsolete("Use TextPrinter.Print instead")]
void Draw(TextHandle handle);
[Obsolete("Use TextPrinter.Print instead")]
void Draw(string text, TextureFont font);
[Obsolete("Use TextPrinter.Print instead")]
void Prepare(string text, TextureFont font, out TextHandle handle);
#endregion
}
}