#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#

menuconfig GRAPHICS_LVGL
	bool "Light and Versatile Graphic Library (LVGL)"
	default n
	---help---
		Enable support for the LVGL GUI library.

if GRAPHICS_LVGL

config LVGL_VERSION
	string "LVGL Version"
	default "8.3.3"

source "$APPSDIR/graphics/lvgl/lv_conf/Kconfig"

config LV_PORT_USE_LCDDEV
	bool "Enable LCD device port"
	default n

if LV_PORT_USE_LCDDEV

config LV_PORT_LCDDEV_DEFAULT_DEVICEPATH
	string "LCD default device path"
	default "/dev/lcd0"

config LV_PORT_LCDDEV_FULL_SCREEN_BUFFER
	bool "Use full screen buffer"
	default n

if !LV_PORT_LCDDEV_FULL_SCREEN_BUFFER

config LV_PORT_LCDDEV_LINE_BUFFER_DEFAULT
	int "Default buffer size (in line)"
	default 10

endif # LV_PORT_LCDDEV_FULL_SCREEN_BUFFER

config LV_PORT_LCDDEV_DOUBLE_BUFFER
	bool "Use double buffer"
	default n

endif # LV_PORT_USE_LCDDEV

config LV_PORT_USE_FBDEV
	bool "Enable framebuffer port"
	default n

config LV_PORT_FBDEV_DEFAULT_DEVICEPATH
	string "Framebuffer default device path"
	default "/dev/fb0"
	depends on LV_PORT_USE_FBDEV

config LV_PORT_UV_POLL_DEVICEPATH
	string "Display poll device path"
	depends on LIBUV
	default "/dev/fb0"

config LV_PORT_USE_TOUCHPAD
	bool "Enable touchpad port"
	default n

config LV_PORT_TOUCHPAD_DEFAULT_DEVICEPATH
	depends on LV_PORT_USE_TOUCHPAD
	string "Touchpad default device path"
	default "/dev/input0"

config LV_PORT_TOUCHPAD_CURSOR_SIZE
	depends on LV_PORT_USE_TOUCHPAD
	int "Touchpad cursor size"
	default 0

config LV_USE_ENCODER
	depends on INPUT_MOUSE_WHEEL
	bool "Encoder interface"
	default n

menuconfig LV_PORT_USE_BUTTON
	bool "Enable button port"
	default n

if LV_PORT_USE_BUTTON

config LV_PORT_BUTTON_DEFAULT_DEVICEPATH
	string "Button default device path"
	default "/dev/buttons"

config LV_PORT_BUTTON_BUTTON_0_MAP_X
	int "Button 0 mapping coordinate x"
	default 0

config LV_PORT_BUTTON_BUTTON_0_MAP_Y
	int "Button 0 mapping coordinate y"
	default 0

config LV_PORT_BUTTON_BUTTON_1_MAP_X
	int "Button 1 mapping coordinate x"
	default 0

config LV_PORT_BUTTON_BUTTON_1_MAP_Y
	int "Button 1 mapping coordinate y"
	default 0

config LV_PORT_BUTTON_BUTTON_2_MAP_X
	int "Button 2 mapping coordinate x"
	default 0

config LV_PORT_BUTTON_BUTTON_2_MAP_Y
	int "Button 2 mapping coordinate y"
	default 0

config LV_PORT_BUTTON_BUTTON_3_MAP_X
	int "Button 3 mapping coordinate x"
	default 0

config LV_PORT_BUTTON_BUTTON_3_MAP_Y
	int "Button 3 mapping coordinate y"
	default 0

config LV_PORT_BUTTON_BUTTON_4_MAP_X
	int "Button 4 mapping coordinate x"
	default 0

config LV_PORT_BUTTON_BUTTON_4_MAP_Y
	int "Button 4 mapping coordinate y"
	default 0

config LV_PORT_BUTTON_BUTTON_5_MAP_X
	int "Button 5 mapping coordinate x"
	default 0

config LV_PORT_BUTTON_BUTTON_5_MAP_Y
	int "Button 5 mapping coordinate y"
	default 0

endif # LV_PORT_USE_BUTTON

menuconfig LV_PORT_USE_KEYPAD
	bool "Enable keypad port"
	default n
	---help---
	button bit map < 0 is no binding, must >= 0 and < 31 to binding button device.

if LV_PORT_USE_KEYPAD

config LV_PORT_KEYPAD_DEFAULT_DEVICEPATH
	string "Button default device path"
	default "/dev/buttons"

config LV_PORT_KEYPAD_KEY_UP_MAP_BIT
	int "LV_KEY_UP button bit map"
	default -1

config LV_PORT_KEYPAD_KEY_DOWN_MAP_BIT
	int "LV_KEY_DOWN button bit map"
	default -1

config LV_PORT_KEYPAD_KEY_RIGHT_MAP_BIT
	int "LV_KEY_RIGHT button bit map"
	default -1

config LV_PORT_KEYPAD_KEY_LEFT_MAP_BIT
	int "LV_KEY_LEFT button bit map"
	default -1

config LV_PORT_KEYPAD_KEY_ESC_MAP_BIT
	int "LV_KEY_ESC button bit map"
	default -1

config LV_PORT_KEYPAD_KEY_DEL_MAP_BIT
	int "LV_KEY_DEL button bit map"
	default -1

config LV_PORT_KEYPAD_KEY_BACKSPACE_MAP_BIT
	int "LV_KEY_BACKSPACE button bit map"
	default -1

config LV_PORT_KEYPAD_KEY_ENTER_MAP_BIT
	int "LV_KEY_ENTER button bit map"
	default -1

config LV_PORT_KEYPAD_KEY_NEXT_MAP_BIT
	int "LV_KEY_NEXT button bit map"
	default -1

config LV_PORT_KEYPAD_KEY_PREV_MAP_BIT
	int "LV_KEY_PREV button bit map"
	default -1

config LV_PORT_KEYPAD_KEY_HOME_MAP_BIT
	int "LV_KEY_HOME button bit map"
	default -1

config LV_PORT_KEYPAD_KEY_END_MAP_BIT
	int "LV_KEY_END button bit map"
	default -1

endif # LV_PORT_USE_KEYPAD

config LV_USE_TOUCHPAD_INTERFACE
	depends on INPUT_TOUCHSCREEN
	bool "Touchpad input interface"
	default n

config LV_TOUCHPAD_INTERFACE_DEFAULT_DEVICEPATH
	depends on LV_USE_TOUCHPAD_INTERFACE
	string "Touchpad default device path"
	default "/dev/input0"

if LV_PORT_USE_ENCODER

config LV_PORT_ENCODER_DEFAULT_DEVICEPATH
	string "Encoder default device path"
	default "/dev/input0"

endif # LV_USE_ENCODER

menu "Memory configuration"

config LV_PORT_MEM_ATTRIBUTE_FAST_MEM_SECTION_NAME
	string "LV_ATTRIBUTE_FAST_MEM Section Name"
	default ""
	---help---
		Set this option to configure custom memory as LV_ATTRIBUTE_FAST_MEM

if LV_MEM_CUSTOM

config LV_PORT_MEM_CUSTOM_SIZE
	int "Size of the custom memory used by `lv_mem_alloc` in kilobytes (>= 2kB)"
	default 0

if LV_PORT_MEM_CUSTOM_SIZE != 0

config LV_PORT_MEM_CUSTOM_NAME
	string "Name of the custom HEAP memory"
	default "lvgl"

endif # LV_PORT_MEM_CUSTOM_SIZE

endif # LV_MEM_CUSTOM

endmenu # "Memory configuration"

endif # GRAPHICS_LVGL
