--- /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 <e32base.h>
+
+#ifdef RD_UI_TRANSITION_EFFECTS_POPUPS
+#include <akntransitionutils.h>
+#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. <SKIN> 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