1 #ifndef DALI_INTERNAL_TOUCH_EVENT_PROCESSOR_H
2 #define DALI_INTERNAL_TOUCH_EVENT_PROCESSOR_H
5 * Copyright (c) 2022 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
22 #include <dali/internal/event/events/actor-observer.h>
23 #include <dali/internal/event/render-tasks/render-task-impl.h>
24 #include <dali/public-api/events/point-state.h>
44 * <h3>Multi-Touch Event Processing:</h3>
46 * The TouchEventProcessor processes touch events and emits the Touched signal on the hit actor (and
49 * - Hit Testing & Touch Event Delivery are described in Dali::Actor.
51 class TouchEventProcessor
55 * Create an event processor.
56 * @param[in] scene The scene the event processor belongs to.
58 TouchEventProcessor(Scene& scene);
61 * Non-virtual destructor; TouchEventProcessor is not a base class
63 ~TouchEventProcessor();
66 * This function is called by the event processor whenever a touch event occurs.
67 * @param[in] event The touch event that has occurred.
68 * @return true if consumed
70 bool ProcessTouchEvent(const Integration::TouchEvent& event);
74 TouchEventProcessor(const TouchEventProcessor&);
77 TouchEventProcessor& operator=(const TouchEventProcessor& rhs);
80 Scene& mScene; ///< Used to deliver touch events
83 * Called by some actor-observers when the observed actor is disconnected.
85 * @param[in] actor The actor that has been disconnected.
87 void OnObservedActorDisconnected(Actor* actor);
94 ActorObserver mLastPrimaryHitActor; ///< Stores the last primary point hit actor
95 ActorObserver mLastConsumedActor; ///< Stores the last consumed actor
96 ActorObserver mCapturingTouchActor; ///< Stored the actor that captures touch
97 ActorObserver mOwnTouchActor; ///< Stored the actor that own touch
98 ActorObserver mTouchDownConsumedActor; ///< Stores the touch-down consumed actor
99 RenderTaskPtr mLastRenderTask; ///< The RenderTask used for the last hit actor
100 PointState::Type mLastPrimaryPointState; ///< Stores the last primary point state
103 } // namespace Internal
107 #endif // DALI_INTERNAL_TOUCH_EVENT_PROCESSOR_H