00001 // EIKPROGI.H 00002 // 00003 // Copyright (c) 1997-1999 Symbian Ltd. All rights reserved. 00004 // 00005 00006 #if !defined(__EIKPROGI_H__) 00007 #define __EIKPROGI_H__ 00008 00009 #if !defined(__EIKBCTRL_H__) 00010 #include <eikbctrl.h> 00011 #endif 00012 00013 #if !defined(__EIKON_HRH__) 00014 #include <eikon.hrh> 00015 #endif 00016 00017 class TGulBorder; 00018 class CEikProgressInfoExtension; 00019 00034 class CEikProgressInfo : public CEikBorderedControl 00035 { 00036 00037 public: 00038 00042 struct SInfo 00043 { 00048 TEikProgressTextType iTextType; 00049 00054 TInt iSplitsInBlock; 00055 00060 TInt iFinalValue; 00061 00063 TInt iWidth; 00064 00066 TInt iHeight; 00067 }; 00068 00072 struct SLayout 00073 { 00079 TRgb iFillColor; 00080 00086 TRgb iEmptyColor; 00087 00093 TRgb iFillTextColor; 00094 00100 TRgb iEmptyTextColor; 00101 00106 const CFont* iFont; 00107 00112 TInt iGapBetweenBlocks; 00113 }; 00114 00118 IMPORT_C ~CEikProgressInfo(); 00119 00123 IMPORT_C CEikProgressInfo(); 00124 00132 IMPORT_C CEikProgressInfo(const SInfo& aProgInfo); 00133 00140 IMPORT_C void IncrementAndDraw(TInt aInc); 00141 00148 IMPORT_C void SetAndDraw(TInt aValue); 00149 00158 IMPORT_C void ConstructFromResourceL(TResourceReader& aReader); 00159 00165 IMPORT_C void SetLayout(const SLayout& aLayout); 00166 00172 IMPORT_C void SetBorder(const TGulBorder& aBorder); 00173 00181 IMPORT_C void SetFinalValue(TInt aFinalValue); 00182 00186 IMPORT_C void ConstructL(); // AKNLAF 00187 00195 inline const SInfo& Info() const { return(iInfo); } 00196 00203 inline const SLayout& Layout() const { return(iLayout); } 00204 00210 inline TInt CurrentValue() const { return(iCurrentValue); } 00211 00212 protected: 00213 00224 IMPORT_C virtual const TDesC* EvaluateText(TDes& aTextBuf) const; 00225 00226 public: // from CCoeControl 00227 00233 IMPORT_C void ActivateL(); 00234 00242 IMPORT_C TSize MinimumSize(); 00243 00249 IMPORT_C void SizeChanged(); 00250 00260 IMPORT_C virtual void GetColorUseListL( 00261 CArrayFix<TCoeColorUse>& aColorUseList) const; 00262 00270 IMPORT_C virtual void HandleResourceChange(TInt aType); 00271 00288 IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); 00289 00290 protected: //from CCoeControl 00291 00302 IMPORT_C void WriteInternalStateL(RWriteStream& aWriteStream) const; 00303 00304 private: // from CCoeControl 00305 00306 IMPORT_C void Draw(const TRect& aRect) const; 00307 IMPORT_C void Reserved_2(); 00308 00309 private: 00310 00314 IMPORT_C void* ExtensionInterface( TUid aInterface ); 00315 00316 private: // internal use 00317 00318 void Construct(); 00319 void CheckSizeCalculated(); 00320 void DrawPartial()const; // AKNLAF 00321 void DrawProgressBarForeground(CWindowGc& aGc) const; //AKNLAF 00322 void DrawProgressBarBackground(CWindowGc& aGc) const; //AKNLAF 00323 TInt FilledWidth() const; //AKNLAF 00324 00325 private: 00326 00327 SInfo iInfo; 00328 SLayout iLayout; 00329 TInt iCurrentValue; 00330 TBool iHeightWasSupplied; 00331 CFbsBitmap* iBitmap; // AKNLAF 00332 CFbsBitmap* iBackgroundBitmap; // AKNLAF Not used, extension! 00333 CFbsBitmap* iBitmapMask; // AKNLAF 00334 //CFbsBitmap* iBackgroundBitmapMask; // AKNLAF 00335 CEikProgressInfoExtension* iExtension; 00336 00337 private: 00338 00339 void LoadBitmapsL(); 00340 void SetBitmapSizes(); 00341 void DeleteBitmaps(); 00342 }; 00343 00344 00345 // __EIKPROGI_H__ 00346 #endif