2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Apache License, Version 2.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://www.apache.org/licenses/LICENSE-2.0
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
18 * @file FAppIAppFrame.h
19 * @brief This is the header file for the %IAppFrame interface.
21 * This header file contains the declarations of the %IAppFrame interface.
24 #ifndef _FAPP_IAPP_FRAME_H_
25 #define _FAPP_IAPP_FRAME_H_
27 namespace Tizen { namespace Graphics { class Canvas; } }
28 namespace Tizen { namespace Ui { class IKeyEventListener; } }
29 namespace Tizen { namespace Ui { class ITouchEventListener; } }
30 namespace Tizen { namespace Ui { class IWindowEventListener; } }
31 namespace Tizen { namespace Ui { namespace Controls { class Frame; } } }
33 namespace Tizen { namespace App
37 * @interface IAppFrame
38 * @brief This interface provides methods for the application frame.
42 * The %IAppFrame interface provides methods for the application frame. A frame is the outermost boundary of the application UI.
48 * This polymorphic destructor should be overridden if required.
49 * This way, the destructors of the derived classes are called when the destructor of this interface is called.
53 virtual ~IAppFrame(void) {}
56 * Gets the values of the frame's canvas.
60 * @return A pointer to the Tizen::Graphics::Canvas class
62 virtual Tizen::Graphics::Canvas* GetCanvasN(void) const = 0;
65 * Adds a key event listener to the frame.
69 * @return An error code
70 * @param[in] listener A Tizen::Ui::IKeyEventListener instance to add
71 * @exception E_SUCCESS The method is successful.
73 virtual result AddKeyEventListener(Tizen::Ui::IKeyEventListener& listener) = 0;
76 * Removes an existing key event listener from the frame.
80 * @return An error code
81 * @param[in] listener A Tizen::Ui::IKeyEventListener instance to remove
82 * @exception E_SUCCESS The method is successful.
84 virtual result RemoveKeyEventListener(Tizen::Ui::IKeyEventListener& listener) = 0;
87 * Adds a touch event listener to the frame.
91 * @return An error code
92 * @param[in] listener A Tizen::Ui::ITouchEventListener instance to add
93 * @exception E_SUCCESS The method is successful.
95 virtual result AddTouchEventListener(Tizen::Ui::ITouchEventListener& listener) = 0;
98 * Removes an existing touch event listener from the frame.
102 * @return An error code
103 * @param[in] listener A Tizen::Ui::ITouchEventListener instance to add
104 * @exception E_SUCCESS The method is successful.
106 virtual result RemoveTouchEventListener(Tizen::Ui::ITouchEventListener& listener) = 0;
109 * Adds a window event listener to the frame.
113 * @return An error code
114 * @param[in] listener A Tizen::Ui::IWindowEventListener instance to remove
115 * @exception E_SUCCESS The method is successful.
117 virtual result AddWindowEventListener(Tizen::Ui::IWindowEventListener& listener) = 0;
120 * Removes an existing window event listener from the frame.
124 * @return An error code
125 * @param[in] listener A Tizen::Ui::IWindowEventListener instance to remove
126 * @exception E_SUCCESS The method is successful.
128 virtual result RemoveWindowEventListener(Tizen::Ui::IWindowEventListener& listener) = 0;
131 * Gets the frame of the application.
135 * @return A pointer to Tizen::Ui::Controls::Frame if successful, @n
137 * @exception E_SUCCESS The method is successful.
138 * @exception E_INVALID_STATE This instance is in an invalid state.
139 * @exception E_UNSUPPORTED_OPERATION This method cannot be supported.
140 * @remarks The specific error code can be accessed using the GetLastResult() method.
142 virtual Tizen::Ui::Controls::Frame* GetFrame(void) = 0;
148 #endif // _FAPP_IAPP_FRAME_H_