photosgallery/slideshow/view/src/shwgesturecontrol.cpp
branchRCL_3
changeset 9 6b87b143d312
parent 0 4e91876724a2
child 14 ce1c7ad1f18b
equal deleted inserted replaced
5:f7f0874bfe7d 9:6b87b143d312
    22 #include <alf/alfdisplay.h>
    22 #include <alf/alfdisplay.h>
    23 #include <alf/alfevent.h> 
    23 #include <alf/alfevent.h> 
    24 
    24 
    25 #include <glxlog.h>
    25 #include <glxlog.h>
    26 #include <glxtracer.h>
    26 #include <glxtracer.h>
       
    27 #include <glxpanic.h>
    27 #include "shwslideshowengine.h"
    28 #include "shwslideshowengine.h"
    28 #include "shwgesturecontrol.h"
    29 #include "shwgesturecontrol.h"
    29 
    30 
    30 using namespace GestureHelper;
    31 using namespace GestureHelper;
    31 
    32 
    32 
    33 
    33 
       
    34 // -----------------------------------------------------------------------------
    34 // -----------------------------------------------------------------------------
    35 // NewL.
    35 // NewL.
    36 // -----------------------------------------------------------------------------
    36 // -----------------------------------------------------------------------------
    37 //
    37 //
    38 CShwGestureControl* CShwGestureControl::NewL( CAlfEnv& aEnv,CAlfDisplay& aDisplay,
    38 CShwGestureControl* CShwGestureControl::NewL( CAlfEnv& aEnv,CAlfDisplay& aDisplay)
    39 										MShwGestureObserver& aObserver)
       
    40 	{
    39 	{
    41 	TRACER("CShwGestureControl::NewL");
    40 	TRACER("CShwGestureControl::NewL");
    42 	GLX_LOG_INFO( "CShwGestureControl::NewL" );
    41 	GLX_LOG_INFO( "CShwGestureControl::NewL" );
    43 	CShwGestureControl* self = new(ELeave)CShwGestureControl(aObserver);
    42 	CShwGestureControl* self = new(ELeave)CShwGestureControl();
    44 	CleanupStack::PushL( self );
    43 	CleanupStack::PushL( self );
    45 	self->ConstructL( aEnv,aDisplay);
    44 	self->ConstructL( aEnv,aDisplay);
    46 	CleanupStack::Pop( self );
    45 	CleanupStack::Pop( self );
    47 	return self;
    46 	return self;
    48 	}
    47 	}
    49 
    48 
    50 // -----------------------------------------------------------------------------
    49 // -----------------------------------------------------------------------------
    51 // ConstructL.
    50 // ConstructL.
    52 // -----------------------------------------------------------------------------
    51 // -----------------------------------------------------------------------------
    53 //
    52 //
    54 void CShwGestureControl::ConstructL( CAlfEnv& aEnv,CAlfDisplay& aDisplay )
    53 void CShwGestureControl::ConstructL( CAlfEnv& aEnv,CAlfDisplay& aDisplay)
    55 	{
    54 	{
    56 	TRACER("CShwGestureControl::ConstructL");
    55 	TRACER("CShwGestureControl::ConstructL");
    57 	GLX_LOG_INFO( "CShwGestureControl::ConstructL" );
    56 	GLX_LOG_INFO( "CShwGestureControl::ConstructL" );
    58 	//CGestureControl::ConstructL(*this,aEnv,aDisplay,KShwgestureEventControlGroup);
    57 	//CGestureControl::ConstructL(*this,aEnv,aDisplay,KShwgestureEventControlGroup);
    59 	CAlfControl::ConstructL(aEnv);    
    58 	CAlfControl::ConstructL(aEnv);    
    62 
    61 
    63 // -----------------------------------------------------------------------------
    62 // -----------------------------------------------------------------------------
    64 // CShwGestureControl.
    63 // CShwGestureControl.
    65 // -----------------------------------------------------------------------------
    64 // -----------------------------------------------------------------------------
    66 //
    65 //
    67 CShwGestureControl::CShwGestureControl( MShwGestureObserver& aObserver):
    66 CShwGestureControl::CShwGestureControl( )
    68 					iObserver(aObserver)
       
    69 	{
    67 	{
       
    68 	TRACER("CShwGestureControl::CShwGestureControl");
    70 	//no implementation
    69 	//no implementation
    71 	}
    70 	}
    72 
    71 
    73 // -----------------------------------------------------------------------------
    72 // -----------------------------------------------------------------------------
    74 // ~CShwGestureControl.
    73 // ~CShwGestureControl.
    75 // -----------------------------------------------------------------------------
    74 // -----------------------------------------------------------------------------
    76 //	
    75 //  
    77 CShwGestureControl::~CShwGestureControl()
    76 CShwGestureControl::~CShwGestureControl()
    78 	{
    77     {
    79 	//no implementation
    78 	TRACER("CShwGestureControl::~CShwGestureControl");
    80 	}
    79     //no implementation
       
    80     }
       
    81 
       
    82 // -----------------------------------------------------------------------------
       
    83 // AddObserver
       
    84 // -----------------------------------------------------------------------------
       
    85 //
       
    86 void CShwGestureControl::AddObserver(MShwGestureObserver* aObserver) 
       
    87     {
       
    88     TRACER("CShwGestureControl::AddObserver");
       
    89     GLX_LOG_INFO("CShwGestureControl::AddObserver");
       
    90     __ASSERT_DEBUG( NULL != aObserver , Panic(EGlxPanicNullPointer)); 
       
    91     
       
    92     // dont want to observe the same thing again and again.
       
    93     if (iObservers.Find(aObserver) == KErrNotFound)
       
    94         {
       
    95         iObservers.Append(aObserver);
       
    96         GLX_LOG_INFO1("CShwGestureControl::AddObserver  Observer Added "
       
    97                 "observer count now [%d]", iObservers.Count());
       
    98         }
       
    99     }
       
   100 
       
   101 // -----------------------------------------------------------------------------
       
   102 // RemoveObserver
       
   103 // -----------------------------------------------------------------------------
       
   104 //
       
   105 void CShwGestureControl::RemoveObserver(MShwGestureObserver* aObserver)
       
   106     {
       
   107     TRACER("CShwGestureControl::RemoveObserver");
       
   108     GLX_LOG_INFO("CShwGestureControl::RemoveObserver");
       
   109     TInt observerPosition = iObservers.Find(aObserver);
       
   110     if (observerPosition != KErrNotFound)
       
   111         {
       
   112         iObservers.Remove(observerPosition);
       
   113         GLX_LOG_INFO1("CShwGestureControl::AddObserver  One Observer removed "
       
   114                 "observer count now [%d]", iObservers.Count());
       
   115         }
       
   116     }
    81 
   117 
    82 // -----------------------------------------------------------------------------
   118 // -----------------------------------------------------------------------------
    83 // HandleGestureL.
   119 // HandleGestureL.
    84 // -----------------------------------------------------------------------------
   120 // -----------------------------------------------------------------------------
    85 //
   121 //
    86 void CShwGestureControl::HandleGestureL( const GestureHelper::MGestureEvent& aEvent )
   122 void CShwGestureControl::HandleGestureL( const GestureHelper::MGestureEvent& aEvent )
    87 	{
   123 	{
    88 	TRACER("CShwGestureControl::HandleGestureL");
   124 	TRACER("CShwGestureControl::HandleGestureL");
    89 	GLX_LOG_INFO1( "CShwGestureControl::HandleGestureL(%d)", aEvent.Code( MGestureEvent::EAxisBoth ));
   125 	GLX_LOG_INFO1( "CShwGestureControl::HandleGestureL(%d)", aEvent.Code( MGestureEvent::EAxisBoth ));
    90 	// we are interested in only 
   126 
    91 	// swipe left(EGestureSwipeLeft) 
   127 	// No one is listening? Do not resolve the events for the listeners! 
    92 	// swipe right(EGestureSwipeRight)
   128 	if (iObservers.Count() > 0)
    93 	// and tap events
   129 	    {
    94 	
   130         MShwGestureObserver::TShwGestureEventType aType  = MShwGestureObserver::ENoEvent;
    95 		switch ( aEvent.Code( MGestureEvent::EAxisBoth ) )
   131 		switch ( aEvent.Code( MGestureEvent::EAxisBoth ) )
    96 		    {
   132 		    {
    97 		    	
       
    98 	    	case EGestureSwipeLeft:
   133 	    	case EGestureSwipeLeft:
    99 	    		{
   134 	    		{
   100 	    		//call back the view
   135 	    		aType  = MShwGestureObserver::ESwipeLeft ;
   101 				iObserver.HandleShwGestureEventL(MShwGestureObserver::ESwipeLeft);
       
   102 	    		break;
       
   103 	    		}
       
   104 	    	case EGestureHoldLeft:
       
   105 	    		{
       
   106 				//skip for now
       
   107 	    		break;
   136 	    		break;
   108 	    		}
   137 	    		}
   109 	    	case EGestureSwipeRight:  
   138 	    	case EGestureSwipeRight:  
   110 	    		{
   139 	    		{
   111 	    		//callback
   140 	    		aType  = MShwGestureObserver::ESwipeRight;
   112 				iObserver.HandleShwGestureEventL(MShwGestureObserver::ESwipeRight);
       
   113 	    		break;
       
   114 	    		}
       
   115 		    case EGestureHoldRight:
       
   116 	    		{
       
   117 				//skip for now
       
   118 	    		break;
   141 	    		break;
   119 	    		}
   142 	    		}
   120 		    case EGestureTap:
   143 		    case EGestureTap:
   121 		    	{
   144 		    	{
   122 	    		iObserver.HandleShwGestureEventL(MShwGestureObserver::ETapEvent);
   145 		    	aType  = MShwGestureObserver::ETapEvent;
   123 		    	break;
   146 		    	break;
   124 		    	}
   147 		    	}
   125 	    	//fall through
       
   126 		    case EGestureSwipeUp:
       
   127 	  	    case EGestureHoldUp:
       
   128 		    case EGestureSwipeDown:
       
   129 		    case EGestureHoldDown:       
       
   130 		    default: 
   148 		    default: 
   131 		    	{
   149 		    	{
       
   150 		    	// we are interested in only 
       
   151 		    	// swipe left(EGestureSwipeLeft) 
       
   152 		    	// swipe right(EGestureSwipeRight)
       
   153 		    	// and tap events
       
   154 		    	// we wont be handling any other case yet. 
   132 		    	break;
   155 		    	break;
   133 		    	}
   156 		    	}
   134 		        
       
   135 		    }
   157 		    }
       
   158         for (TInt index = 0 ; index < iObservers.Count() ; index ++)
       
   159             {
       
   160             if (MShwGestureObserver::ENoEvent != aType )
       
   161                 {
       
   162                 iObservers[index]->HandleShwGestureEventL(aType);
       
   163                 }
       
   164             }
       
   165 	    }
   136 	}
   166 	}
   137 
   167 
   138 //end of file
   168 //end of file
   139  
   169