00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef CAKNLONGTAPDETECTORCONTROLLER_H
00023 #define CAKNLONGTAPDETECTORCONTROLLER_H
00024
00025 #include <w32std.h>
00026 #include <e32base.h>
00027 #include <coemain.h>
00028
00038 class MAknLongTapDetectorCallBack
00039 {
00040 public:
00046 virtual void HandleLongTapEventL( const TPoint& aPenEventLocation,
00047 const TPoint& aPenEventScreenLocation ) = 0;
00048 };
00049
00050
00062 NONSHARABLE_CLASS( CAknLongTapDetector ) : public CTimer, MCoeMessageMonitorObserver
00063 {
00064 public:
00065
00070 IMPORT_C static CAknLongTapDetector* NewL( MAknLongTapDetectorCallBack* aOwner );
00071
00076 IMPORT_C static CAknLongTapDetector* NewLC( MAknLongTapDetectorCallBack* aOwner );
00077
00081 virtual ~CAknLongTapDetector();
00082
00083 public:
00084
00090 IMPORT_C void PointerEventL( const TPointerEvent& aEvent );
00091
00096 IMPORT_C void SetTimeDelayBeforeAnimation( const TInt aMicroSeconds );
00097
00102 IMPORT_C void SetLongTapDelay( const TInt aMicroSeconds );
00103
00108 IMPORT_C void EnableLongTapAnimation( const TBool aAnimation );
00109
00114 IMPORT_C TBool IsAnimationRunning() const;
00115
00119 IMPORT_C void CancelAnimationL();
00120
00125 void MonitorWsMessage( const TWsEvent& aEvent );
00126
00127 private:
00128
00132 void RunL();
00133
00134 private:
00135
00140 CAknLongTapDetector( MAknLongTapDetectorCallBack* aOwner );
00141
00145 void ConstructL();
00146
00147 private:
00148
00149 void StartAnimationL();
00150 void StopAnimationL();
00151
00152 private:
00153
00154 enum TLongTapDetectorState
00155 {
00156 EWaiting,
00157 EWaitingForAnimation,
00158 EShowingAnimation
00159 };
00160
00164 TLongTapDetectorState iState;
00165
00170 MAknLongTapDetectorCallBack* iOwner;
00171
00175 TInt iTimeDelayBeforeAnimation;
00176
00180 TInt iLongTapDelay;
00181
00185 TPointerEvent iPointerEvent;
00186
00190 TBool iShowAnimation;
00191
00192 };
00193
00194 #endif // CAKNLONGTAPDETECTOR_H
00195
00196
00197