qtmobileextensions/examples/keycaptureex/mybutton.h
branchRCL_3
changeset 9 5d007b20cfd0
equal deleted inserted replaced
8:885c2596c964 9:5d007b20cfd0
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 *
       
     5 * This program is free software: you can redistribute it and/or modify
       
     6 * it under the terms of the GNU Lesser General Public License as published by
       
     7 * the Free Software Foundation, version 2.1 of the License.
       
     8 * 
       
     9 * This program is distributed in the hope that it will be useful,
       
    10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       
    12 * GNU Lesser General Public License for more details.
       
    13 *
       
    14 * You should have received a copy of the GNU Lesser General Public License
       
    15 * along with this program.  If not, 
       
    16 * see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
       
    17 *
       
    18 * Description:
       
    19 *
       
    20 */
       
    21 
       
    22 #ifndef MYKEY_H_
       
    23 #define MYKEY_H_
       
    24 
       
    25 #include <QPushButton>
       
    26 #include <QPlainTextEdit>
       
    27 #include <QEvent>
       
    28 #include <QKeyEvent>
       
    29 #include <QMap>
       
    30 
       
    31 class MyKeyButton : public QPushButton 
       
    32 {
       
    33     Q_OBJECT
       
    34     
       
    35 public:
       
    36     MyKeyButton(QPlainTextEdit *logger, QWidget *parent = 0)
       
    37     :
       
    38     QPushButton(QString("dummy"), parent)
       
    39     {
       
    40         justLogger = logger;
       
    41         keyLabels.insert(Qt::Key_VolumeUp, "Volume Up");        
       
    42         keyLabels.insert(Qt::Key_VolumeDown, "Volume Down");        
       
    43     }
       
    44     
       
    45     ~MyKeyButton() 
       
    46     {
       
    47     }
       
    48     
       
    49     bool event(QEvent *event)
       
    50     {
       
    51         if (justLogger) {
       
    52             if (event->type() != QEvent::KeyPress) {
       
    53 //                QString keyName = mapNaturalName((dynamic_cast<QKeyEvent*>event)->key());
       
    54 //                justLogger->appendPlainText(QString("P> %1").arg(keyName));
       
    55                 justLogger->appendPlainText(QString("P> %1").arg(static_cast<QKeyEvent*>(event)->key()));
       
    56             }
       
    57             if (event->type() != QEvent::KeyRelease) {
       
    58 //                QString keyName = mapNaturalName((dynamic_cast<QKeyEvent*>event)->key());
       
    59 //                justLogger->appendPlainText(QString("r> %1").arg(keyName));
       
    60                 justLogger->appendPlainText(QString("R> %1").arg(static_cast<QKeyEvent*>(event)->key()));
       
    61             }
       
    62         }
       
    63         return QPushButton::event(event);
       
    64     }
       
    65     
       
    66 private:
       
    67     
       
    68     QString mapNaturalName(Qt::Key key) {
       
    69         QString name = keyLabels[key];
       
    70         if (name.isEmpty()) {
       
    71             name = QString("0x%1").arg(static_cast<int>(key), 0, 16);
       
    72         }
       
    73         return name;
       
    74     }
       
    75     
       
    76 private:
       
    77     // not own
       
    78     QPlainTextEdit *justLogger;
       
    79     QMap<Qt::Key, QString> keyLabels;
       
    80 };
       
    81 
       
    82 
       
    83 #endif /* MYKEY_H_ */