qtmobileextensions/src/keycapture/capturerequest_s60.h
changeset 1 2b40d63a9c3d
child 14 6fbed849b4f4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/qtmobileextensions/src/keycapture/capturerequest_s60.h	Fri Apr 16 15:51:22 2010 +0300
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, version 2.1 of the License.
+ * 
+ * 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 Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program.  If not, 
+ * see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
+ *
+ * Description:
+ *
+ */
+
+#ifndef CAPTUREREQUEST_S60_H
+#define CAPTUREREQUEST_S60_H
+
+#include <qnamespace.h>
+#include <QMap>
+
+#include "xqkeycapture.h"
+
+class RWindowGroup;
+class QKeyMapperPrivate;
+
+#ifdef _XQKEYCAPTURE_UNITTEST_
+    class MyTestWindowGroup;
+#endif
+
+class CaptureRequest {
+
+public:
+    enum CaptureRequestType {
+    CaptureRequestTypeNormal,
+    CaptureRequestTypeLong,
+    CaptureRequestTypeUpAndDown
+    };
+
+    CaptureRequest(TUint aKey, Qt::KeyboardModifiers aModifiersMask,
+        Qt::KeyboardModifiers aModifier, CaptureRequestType aRequestType, XqKeyCapture::LongFlags aLongKeyFlags,
+#ifndef _XQKEYCAPTURE_UNITTEST_
+    RWindowGroup* aGroup
+#else
+    MyTestWindowGroup* aGroup
+#endif
+    );
+
+    ~CaptureRequest();
+
+    int request();
+
+    int cancel();
+
+    bool operator==(const CaptureRequest& other) const;
+
+    bool matches(TUint aKey, Qt::KeyboardModifiers aModifiersMask, Qt::KeyboardModifiers aModifier,
+        CaptureRequestType aRequestType, 
+        XqKeyCapture::LongFlags captureLongFlag = XqKeyCapture::LongWaitNotApplicable) const;
+
+private:
+    TUint translatedModifierMask();
+    TUint translatedModifier();
+    TUint translatedModifier(Qt::KeyboardModifiers aModifier);
+    
+private:
+    const TUint mKey;
+    const Qt::KeyboardModifiers mModifiersMask;
+    const Qt::KeyboardModifiers mModifier;
+    const CaptureRequestType mRequestType;
+    const XqKeyCapture::LongFlags longKeyFlags;
+    
+    long int mRequestHandle;
+    long int mAdditionalRequestHandle;
+    
+#ifndef _XQKEYCAPTURE_UNITTEST_
+    RWindowGroup* mGroup; //not owned
+#else
+    MyTestWindowGroup* mGroup;
+#endif
+    QKeyMapperPrivate* mMapper;
+//    QMap<Qt::Key, TUint> *mQtToS60KeyMap;//not owned
+//    QMap<Qt::Key, TUint> *mQtToS60StdScanCodeMap;    //not owned
+};
+
+#endif /* CAPTUREREQUEST_S60_H */
+