webengine/webkitutils/rt_gesturehelper/src/gesturehelpereventsender.cpp
changeset 8 7c90e6132015
parent 0 dd21522fd290
equal deleted inserted replaced
0:dd21522fd290 8:7c90e6132015
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 #include "gesturehelpereventsender.h"
    18 #include "gesturehelpereventsender.h"
    19 #include "gesture.h"
    19 #include "gesture.h"
    20 #include "gestureevent.h"
       
    21 
    20 
    22 using namespace RT_GestureHelper;
    21 using namespace RT_GestureHelper;
    23 
    22 
    24 const TInt KEventsQueueGranularity = 4;
    23 const TInt KEventsQueueGranularity = 4;
    25 
    24 
    37     CActiveScheduler::Add(this);
    36     CActiveScheduler::Add(this);
    38     }
    37     }
    39 
    38 
    40 CGestureEventSender::~CGestureEventSender()
    39 CGestureEventSender::~CGestureEventSender()
    41     {
    40     {
       
    41     if (IsActive()) 
       
    42         {
       
    43         Cancel();
       
    44         }
       
    45 
    42     iEvents.Close();
    46     iEvents.Close();
    43     iEvents.ResetAndDestroy();
       
    44     }
    47     }
    45 
    48 
    46 TInt CGestureEventSender::AddEvent(const CGestureEvent* aGestureEvent)
    49 TInt CGestureEventSender::AddEvent(const TGestureEvent& aGestureEvent)
    47     {
    50     {
    48     iEvents.Append(aGestureEvent);
    51     iEvents.Append(aGestureEvent);
    49     if (iState != EBusy)
    52     if (iState != EBusy)
    50         {
    53         {
    51         iState = EEventsReady;
    54         iState = EEventsReady;
    63     TRequestStatus* status = &iStatus;
    66     TRequestStatus* status = &iStatus;
    64     User::RequestComplete(status, KErrNone);
    67     User::RequestComplete(status, KErrNone);
    65     SetActive();
    68     SetActive();
    66     }
    69     }
    67 
    70 
    68 
       
    69 void CGestureEventSender::RunL()
    71 void CGestureEventSender::RunL()
    70     {
    72     {
    71     switch (iState)
    73     switch (iState)
    72         {
    74         {
    73         case EEventsReady:
    75         case EEventsReady:
    75             if (iEvents.Count() > 0)
    77             if (iEvents.Count() > 0)
    76                 {
    78                 {
    77                 TInt count = iEvents.Count();
    79                 TInt count = iEvents.Count();
    78                 for (int i = 0;  i < count; i++)
    80                 for (int i = 0;  i < count; i++)
    79                     {
    81                     {
    80                     CGestureEvent* gst = iEvents[i];
    82                     TGestureEvent& gst = iEvents[i];
    81                     EmitEventL(*gst);
    83                     EmitEventL(gst);
    82                     delete gst;
       
    83                     }
    84                     }
    84                 }
    85                 }
    85             iEvents.Reset();
    86             iEvents.Reset();
    86             iState = ENoEvents;
    87             iState = ENoEvents;
    87             Complete();
    88             Complete();
    88             break;
    89             break;
    89             }
    90             }
    90         }
    91         }
    91     }
    92     }
    92 
    93 
    93 
    94 void CGestureEventSender::EmitEventL( const TGestureEvent& aGesture )
    94 void CGestureEventSender::EmitEventL( const CGestureEvent& aGesture )
       
    95     {
    95     {
    96     iState = EBusy;
    96     iState = EBusy;
    97     iObserver.HandleGestureL(aGesture);
    97     iObserver.HandleGestureL(aGesture);
    98     iState = EEventsReady;
    98     iState = EEventsReady;
    99     }
    99     }
   100 
   100 
   101 TInt CGestureEventSender::RunError(TInt aError)
   101 TInt CGestureEventSender::RunError(TInt aError)
   102     {
   102     {
       
   103     iEvents.Reset();
   103     return aError;
   104     return aError;
   104     }
   105     }
   105 
   106 
   106 void CGestureEventSender::DoCancel()
   107 void CGestureEventSender::DoCancel()
   107     {
   108     {