1 /*
2  * Copyright (c) 2020-2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 /**
17  * @addtogroup UI_Events
18  * @{
19  *
20  * @brief Defines UI events, such as press, click and drag events.
21  *
22  * @since 1.0
23  * @version 1.0
24  */
25 
26 /**
27  * @file event.h
28  *
29  * @brief Declares the base class of a user input event and provides functions to record information such as
30  *        the event position and timestamp.
31  *
32  * @since 1.0
33  * @version 1.0
34  */
35 
36 #ifndef GRAPHIC_LITE_EVENT_H
37 #define GRAPHIC_LITE_EVENT_H
38 
39 #include "gfx_utils/geometry2d.h"
40 #include "gfx_utils/graphic_types.h"
41 
42 namespace OHOS {
43 class UIView;
44 /**
45  * @brief Defines the base class of a user input event and provides functions to record information such as
46  *        the event position and timestamp.
47  *
48  * @since 1.0
49  * @version 1.0
50  */
51 class Event : public HeapBase {
52 public:
53     /**
54      * @brief A default constructor used to create an <b>Event</b> instance.
55      * @since 1.0
56      * @version 1.0
57      */
58     Event();
59 
60     /**
61      * @brief A constructor used to create an <b>Event</b> instance.
62      * @param pos Indicates the position where the event occurs.
63      * @since 1.0
64      * @version 1.0
65      */
66     Event(const Point& curPos);
67 
68     /**
69      * @brief A destructor used to delete the <b>Event</b> instance.
70      * @since 1.0
71      * @version 1.0
72      */
~Event()73     virtual ~Event() {}
74 
75     /**
76      * @brief Obtains the position where an event occurs.
77      * @return Returns the position.
78      * @since 1.0
79      * @version 1.0
80      */
GetCurrentPos()81     const Point& GetCurrentPos() const
82     {
83         return curPos_;
84     }
85 
86     /**
87     * @brief Obtains the timestamp when an event occurs.
88     * @return Returns the timestamp.
89     * @since 1.0
90     * @version 1.0
91     */
GetTimeStamp()92     const TimeType& GetTimeStamp() const
93     {
94         return timeStamp_;
95     }
96 
97     /**
98      * @brief Sets the timestamp when an event occurs.
99      * @param timeStamp Indicates the timestamp of the event to set.
100      * @since 1.0
101      * @version 1.0
102      */
SetTimeStamp(const TimeType & timeStamp)103     void SetTimeStamp(const TimeType& timeStamp)
104     {
105         timeStamp_ = timeStamp;
106     }
107 
108 protected:
109     TimeType timeStamp_;
110     Point curPos_;
111     UIView* targetView_ = nullptr;
112     UIView* currentView_ = nullptr;
113 };
114 } // namespace OHOS
115 #endif // GRAPHIC_LITE_EVENT_H
116