hsappkeyhandler/tsrc/t_hsappkeyhandler/inc/t_hsappkeyhandler.h
author Jaakko Haukipuro (Nokia-MS/Oulu) <Jaakko.Haukipuro@nokia.com>
Thu, 16 Sep 2010 12:11:40 +0100
changeset 117 c63ee96dbe5f
permissions -rw-r--r--
Missing activityfw and taskswitcher components - fix for Bug 3670

/*
* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
*
*/

#ifndef T_HSAPPKEYHANDLER_H
#define T_HSAPPKEYHANDLER_H

#include <w32std.h>

#include <QObject>

#include <hb/hbcore/hbdevicedialogsymbian.h>

class CHsAppKeyPlugin;

class T_HsAppKeyHandler : public QObject, public MHbDeviceDialogObserver
{
    Q_OBJECT

public:
    explicit T_HsAppKeyHandler(QObject *parent = 0);

private slots:
    void callDataReceived();
    void testDeviceDialogClosed();
    void testProvideKeyEvents();
    void testHandleKeyEventIgnoresKeysOtherThanAppKey();
    void testHandleKeyEventConsumesEverySecondEventForAppKey();
    void testShortPressSwitchesBetweenHsAndApplibWhenTsIsNotVisible();
    void testLongPressShowsTaskSwitcher();
    void testShortPressDismissesTaskSwitcherShownByLongpress();
    void testLongpressDoesNothingIfTaskSwitcherIsShownByOtherComponent();
    void testShortPressDismissesTaskSwitcherShownByOtherComponent();

private slots:
    void init();
    void cleanup();

public: // from MHbDeviceDialogObserver    
    void DataReceived(CHbSymbianVariantMap &aData);
    void DeviceDialogClosed(TInt aCompletionCode);
    
private: // helper methods
    bool makeShortPress();
    bool makeLongPress();    
    bool sendKeyEventTwice(TKeyEvent keyEvent);
    
    bool isTaskSwitcherVisible();
    
    bool showTaskSwitcher();
    
private:
    CHsAppKeyPlugin *mCHsAppKeyPluginInstance;
    CHbDeviceDialogSymbian *mDialog;
};

#endif // T_HSAPPKEYHANDLER_H