-
Notifications
You must be signed in to change notification settings - Fork 1
/
gesturehandler.h
88 lines (75 loc) · 3.18 KB
/
gesturehandler.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/***************************************************************************
* Copyright (C) 2010 Brno University of Technology, *
* Faculty of Information Technology *
* Author(s): Marek Vantuch <xvantu00 AT stud.fit.vutbr.cz> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU Library General Public License as *
* published by the Free Software Foundation; either version 2 of the *
* License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU Library General Public *
* License along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#ifndef GESTUREHANDLER_H
#define GESTUREHANDLER_H
#include <QObject>
#include <QPainterPath>
#include <QPair>
#include <QList>
#include <QString>
#include <QIcon>
#include "canvas.h"
#include "canvasmgr.h"
#include "mousegesturerecognizer.h"
namespace Gesture
{
enum Type {
Pen,
Brush,
Eraser,
Transform,
FColor,
BColor,
Clear,
Save
};
typedef QPair<QString, QIcon> Info;
class Handler : public MouseGestureRecognizer
{
Q_OBJECT
public:
Handler(QObject* parent = 0);
~Handler();
bool observe(CanvasMgr* cm);
DirectionList getGesture(Type type); //gets direction list of gesture
void setGesture(Type type, DirectionList dl); //changes directions of gesture
void resetGesture(Type type); //set gestures directions to default
//converting string <-> DirectionList
DirectionList strToDl (QString str);
QString dlToStr (DirectionList dl);
const QMap<Type,Info>& getTypes(); //returns label and icons mapped to type
public slots:
bool start(); //start/stop handling gestures
bool stop();
void handleGesture(QPainterPath gesture); //procedure which takes care of incoming gesture
void handleCanvas(Canvas* cnvs); //connecting with newly created canvas
void letCanvasGo(Canvas* cnvs); //disconnecting from destroyed canvas
protected:
void initializeGestures(); //sets all gestures either from settings or from default values
void uninitializeGestures(); //saves all changed gestures to settings
signals:
void somethingChanged();
private:
class Private;
Private* d;
};
}
#endif // GESTUREHANDLER_H