using System;
using System.Collections.Generic;
using System.IO;
using Quik.Media.Font;
namespace Quik.PAL
{
///
/// Flags that effect font search criterea.
///
[Flags]
public enum FontMatchCriteria
{
None = 0,
Family = 1 << 0,
Slant = 1 << 1,
Weight = 1 << 2,
Stretch = 1 << 3,
All = Family | Slant | Weight | Stretch,
}
///
/// An abstraction over the system font database.
///
public interface IFontDataBase
{
///
/// All the fonts installed in the system.
///
IEnumerable All { get; }
///
/// Search for the given font face.
///
/// The font face prototype.
/// The match criteria
/// A list of fonts sorted by the closest match first.
IEnumerable Search(FontFace prototype, FontMatchCriteria criteria = FontMatchCriteria.All);
///
/// Get the font face file info if it exists.
///
/// The face to look for.
/// The file info if it exists.
FileInfo FontFileInfo(FontFace face);
///
/// Open a font face.
///
/// The font face to open.
/// The stream to the font face.
Stream Open(FontFace face);
}
}