diff -r 000000000000 -r 2f259fa3e83a classicui_plat/extended_dialogs_api/inc/EikDialogExt.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/classicui_plat/extended_dialogs_api/inc/EikDialogExt.h Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,142 @@ +/* +* 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: +* +*/ + + +#ifndef __EIKDIALOGEXT_H__ +#define __EIKDIALOGEXT_H__ + +#include + +#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS +#include +#endif + +class CEikDialogPageSelector ; +class CEikDialog ; +class CAknsListBoxBackgroundControlContext ; +class CAknEdwinDrawingModifier ; +class CAknMediatorFacade; + +/* + * Extension structure for extra data members without breaking BC. + * This header should not be a published interface. + */ +NONSHARABLE_CLASS(CEikDialogExtension) : public CActive + { + friend class CEikDialogPageSelector ; + friend class CEikDialog ; + +public: + /** + * This enumeration encodes the way that CEikDialog is used in Averell. + */ + enum TLayoutCategory + { + ENotConstructed, // Returned if CEikDialog is not constructed enough to evaluate + EUnknownLayout, // Layout is not known + EFullScreenLayout, // returned if EEikDialogFlagFillAppClientRect has been set + EFormLayout, // True if the object is a CAknForm and appriopriate resource has been used + EPopupLayout // Popup layout; used for Notes, Queries; effectively the default + }; + /** + * Returns the type of Averell Layout that this instance of CEikDialog is implementing. + * This is internal API for use inside Averell only. + * + * @return TLayoutCategory + */ + IMPORT_C TLayoutCategory LayoutCategory() const; + + enum TPublicFlags + { + /** When set, dialog doesn't draw in the space of its child controls */ + EClipChildControlRect, + EUseVirtualInput, + EDelayedExit, + EFullyConstructed + }; + +private : + static CEikDialogExtension* NewL( const CEikDialog& aParent ) ; + ~CEikDialogExtension() ; + CEikDialogExtension( const CEikDialog& aParent ) ; + + /** + * Symbian OS 2nd stage contruction + */ + void ConstructL(); + +protected: // from CActive + void DoCancel(); + void RunL(); + +private: + void StartDelayedExit(); + +private: + enum TFlags + { + EEditableStateInitialised, + // whether dialog will show up with sliding effect or not + ESlidingEnabled, + ELayoutChangeWhileInvisible + }; + + const CEikDialog& iParent ; // NOT OWNED. To access the dialog. + CAknsListBoxBackgroundControlContext* iBgContext ; // OWNED. might need: CAknsListBoxBackgroundControlContext + TBitFlags iFlags; + CAknEdwinDrawingModifier* iDrawingModifier; // OWNED - detailed control of edwin drawing + CAknMediatorFacade* iAknDSSD; + TInt iButtonId; +#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS + TUid iRegisteredContext; + TBool iSleepDialogExitBeginCalled; +#endif + +public: + TBitFlags iPublicFlags; + TBool iInitialMade; + } ; + + +#ifdef RD_SLIDING_ANIMATION_EFFECTS +/** +* Class used for fake sliding animation. +* The control creates whole screen size window and slides dialog background in it. +*/ + +NONSHARABLE_CLASS(CEikDialogSlider) : public CCoeControl + { +public: + ~CEikDialogSlider(); + static CEikDialogSlider* NewL(CWindowGc& aWindowGc, CFbsBitmap*& aDialogBack, CFbsBitmap*& aScreen); + void SlideDialogL(TPoint& aStart, TPoint& aEnd, TInt aStepCount); + +protected: + CEikDialogSlider(CWindowGc& aWindowGc, CFbsBitmap*& aDialogBack, CFbsBitmap*& aScreen); + void ConstructL(); + void Draw(const TRect& aRect) const; + +private: + CWindowGc& iWindowGc; + CFbsBitmap* iDialogBack; + CFbsBitmap* iScreen; + TInt iSpare; + }; +#endif //RD_SLIDING_ANIMATION_EFFECTS + + +#endif