ginebra2/WebGestureHelper.h
author hgs
Fri, 15 Oct 2010 17:30:59 -0400
changeset 16 3c88a81ff781
parent 3 0954f5dd2cd0
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
3
hgs
parents: 0
diff changeset
     4
*
hgs
parents: 0
diff changeset
     5
* This program is free software: you can redistribute it and/or modify
hgs
parents: 0
diff changeset
     6
* it under the terms of the GNU Lesser General Public License as published by
hgs
parents: 0
diff changeset
     7
* the Free Software Foundation, version 2.1 of the License.
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
3
hgs
parents: 0
diff changeset
     9
* This program is distributed in the hope that it will be useful,
hgs
parents: 0
diff changeset
    10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
hgs
parents: 0
diff changeset
    11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
hgs
parents: 0
diff changeset
    12
* GNU Lesser General Public License for more details.
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
3
hgs
parents: 0
diff changeset
    14
* You should have received a copy of the GNU Lesser General Public License
hgs
parents: 0
diff changeset
    15
* along with this program.  If not,
hgs
parents: 0
diff changeset
    16
* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
*
3
hgs
parents: 0
diff changeset
    18
* Description:
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
*
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
*/
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#ifndef WEBGESTUREHELPER_H_
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#define WEBGESTUREHELPER_H_
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include "qstmgestureapi.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#include "qstmgestureevent.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include <QApplication>
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
//#include "BWFGlobal.h"
16
hgs
parents: 3
diff changeset
    28
#if defined(ORBIT_UI)
hgs
parents: 3
diff changeset
    29
#include <hbapplication.h>
hgs
parents: 3
diff changeset
    30
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
#if !defined(Q_WS_X11)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
#define XEvent void
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
#endif
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
class QStm_QtDummyGestureRecognizer;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
class WebGestureHelper
16
hgs
parents: 3
diff changeset
    40
{    
3
hgs
parents: 0
diff changeset
    41
public:
hgs
parents: 0
diff changeset
    42
    WebGestureHelper(QWidget* ctrl);
hgs
parents: 0
diff changeset
    43
hgs
parents: 0
diff changeset
    44
    virtual ~WebGestureHelper();
hgs
parents: 0
diff changeset
    45
hgs
parents: 0
diff changeset
    46
    QStm_GestureEngineApi* gestureEngine() { return m_gestureEngine; }
hgs
parents: 0
diff changeset
    47
    QStm_GestureContext*   gestureContext(){ return m_gestures; }
hgs
parents: 0
diff changeset
    48
    bool symbianEventFilter(const QSymbianEvent *event);
hgs
parents: 0
diff changeset
    49
    bool x11EventFilter (XEvent* event);
16
hgs
parents: 3
diff changeset
    50
    bool winEventFilter(void* event);
3
hgs
parents: 0
diff changeset
    51
    void setupGestureEngine(QWidget* ctrl);
16
hgs
parents: 3
diff changeset
    52
    bool shouldHandleGesture();
hgs
parents: 3
diff changeset
    53
    bool isFilteredByGestureEngine();
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
private:
3
hgs
parents: 0
diff changeset
    55
    QStm_GestureEngineApi* m_gestureEngine;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
    QStm_GestureContext* m_gestures;
3
hgs
parents: 0
diff changeset
    57
    QStm_GestureParameters* m_parameters;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
    QWidget* m_ctrl;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
    QStm_QtDummyGestureRecognizer* m_dummyRecognizer;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
    Qt::GestureType m_qstmGestureType;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
};
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
#define browserApp   (static_cast<BrowserApp*>(QApplication::instance()))
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
16
hgs
parents: 3
diff changeset
    69
hgs
parents: 3
diff changeset
    70
#if defined(ORBIT_UI)
hgs
parents: 3
diff changeset
    71
#define ParentApp  HbApplication
hgs
parents: 3
diff changeset
    72
#else
hgs
parents: 3
diff changeset
    73
#define ParentApp  QApplication
hgs
parents: 3
diff changeset
    74
#endif
hgs
parents: 3
diff changeset
    75
hgs
parents: 3
diff changeset
    76
#ifndef Q_OS_WIN
hgs
parents: 3
diff changeset
    77
typedef void* MSG;
hgs
parents: 3
diff changeset
    78
#endif
hgs
parents: 3
diff changeset
    79
hgs
parents: 3
diff changeset
    80
class BrowserApp : public ParentApp
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
{
3
hgs
parents: 0
diff changeset
    82
    Q_OBJECT
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
public:
16
hgs
parents: 3
diff changeset
    84
    
hgs
parents: 3
diff changeset
    85
#if defined(ORBIT_UI)
hgs
parents: 3
diff changeset
    86
    BrowserApp(QS60MainApplicationFactory appfactory, int & argc, char** argv);
hgs
parents: 3
diff changeset
    87
#endif
hgs
parents: 3
diff changeset
    88
    BrowserApp(int & argc, char** argv);
3
hgs
parents: 0
diff changeset
    89
    virtual bool symbianEventFilter(const QSymbianEvent *event);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
    virtual bool x11EventFilter (XEvent* event);
16
hgs
parents: 3
diff changeset
    91
    virtual bool winEventFilter(MSG* message, long* result);
3
hgs
parents: 0
diff changeset
    92
    void  setGestureHelper(WebGestureHelper* gh);
hgs
parents: 0
diff changeset
    93
    WebGestureHelper* gestureHelper() { return m_gestureHelper; }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
3
hgs
parents: 0
diff changeset
    95
    void setMainWindow(QWidget* mw) { m_mainWindow = mw; }
hgs
parents: 0
diff changeset
    96
    QWidget* mainWindow() { return m_mainWindow; }
hgs
parents: 0
diff changeset
    97
    QStm_GestureEngineApi* gestureEngine() { return m_gestureEngine; }
16
hgs
parents: 3
diff changeset
    98
//    bool event(QEvent* event);
3
hgs
parents: 0
diff changeset
    99
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
private:
3
hgs
parents: 0
diff changeset
   101
    WebGestureHelper*        m_gestureHelper;
hgs
parents: 0
diff changeset
   102
    QWidget*                 m_mainWindow;
hgs
parents: 0
diff changeset
   103
    QStm_GestureEngineApi*   m_gestureEngine;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
};
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
16
hgs
parents: 3
diff changeset
   110
class QStm_QtDummyGestureRecognizer : public QObject,
hgs
parents: 3
diff changeset
   111
                                      public QGestureRecognizer,
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
                                      public QStm_GestureListenerApiIf
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
{
16
hgs
parents: 3
diff changeset
   114
    Q_OBJECT
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
public:
3
hgs
parents: 0
diff changeset
   116
    QStm_QtDummyGestureRecognizer(QStm_GestureContext* ctx);
hgs
parents: 0
diff changeset
   117
    ~QStm_QtDummyGestureRecognizer();
hgs
parents: 0
diff changeset
   118
    QGesture* create(QObject* target);
hgs
parents: 0
diff changeset
   119
    QGestureRecognizer::Result recognize(QGesture *state,
hgs
parents: 0
diff changeset
   120
                                         QObject *watched,
hgs
parents: 0
diff changeset
   121
                                         QEvent *event);
hgs
parents: 0
diff changeset
   122
    void reset(QGesture *state);
hgs
parents: 0
diff changeset
   123
hgs
parents: 0
diff changeset
   124
    //from QStm_GestureListenerApiIf
hgs
parents: 0
diff changeset
   125
    QStm_ProcessingResult handleGestureEvent(qstmGesture::QStm_GestureUid uid, qstmGesture::QStm_GestureIf* gesture);
hgs
parents: 0
diff changeset
   126
16
hgs
parents: 3
diff changeset
   127
public slots:
hgs
parents: 3
diff changeset
   128
    void handleQStmUiEvent(const qstmUiEventEngine::QStm_UiEventIf&);
hgs
parents: 3
diff changeset
   129
3
hgs
parents: 0
diff changeset
   130
private:
hgs
parents: 0
diff changeset
   131
    QStm_GestureContext* m_context;
hgs
parents: 0
diff changeset
   132
    QStm_Gesture* m_currentGesture;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
};
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
#endif /* GESTUREHELPER_H_ */