/**
* @copydoc Dali::Integration::Scene::New
*/
- static ScenePtr New(Size size, int32_t orientation = 0);
+ static ScenePtr New(Size size, int32_t windowOrientation = 0, int32_t screenOrientation = 0);
/**
* virtual destructor
Dali::Layer GetRootLayer() const;
/**
+ * @copydoc Dali::Integration::Scene::GetOverlayLayer
+ */
+ Dali::Layer GetOverlayLayer();
+
+ /**
* @copydoc Dali::Integration::Scene::GetLayerCount
*/
uint32_t GetLayerCount() const;
*
* @param[in] width The width of rotated surface
* @param[in] height The height of rotated surface
- * @param[in] orientation The orientation of rotated surface
+ * @param[in] windowOrientation the current window orientation
+ * @param[in] screenOrientation the current screen orientation
*/
- void SurfaceRotated(float width, float height, int32_t orientation);
+ void SurfaceRotated(float width, float height, int32_t windowOrientation, int32_t screenOrientation);
/**
* @copydoc Dali::Integration::Scene::SetRotationCompletedAcknowledgement
int32_t GetCurrentSurfaceOrientation() const;
/**
+ * @copydoc Dali::Integration::Scene::GetCurrentScreenOrientation
+ */
+ int32_t GetCurrentScreenOrientation() const;
+
+ /**
* @copydoc Dali::Integration::Scene::GetCurrentSurfaceRect
*/
const Rect<int32_t>& GetCurrentSurfaceRect() const;
bool EmitKeyEventGeneratedSignal(const Dali::KeyEvent& event);
/**
+ * Used by the KeyEventProcessor to emit InterceptKeyEventSignal signals.
+ * @param[in] event The key event.
+ * @return The return is true if KeyEvent is consumed, otherwise false.
+ */
+ bool EmitInterceptKeyEventSignal(const Dali::KeyEvent& event);
+
+ /**
* Emits the event processing finished signal.
*
* @see Dali::Scene::SignalEventProcessingFinished()
Integration::Scene::KeyEventGeneratedSignalType& KeyEventGeneratedSignal();
/**
+ * @copydoc Integration::Scene::InterceptKeyEventSignal()
+ */
+ Integration::Scene::KeyEventGeneratedSignalType& InterceptKeyEventSignal();
+
+ /**
* @copydoc Integration::Scene::SignalEventProcessingFinished()
*/
Integration::Scene::EventProcessingFinishedSignalType& EventProcessingFinishedSignal();
* Second-phase constructor.
*
* @param[in] size The size of the set surface
- * @param[in] orientation The orientation of the set surface for this scene
+ * @param[in] windowOrientation The rotated angle of the set surface for this scene
+ * @param[in] screenOrientation The rotated angle of the screen
*/
- void Initialize(Size size, int32_t orientation);
+ void Initialize(Size size, int32_t windowOrientation, int32_t screenOrientation);
// Undefined
Scene(const Scene&) = delete;
*
* @param[in] width The width of rotated surface
* @param[in] height The height of rotated surface
- * @param[in] orientation The orientation of rotated surface
+ * @param[in] windowOrientation the current window orientation
+ * @param[in] screenOrientation the current screen orientation
*/
- void ChangedSurface(float width, float height, int32_t orientation);
+ void ChangedSurface(float width, float height, int32_t windowOrientation, int32_t screenOrientation);
private:
Internal::SceneGraph::Scene* mSceneObject;
LayerPtr mRootLayer;
+ LayerPtr mOverlayLayer;
+
// Ordered list of currently on-stage layers
OwnerPointer<LayerList> mLayerList;
// The Surface's orientation
int32_t mSurfaceOrientation;
+ // The Screen's orientation
+ int32_t mScreenOrientation;
+
// The key event signal
Integration::Scene::KeyEventSignalType mKeyEventSignal;
Integration::Scene::KeyEventGeneratedSignalType mKeyEventGeneratedSignal;
+ Integration::Scene::KeyEventGeneratedSignalType mInterceptKeyEventSignal;
// The event processing finished signal
Integration::Scene::EventProcessingFinishedSignalType mEventProcessingFinishedSignal;