S60 3rd Edition API Reference: aknnavi.h Source File

aknnavi.h

Go to the documentation of this file.
00001 /*
00002 * ============================================================================
00003 *  Name     : aknnavi.h
00004 *  Part of  : AVKON
00005 *
00006 *  Description:
00007 *     A default control in the status pane's navigation pane.
00008 *
00009 *
00010 *  Version:
00011 *
00012 *  Copyright © 2002 Nokia Corporation.
00013 *  This material, including documentation and any related 
00014 *  computer programs, is protected by copyright controlled by 
00015 *  Nokia Corporation. All rights are reserved. Copying, 
00016 *  including reproducing, storing,  adapting or translating, any 
00017 *  or all of this material requires the prior written consent of 
00018 *  Nokia Corporation. This material also contains confidential 
00019 *  information which may not be disclosed to others without the 
00020 *  prior written consent of Nokia Corporation.
00021 * ============================================================================
00022 */
00023 
00024 #ifndef AKNNAVI_H
00025 #define AKNNAVI_H
00026 
00027 #include <AknControl.h>
00028 #include <coeccntx.h>
00029 #include <aknvolumecontrol.h>
00030 
00031 class CAknNavigationDecorator;
00032 class CEikStatusPaneBase;
00033 class CFbsBitmap;
00034 class MAknTabObserver; 
00035 class CAknNavigationControlContainerExtension;
00036 class MAknsControlContext;
00037 
00038 class MAknNavigationDecoratorInterface
00039     {
00040 public:
00041     virtual ~MAknNavigationDecoratorInterface() { }
00042     virtual CCoeControl* DecoratedControl()=0;
00043     };
00044 
00045 class MAknNavigationContainerInterface
00046     {
00047 public:
00048     virtual ~MAknNavigationContainerInterface() { }
00049     virtual CAknNavigationDecorator* CreateMessageLabelL(const TDesC& aText)=0;
00050     virtual CAknNavigationDecorator* CreateTabGroupL()=0;
00051     virtual void PushL(CAknNavigationDecorator&)=0;
00052     virtual void Pop()=0;
00053     };
00054 
00055 
00056  
00060 class CAknNavigationControlContainer : public CAknControl, 
00061                                        public MCoeControlContext, 
00062                                        public MCoeControlObserver, 
00063                                        public MAknNavigationContainerInterface
00064     {
00065 
00066 public:
00067 
00068     DECLARE_TYPE_ID(0x101F8740) 
00069 
00070 public:
00071 
00077     IMPORT_C CAknNavigationControlContainer();
00078 
00084     IMPORT_C ~CAknNavigationControlContainer();
00085 
00089     IMPORT_C void ConstructL();
00090 
00098     IMPORT_C void ConstructFromResourceL(TResourceReader& aReader);
00099 
00107     IMPORT_C CAknNavigationDecorator* 
00108                     ConstructNavigationDecoratorFromResourceL(
00109                                                 TResourceReader& aReader);
00110 
00118     IMPORT_C CAknNavigationDecorator* CreateTabGroupL();
00119 
00127     IMPORT_C CAknNavigationDecorator* CreateTabGroupL(
00128                                             MAknTabObserver* aObserver);
00129 
00138     IMPORT_C CAknNavigationDecorator* CreateTabGroupL(
00139                                                 TResourceReader& aReader);
00140 
00150     IMPORT_C CAknNavigationDecorator* CreateTabGroupL(
00151                                             TResourceReader& aReader, 
00152                                             MAknTabObserver* aObserver);
00153 
00162     IMPORT_C CAknNavigationDecorator* CreateNavigationLabelL(
00163                                             const TDesC& aText = KNullDesC);
00164 
00173     IMPORT_C CAknNavigationDecorator* CreateNavigationLabelL(
00174                                                     TResourceReader& aReader);
00175 
00188     IMPORT_C CAknNavigationDecorator* CreateNavigationImageL(
00189                                         const CFbsBitmap* aBitmap = NULL, 
00190                                         const CFbsBitmap* aMaskBitmap = NULL);
00191 
00201     IMPORT_C CAknNavigationDecorator* CreateNavigationImageL(
00202                                             TResourceReader& aReader);
00203 
00213     IMPORT_C CAknNavigationDecorator* CreateMessageLabelL(
00214                                         const TDesC& aText = KNullDesC);
00215 
00225     IMPORT_C CAknNavigationDecorator* CreateMessageLabelL(
00226                                             TResourceReader& aReader);
00227 
00235     IMPORT_C CAknNavigationDecorator* CreateVolumeIndicatorL(TInt aResourceId);
00236 
00244     IMPORT_C CAknNavigationDecorator* CreateEditorIndicatorContainerL();
00245 
00254     IMPORT_C void PushDefaultL( TBool aAllowDuplicates = EFalse );
00255 
00268     IMPORT_C void PushL(CAknNavigationDecorator& aNaviPaneControl);
00269 
00278     IMPORT_C void Pop();
00279 
00286     IMPORT_C void Pop(CAknNavigationDecorator* aControl);
00287 
00296     IMPORT_C CAknNavigationDecorator* Top();
00297 
00298 #start_since SINCE_3_1_SDK
00299 
00312         IMPORT_C CAknNavigationDecorator* Top(TBool aIgnoreFepEditorIndicator) const;
00313 #end_since SINCE_3_1_SDK
00314     
00328     IMPORT_C TInt ReplaceL(CAknNavigationDecorator& aToBeReplaced, 
00329                                         CAknNavigationDecorator& aReplacement);
00330 
00339     IMPORT_C CAknNavigationDecorator* ResourceDecorator();
00340 
00347     CFbsBitmap& NaviArrowBitmap(TInt aId);
00348 
00349 public:
00350 
00351 #start_since SINCE_3_1_SDK
00352 
00364         IMPORT_C void SetPreferredNaviDecoratorLayoutStyle(TInt aLayoutStyle);
00365 #end_since SINCE_3_1_SDK
00366 
00371     IMPORT_C static TInt ColorScheme();
00372 
00378     void NotifyNaviWipeStatusL();
00379 
00385     static TInt CurrentNaviWipeBitmap();
00386 
00394     IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent);
00395 
00396 protected: // from CCoeControl
00397 
00403     IMPORT_C virtual void SizeChanged();
00404 
00413     IMPORT_C virtual void HandleResourceChange(TInt aType);
00414 
00422     IMPORT_C virtual TInt CountComponentControls() const;
00423 
00432     IMPORT_C virtual CCoeControl* ComponentControl(TInt aIndex) const;
00433 
00434 protected: // from MCoeControlObserver
00435 
00444     IMPORT_C void HandleControlEventL(CCoeControl* aControl, 
00445                                       TCoeEvent aEventType);
00446 
00447 private: // from CCoeControl
00448 
00449     IMPORT_C virtual void Draw(const TRect& aRect) const;
00450 
00451 private:
00452 
00456     IMPORT_C void* ExtensionInterface( TUid aInterface );
00457 
00458 public: 
00459     
00467     TBool NaviWipeUsed() const;
00468 
00474     CFbsBitmap* NaviColorBitmap() const;
00475 
00482     static void SetBackgroundContextAttributes(CCoeControl* aControl, 
00483                                                TBool aNaviWipeUsed);
00484 
00485 private:    
00486     TBool IsFepOwnedEditorIndicatorControl(CAknNavigationDecorator* aDecorator) const;
00487     void HandleVisibilityOfNonFepOwnedIndicatorControl(
00488         CAknNavigationDecorator* aDecorator, TBool aVisible);
00489 
00500     TBool DrawDefaultNaviWipe(CWindowGc& aGc, const TRect& aRect) const;
00501 
00512     TBool DrawDefaultNaviSolid(CWindowGc& aGc, const TRect& aRect) const;
00513 
00525     TBool DrawSkinnedNaviWipe(CWindowGc& aGc, const TRect& aRect, MAknsSkinInstance* aSkin, MAknsControlContext* aCc) const;
00526 
00538     TBool DrawSkinnedNaviSolid(CWindowGc& aGc, const TRect& aRect, MAknsSkinInstance* aSkin, MAknsControlContext* aCc) const;
00539 
00540 
00545     void LoadNaviColorBitmapL();
00546 
00547     void SetContainerWindowNonFading(TBool aNonFading);    
00548 
00549 protected: // from CCoeControl
00550 
00568     TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
00569 
00570 private:
00571         CEikStatusPaneBase* iStatusPane;
00572 
00573     CAknNavigationDecorator* iNaviDecoratorFromResource;
00574 
00575         typedef CArrayPtrFlat<CAknNavigationDecorator> CAknNaviPaneStack;
00576         CAknNaviPaneStack* iNaviPaneControls;
00577 
00578     CFbsBitmap* iNaviArrowBitmap[4];
00579 
00580         TInt  iSpare;
00581     CAknNavigationControlContainerExtension* iExtension;
00582         };
00583 
00584 
00585 // AKNNAVI_H
00586 #endif

Copyright © Nokia Corporation 2001-2007
Back to top