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 |