From ba9302b8a9b6b50f37987261c1ade9af2ade2d3c Mon Sep 17 00:00:00 2001 From: Xizhi Zhu Date: Mon, 23 Jan 2012 21:25:30 +0100 Subject: Remove Symbian specific code from qtbase. Change-Id: I27d37d914b71e1e43c94e2a975ffec49e1ecd456 Reviewed-by: Lars Knoll --- doc/src/examples/symbianvibration.qdoc | 192 --------------------------------- 1 file changed, 192 deletions(-) delete mode 100644 doc/src/examples/symbianvibration.qdoc (limited to 'doc/src/examples/symbianvibration.qdoc') diff --git a/doc/src/examples/symbianvibration.qdoc b/doc/src/examples/symbianvibration.qdoc deleted file mode 100644 index 7c2e055f4c..0000000000 --- a/doc/src/examples/symbianvibration.qdoc +++ /dev/null @@ -1,192 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** 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. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! \example widgets/symbianvibration - \group all-examples - \title Symbian Vibration Example - - The Symbian Vibrator example shows how to get fine-grained vibration - control on Symbian devices. - - Native Symbian APIs have to be used to enable vibration, since QtMobility - doesn't provide an interface for it yet. It is, however, planned to be - included in a future release. In anticipation for that, we make use of the - \c XQVibra class that was a part of the Mobile Extensions Technology Preview - API for Qt for Symbian. The pre-compiled libraries are no longer compatible - with Qt 4.6, but we can include the source code itself with the project. - - \image symbianvibration-example.png Screenshot of the Symbian Vibration example - - The example application divides the window into rectangles, which can be - pressed to make the device vibrate. Pressing different rectangles make the - device vibrate with different intensities. Each rectangle has a different - color and its intensity number is drawn on top of it. Moving the cursor - from one rectangle to another changes the vibration intensity to that of - the new one. Vibration stops when the mouse button has been released. It - is also possible to launch a short burst of vibration through the menu. - - The example consists of four classes: - - \list - \o \c XQVibra is the vibration interface class taken from the Mobile - Extensions for Qt for Symbian. - - \o \c XQVibraPrivate is the Symbian specific private implementation of the - vibration implementation. - - \o \c VibrationSurface is a custom widget that uses a XQVibra instance to - vibrate the device depending on where the user presses. - - \o \c MainWindow inherits from QMainWindow and contains a \c VibrationSurface - as its central widget, and also has a menu from which it is possible to - make the phone vibrate. - \endlist - - \section1 XQVibra Class Definition - - The \c XQVibra class uses the pimpl-idiom to hide the platform specific - implementation behind a common interface. Technically it would be possible - to support more target platforms, with only the addition of a private - implementation. The rest of the code would work the same, since only the - common interface is used. - - \snippet examples/widgets/symbianvibration/xqvibra.h 0 - - \c XQVibra provides a very simple interface for us to use. The interesting - part are the three slots \c start(), \c stop() and \c setIntensity(). Calling the start - method initiates vibration for the specified duration. Calling it while the - device is already vibrating causes it to stop the current one and start the - new one, even if the intensities are the same. The \c setIntensity() method - should be called before starting vibration. - - - \section1 VibrationSurface Class Definition - - \c VibrationSurface inherits from QWidget and acts like a controller for a - \c XQVibra object. It responds to mouse events and performs custom painting. - - \snippet examples/widgets/symbianvibration/vibrationsurface.h 0 - - The virtual event methods are reimplemented from QWidget. As can be seen, - there is no public programmable interface beyond what QWidget provides. - - - \section1 VibrationSurface Class Implementation - - Mouse events control the intensity of the vibration. - - \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 0 - \codeline - \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 1 - \codeline - \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 2 - - Presses starts the vibration, movement changes the intensity and releases - stops the vibration. To set the right amount of vibration, the private - method \c applyIntensity() is used. It sets the vibration intensity according to - which rectangle the mouse currently resides in. - - \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 3 - - We make sure only to change the intensity if it is different than last - time, so that the vibrator isn't stopped and restarted unnecessarily. - - The range of vibration intensity ranges from 0 to XQVibra::MaxIntensity. We - divide this range into a set of levels. The number of levels and the intensity - increase for each level are stored in two constants. - - \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 4 - - Each rectangle has an intensity of one \c IntensityPerLevel more than the - previous one. - - \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 5 - - The rectangles are either put in a row, if the widget's width is greater - than its height (landscape), otherwise they are put in a column (portrait). - Each rectangle's size is thus dependent on the length of the width or the - height of the widget, whichever is longer. The length is then divided by - the number of levels, which gets us either the height or the width of each - rectangle. The dx and dy specify the distance from one rectangle to the - next, which is the same as either the width or height of the rectangle. - - \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 6 - - For each level of intensity, we draw a rectangle with increasing - brightness. On top of the rectangle a text label is drawn, specifying the - intesity of this level. We use the rectangle rect as a template for - drawing, and move it down or right at each iteration. - - The intensity is calculated by dividing the greater of the width and height - into \c NumberOfLevels slices. - - \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 7 - - In case the widget's geometry is too small to fit all the levels, the user - interface will not work. For simplicity, we just return 0. - - When we know the axis along which the rectangles lie, we can find the one - in which the mouse cursor lie. - - \snippet examples/widgets/symbianvibration/vibrationsurface.cpp 8 - - The final clamp of the intensity value at the end is necessary in case the - mouse coordinate lies outside the widget's geometry. - - - \section1 MainWindow Class Definition - - Here's the definition of the \c MainWindow class: - - \snippet examples/widgets/symbianvibration/mainwindow.h 0 - - \c MainWindow is a top level window that uses a \c XQVibra and a - \c VibrationSurface. It also adds a menu option to the menu bar which can - start a short vibration. - - \section1 MainWindow Class Implementation - - In the \c MainWindow constructor the \c XQVibra and the \c VibrationSurface - are created. An action is added to the menu and is connected to the vibrate - slot. - - \snippet examples/widgets/symbianvibration/mainwindow.cpp 0 - - The \c vibrate() slot offers a way to invoke the vibration in case no - mouse is present on the device. - - \snippet examples/widgets/symbianvibration/mainwindow.cpp 1 - - \section1 Symbian Vibration Library - - The \c XQVibra class requires a platform library to be included. It is - included in the \c .pro file for the symbian target. - - \quotefromfile examples/widgets/symbianvibration/symbianvibration.pro - \skipto /^symbian \{/ - \printuntil /^\}/ -*/ -- cgit v1.2.3