// Copyright (C) 2018 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
\page qtquick-input-topic.html
\title Important Concepts In Qt Quick - User Input
\brief Overview of user input concepts

Being able to respond to user-input is a fundamental part of user-interface
design.  Depending on the use-case that an application solves, and the
form-factor of the device that the application runs on, the best way
to receive user-input may be different.

\section1 Input from Pointing Devices

Allowing users to physically touch a screen to interact with an application is
a popular user-interface paradigm on portable devices like smartphones and
tablets. In desktop applications, detecting and reacting to clicks and presses
according to the mouse cursor position is a fundamental concept in
user-interface design.

Touch-driven and mouse-driven user interfaces are supported by various
\l{Qt Quick Input Handlers}{input handler} types, and visual object types
such as \l{Flickable} and \l{MouseArea}.

See also the documentation about
\l{qtquick-input-mouseevents.html} {mouse events in Qt Quick}.


\section1 Keyboard Input and Keyboard Focus

Supporting input from a keyboard is a vital component of the user interface of
many applications.

Any visual item can receive keyboard input through the \l Keys attached type.
Additionally, the issue of \e {keyboard focus} arises when multiple items
are required to receive key events, as these events must be passed to the
correct item. See the documentation about \l{Keyboard focus in Qt Quick} for more
information on this topic.

Qt Quick also provides visual text items which automatically receive keyboard
events and key-presses, and displays the appropriate text.  See the
documentation about \l{qtquick-input-textinput.html}{text input} for
in-depth information on the topic.

\omit //! QtSensors
\section1 Device Motion Gestures

Detecting device gestures with an accelerometer, or through camera-based gesture
recognition, can allow users to interact with an application without requiring
their full and undevided attention.  It can also provide a more interactive
and engaging experience.

Qt Quick itself does not offer first-class support for physical device motion gestures;
however, the \l{Qt Sensors} module provides QML types with support for such gestures.
See the \l{Qt Sensors} module documentation for more information on the topic.
\endomit //! QtSensors

*/

