using Dalamud.Bindings.ImGui;
using Dalamud.Interface.ManagedFontAtlas;
namespace Dalamud.Interface.FontIdentifier;
///
/// Represents a user's choice of font(s).
/// Not intended for plugins to implement.
///
public interface IFontSpec
{
///
/// Gets the font size in pixels.
///
float SizePx { get; }
///
/// Gets the font size in points.
///
float SizePt { get; }
///
/// Gets the line height in pixels.
///
float LineHeightPx { get; }
///
/// Creates a font handle corresponding to this font specification.
///
/// The atlas to bind this font handle to.
/// Optional callback to be called after creating the font handle.
/// The new font handle.
/// will be set when is invoked.
///
IFontHandle CreateFontHandle(IFontAtlas atlas, FontAtlasBuildStepDelegate? callback = null);
///
/// Adds this font to the given font build toolkit.
///
/// The font build toolkit.
/// The font to merge to.
/// The added font.
ImFontPtr AddToBuildToolkit(IFontAtlasBuildToolkitPreBuild tk, ImFontPtr mergeFont = default);
///
/// Represents this font specification, preferrably in the requested locale.
///
/// The locale code. Must be in lowercase(invariant).
/// The value.
string ToLocalizedString(string localeCode);
}