#define DALI_INTERNAL_SCENE_H
/*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
namespace Internal
{
-//@todo Break this dependence somehow.
-namespace Render
-{
-class Renderer;
-}
-
namespace SceneGraph
{
class Scene;
-
-struct DirtyRect
-{
- DirtyRect(Node* node, Render::Renderer* renderer, int32_t frame, Rect<int>& rect)
- : node(node),
- renderer(renderer),
- frame(frame),
- rect(rect),
- visited(true)
- {
- }
-
- DirtyRect()
- : node(nullptr),
- renderer(nullptr),
- frame(0),
- rect(),
- visited(true)
- {
- }
-
- bool operator<(const DirtyRect& rhs) const
- {
- if(node == rhs.node)
- {
- if(renderer == rhs.renderer)
- {
- return frame > rhs.frame; // Most recent rects come first
- }
- else
- {
- return renderer < rhs.renderer;
- }
- }
- else
- {
- return node < rhs.node;
- }
- }
-
- Node* node;
- Render::Renderer* renderer;
- int32_t frame;
-
- Rect<int32_t> rect;
- bool visited;
-};
-
} // namespace SceneGraph
class EventProcessor;
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()
void EmitWheelEventSignal(const Dali::WheelEvent& event);
/**
+ * Used by the WheelEventProcessor to emit WheelEventGenerated signals.
+ * @param[in] event The wheel event.
+ * @return The return is true if WheelEvent is consumed, otherwise false.
+ */
+ bool EmitWheelEventGeneratedSignal(const Dali::WheelEvent& event);
+
+ /**
* @copydoc Dali::Integration::Scene::AddFrameRenderedCallback
*/
void AddFrameRenderedCallback(std::unique_ptr<CallbackBase> callback, int32_t frameId);
Integration::Scene::KeyEventGeneratedSignalType& KeyEventGeneratedSignal();
/**
+ * @copydoc Integration::Scene::InterceptKeyEventSignal()
+ */
+ Integration::Scene::KeyEventGeneratedSignalType& InterceptKeyEventSignal();
+
+ /**
* @copydoc Integration::Scene::SignalEventProcessingFinished()
*/
Integration::Scene::EventProcessingFinishedSignalType& EventProcessingFinishedSignal();
Integration::Scene::WheelEventSignalType& WheelEventSignal();
/**
- * @brief Get ItemsDirtyRects
- *
- * @return the ItemsDirtyRects
+ * @copydoc Integration::Scene::WheelEventGeneratedSignal()
*/
- std::vector<Dali::Internal::SceneGraph::DirtyRect>& GetItemsDirtyRects();
+ Integration::Scene::WheelEventGeneratedSignalType& WheelEventGeneratedSignal();
public:
/**
// 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;
Integration::Scene::TouchEventSignalType mTouchedSignal;
// The wheel event signal
- Integration::Scene::WheelEventSignalType mWheelEventSignal;
-
- std::vector<Dali::Internal::SceneGraph::DirtyRect> mItemsDirtyRects;
+ Integration::Scene::WheelEventSignalType mWheelEventSignal;
+ Integration::Scene::WheelEventGeneratedSignalType mWheelEventGeneratedSignal;
};
} // namespace Internal