Falkon Develop
Cross-platform Qt-based web browser
QjtMouseGesture.h
Go to the documentation of this file.
1/*
2 * This file is part of the mouse gesture package.
3 * Copyright (C) 2006 Johan Thelin <e8johan@gmail.com>
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or
7 * without modification, are permitted provided that the
8 * following conditions are met:
9 *
10 * - Redistributions of source code must retain the above
11 * copyright notice, this list of conditions and the
12 * following disclaimer.
13 * - Redistributions in binary form must reproduce the
14 * above copyright notice, this list of conditions and
15 * the following disclaimer in the documentation and/or
16 * other materials provided with the distribution.
17 * - The names of its contributors may be used to endorse
18 * or promote products derived from this software without
19 * specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
22 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
23 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
24 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
25 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
28 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
29 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
30 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
33 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 * POSSIBILITY OF SUCH DAMAGE.
35 *
36 */
37
38#ifndef QJTMOUSEGESTURE_H
39#define QJTMOUSEGESTURE_H
40
41#include <QObject>
42#include <QList>
43
45
47
48/*
49 * A Direction can be any of the following:
50 *
51 * Up
52 * Down
53 * Left
54 * Right
55 * AnyHorizontal (Left or Right)
56 * AnyVertical (Up or Down)
57 * UpLeft (diagnonal)
58 * UpRight (diagnonal)
59 * DownLeft (diagnonal)
60 * DownRight (diagnonal)
61 *
62 * In addition to these, the NoMatch enum is
63 * available. A gesture holding only the NoMatch
64 * enum is gestured when no other gesture can be
65 * matched to the mouse gesture performed.
66 */
68
69using Gesture::Up;
70using Gesture::Down;
71using Gesture::Left;
72using Gesture::Right;
75using Gesture::UpLeft;
80
81/*
82 * A list of Directions
83 */
84typedef QList<Direction> DirectionList;
85
86/*
87 * A mouse gesture is a list of Directions that
88 * trigger the gestured signal. Create instances
89 * and add to a QjtMouseGestureFilter object.
90 */
91class QjtMouseGesture : public QObject
92{
93 Q_OBJECT
94public:
95 QjtMouseGesture(const DirectionList &directions, QObject* parent = nullptr);
97
98 const DirectionList directions() const;
99
100Q_SIGNALS:
101 void gestured();
102
103private:
105
106 /*
107 * Emits the gestured signal.
108 *
109 * Required to connect this to the toolkit
110 * independent recognizer in a tidy way.
111 */
112 void emitGestured();
113
114 DirectionList m_directions;
115};
116
117#endif // QJTMOUSEGESTURE_H
Gesture::Direction Direction
QList< Direction > DirectionList
const DirectionList directions() const
QjtMouseGesture(const DirectionList &directions, QObject *parent=nullptr)