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

menu "Input device settings"

config LVGL_POINTER_KSCAN
	bool "Keyboard scan pointer input"
	depends on KSCAN
	help
	  Enable keyboard scan pointer input

if LVGL_POINTER_KSCAN

config LVGL_POINTER_KSCAN_DEV_NAME
	string "Keyboard scan device name for pointer input"
	default "KSCAN"
	help
	  Name of the keyboard scan device to use for pointer input.

config LVGL_POINTER_KSCAN_MSGQ_COUNT
	int "Keyboard scan message queue count maximum"
	default 10
	help
	  Maximum number of items in the keyboard scan message queue.

endif # LVGL_POINTER_KSCAN

config LVGL_INDEV_DEF_READ_PERIOD
	int "Input device refresh period"
	default 30
	help
	  Refresh period for input devices in milliseconds

config LVGL_INDEV_DEF_DRAG_LIMIT
	int "Drag Threshold"
	default 10
	help
	  Threshold in pixels before entering drag mode

config LVGL_INDEV_DEF_DRAG_THROW
	int "Drag throw slow-down"
	default 10
	range 0 100
	help
	  Percentage of slow down of a throw following a drag.
	  Greater percentage means faster slow-down.

config LVGL_INDEV_DEF_LONG_PRESS_TIME
	int "Long press time"
	default 400
	help
	  Period in milliseconds before a press is seen as a long press

config LVGL_INDEV_DEF_LONG_PRESS_REP_TIME
	int "Long press repeat time"
	default 100
	help
	  Period in milliseconds after which a new trigger is generated
	  for a long press

config LVGL_INDEV_DEF_GESTURE_LIMIT
	int "Gesture threshold"
	default 50
	help
	  Gesture threshold in pixels

config LVGL_INDEV_DEF_GESTURE_MIN_VELOCITY
	int "Gesture minimum velocity"
	default 3
	help
	  Gesture min velocity at release before swipe (pixels)

endmenu
