Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / inc / FUi_PublicOrientationEvent.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://floralicense.org/license/
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 /**
18  * @file                FUi_PublicOrientationEvent.h
19  * @brief               This is the header file for _PublicOrientationEvent class.
20  * @version             1.0
21  *
22  * This header file contains declaration of _PublicOrientationEvent class.
23  * The OrientationEvent class can call listener's method. So, when event occurred,
24  * application can handle it appropriately.
25  *
26  */
27 #ifndef _FUI_INTERNAL_PUBLIC_ORIENTATION_EVENT_H_
28 #define _FUI_INTERNAL_PUBLIC_ORIENTATION_EVENT_H_
29
30 #include <FUiIOrientationEventListener.h>
31 #include <FBaseResult.h>
32 #include <FBaseRt_Event.h>
33
34 namespace Tizen { namespace Ui
35 {
36 class Control;
37
38 /**
39  * @class       _PublicOrientationEvent
40  * @brief       This class handles a orientation event. It is inherited from Event class.
41  *
42  * The Window(root of all widgets) class has an instance of the OrientationEvent class as a member variable.
43  * Applications can register orientation event listeners through it. When a orientation event occurred,
44  * the OrientationEvent class finds listener and calls the appropriate listener's method.
45  */
46 class _OSP_EXPORT_ _PublicOrientationEvent
47         : public Tizen::Base::Runtime::_Event
48 {
49 public:
50         static _PublicOrientationEvent* CreateInstanceN(const Control& source);
51         static Tizen::Base::Runtime::IEventArg* CreateOrientationEventArgN(const Control& source, OrientationStatus orientationStatus);
52
53         virtual ~_PublicOrientationEvent(void);
54
55         const Control* GetSource(void) const;
56
57 private:
58         virtual void FireImpl(Tizen::Base::Runtime::IEventListener& listener, const Tizen::Base::Runtime::IEventArg& arg);
59
60         _PublicOrientationEvent(const Control& source);
61
62         _PublicOrientationEvent(const _PublicOrientationEvent& rhs);
63         _PublicOrientationEvent& operator =(const _PublicOrientationEvent& rhs);
64
65 private:
66         const Control* __pSource;
67 }; // _PublicOrientationEvent
68
69 }} // Tizen::Ui
70
71 #endif // _FUI_INTERNAL_PUBLIC_ORIENTATION_EVENT_H_