00001 /* 00002 * ============================================================================ 00003 * Name : AknPopupHeadingPane.h 00004 * Part of : Avkon 00005 * 00006 * Description: 00007 * Heading pane 00008 * Version: 00009 * 00010 * Copyright © 2002 Nokia Corporation. 00011 * This material, including documentation and any related 00012 * computer programs, is protected by copyright controlled by 00013 * Nokia Corporation. All rights are reserved. Copying, 00014 * including reproducing, storing, adapting or translating, any 00015 * or all of this material requires the prior written consent of 00016 * Nokia Corporation. This material also contains confidential 00017 * information which may not be disclosed to others without the 00018 * prior written consent of Nokia Corporation. 00019 * ============================================================================ 00020 */ 00021 00022 #ifndef AKNPOPUPHEADINGPANE_H 00023 #define AKNPOPUPHEADINGPANE_H 00024 00025 // INCLUDES 00026 #include <AknControl.h> 00027 00028 #include <eikbtgpc.h> 00029 #include <aknutils.h> 00030 00031 00032 #include <aknappui.h> 00033 #include <aknpopup.h> 00034 #include <gulicon.h> 00035 00036 // FORWARD DECLARATIONS 00037 class CAknTextControl; 00038 class CEikImage; 00039 class CAknBitmapAnimation; 00040 class CAknPopupHeadingAttributes; 00041 class CAknPopupHeadingPaneExtension; 00042 00043 // CLASS DECLARATION 00044 00051 class CAknPopupHeadingPane : public CAknControl 00052 { 00053 public: 00057 enum THeadingPaneLayout 00058 { 00060 EQueryHeadingPane, 00062 EListHeadingPane, 00064 EColourSelectionGridHeadingPane, 00066 EMessageQueryHeadingPane 00067 }; 00068 00069 00070 public: 00074 IMPORT_C CAknPopupHeadingPane(); 00075 00079 IMPORT_C ~CAknPopupHeadingPane(); 00080 00086 IMPORT_C void SizeChanged(); 00087 00093 IMPORT_C TSize MinimumSize(); 00094 00100 IMPORT_C void ConstructL(TPtrC aText); 00101 00110 IMPORT_C void ConstructFromResourceL(TResourceReader &aReader); 00111 00116 IMPORT_C CEikLabel *Prompt() const; 00117 00122 IMPORT_C TPtr PromptText() const; 00123 00128 IMPORT_C void SetTextL(TPtrC aText); 00129 00130 00135 IMPORT_C void SetHeaderImageOwnedL(CEikImage *aImage); 00136 00141 IMPORT_C void SetHeaderImageL(CEikImage *aImage); 00142 00147 IMPORT_C void SetHeaderAnimationL(TInt aResourceId); 00148 00153 IMPORT_C void SetLayout( THeadingPaneLayout aLayout ); 00154 00158 IMPORT_C void StartAnimationL(); 00159 00166 IMPORT_C TInt CancelAnimation(); 00167 00168 public: 00173 virtual void ActivateL(); 00174 IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 00175 00182 IMPORT_C void HandleResourceChange(TInt aType); 00183 00184 private: 00188 IMPORT_C void* ExtensionInterface( TUid aInterface ); 00189 00190 private: 00191 TInt CountComponentControls() const; 00192 CCoeControl* ComponentControl(TInt anIndex) const; 00193 IMPORT_C virtual void Draw(const TRect& aRect) const; 00194 00195 void DoSetPromptL(); 00196 void LayoutQueryHeadingPane(); 00197 void LayoutListHeadingPane(); 00198 void LayoutColourSelectionGridHeadingPane(); 00199 void LayoutMessageQueryHeadingPane(); 00200 00201 private: 00202 //TAknLayoutRect iLayoutLine; // Not used 00203 CAknPopupHeadingPaneExtension* iExtension; // was TAknLayoutRect iLayoutLine 00204 TAknLayoutRect iLayoutHeading; 00205 CAknTextControl* iPrompt; 00206 CEikImage* iHeaderImage; 00207 CAknBitmapAnimation* iAnimation; 00208 TInt iHeadingLayoutRef; 00209 CAknPopupHeadingAttributes* iAttributes; // was THeadingPaneLayout iLayout; 00210 00211 private: // new methods 00212 void SetAnimationBackGroundFrameL(); 00213 00214 public: // new methods 00215 void SetPageL(TInt aCurrent, TInt aMax=0); 00216 00221 IMPORT_C void SetSkinFrameId(const TAknsItemID &aFrameId); 00222 IMPORT_C void SetSkinFrameCenterId(const TAknsItemID &aFrameCenterId); 00223 00224 00225 private: 00226 HBufC* PageTextL() const; 00227 }; 00228 00229 #endif 00230