# Copyright (c) 2019 Jan Van Winkel <jan.van_winkel@dxplore.eu>
# SPDX-License-Identifier: Apache-2.0

menu "Fonts"

config LVGL_BUILD_IN_FONT_ROBOTO_12
	bool "Enable build-in 12px fonts"
	help
	  Enable build-in font support, size 12 pixels

config LVGL_BUILD_IN_FONT_ROBOTO_16
	bool "Enable build-in 16px fonts"
	help
	  Enable build-in font support, size 16 pixels

config LVGL_BUILD_IN_FONT_ROBOTO_22
	bool "Enable build-in 22px fonts"
	help
	  Enable build-in font support, size 22 pixels

config LVGL_BUILD_IN_FONT_ROBOTO_28
	bool "Enable build-in 28px fonts"
	help
	  Enable build-in font support, size 28 pixels

config LVGL_BUILD_IN_FONT_UNSCII_8
	bool "Enable build-in 8px monospace fonts"
	default y
	help
	  Enable build-in monospace font support, size 8 pixels

choice
	prompt "Default LVGL font"
	default LVGL_DEFAULT_FONT_BUILD_IN_UNSCII_8

	config LVGL_DEFAULT_FONT_BUILD_IN_ROBOTO_12
		bool "Build-in font size 12"
		depends on LVGL_BUILD_IN_FONT_ROBOTO_12

	config LVGL_DEFAULT_FONT_BUILD_IN_ROBOTO_16
		bool "Build-in font size 16"
		depends on LVGL_BUILD_IN_FONT_ROBOTO_16

	config LVGL_DEFAULT_FONT_BUILD_IN_ROBOTO_22
		bool "Build-in font size 22"
		depends on LVGL_BUILD_IN_FONT_ROBOTO_22

	config LVGL_DEFAULT_FONT_BUILD_IN_ROBOTO_28
		bool "Build-in font size 28"
		depends on LVGL_BUILD_IN_FONT_ROBOTO_28

	config LVGL_DEFAULT_FONT_BUILD_IN_UNSCII_8
		bool "Build-in monospace font"
		depends on LVGL_BUILD_IN_FONT_UNSCII_8

	config LVGL_DEFAULT_FONT_CUSTOM
		bool "Custom font"
		help
		  Use a none build-in font as default font. A pointer named lv_default_font_custom_ptr
		  should exists as a global variable and point to a valid font structure

endchoice

endmenu
