#include "FontRegistry.h"
#include "FontList.h"

namespace kte::Fonts {
void
InstallDefaultFonts()
{
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"default",
		BerkeleyMono::DefaultFontBoldCompressedData,
		BerkeleyMono::DefaultFontBoldCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"b612",
		B612Mono::DefaultFontRegularCompressedData,
		B612Mono::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"berkeley",
		BerkeleyMono::DefaultFontRegularCompressedData,
		BerkeleyMono::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"berkeley-bold",
		BerkeleyMono::DefaultFontBoldCompressedData,
		BerkeleyMono::DefaultFontBoldCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"brassmono",
		BrassMono::DefaultFontRegularCompressedData,
		BrassMono::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"brassmono-bold",
		BrassMono::DefaultFontBoldCompressedData,
		BrassMono::DefaultFontBoldCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"brassmonocode",
		BrassMonoCode::DefaultFontRegularCompressedData,
		BrassMonoCode::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"brassmonocode-bold",
		BrassMonoCode::DefaultFontBoldCompressedData,
		BrassMonoCode::DefaultFontBoldCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"crimsonpro",
		CrimsonPro::DefaultFontRegularCompressedData,
		CrimsonPro::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"etbook",
		ETBook::DefaultFontRegularCompressedData,
		ETBook::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"fira",
		FiraCode::DefaultFontRegularCompressedData,
		FiraCode::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"go",
		Go::DefaultFontRegularCompressedData,
		Go::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"ibm",
		IBMPlexMono::DefaultFontRegularCompressedData,
		IBMPlexMono::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"idealist",
		Idealist::DefaultFontRegularCompressedData,
		Idealist::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"inconsolata",
		Inconsolata::DefaultFontRegularCompressedData,
		Inconsolata::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"inconsolataex",
		InconsolataExpanded::DefaultFontRegularCompressedData,
		InconsolataExpanded::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"iosevka",
		Iosoveka::DefaultFontRegularCompressedData,
		Iosoveka::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"iosevkaex",
		IosevkaExtended::DefaultFontRegularCompressedData,
		IosevkaExtended::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"sharetech",
		ShareTech::DefaultFontRegularCompressedData,
		ShareTech::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"space",
		SpaceMono::DefaultFontRegularCompressedData,
		SpaceMono::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"spectral",
		Spectral::DefaultFontRegularCompressedData,
		Spectral::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"syne",
		Syne::DefaultFontRegularCompressedData,
		Syne::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"triplicate",
		Triplicate::DefaultFontRegularCompressedData,
		Triplicate::DefaultFontRegularCompressedSize
	));
	FontRegistry::Instance().Register(std::make_unique<Font>(
		"unispace",
		Unispace::DefaultFontRegularCompressedData,
		Unispace::DefaultFontRegularCompressedSize
	));
}
}
