javauis/lcdui_akn/lcdui/inc/CMIDAlertDialog.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 27 Apr 2010 16:30:29 +0300
branchRCL_3
changeset 14 04becd199f91
permissions -rw-r--r--
Revision: v2.1.22 Kit: 201017

/*
* Copyright (c) 2003 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:  Alert dialog implementation for Series 60
*
*/


#ifndef CMIDALERTDIALOG_H
#define CMIDALERTDIALOG_H

// INCLUDES
// using MMIDGaugeToAlertListner interface in class declaration
// and CMIDNonInteractiveGauge as iGauge member
#include "CMIDGaugeItem.h"
#include <lcdui.h>
#include <AknPopupform.h>

// FORWARD DECLARATIONS
class CMIDAlert;

// CLASS DECLARATION
NONSHARABLE_CLASS(CMIDAlertDialog) : public CAknPopupForm, public MMIDGaugeToAlertListner
{

public:

    static CMIDAlertDialog* NewL(CMIDAlert* aAlert,CMIDDisplayable* aDisplayable);

    CMIDAlertDialog(CMIDAlert* aAlert,CMIDDisplayable* aDisplayable);
    ~CMIDAlertDialog();
    void SetGaugeL(CMIDGaugeItem* aGauge);
    void PreLayoutDynInitL();
    void PostLayoutDynInitL();

    void UpdateCbasL();
    TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
    TBool OkToExitL(TInt aCommandId);

    void InsertGaugeIntoDialogL();
    void CheckAndSetAnimationModeL();

    // from  MMIDGaugeToAlertListner
    void UpdateGaugeInAlert(TInt aValue);
    void GaugeTypeInAlertChangedL();

    void ShowL(TBool aShow);
    void DisableVisibilityChange(TBool aDisable);

public: // from CCoeControl
    void MakeVisible(TBool aVisible);
    void SizeChanged();
#ifdef RD_SCALABLE_UI_V2
    void HandlePointerEventL(const TPointerEvent& aPointerEvent);
#endif

protected: //MMIDGaugeToAlertListner
    void UpdateGaugeInAlertL(TInt aValue);

    void HandleResourceChange(TInt aType);

#ifdef RD_SCALABLE_UI_V2
private:
    /**
    * Checks if the point given as a parameter belongs to the dialog region.
    * @param  aPoint   The point
    * @return TBool indicating if the point is in the dialog region.
    */
    TBool AlertRegionContains(const TPoint& aPoint);
#endif

private:
    CMIDAlert* iParent;
    CMIDDisplayable* iDisplayable;

    CMIDNonInteractiveGauge* iGauge;
    TPopupFormControlType iGaugeResourceType;

    TInt iGaugeFrameCount;
    TInt iIncrementalFrameCounter;

    TBool iShowing;

    TBool iVisibilityChangeDisabled;
#ifdef RD_SCALABLE_UI_V2
    // When closing timed alerts, this boolean is needed in tracking
    // that at least one EButton1Down has been received
    TBool iButtonDownReceived;
#endif
};

#endif // CMIDALERTDIALOG_H

// End of File