+ * The observer can be overridden in order to listen to the events.
+ */
+ class Observer
+ {
+ public:
+
+ /**
+ * Deriving classes should override this to be notified when we receive a touch point event.
+ * @param[in] point The touch point
+ * @param[in] timeStamp The time stamp
+ */
+ virtual void OnTouchPoint( Dali::Integration::Point& point, int timeStamp ) = 0;
+
+ /**
+ * Deriving classes should override this to be notified when we receive a wheel event.
+ * @param[in] wheelEvent The wheel event
+ */
+ virtual void OnWheelEvent( Dali::Integration::WheelEvent& wheelEvent ) = 0;
+
+ /**
+ * Deriving classes should override this to be notified when we receive a key event.
+ * @param[in] keyEvent The key event holding the key information.
+ */
+ virtual void OnKeyEvent( Dali::Integration::KeyEvent& keyEvent ) = 0;
+
+ /**
+ * Deriving classes should override this to be notified when the window is rotated.
+ * @param[in] rotation The rotation event.
+ */
+ virtual void OnRotation( const RotationEvent& rotation ) = 0;
+
+ protected:
+
+ /**
+ * Protected Constructor.
+ */
+ Observer() {}
+
+ /**
+ * Protected virtual destructor.
+ */
+ virtual ~Observer() {}
+ };
+
+public:
+
+ /**