upnpframework/upnpcommonui/src/upnpnavipanecontainer.cpp
branchIOP_Improvements
changeset 40 08b5eae9f9ff
parent 39 6369bfd1b60d
child 41 b4d83ea1d6e2
--- a/upnpframework/upnpcommonui/src/upnpnavipanecontainer.cpp	Mon Nov 01 13:44:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,640 +0,0 @@
-/*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Source file for UPnP navi pane container
-*
-*/
-
-
-
-// INCLUDE FILES
-// system
-#include <AknUtils.h>
-#include <upnpstring.h>
-#include <aknlists.h>
-#include <AknIconArray.h>
-#include <aknnavilabel.h>
-#include <aknnavide.h>
-#include <akntitle.h>
-#include <StringLoader.h>
-#include <aknnotewrappers.h> 
-#include <layoutmetadata.cdl.h> 
-#include <eiklabel.h>
-#include <AknIconUtils.h>
-#include <AknsBasicBackgroundControlContext.h>
-#include <data_caging_path_literals.hrh>
-#include <layoutmetadata.cdl.h>
-#include <AknBidiTextUtils.h>
-#include <bautils.h>
-
-// internal
-#include "upnpnavipanecontainer.h"
-#include <upnpcommonui.rsg>
-#include <upnpcommonui.mbg>
-#include "upnpperiodic.h"
-
-_LIT( KComponentLogfile, "commonui.txt");
-#include "upnplog.h"
-
-_LIT( KAknCommonUIMbmFileName, "\\resource\\apps\\upnpcommonui.mbm" );
-
-// CONSTANTS
-const TInt KPeriodicTimerDelay = 1000000; // microseconds
-const TInt KPeriodicTimerInterval = 200000; // microseconds
-_LIT( KUPnPCommonUiRscFile, "\\resource\\upnpcommonui.rsc" );
-
-// ============================ MEMBER FUNCTIONS ============================
-
-// --------------------------------------------------------------------------
-// CUPnPNaviPaneContainer::CUPnPNaviPaneContainer
-// --------------------------------------------------------------------------
-//
-CUPnPNaviPaneContainer::CUPnPNaviPaneContainer()
-    {
-    }
-    
-// --------------------------------------------------------------------------
-// CUPnPNaviPaneContainer::NewL
-// --------------------------------------------------------------------------
-//
-EXPORT_C CUPnPNaviPaneContainer* CUPnPNaviPaneContainer::NewL( 
-                                     const TRect& aRect,
-                                     TPoint aPosition,
-                                     CAknNavigationControlContainer* aParent )
-    {
-    CUPnPNaviPaneContainer* self = new ( ELeave ) CUPnPNaviPaneContainer();
-    CleanupStack::PushL( self );
-    self->ConstructL( aRect, aPosition, aParent );
-    CleanupStack::Pop();
-    return self;
-    }    
-
-// --------------------------------------------------------------------------
-// CUPnPNaviPaneContainer::ConstructL
-// --------------------------------------------------------------------------
-//
-void CUPnPNaviPaneContainer::ConstructL( 
-                                 const TRect& aRect, 
-                                 TPoint aPosition,
-                                 CAknNavigationControlContainer* aParent )
-    {
-    iCoeEnv = CEikonEnv::Static();
-    RFs& fileSession = iCoeEnv->FsSession();
-
-    // Load common ui resource file
-    TFileName rscFileName( KUPnPCommonUiRscFile );
-    TFileName dllName;
-    Dll::FileName( dllName );
-    TBuf<2> drive = dllName.Left( 2 ); // Drive letter followed by ':' 
-    rscFileName.Insert( 0, drive );
-    
-    // Get the exact filename of the resource file
-    BaflUtils::NearestLanguageFile( fileSession, rscFileName );
-    // Check if the resource file exists or not
-    if ( !BaflUtils::FileExists( fileSession, rscFileName ) )
-        {
-        User::Leave( KErrNotFound );
-        }
-    iResFileOffset = iCoeEnv->AddResourceFileL( rscFileName );
-    
-    
-    // Create label    
-    iFirstDrawDelayWaited = EFalse;
-
-    iPosition.iX = aPosition.iX;
-    iPosition.iY = aPosition.iY;
-    
-    TRect backgroundRect = aRect;
-    backgroundRect.iTl.iX = -iPosition.iX;
-       
-    iSkinContext = CAknsBasicBackgroundControlContext::NewL(
-       KAknsIIDQsnBgNavipaneSolid , backgroundRect, EFalse );
-       
-    SetPosition(iPosition);
-    
-    SetRect(aRect);
-    CreateWindowL( aParent );
-        
-    iIcon1 = LoadIconL( EFrame1, this );
-    iIcon2 = LoadIconL( EFrame2, this );
-    iIcon3 = LoadIconL( EFrame3, this );
-    iIcon4 = LoadIconL( EFrame4, this );
-    iIcon5 = LoadIconL( EFrame5, this );
-    iIcon6 = LoadIconL( EFrame6, this );
-    iIcon7 = LoadIconL( EFrame7, this );
-    iIcon8 = LoadIconL( EFrame8, this );
-    iIcon9 = LoadIconL( EFrame9, this );
-    
-    AknIconUtils::SetSize( iIcon1->Bitmap(), 
-                          TSize(aRect.Height(),
-                          aRect.Height() ) ); //width = height, on purpose
-                          
-    AknIconUtils::SetSize( iIcon2->Bitmap(),
-                          TSize(aRect.Height(),
-                          aRect.Height() ) ); //width = height, on purpose
-                          
-    AknIconUtils::SetSize( iIcon3->Bitmap(),
-                          TSize(aRect.Height(),
-                          aRect.Height() ) ); //width = height, on purpose
-                          
-    AknIconUtils::SetSize( iIcon4->Bitmap(),
-                          TSize(aRect.Height(),
-                          aRect.Height() ) ); //width = height, on purpose
-
-    AknIconUtils::SetSize( iIcon5->Bitmap(),
-                          TSize(aRect.Height(),
-                          aRect.Height() ) ); //width = height, on purpose
-
-    AknIconUtils::SetSize( iIcon6->Bitmap(),
-                          TSize(aRect.Height(),
-                          aRect.Height() ) ); //width = height, on purpose
-
-    AknIconUtils::SetSize( iIcon7->Bitmap(),
-                          TSize(aRect.Height(),
-                          aRect.Height() ) ); //width = height, on purpose
-
-    AknIconUtils::SetSize( iIcon8->Bitmap(),
-                          TSize(aRect.Height(),
-                          aRect.Height() ) ); //width = height, on purpose
-
-    AknIconUtils::SetSize( iIcon9->Bitmap(),
-                          TSize(aRect.Height(),
-                          aRect.Height() ) ); //width = height, on purpose
-                          
-    iNavipaneIcon = iIcon1; //set first image in animation
-    
-    iPeriodic = CUPnPPeriodic::NewL( CActive::EPriorityUserInput );
-    iPeriodic->Start( KPeriodicTimerDelay,
-                      KPeriodicTimerInterval,
-                      TCallBack(UpdateAnimationL, this ) );
-    
-    }
-    
-// --------------------------------------------------------------------------
-// CUPnPNaviPaneContainer::~CUPnPNaviPaneContainer
-// --------------------------------------------------------------------------
-//
-CUPnPNaviPaneContainer::~CUPnPNaviPaneContainer()
-    {
-    if ( iResFileOffset )
-        {
-        iCoeEnv->DeleteResourceFile( iResFileOffset );
-        iResFileOffset = 0;
-        }
-    
-    if ( iPeriodic )
-        {
-        iPeriodic->Cancel();
-        delete iPeriodic;
-        }
-    DeleteIcon( EFrame1 );
-    DeleteIcon( EFrame2 );
-    DeleteIcon( EFrame3 );
-    DeleteIcon( EFrame4 );
-    DeleteIcon( EFrame5 );
-    DeleteIcon( EFrame6 );
-    DeleteIcon( EFrame7 );
-    DeleteIcon( EFrame8 );
-    DeleteIcon( EFrame9 );
-    delete iSkinContext;
-    /*
-    delete iLabel;
-    */
-    }
-    
-// --------------------------------------------------------------------------
-// CUPnPNaviPaneContainer::CountComponentControls
-// --------------------------------------------------------------------------
-//
-TInt CUPnPNaviPaneContainer::CountComponentControls() const
-    {
-    return 0;
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPNaviPaneContainer::ComponentControl
-// --------------------------------------------------------------------------
-//
-CCoeControl* CUPnPNaviPaneContainer::ComponentControl( TInt /*aIndex*/ ) const
-    {
-    return NULL;
-    }
-    
-// --------------------------------------------------------------------------
-// CUPnPNaviPaneContainer::Draw
-// --------------------------------------------------------------------------
-//
-void CUPnPNaviPaneContainer::Draw( const TRect& aRect ) const
-    {
-    // Do not draw custom navi pane in landscape orientation
-    if (Layout_Meta_Data::IsLandscapeOrientation() == EFalse)
-        {
-        if (iFirstDrawDelayWaited)
-            {        
-            CWindowGc& gc = SystemGc();
-            gc.Clear();
-        
-            MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-        
-            if (iSkinContext)
-                {//Draw the skin background
-                AknsDrawUtils::Background(
-                    skin, iSkinContext, this, gc, aRect);
-                }
-            else
-                {//  clear the area
-                gc.SetBrushColor( iEikonEnv->ControlColor(
-                                  EColorWindowBackground, *this ) );
-                gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
-                gc.Clear( aRect );
-                }
-    
-    
-            const CFont* normalFont = iCoeEnv->AnnotationFont();
-            TInt baseline = ((aRect.Height() / 2) +
-                         (normalFont->AscentInPixels() / 2));
-       
-            TRgb color(0,0,0);
-
-            TInt err = AknsUtils::GetCachedColor( skin, color, 
-                                                  KAknsIIDQsnTextColors, 
-                                                  EAknsCIQsnTextColorsCG2 );
-
-   
-            gc.UseFont(normalFont);
-            if( KErrNone == err )
-                {
-                gc.SetPenColor( color );    
-                }
-            else
-                {
-                gc.SetPenColor( KRgbBlack );
-                }
-            gc.SetBrushStyle( CGraphicsContext::ENullBrush );
-    
-            HBufC* naviPaneText = NULL;
-            TRAP( err,  naviPaneText = StringLoader::LoadL(
-                                  R_UPNPCOMMONUI_SERVER_SEARCH_MAIN ) );
-            
-            TSize animationFrameSize =
-                  iNavipaneIcon->Bitmap()->SizeInPixels();
-          
-            const TInt textWidth = (aRect.Width() - 
-                                    animationFrameSize.iWidth);
-    
-            TBuf< 128 > textBuffer;
-            
-            if( KErrNone == err )
-                {
-                if (AknBidiTextUtils::ConvertToVisualAndClip( *naviPaneText,
-                                                           textBuffer,
-                                                          *normalFont,
-                                                           textWidth,
-                                                           textWidth))
-                    {
-                    gc.DrawText(textBuffer, aRect, baseline,
-                                CGraphicsContext::ELeft);    
-                    }
-                else //text not clipped, default case
-                    {
-                    gc.DrawText(textBuffer, aRect, baseline,
-                                CGraphicsContext::ELeft);
-                    }
-                delete naviPaneText;
-                }
-            TPoint upperLeftCorner((aRect.Width() - 
-                                   animationFrameSize.iWidth), 0);
-                                   
-            gc.BitBltMasked(upperLeftCorner, iNavipaneIcon->Bitmap(), Rect(),
-                                         iNavipaneIcon->Mask(), EFalse);
-            }
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPNaviPaneContainer::LoadIconL
-// --------------------------------------------------------------------------
-//
-
-
-CGulIcon* CUPnPNaviPaneContainer::LoadIconL( TAnimationFrames aAnimationState,
-                                             TAny* aDlg)
-    {
-    static_cast<CUPnPNaviPaneContainer*>( aDlg )->
-                                            DeleteIcon( aAnimationState );
-    
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    CFbsBitmap* bitmap = NULL;
-    CFbsBitmap* mask = NULL;
-    TInt id = 0;
-    TInt maskId = 0;
-    TAknsItemID skinId = KAknsIIDNone;
-    
-    switch ( aAnimationState )
-        {
-        
-        case EFrame1:
-            {
-            id = EMbmUpnpcommonuiQgn_indi_upnp_search_1;
-            maskId = EMbmUpnpcommonuiQgn_indi_upnp_search_1_mask;
-            skinId = KAknsIIDQsnBgNavipaneSolid;
-            break;
-            }
-        case EFrame2:
-            {
-            id = EMbmUpnpcommonuiQgn_indi_upnp_search_2;
-            maskId = EMbmUpnpcommonuiQgn_indi_upnp_search_2_mask;
-            skinId = KAknsIIDQsnBgNavipaneSolid;
-            break;
-            }
-        case EFrame3:
-            {
-            id = EMbmUpnpcommonuiQgn_indi_upnp_search_3;
-            maskId = EMbmUpnpcommonuiQgn_indi_upnp_search_3_mask;
-            skinId = KAknsIIDQsnBgNavipaneSolid;
-            break;
-            }
-        case EFrame4:
-            {
-            id = EMbmUpnpcommonuiQgn_indi_upnp_search_4;
-            maskId = EMbmUpnpcommonuiQgn_indi_upnp_search_4_mask;
-            skinId = KAknsIIDQsnBgNavipaneSolid;
-            break;
-            }
-        case EFrame5:
-            {
-            id = EMbmUpnpcommonuiQgn_indi_upnp_search_5;
-            maskId = EMbmUpnpcommonuiQgn_indi_upnp_search_5_mask;
-            skinId = KAknsIIDQsnBgNavipaneSolid;
-            break;
-            }
-        case EFrame6:
-            {
-            id = EMbmUpnpcommonuiQgn_indi_upnp_search_6;
-            maskId = EMbmUpnpcommonuiQgn_indi_upnp_search_6_mask;
-            skinId = KAknsIIDQsnBgNavipaneSolid;
-            break;
-            }
-        case EFrame7:
-            {
-            id = EMbmUpnpcommonuiQgn_indi_upnp_search_7;
-            maskId = EMbmUpnpcommonuiQgn_indi_upnp_search_7_mask;
-            skinId = KAknsIIDQsnBgNavipaneSolid;
-            break;
-            }
-        case EFrame8:
-            {
-            id = EMbmUpnpcommonuiQgn_indi_upnp_search_8;
-            maskId = EMbmUpnpcommonuiQgn_indi_upnp_search_8_mask;
-            skinId = KAknsIIDQsnBgNavipaneSolid;
-            break;
-            }
-        case EFrame9:
-            {
-            id = EMbmUpnpcommonuiQgn_indi_upnp_search_9;
-            maskId = EMbmUpnpcommonuiQgn_indi_upnp_search_9_mask;
-            skinId = KAknsIIDQsnBgNavipaneSolid;
-            break;
-            }    
-        default:
-            {
-            break;
-            }
-        }
-    
-    TFileName mbmFileName( KAknCommonUIMbmFileName );
-    TFileName dllName;
-    Dll::FileName( dllName );
-    TBuf<2> drive = dllName.Left( 2 ); // Drive letter followed by ':' 
-    mbmFileName.Insert( 0, drive );
-    
-    AknsUtils::CreateIconL( skin,
-                             skinId,                             
-                             bitmap,
-                             mask,
-                             mbmFileName,
-                             id,
-                             maskId );
-                             
-     CleanupStack::PushL(mask);
-     CleanupStack::PushL(bitmap);                         
-    
-    
-   // Get the color of the search text 
-    TRgb color(0,0,0);
-    TBool useWhite = EFalse;
-    TInt err = AknsUtils::GetCachedColor( skin, color, 
-                                    KAknsIIDQsnTextColors, 
-                                    EAknsCIQsnTextColorsCG2 );
-
-
-    
-     // If text color is closer to white, use white animation
-    if( KErrNone == err && 
-        color.Difference(KRgbBlack) > color.Difference(KRgbWhite))
-        {
-        useWhite = ETrue;
-        } 
-    
-    
-    
-    err = KErrNone;
-    if( useWhite )
-        {
-        TInt imgSize = static_cast<CUPnPNaviPaneContainer*>( 
-                                        aDlg )->Rect().Height();
-        AknIconUtils::SetSize( bitmap,TSize(imgSize,imgSize) );
-        TSize size = bitmap->SizeInPixels();
-        
-        CleanupStack::PopAndDestroy(bitmap);
-        bitmap = new(ELeave) CFbsBitmap();
-        CleanupStack::PushL(bitmap);
-        err = bitmap->Create(size, EColor16M);
-        }    
-                            
-        
-    CGulIcon* icon = CGulIcon::NewL( bitmap, mask );
-    icon->SetBitmapsOwnedExternally( EFalse );
-
-    CleanupStack::Pop( bitmap ); // bitmap, mask
-    CleanupStack::Pop( mask ); // bitmap, mask
-    bitmap = NULL;
-    mask = NULL;
-    
-    return icon;
-    }
-
-void CUPnPNaviPaneContainer::DeleteIcon( TAnimationFrames aAnimationState )
-    {
-    switch ( aAnimationState )
-        {
-        case EFrame1:
-            {
-            delete iIcon1;
-            iIcon1 = NULL;
-            break;
-            }
-        case EFrame2:
-            {
-            delete iIcon2;
-            iIcon2 = NULL;
-            break;
-            }
-        case EFrame3:
-            {
-            delete iIcon3;
-            iIcon3 = NULL;
-            break;
-            }
-        case EFrame4:
-            {
-            delete iIcon4;
-            iIcon4 = NULL;
-            break;
-            }
-        case EFrame5:
-            {
-            delete iIcon5;
-            iIcon5 = NULL;
-            break;
-            }
-        case EFrame6:
-            {
-            delete iIcon6;
-            iIcon6 = NULL;
-            break;
-            }
-        case EFrame7:
-            {
-            delete iIcon7;
-            iIcon7 = NULL;
-            break;
-            }
-        case EFrame8:
-            {
-            delete iIcon8;
-            iIcon8 = NULL;
-            break;
-            }
-        case EFrame9:
-            {
-            if (iIcon9)
-                {
-                delete iIcon9;
-                iIcon9 = NULL;
-                }
-            break;
-            }
-        default:
-            break;
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPNaviPaneContainer::UpdateAnimation
-// --------------------------------------------------------------------------
-//
-
-TBool CUPnPNaviPaneContainer::UpdateAnimationL( TAny* aDlg )
-    {       
-    CUPnPNaviPaneContainer* dlg = 
-                    static_cast<CUPnPNaviPaneContainer*>( aDlg );
-    
-    if ( !dlg->iFirstDrawDelayWaited )
-        {
-        dlg->iFirstDrawDelayWaited = ETrue;
-        }
-        
-    switch ( dlg->iAnimationIndex++ % 9 )
-        {
-        case 0:
-            {
-            dlg->iNavipaneIcon = dlg->iIcon1;
-            break;
-            }
-        case 1:
-            {
-            dlg->iNavipaneIcon = dlg->iIcon2;
-            break;
-            }
-        case 2:
-            {
-            dlg->iNavipaneIcon = dlg->iIcon3;
-            break;
-            }
-        case 3:
-            {
-            dlg->iNavipaneIcon = dlg->iIcon4;
-            break;
-            }
-        case 4:
-            {
-            dlg->iNavipaneIcon = dlg->iIcon5;
-            break;
-            }
-        case 5:
-            {
-            dlg->iNavipaneIcon = dlg->iIcon6;
-            break;
-            }
-        case 6:
-            {
-            dlg->iNavipaneIcon = dlg->iIcon7;
-            break;
-            }
-        case 7:
-            {
-            dlg->iNavipaneIcon = dlg->iIcon8;
-            break;
-            }
-        case 8:
-            {
-            dlg->iNavipaneIcon = dlg->iIcon9;
-            break;
-            }
-        default:
-            {
-            // error
-            break;
-            }
-        }
-
-    if (dlg->iAnimationIndex >= 9)
-        {
-        dlg->iAnimationIndex = 0;
-        }   
-        
-    dlg->DrawAnimation();
-
-    return ETrue;
-    }
-
-// --------------------------------------------------------------------------
-// CUPnPNaviPaneContainer::DrawAnimation
-// --------------------------------------------------------------------------
-//
-
-void CUPnPNaviPaneContainer::DrawAnimation()
-    {
-    TPoint imagePosition;
-    imagePosition.iX = iPosition.iX;
-    imagePosition.iY = iPosition.iY;
-    CWindowGc& gc = SystemGc();
-    RDrawableWindow* drawWindow = DrawableWindow();    
-    gc.Activate( *drawWindow );    
-    Draw( Rect() );
-    gc.Deactivate();
-    }
-
-
-// End of file