sipplugins/sippsipsettingsui/src/gssiptimer.cpp
changeset 0 307788aac0a8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sipplugins/sippsipsettingsui/src/gssiptimer.cpp	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,155 @@
+// Copyright (c) 2002-2009 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:  Timer for Hight light listbox item Container
+//
+//
+
+
+// INCLUDE FILES
+
+#include "gssiptimer.h"
+#include  "gssippluginlogger.h"
+
+// LOCAL CONSTANTS AND MACROS
+const TInt KTimerPeriod = 6;
+
+
+// -----------------------------------------------------------------------------
+// CGSSIPTimer::NewL()
+// -----------------------------------------------------------------------------
+//
+CGSSIPTimer* CGSSIPTimer::NewL( const CCoeControl& aContainer, 
+                                CListItemDrawer& aListItemDrawer )
+    {
+    __GSLOGSTRING("CGSSIPTimer::NewL" )
+    CGSSIPTimer* self = new( ELeave ) CGSSIPTimer( aContainer, aListItemDrawer );
+        
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CGSSIPTimer::CGSSIPTimer()
+// -----------------------------------------------------------------------------
+//
+CGSSIPTimer::CGSSIPTimer( const CCoeControl& aContainer, 
+                          CListItemDrawer& aListItemDrawer )
+    : iTotal( 0 ),
+      iContainer ( aContainer ),
+      iListItemDrawer ( aListItemDrawer ),
+      iIfStart ( EFalse )
+    {
+    __GSLOGSTRING("CGSSIPTimer::CGSSIPTimer" )
+    }
+
+// -----------------------------------------------------------------------------
+// CGSSIPTimer::~CGSSIPTimer()
+// DestructL.
+// -----------------------------------------------------------------------------
+//
+CGSSIPTimer::~CGSSIPTimer()
+    {
+    __GSLOGSTRING("CGSSIPTimer::~CGSSIPTimer" )
+    delete iHeart;
+    iHeart = NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// CGSSIPTimer::ConstructL()
+// ConstructL.
+// -----------------------------------------------------------------------------
+//
+void CGSSIPTimer::ConstructL()
+    {
+    iHeart = CHeartbeat::NewL( CActive::EPriorityStandard );
+    }
+
+// -----------------------------------------------------------------------------
+// CGSSIPTimer::StartTimer()
+// Start a Heart beat.
+// -----------------------------------------------------------------------------
+//
+void CGSSIPTimer::StartTimer()
+    {
+    __GSLOGSTRING("CGSSIPTimer::StartTimer" )
+    iTotal = 0;
+    
+    if ( !iIfStart )
+        {
+        iIfStart = ETrue;
+        iHeart->Start( ETwelveOClock, this );
+        }
+    
+    }
+
+// -----------------------------------------------------------------------------
+// CGSSIPTimer::StopTimer()
+// Stop a Heart beat.
+// -----------------------------------------------------------------------------
+//
+void CGSSIPTimer::StopTimer()
+    {
+    __GSLOGSTRING("CGSSIPTimer::StopTimer" )
+    if (iIfStart )
+        {
+         iHeart->Cancel();
+        iIfStart = EFalse;
+        iTotal = 0;
+        }
+    else
+        {
+        iListItemDrawer.SetFlags( CTextListItemDrawer::EDisableHighlight );
+        iContainer.DrawNow();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CGSSIPTimer::Beat()
+// Count and stop stop.
+// -----------------------------------------------------------------------------
+//
+void CGSSIPTimer::Beat()
+    {
+    iTotal++;
+     if( iTotal >= KTimerPeriod )
+         {
+          StopTimer();
+          iListItemDrawer.SetFlags( CTextListItemDrawer::EDisableHighlight );
+          iContainer.DrawNow();
+         }
+    }
+
+// -----------------------------------------------------------------------------
+// CGSSIPTimer::Synchronize()
+// Synchronize.
+// -----------------------------------------------------------------------------
+//
+void CGSSIPTimer::Synchronize()
+    {
+    return;
+    }
+
+// -----------------------------------------------------------------------------
+// CGSSIPTimer::IsStarted()
+// IsStarted.
+// -----------------------------------------------------------------------------
+//
+TBool CGSSIPTimer::IsStarted() const
+    {
+    return iIfStart;
+    }
+
+//  End of File