mirror of
https://github.com/goatcorp/Dalamud.git
synced 2026-02-16 04:47:45 +01:00
* Implement FontChooserDialog * Minor fixes * Fixes 2 * Add Reset default font button * Add failsafe * reduce uninteresting exception message * Add remarks to use AttachExtraGlyphsForDalamudLanguage * Support advanced font configuration options * fixes * Shift ui elements * more fixes * Add To(Localized)String for IFontSpec * Untie GlobalFontScale from default font size * Layout fixes * Make UiBuilder.DefaultFontSize point to user configured value * Update example for NewDelegateFontHandle * Font interfaces: write notes on not intended for plugins to implement * Update default gamma to 1.7 to match closer to prev behavior (1.4**2) * Fix console window layout
77 lines
2.2 KiB
C#
77 lines
2.2 KiB
C#
using System.Collections.Generic;
|
|
|
|
using Dalamud.Interface.ManagedFontAtlas;
|
|
|
|
using ImGuiNET;
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
using TerraFX.Interop.DirectX;
|
|
|
|
namespace Dalamud.Interface.FontIdentifier;
|
|
|
|
/// <summary>
|
|
/// Represents the default Dalamud font.
|
|
/// </summary>
|
|
public sealed class DalamudDefaultFontAndFamilyId : IFontId, IFontFamilyId
|
|
{
|
|
/// <summary>
|
|
/// The shared instance of <see cref="DalamudDefaultFontAndFamilyId"/>.
|
|
/// </summary>
|
|
public static readonly DalamudDefaultFontAndFamilyId Instance = new();
|
|
|
|
private DalamudDefaultFontAndFamilyId()
|
|
{
|
|
}
|
|
|
|
/// <inheritdoc/>
|
|
[JsonIgnore]
|
|
public string EnglishName => "(Default)";
|
|
|
|
/// <inheritdoc/>
|
|
[JsonIgnore]
|
|
public IReadOnlyDictionary<string, string>? LocaleNames => null;
|
|
|
|
/// <inheritdoc/>
|
|
[JsonIgnore]
|
|
public IFontFamilyId Family => this;
|
|
|
|
/// <inheritdoc/>
|
|
[JsonIgnore]
|
|
public int Weight => (int)DWRITE_FONT_WEIGHT.DWRITE_FONT_WEIGHT_NORMAL;
|
|
|
|
/// <inheritdoc/>
|
|
[JsonIgnore]
|
|
public int Stretch => (int)DWRITE_FONT_STRETCH.DWRITE_FONT_STRETCH_NORMAL;
|
|
|
|
/// <inheritdoc/>
|
|
[JsonIgnore]
|
|
public int Style => (int)DWRITE_FONT_STYLE.DWRITE_FONT_STYLE_NORMAL;
|
|
|
|
/// <inheritdoc/>
|
|
[JsonIgnore]
|
|
public IReadOnlyList<IFontId> Fonts => new List<IFontId> { this }.AsReadOnly();
|
|
|
|
public static bool operator ==(DalamudDefaultFontAndFamilyId? left, DalamudDefaultFontAndFamilyId? right) =>
|
|
left is null == right is null;
|
|
|
|
public static bool operator !=(DalamudDefaultFontAndFamilyId? left, DalamudDefaultFontAndFamilyId? right) =>
|
|
left is null != right is null;
|
|
|
|
/// <inheritdoc/>
|
|
public override bool Equals(object? obj) => obj is DalamudDefaultFontAndFamilyId;
|
|
|
|
/// <inheritdoc/>
|
|
public override int GetHashCode() => 12345678;
|
|
|
|
/// <inheritdoc/>
|
|
public override string ToString() => nameof(DalamudDefaultFontAndFamilyId);
|
|
|
|
/// <inheritdoc/>
|
|
public ImFontPtr AddToBuildToolkit(IFontAtlasBuildToolkitPreBuild tk, in SafeFontConfig config)
|
|
=> tk.AddDalamudDefaultFont(config.SizePx, config.GlyphRanges);
|
|
// TODO: mergeFont
|
|
|
|
/// <inheritdoc/>
|
|
public int FindBestMatch(int weight, int stretch, int style) => 0;
|
|
}
|