|
1 /* |
|
2 * Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 #ifndef __EIKDIALOGEXT_H__ |
|
20 #define __EIKDIALOGEXT_H__ |
|
21 |
|
22 #include <e32base.h> |
|
23 |
|
24 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS |
|
25 #include <akntransitionutils.h> |
|
26 #endif |
|
27 |
|
28 class CEikDialogPageSelector ; |
|
29 class CEikDialog ; |
|
30 class CAknsListBoxBackgroundControlContext ; |
|
31 class CAknEdwinDrawingModifier ; |
|
32 class CAknMediatorFacade; |
|
33 |
|
34 /* |
|
35 * Extension structure for extra data members without breaking BC. |
|
36 * This header should not be a published interface. |
|
37 */ |
|
38 NONSHARABLE_CLASS(CEikDialogExtension) : public CActive |
|
39 { |
|
40 friend class CEikDialogPageSelector ; |
|
41 friend class CEikDialog ; |
|
42 |
|
43 public: |
|
44 /** |
|
45 * This enumeration encodes the way that CEikDialog is used in Averell. |
|
46 */ |
|
47 enum TLayoutCategory |
|
48 { |
|
49 ENotConstructed, // Returned if CEikDialog is not constructed enough to evaluate |
|
50 EUnknownLayout, // Layout is not known |
|
51 EFullScreenLayout, // returned if EEikDialogFlagFillAppClientRect has been set |
|
52 EFormLayout, // True if the object is a CAknForm and appriopriate resource has been used |
|
53 EPopupLayout // Popup layout; used for Notes, Queries; effectively the default |
|
54 }; |
|
55 /** |
|
56 * Returns the type of Averell Layout that this instance of CEikDialog is implementing. |
|
57 * This is internal API for use inside Averell only. |
|
58 * |
|
59 * @return TLayoutCategory |
|
60 */ |
|
61 IMPORT_C TLayoutCategory LayoutCategory() const; |
|
62 |
|
63 enum TPublicFlags |
|
64 { |
|
65 /** When set, dialog doesn't draw in the space of its child controls */ |
|
66 EClipChildControlRect, |
|
67 EUseVirtualInput, |
|
68 EDelayedExit, |
|
69 EFullyConstructed |
|
70 }; |
|
71 |
|
72 private : |
|
73 static CEikDialogExtension* NewL( const CEikDialog& aParent ) ; |
|
74 ~CEikDialogExtension() ; |
|
75 CEikDialogExtension( const CEikDialog& aParent ) ; |
|
76 |
|
77 /** |
|
78 * Symbian OS 2nd stage contruction |
|
79 */ |
|
80 void ConstructL(); |
|
81 |
|
82 protected: // from CActive |
|
83 void DoCancel(); |
|
84 void RunL(); |
|
85 |
|
86 private: |
|
87 void StartDelayedExit(); |
|
88 |
|
89 private: |
|
90 enum TFlags |
|
91 { |
|
92 EEditableStateInitialised, |
|
93 // whether dialog will show up with sliding effect or not |
|
94 ESlidingEnabled, |
|
95 ELayoutChangeWhileInvisible |
|
96 }; |
|
97 |
|
98 const CEikDialog& iParent ; // NOT OWNED. To access the dialog. |
|
99 CAknsListBoxBackgroundControlContext* iBgContext ; // OWNED. <SKIN> might need: CAknsListBoxBackgroundControlContext |
|
100 TBitFlags iFlags; |
|
101 CAknEdwinDrawingModifier* iDrawingModifier; // OWNED - detailed control of edwin drawing |
|
102 CAknMediatorFacade* iAknDSSD; |
|
103 TInt iButtonId; |
|
104 #ifdef RD_UI_TRANSITION_EFFECTS_POPUPS |
|
105 TUid iRegisteredContext; |
|
106 TBool iSleepDialogExitBeginCalled; |
|
107 #endif |
|
108 |
|
109 public: |
|
110 TBitFlags iPublicFlags; |
|
111 TBool iInitialMade; |
|
112 } ; |
|
113 |
|
114 |
|
115 #ifdef RD_SLIDING_ANIMATION_EFFECTS |
|
116 /** |
|
117 * Class used for fake sliding animation. |
|
118 * The control creates whole screen size window and slides dialog background in it. |
|
119 */ |
|
120 |
|
121 NONSHARABLE_CLASS(CEikDialogSlider) : public CCoeControl |
|
122 { |
|
123 public: |
|
124 ~CEikDialogSlider(); |
|
125 static CEikDialogSlider* NewL(CWindowGc& aWindowGc, CFbsBitmap*& aDialogBack, CFbsBitmap*& aScreen); |
|
126 void SlideDialogL(TPoint& aStart, TPoint& aEnd, TInt aStepCount); |
|
127 |
|
128 protected: |
|
129 CEikDialogSlider(CWindowGc& aWindowGc, CFbsBitmap*& aDialogBack, CFbsBitmap*& aScreen); |
|
130 void ConstructL(); |
|
131 void Draw(const TRect& aRect) const; |
|
132 |
|
133 private: |
|
134 CWindowGc& iWindowGc; |
|
135 CFbsBitmap* iDialogBack; |
|
136 CFbsBitmap* iScreen; |
|
137 TInt iSpare; |
|
138 }; |
|
139 #endif //RD_SLIDING_ANIMATION_EFFECTS |
|
140 |
|
141 |
|
142 #endif |