"
macro.clearfloat.HTML = " "
macro.emptyspan.HTML = ""
doc/qt-cpp-ignore.qdocconf 0000664 0000000 0000000 00000011030 12151427601 0016020 0 ustar 00root root 0000000 0000000 Cpp.ignoretokens = QAXFACTORY_EXPORT \
QDESIGNER_COMPONENTS_LIBRARY \
QDESIGNER_EXTENSION_LIBRARY \
QDESIGNER_SDK_LIBRARY \
QDESIGNER_SHARED_LIBRARY \
QDESIGNER_UILIB_LIBRARY \
QM_EXPORT_CANVAS \
QM_EXPORT_DNS \
QM_EXPORT_DOM \
QM_EXPORT_FTP \
QM_EXPORT_HTTP \
QM_EXPORT_ICONVIEW \
QM_EXPORT_NETWORK \
QM_EXPORT_OPENGL \
QM_EXPORT_OPENVG \
QM_EXPORT_SQL \
QM_EXPORT_TABLE \
QM_EXPORT_WORKSPACE \
QM_EXPORT_XML \
QT_ASCII_CAST_WARN \
QT_ASCII_CAST_WARN_CONSTRUCTOR \
QT_BEGIN_HEADER \
QT_DESIGNER_STATIC \
QT_END_HEADER \
QT_FASTCALL \
QT_WIDGET_PLUGIN_EXPORT \
Q_COMPAT_EXPORT \
Q_CORE_EXPORT \
Q_CORE_EXPORT_INLINE \
Q_EXPLICIT \
Q_EXPORT \
Q_EXPORT_CODECS_CN \
Q_EXPORT_CODECS_JP \
Q_EXPORT_CODECS_KR \
Q_EXPORT_PLUGIN \
Q_GFX_INLINE \
Q_AUTOTEST_EXPORT \
Q_GUI_EXPORT \
Q_GUI_EXPORT_INLINE \
Q_GUI_EXPORT_STYLE_CDE \
Q_GUI_EXPORT_STYLE_COMPACT \
Q_GUI_EXPORT_STYLE_MAC \
Q_GUI_EXPORT_STYLE_MOTIF \
Q_GUI_EXPORT_STYLE_MOTIFPLUS \
Q_GUI_EXPORT_STYLE_PLATINUM \
Q_GUI_EXPORT_STYLE_POCKETPC \
Q_GUI_EXPORT_STYLE_SGI \
Q_GUI_EXPORT_STYLE_WINDOWS \
Q_GUI_EXPORT_STYLE_WINDOWSXP \
QHELP_EXPORT \
Q_INLINE_TEMPLATE \
Q_INTERNAL_WIN_NO_THROW \
Q_LOCATION_EXPORT \
Q_NETWORK_EXPORT \
Q_OPENGL_EXPORT \
Q_OPENVG_EXPORT \
Q_OUTOFLINE_TEMPLATE \
Q_SQL_EXPORT \
Q_SVG_EXPORT \
Q_SCRIPT_EXPORT \
Q_SCRIPTTOOLS_EXPORT \
Q_TESTLIB_EXPORT \
Q_TYPENAME \
Q_XML_EXPORT \
Q_XMLSTREAM_EXPORT \
Q_XMLPATTERNS_EXPORT \
QDBUS_EXPORT \
Q_DBUS_EXPORT \
QT_BEGIN_NAMESPACE \
QT_BEGIN_INCLUDE_NAMESPACE \
QT_END_NAMESPACE \
QT_END_INCLUDE_NAMESPACE \
PHONON_EXPORT \
Q_DECLARATIVE_EXPORT \
Q_GADGET \
QWEBKIT_EXPORT \
Q_INVOKABLE \
Q_DECL_CONSTEXPR
Cpp.ignoredirectives = Q_DECLARE_HANDLE \
Q_DECLARE_INTERFACE \
Q_DECLARE_METATYPE \
Q_DECLARE_OPERATORS_FOR_FLAGS \
Q_DECLARE_PRIVATE \
Q_DECLARE_PUBLIC \
Q_DECLARE_SHARED \
Q_DECLARE_TR_FUNCTIONS \
Q_DECLARE_TYPEINFO \
Q_DISABLE_COPY \
QT_FORWARD_DECLARE_CLASS \
Q_DUMMY_COMPARISON_OPERATOR \
Q_ENUMS \
Q_FLAGS \
Q_INTERFACES \
__attribute__ \
K_DECLARE_PRIVATE \
PHONON_OBJECT \
PHONON_HEIR \
Q_PRIVATE_PROPERTY \
Q_DECLARE_PRIVATE_D \
Q_CLASSINFO
doc/qt-defines.qdocconf 0000664 0000000 0000000 00000001210 12151427601 0015371 0 ustar 00root root 0000000 0000000 defines = Q_QDOC \
QT_.*_SUPPORT \
QT_.*_LIB \
QT_COMPAT \
QT_KEYPAD_NAVIGATION \
QT_NO_EGL \
QT3_SUPPORT \
Q_WS_.* \
Q_OS_.* \
Q_BYTE_ORDER \
QT_DEPRECATED \
Q_NO_USING_KEYWORD \
__cplusplus \
Q_COMPILER_INITIALIZER_LISTS
versionsym = QT_VERSION_STR
codeindent = 1
doc/qt5-dita.qdocconf 0000664 0000000 0000000 00000001452 12151427601 0014772 0 ustar 00root root 0000000 0000000 # Name of the project.
project = projectname
include(macros.qdocconf)
include(compat.qdocconf)
include(qt-cpp-ignore.qdocconf)
include(qt-defines.qdocconf)
# Directories in which to search for files to document and images.
# By default set to the root directory of the project for sources
# and headers and qdoc will therefore generate output for each file.
# Images should be placed in /dic/images and examples in
# /examples.
# Paths are relative to the location of this file.
exampledirs += .
headerdirs += ..
sourcedirs += ..
imagedirs += images
#Do not change the variables after this line unless you know what you are doing.
outputdir = ditaxml
outputformats = DITAXML
sources.fileextensions = "*.cpp *.qdoc *.mm *.qml"
headers.fileextensions = "*.h *.ch *.h++ *.hh *.hpp *.hxx"
doc/qtfeedback.qdocconf 0000664 0000000 0000000 00000005512 12151427601 0015434 0 ustar 00root root 0000000 0000000 include($QT_INSTALL_DOCS/global/qt-html-templates-offline.qdocconf)
include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
# Name of the project.
project = qtfeedback
include(macros.qdocconf)
include(compat.qdocconf)
include(qt-cpp-ignore.qdocconf)
include(qt-defines.qdocconf)
# Directories in which to search for files to document and images.
# By default set to the root directory of the project for sources
# and headers and qdoc will therefore generate output for each file.
# Images should be placed in /dic/images and examples in
# /examples.
# Paths are relative to the location of this file.
exampledirs += src/snippets ..
headerdirs += ..
imagedirs += src/images
sourcedirs += ..
# The following parameters are for creating a qhp file, the qhelpgenerator
# program can convert the qhp file into a qch file which can be opened in
# Qt Assistant and/or Qt Creator.
# Defines the name of the project. You cannot use operators (+, =, -) in
# the name. Properties for this project are set using a qhp..property
# format.
qhp.projects = qtfeedback
# Sets the name of the output qhp file.
qhp.qtfeedback.file = qtfeedback.qhp
# Namespace for the output file. This namespace is used to distinguish between
# different documentation files in Creator/Assistant. Normal format for MP
# projects should be: com.nokia.mp..version with version being
# a number containing a major, minor and revision element. E.g. version 1.0
# becomes 100.
qhp.qtfeedback.namespace = com.nokia.mp.qtfeedback.100
# Title for the package, will be the main title for the package in
# Assistant/Creator.
qhp.qtfeedback.indexTitle = Qt Feedback Documentation
# Extra files to add to the output which are not linked to from anywhere
# using a qdoc \l command.
qhp.qtfeedback.extraFiles = style/style.css \
index.html
# Only updtae the name of the project for the next variables.
qhp.qtfeedback.virtualFolder = qdoc
qhp.qtfeedback.subprojects = classes
qhp.qtfeedback.subprojects.classes.title = Classes
qhp.qtfeedback.subprojects.classes.selectors = class fake:headerfile
qhp.qtfeedback.subprojects.classes.sortPages = true
# Do NOT change the variables after this line unless you know what you are doing.
outputformats = HTML
examples.fileextensions = "*.cpp *.h *.js *.svg *.xml *.ui *.qml"
examples.imageextensions = "*.png *.jpeg *.jpg *.gif *.mng"
headers.fileextensions = "*.h *.ch *.h++ *.hh *.hpp *.hxx"
sources.fileextensions = "*.cpp *.qdoc *.mm *.qml"
HTML.nobreadcrumbs = "true"
HTML.templatedir = .
HTML.stylesheets = style/style.css
HTML.headerstyles = " \n"
HTML.endheader = "\n\n"
HTML.footer = "\n"
doc/src/ 0000775 0000000 0000000 00000000000 12151427601 0012411 5 ustar 00root root 0000000 0000000 doc/src/examples/ 0000775 0000000 0000000 00000000000 12151427601 0014227 5 ustar 00root root 0000000 0000000 doc/src/examples/hapticsplayer.qdoc 0000664 0000000 0000000 00000006253 12151427601 0017755 0 ustar 00root root 0000000 0000000 /****************************************************************************
**
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\example hapticsplayer
\title Haptics Player
\tableofcontents
\section1 Overview
This example shows how to use various haptic effects in an application via
the \l{Feedback}{Qt Feedback API}.
It provides an example of how to use the QtMobility libraries to:
\list
\li play "system theme" haptic effects corresponding to certain predefined events
\li play a dynamic custom effect, single or repeating
\li play a custom effect which is stored in a file
\endlist
\section2 Use Case
This example is more feature complete than the \l{hapticsquare}{Haptic Square} example,
but is intended more as a way to test the haptics provider plugins which
are available on a system, than as an example for application developers.
It is useful for people who wish to learn how to use the API to create and
play custom effects dynamically, or to allow users of an application to
select which haptic effect to play when a particular event occurs. It is also useful
to test how effects are implemented on specific devices.
It is a more complex example than the \l{hapticsquare}{Haptic Square} example, so it is
suggested that developers look at that example first.
\section2 Interface
The application is designed to work on desktop and mobile platforms with
minimal differences in code between the platforms. The interface consists
of three tabs which allow the user to select and play different custom,
system theme, and file effects, respectively. The custom effect tab also
allows the user to modify the custom effect dynamically, and see the effect
of attack and fade, intensity and duration, and periodicity, on the user
experience.
\section2 Known Issues
The example will not work correctly on platforms which do not have a
QFeedbackHapticInterface (haptic effect provider) plugin loaded. On such
platforms, the example will do nothing.
*/
doc/src/examples/hapticsquare.qdoc 0000664 0000000 0000000 00000016427 12151427601 0017602 0 ustar 00root root 0000000 0000000 /****************************************************************************
**
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia. For licensing terms and
** conditions see http://qt.digia.com/licensing. For further information
** use the contact form at http://qt.digia.com/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\example hapticsquare
\title Haptic Square Example
\section1 Overview
This example shows how to use simple haptic effects in an application via
the \l{Feedback}{Qt Feedback API}.
It provides an example of how to use the Qt Feedback
\list
\li play "system theme" haptic effects corresponding to certain predefined events
\li play a custom effect, single or repeating
\endlist
\section2 Use Case
Compelling applications attempt to immerse the user in the application
experience. There are many elements to an immersive experience, including
a consistent and beautiful graphical user interface design, unobtrusive yet
informative sound design, and intuitive program flow. Another important
aspect of immersive applications is tactile feedback and haptic effects.
The \l{Feedback}{QtFeedback API} allows application developers to
include tactile feedback into their application via a simple to use and
extensible API. Some common uses for tactile feedback are:
\list
\li maintain consistency with system theme for tactile feedback about interface events (button clicks, scrolling, etc)
\li notify the user of an application-specific event (invalid operation, status change, etc)
\li multisensory user interface (status can be "read" by touching the screen, tactile interfaces, etc)
\li immersive gaming experiences (explosions, impacts, collisions, etc)
\endlist
This example application provides some short snippets which illustrate how
the first two of those use cases may be fulfilled.
\section1 The Application
The application is designed to work on desktop and mobile platforms with
minimal differences in code between the platforms. The interface consists
of four buttons arranged into a square, each of which causes a different
tactile effect to be played by the default tactile effect provider plugin
on the platform.
\image hapticsquare-example.png
\list
\li "Rumble!" plays a non-repeating effect with symmetric attack and decay
\li "Ocean" is a toggle button which plays a repeating ocean wave-like effect
\li "Click" plays the system theme effect for a basic button click
\li "Oops!" plays the system theme effect for a negative or invalid response
\endlist
The example implements two classes:
\list
\li \c {HapticButton}: Implementation of a button. It
inherits QWidget and sends signals for button clicks.
\li \c {Dialog}: A QDialog subclass that displays the four
\c{HapticButton}s mentioned above,
connects them to its slots, and implements the functionality to
play the haptic effects.
\endlist
\section2 The Dialog Class
We will now go through the code for the \c Dialog class. Here is its
definition:
\snippet examples/hapticsquare/hapticsquare.h 0
The buttons are connected to the slots, which play the effects. We will now
go through the implementation of \c Dialog.
The constructor starts by setting up the non-repeating haptic effect, which
is played by clicking the \gui {Rumble! Button}.
\snippet examples/hapticsquare/hapticsquare.cpp 0
Custom haptics effects are created by setting up a QFeedbackHapticsEffect.
A haptics effect provides a fade-in of the effect's
\l{QFeedbackHapticsEffect::}{intensity()}. With vibration, you can think of
the intensity as how hard the device will vibrate. The effect will start at
\l{QFeedbackHapticsEffect::}{attackIntensity()} and interpolate to
\l{QFeedbackHapticsEffect::}{intensity()} in
\l{QFeedbackHapticsEffect::}{attackTime()} milliseconds. When the effect
ends, we have a similar fade-out, where the haptics effect's intensity will
interpolate from \l{QFeedbackHapticsEffect::}{intensity()} to
\l{QFeedbackHapticsEffect::}{fadeTime()} in
\l{QFeedbackHapticsEffect::}{fadeTime()} milliseconds.
The effect will last for a total duration of
\l{QFeedbackHapticsEffect::}{duration()} milliseconds.
We next set up the effect for the \gui {Ocean Button}.
\snippet examples/hapticsquare/hapticsquare.cpp 1
The \c m_ocean is a periodic effect, i.e., it repeats after
\l{QFeedbackHapticsEffect::}{period()} milliseconds. Note that the
\l{QFeedbackHapticsEffect::}{duration()} must be greater than the period
in order for the periodicity of the effect to be discernable.
We then set up the GUI and connects the buttons to slots that will play the
effects.
\snippet examples/hapticsquare/hapticsquare.cpp 2
Let's look at the slots to see how the effects are played.
\snippet examples/hapticsquare/hapticsquare.cpp 3
With the \c m_rumble, we only have to call \l{QFeedbackEffect::}{start()}. It
will stop when the effect has finished, and can be played again by calling
\l{QFeedbackEffect::}{start()} again.
The periodic \c m_ocean effect is started the same way as the \c m_rumble
effect, and may be stopped with the \l{QFeedbackEffect::}{stop()} function.
It will start playing from the beginning again when
\l{QFeedbackEffect::}{start()} is called. We could also have paused the
effect with \l{QFeedbackEffect::}{pause()}.
\snippet examples/hapticsquare/hapticsquare.cpp 4
System theme effects are played with the static
QFeedbackEffect::playThemeEffect() function. Theme effects cannot be stopped
or paused. There is no guarantee that the backend can play the effect;
\l{QFeedbackEffect::}{playThemeEffect()} will return false if the effect
could not be played.
\section1 Known Issues
The example is not intended to exercise the entire API. Instead, it is a
simple example which illustrates some simple uses of the API.
Also, the example will not work correctly on platforms which do not have a
QFeedbackHapticInterface (haptic effect provider) plugin loaded. On such
platforms, clicking the buttons will have no effect. On Maemo5, periodic
effects do not support attack or fade, and so the ocean effect is not
smooth.
*/
doc/src/images/ 0000775 0000000 0000000 00000000000 12151427601 0013656 5 ustar 00root root 0000000 0000000 doc/src/images/hapticsquare-example.png 0000664 0000000 0000000 00000006375 12151427601 0020521 0 ustar 00root root 0000000 0000000 PNG
IHDR 5 pHYs : duh IDATxoPwf)$W,=QOk4*xuڂ^z;gjX:禭V)⍽
(7 b3hP! (dmneK:\! > +X
l V`@b6+
r#VM`z
2Vߠ,(C<(ı`zC
h,YfڬVPLo0#&&0az[W<`')V,䂕>V,d@b6+X
l V`@b6+X
l V`@b6+X
l V`@b6+X
l V`@b6iO>9̧ϟgv'''
>FCCtnܴ1333+++7pѽScǎ'j=e6|F i
V)h[%K+*R>/'VTcj{UFӍgijjvFcd>==7nT__tPlcSYU7o|Us%N8QYNRTZ,phnnnjj&"Cl2bzE͘1cȁ]pG'OްaVM=6vӉhFRRCçA^t:nT՚{n\uƍ8Z7'Oz=hrȁ47mͮɓ'^U*IN2Ẋk]]ĉ>ٷ2==]R
v{*
QH!QQ|EQ7WKHH=))9~l?(&&C (
"R($MΟ9?&"Vx_NDǛlh oqi/>w6?m??鯧[/Nnݺ^"joUT盈(-mv[[n'"5@=vlLL}]g%+WLj4U4qG'N~Ju鿗_..)jyۺaCiooMJJ*)@D>\S]#CY把lAZmqqY(..nӦKR3f1Mjzz/莄+W>*ѐ$2b +X
l V`@b6+X
l V`@b6+X
l V`@b6+X
l V`@b6+X
l V`cXV[b8'#b6$Ŋe䂕Ux`($NOjXB+B1~
ЁkTy_&V=+X
l V`P>yd#^u$,(}֑<(ı`zC
h,Yf$Q7XEd䁿X
IC(0=`e6C(0=ae6+X
l V`@b6+X
l V`@b6+X
l V`@b6+X
l V`@b6+XHtVnϟ3(/zD nN/ߜNM333rsojj將4/1r(YT{b)a}Zw?a=a<TPJT544DGGm.YR^QjL
y,bu8MM111DgѢϞ=GD_57WVUy<^"\؇,
E$bDdH0MZ_G|+~PII nw1_vg2Ν{¿^Bw}YCXmSNzwիzm^|22^ɻ'mz^V$Ϝz;]ti}Q{v.,,ܹk]y]v'N 8pnݺ;(A#TudKjQ(^?-CRݵD{ED ̙3XD?|SZRRj&?@Ś`8?]kԔ_] vΞ9#x<7MoNoiiy%%%M{~E\:[N"OmmmvnwWWo{7n+N/y222֭[KD|K.Ѿ{g&TTjhv6mիWU*ռy,ˏ7n$Yl[srrQFefe+/..nӦKRdժUUUҭ[EEEee+*ʳAjųf"qƭYf$BlR*JG9]%%Zs6>+yycƌ!S #t\r=QTNv)S"AEm GTFڲ*b6+X
l V`@b6+X
l V`@b6+X
l V`@b6+X
l V`@b6+XcZm az2
l V`CRY
LO.XYOdDƊ!, j(Oo
8.@0H`@A:`bܳ@b6+X
l V`?kV6# IENDB` doc/src/images/non-periodic-effect.png 0000664 0000000 0000000 00000031011 12151427601 0020200 0 ustar 00root root 0000000 0000000 PNG
IHDR
J |qw sBIT|d pHYs tEXtSoftware www.inkscape.org< IDATxyXu "{Z%▊%D[*v.oMSSK\s75E˖oVZij
R悹J&oN9|\gfr^{f>Na ȅ ,"(
" ,"( 2(\zUwVFFK \7(C˗//NϞ=5k(--ȅÇu]wܹs+Wh͚5:U 7(ݻW'O,N:ÇE.8իwyG>>>.h?R U[ɺt$)!!AY ŋMϞ=D}j:p֥iJffvޭ})%%ŴW\MguY%$$(33SgϞյknobbB 6Gʕ'8xᇍÇ+V4\\\caƞ={ʕ+oooJ*=c~nƎ;LYc6l0wwwC1ydFixzz5k4jԨa{10oH2㍄ېdxzzUT1ׯo\|4VXadXre~ ^.fx?~\[K/$IرIdرC_^ 'Ow4hM/(11QǏ״itQIRttVZݻwٳ:w>
Tk-Iںuu yyy'вeP}Ѣ|k +E
+W3TfMխ[W> ,,Lݻw#ի7Tbb[80ꫯ]vrwws=lEDDH"77765R5
u5JSddi5x`yxxj_ أ
E(00CUVŋUV-[f+VǏST
{Mk-]pAԳgOYfܹ5l0URP_G6mԥK-_\K,{P ^)(TT콓g:'i]ӦMM"WWWquu?{jƍ3g&L{UVR4j(=
u]wuօ HA!?9_rly֭~}ᇦpQ;vTǎf͚iժU3gM㼽tS=4h Zl6nܨŋ. E