00001 /* 00002 * ============================================================================ 00003 * Name : AknInfrm.h 00004 * Part of : Avkon 00005 * 00006 * Description: 00007 * Version: 00008 * 00009 * Copyright © 2002 Nokia Corporation. 00010 * This material, including documentation and any related 00011 * computer programs, is protected by copyright controlled by 00012 * Nokia Corporation. All rights are reserved. Copying, 00013 * including reproducing, storing, adapting or translating, any 00014 * or all of this material requires the prior written consent of 00015 * Nokia Corporation. This material also contains confidential 00016 * information which may not be disclosed to others without the 00017 * prior written consent of Nokia Corporation. 00018 * ============================================================================ 00019 */ 00020 00021 // INCLUDES 00022 #ifndef __AKNINFRM_H__ 00023 #define __AKNINFRM_H__ 00024 00025 00026 #include <eikdef.h> 00027 #include <eikbctrl.h> 00028 #include <gulicon.h> 00029 #include <eiklabel.h> 00030 #include <aknutils.h> 00031 #include <avkon.rsg> 00032 00033 class CAknsFrameBackgroundControlContext; 00034 #start_since SINCE_3_1_SDK 00035 class CAknsBasicBackgroundControlContext; 00036 #end_since SINCE_3_1_SDK 00037 // CLASS DECLARATION 00043 NONSHARABLE_CLASS(CAknInputFrame) : public CEikBorderedControl, public MCoeControlObserver 00044 { 00045 public: 00046 00050 CAknInputFrame(); 00051 00056 IMPORT_C ~CAknInputFrame(); 00057 00069 IMPORT_C static CAknInputFrame* NewL(CCoeControl* aField,TBool aComponentOwner, 00070 const TDesC& aBitmapfile, TInt aBitmapId, TInt aMaskId, 00071 TUint32 aFlags = 0 ); 00081 IMPORT_C static CAknInputFrame* NewL(CCoeControl* aField,TBool aComponentOwner, 00082 CGulIcon* aIcon, TUint32 aFlags = 0 ); 00087 IMPORT_C CCoeControl* Field() const; 00088 00094 IMPORT_C void SetInfoTextL(const TDesC& aText); 00095 00101 IMPORT_C void SetLineState(TBool aLineVisible); 00102 00108 void SetIcon(CGulIcon* aIcon); 00109 00110 public: //from MCoeControlObserver 00111 00118 IMPORT_C void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType); 00119 00120 public: //from CCoeControl 00121 00129 IMPORT_C TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); 00130 00135 IMPORT_C TSize MinimumSize(); 00136 00141 IMPORT_C void ConstructFromResourceL(TResourceReader& aReader); 00142 00149 IMPORT_C void SetInputContext(CAknsFrameBackgroundControlContext* aContext); 00150 00151 00152 private: // From CCoeControl 00153 void SizeChanged(); 00154 void FocusChanged(TDrawNow aDrawNow); 00155 void Draw(const TRect& aRect) const; 00156 void PrepareForFocusLossL(); 00157 00158 private: 00159 void BaseConstructL(CCoeControl* aField, TBool aOwner, TUint32 aFlags); 00160 void ConstructL(CCoeControl* aField, TBool aOwner, const TDesC& aFileName, TInt aBitmapId, TInt aMaskId, TUint32 aFlags); 00161 void ConstructL(CCoeControl* aField, TBool aOwner, CGulIcon* aIcon, TUint32 aFlags); 00162 00163 public: 00165 enum TInputFrameFlags 00166 { 00168 EOwnsField=0x40, 00170 EPopupLayout=0x80, 00172 EPinbLayout=0x100, 00174 EClockAppLayout=0x200, 00176 EFixedFindWithoutLine = 0x400, 00178 EShowIndicators = 0x800, 00180 EPopupWindowLayout=0x1000 00181 }; 00182 00183 private: 00184 enum TInfrmPrivateFlags 00185 { 00186 EOwnsInputContext = 0x2000 00187 }; 00188 00189 CGulIcon* iIcon; 00190 TUint32 iFlags; 00191 TAknLayoutRect iMagnIconPos; // position of the looking glass icon 00192 // sizeof(Taknlayoutrect)=20 sizeof(TRect)=16 sizeof(CCoeControl*)=4 sizeof TAknsItemID=8 00193 TRect iOutlineRect; // was first 16 bytes of TAknLayoutRect iOutlineRect; 00194 00195 CCoeControl *iField; // bytes 0..3 of TAknLayoutRect iUnused7; 00196 CAknsFrameBackgroundControlContext *iPopupFindCC; // bytes 4..7 of TAknLayoutRect iUnused7; 00197 CAknsFrameBackgroundControlContext *iInputContext; // bytes 8..11 of TAknLayoutRect iUnused7; 00198 TAknsItemID iIconSkinID; // bytes 12..19 of TAknLayoutRect iUnused7; 00199 CAknsBasicBackgroundControlContext *iPopupListCC; // was TAny* iExtension; // not used 00200 00201 00202 // these are unused 00203 TAknLayoutRect iUnUsed1; 00204 TAknLayoutRect iUnUsed2; 00205 TAknLayoutRect iUnused3; 00206 TAknLayoutRect iUnused4; 00207 TAknLayoutRect iUnused5; 00208 TAknLayoutRect iUnused6; 00209 00210 TAny* iSpare; // WAS CEikLabel* iInfoText; 00211 TAny* iSpare2; // was last 4 bytes of TAknLayoutRect iOutlineRect; 00212 }; 00213 00214 00215 #endif 00216 00217 00218