javauis/runtimeui_qt/src.s60/runtimeuiqt.cpp
author hgs
Mon, 04 Oct 2010 11:29:25 +0300
changeset 78 71ad690e91f5
parent 23 98ccebc37403
child 80 d6dafc5d983f
permissions -rw-r--r--
v2.2.17_1

/*
* Copyright (c) 2010 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: RuntimeUI QT to show error notes and security queries.
*
*/

#include "runtimeuiqt.h"

#include <hbdevicemessageboxsymbian.h>
#include <hbpopup.h>

#include "logger.h"

using namespace java::runtimeui;

OS_EXPORT void RuntimeUiQt::errorL(const TDesC& /*aAppName*/, const TDesC& aShortMsg,
    const TDesC& aDetailedMsg, const TDesC& aDetailsButton, const TDesC& aOkButton)
{
    CHbDeviceMessageBoxSymbian* messageBox
    = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EWarning);
    CleanupStack::PushL(messageBox);

    messageBox->SetTextL(aShortMsg);
    messageBox->SetTimeout(HbPopup::NoTimeout);

    if (aDetailedMsg.Size() > 0)
    {
        messageBox->SetButtonTextL(CHbDeviceMessageBoxSymbian::EAcceptButton, aOkButton);
        messageBox->SetButton(CHbDeviceMessageBoxSymbian::EAcceptButton, ETrue);
        messageBox->SetButtonTextL(CHbDeviceMessageBoxSymbian::ERejectButton, aDetailsButton);
        messageBox->SetButton(CHbDeviceMessageBoxSymbian::ERejectButton, ETrue);

        if (messageBox->ExecL() == CHbDeviceMessageBoxSymbian::ERejectButton)
        {
            messageBox->SetButton(CHbDeviceMessageBoxSymbian::ERejectButton, EFalse);
            messageBox->SetTextL(aDetailedMsg);
            (void)messageBox->ExecL();
        }
    }
    else
    {
        messageBox->SetButtonTextL(CHbDeviceMessageBoxSymbian::EAcceptButton, aOkButton);
        messageBox->SetButton(CHbDeviceMessageBoxSymbian::EAcceptButton, ETrue);
        (void)messageBox->ExecL();
    }
    messageBox->Close();
    CleanupStack::PopAndDestroy(messageBox);
}

OS_EXPORT int RuntimeUiQt::confirmL(const TDesC& /*aAppName*/, const TDesC& aQuestion,
    const ConfirmData& aConfirmData, bool /*aIdentified*/)
{
    CHbDeviceMessageBoxSymbian* messageBox
        = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EWarning);
    CleanupStack::PushL(messageBox);

    messageBox->SetTextL(aQuestion);
    messageBox->SetTimeout(HbPopup::NoTimeout);

    // Deny by default.
    int result = 1;

    // ConfirmData must always have two entries. If not confirmation is denied.
    if (aConfirmData.iAnswerOptions.size() >= 2)
    {
        // Button 1 localized text.
        messageBox->SetButtonTextL(CHbDeviceMessageBoxSymbian::EAcceptButton, (aConfirmData.iAnswerOptions.at(0))->Des());
        messageBox->SetButton(CHbDeviceMessageBoxSymbian::EAcceptButton, ETrue);

        // Button 2 localized text.
        messageBox->SetButtonTextL(CHbDeviceMessageBoxSymbian::ERejectButton, (aConfirmData.iAnswerOptions.at(1))->Des());
        messageBox->SetButton(CHbDeviceMessageBoxSymbian::ERejectButton, ETrue);

        if (messageBox->ExecL() == CHbDeviceMessageBoxSymbian::EAcceptButton)
        {
            // AcceptButton selected.
            result = 0;
        }

        messageBox->Close();
    }
    CleanupStack::PopAndDestroy(messageBox);
    return result;
}