camerauis/cameraapp/generic/src/CamNaviProgressBarControl.cpp
branchRCL_3
changeset 24 bac7acad7cb3
child 25 2c87b2808fd7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraapp/generic/src/CamNaviProgressBarControl.cpp	Wed Sep 01 12:30:54 2010 +0100
@@ -0,0 +1,168 @@
+/*
+* Copyright (c) 2007 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:  Control for displaying remaining images/videos in Navi Pane
+*
+*  Copyright © 2007 Nokia.  All rights reserved.
+*  This material, including documentation and any related computer
+*  programs, is protected by copyright controlled by Nokia.  All
+*  rights are reserved.  Copying, including reproducing, storing,
+*  adapting or translating, any or all of this material requires the
+*  prior written consent of Nokia.  This material also contains
+*  confidential information which may not be disclosed to others
+*  without the prior written consent of Nokia.
+
+*
+*
+*/
+
+
+// INCLUDE FILES
+#include <AknsUtils.h>
+#include <e32base.h>
+#include "CamNaviProgressBarControl.h"
+#include "CamNaviProgressBarModel.h"
+#include "CamAppUi.h"
+#include "CamUtility.h"
+
+// CONSTANTS
+
+// ========================= MEMBER FUNCTIONS ================================
+
+// ---------------------------------------------------------
+// CCamNaviProgressBarControl::NewL
+// Factory construction function
+// ---------------------------------------------------------
+//
+CCamNaviProgressBarControl* CCamNaviProgressBarControl::NewL( CCamNaviProgressBarModel& aModel )
+    {
+    CCamNaviProgressBarControl* self = new( ELeave ) CCamNaviProgressBarControl( aModel );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// Destructor
+CCamNaviProgressBarControl::~CCamNaviProgressBarControl()
+    {
+    iModel.DeregisterObserver( this );
+    }
+
+// ---------------------------------------------------------
+// CCamNaviProgressBarControl::CCamNaviProgressBarControl
+// C++ constructor
+// ---------------------------------------------------------
+//
+CCamNaviProgressBarControl::CCamNaviProgressBarControl(CCamNaviProgressBarModel& aModel )
+    : iModel ( aModel ),
+    iActive ( EFalse )
+    {
+    }
+
+// ---------------------------------------------------------
+// CCamNaviProgressBarControl::ConstructL
+// Symbian OS 2nd phase constructor
+// ---------------------------------------------------------
+//
+void CCamNaviProgressBarControl::ConstructL()
+    {
+    iModel.RegisterObserverL( this );
+    }                
+
+// ---------------------------------------------------------
+// CCamNaviProgressBarControl::SizeChanged
+// Called by framework when the view size is changed
+// ---------------------------------------------------------
+//
+void CCamNaviProgressBarControl::SizeChanged()
+    {
+    // if the rectangle has width or height
+    if ( Rect().Size() != TSize( 0, 0 ) && iActive )
+        {
+        TRAP_IGNORE(iModel.SetExtentL( Rect() ));
+        TRAP_IGNORE(iModel.ReloadResourceDataL());
+        }
+
+//    AknsUtils::RegisterControlPosition( this );
+    }
+    
+// ---------------------------------------------------------
+// CCamNaviProgressBarControl::DrawNaviCtr
+// Draw the control
+// ---------------------------------------------------------
+//
+void 
+CCamNaviProgressBarControl::DrawProgressBar( CBitmapContext& aGc ) const
+	{
+	if ( iActive )
+	    {
+        iModel.DrawProgressBar( aGc, this );
+	    }
+	}
+
+// ---------------------------------------------------------
+// CCamNaviProgressBarControl::Draw
+// Draw the control
+// ---------------------------------------------------------
+//
+void CCamNaviProgressBarControl::Draw( const TRect& /* aRect */ ) const
+    {
+    PRINT( _L("Camera => CCamNaviProgressBarControl::Draw" ))
+    CWindowGc& gc=SystemGc();
+    
+    DrawProgressBar( gc );
+    }
+    
+// ---------------------------------------------------------
+// CCamNaviProgressBarControl::SetActive
+// Set's whether this control is currently active or not
+// ---------------------------------------------------------
+//
+void CCamNaviProgressBarControl::SetActiveL( TBool aActive )
+    {
+    iActive = aActive;
+    if ( iActive )
+        {
+        iModel.SetExtentL( Rect() );
+        }
+    }
+
+// ---------------------------------------------------------
+// CCamNaviProgressBarControl::HandleObservedEvent
+// Gets events from observed model
+// ---------------------------------------------------------
+//
+void CCamNaviProgressBarControl::HandleObservedEvent(TCamObserverEvent aEvent)
+    {
+    if ( ECamObserverEventNaviModelUpdated == aEvent )
+        {
+        if ( iActive )
+            {
+            CCamAppUi* appUi = static_cast<CCamAppUi*>( CEikonEnv::Static()->AppUi() );
+
+            if ( appUi && appUi->IsDirectViewfinderActive() )
+                {
+                TRAP_IGNORE(appUi->HandleCommandL( ECamCmdRedrawVideoTime ));
+                }
+            else
+                {
+                DrawDeferred();
+                }
+            }
+        }
+    }
+
+// End of File
+
+