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