X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fintegration-api%2Fscene.h;h=cf3d71b18feed0bd48a3e912027be3100d32202d;hb=ad9fbaaafce5fb10ea2b5aa6fc03809b1f2c58a8;hp=83519b63c8a734798ae35e9563a7bdff64145c9c;hpb=5f62d18c78a8a4014e504db20d15f55fd04c56bd;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/integration-api/scene.h b/dali/integration-api/scene.h old mode 100644 new mode 100755 index 83519b6..cf3d71b --- a/dali/integration-api/scene.h +++ b/dali/integration-api/scene.h @@ -21,13 +21,17 @@ // INTERNAL INCLUDES #include #include +#include namespace Dali { class Actor; +struct KeyEvent; class Layer; class RenderTaskList; +class TouchData; +struct WheelEvent; namespace Internal DALI_INTERNAL { @@ -38,6 +42,7 @@ namespace Integration { class RenderSurface; +struct Event; /** * @brief @@ -48,6 +53,10 @@ class RenderSurface; class DALI_CORE_API Scene : public BaseHandle { public: + typedef Signal< void () > EventProcessingFinishedSignalType; ///< Event Processing finished signal type + typedef Signal< void (const Dali::KeyEvent&) > KeyEventSignalType; ///< Key event signal type + typedef Signal< void (const Dali::TouchData&) > TouchSignalType; ///< Touch signal type + typedef Signal< void (const Dali::WheelEvent&) > WheelEventSignalType; ///< Touched signal type /** * @brief Create an initialized Scene handle. @@ -56,7 +65,7 @@ public: * * @return a handle to a newly allocated Dali resource. */ - static Scene New( Size size ); + static Scene New( const Size& size ); /** * @brief Downcast an Object handle to Scene handle. @@ -106,7 +115,7 @@ public: * @pre The actor has been initialized. * @pre The actor does not have a parent. */ - void Add(Actor& actor); + void Add(Actor actor); /** * @brief Removes a child Actor from the Scene. @@ -115,7 +124,7 @@ public: * @param[in] actor The child * @pre The actor has been added to the stage. */ - void Remove(Actor& actor); + void Remove(Actor actor); /** * @brief Returns the size of the Scene in pixels as a Vector. @@ -141,6 +150,20 @@ public: Vector2 GetDpi() const; /** + * @brief Sets the background color. + * + * @param[in] color The new background color + */ + void SetBackgroundColor( const Vector4& color ); + + /** + * @brief Gets the background color of the render surface. + * + * @return The background color + */ + Vector4 GetBackgroundColor() const; + + /** * @brief Retrieves the list of render-tasks. * * @return A valid handle to a RenderTaskList @@ -178,6 +201,76 @@ public: */ void SetSurface( Integration::RenderSurface& surface ); + /** + * @brief Gets the rendering surface bound to the scene + * + * @return The render surface + */ + Integration::RenderSurface* GetSurface() const; + + /** + * @brief Retrieve the Scene that the given actor belongs to. + * @return The Scene. + */ + static Integration::Scene Get( Actor actor ); + + /** + * This function is called when an event is queued. + * @param[in] event A event to queue. + */ + void QueueEvent( const Integration::Event& event ); + + /** + * This function is called by Core when events are processed. + */ + void ProcessEvents(); + + /** + * @brief This signal is emitted just after the event processing is finished. + * + * @return The signal to connect to + */ + EventProcessingFinishedSignalType& EventProcessingFinishedSignal(); + + /** + * @brief This signal is emitted when key event is received. + * + * A callback of the following type may be connected: + * @code + * void YourCallbackName(const KeyEvent& event); + * @endcode + * @return The signal to connect to + */ + KeyEventSignalType& KeyEventSignal(); + + /** + * @brief This signal is emitted when the screen is touched and when the touch ends + * (i.e. the down & up touch events only). + * + * If there are multiple touch points, then this will be emitted when the first touch occurs and + * then when the last finger is lifted. + * An interrupted event will also be emitted (if it occurs). + * A callback of the following type may be connected: + * @code + * void YourCallbackName( TouchData event ); + * @endcode + * + * @return The touch signal to connect to + * @note Motion events are not emitted. + */ + TouchSignalType& TouchSignal(); + + /** + * @brief This signal is emitted when wheel event is received. + * + * A callback of the following type may be connected: + * @code + * void YourCallbackName(const WheelEvent& event); + * @endcode + * @return The signal to connect to + */ + WheelEventSignalType& WheelEventSignal(); + public: // Not intended for application developers /**