c77ce66a2223ce2799ebf6ddb81283424bb8f838
[platform/core/uifw/dali-adaptor.git] / dali / public-api / adaptor-framework / window-enumerations.h
1 #ifndef DALI_WINDOW_ENUMERATIONS_H
2 #define DALI_WINDOW_ENUMERATIONS_H
3
4 /*
5  * Copyright (c) 2021 Samsung Electronics Co., Ltd.
6  *
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
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
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.
18  *
19  */
20
21 namespace Dali
22 {
23 /**
24  * @brief Enumeration for orientation of the window is the way in which a rectangular page is oriented for normal viewing.
25  *
26  * This Enumeration is used the available orientation APIs and the preferred orientation.
27  *
28  * @SINCE_2_0.0
29  */
30 enum class WindowOrientation
31 {
32   PORTRAIT                  = 0,   ///< Portrait orientation. The height of the display area is greater than the width. @SINCE_2_0.0
33   LANDSCAPE                 = 90,  ///< Landscape orientation. A wide view area is needed. @SINCE_2_0.0
34   PORTRAIT_INVERSE          = 180, ///< Portrait inverse orientation. @SINCE_2_0.0
35   LANDSCAPE_INVERSE         = 270, ///< Landscape inverse orientation. @SINCE_2_0.0
36   NO_ORIENTATION_PREFERENCE = -1   ///< No orientation. It is used to initialize or unset the preferred orientation. @SINCE_2_0.0
37 };
38
39 /**
40  * @brief An enum of Window types.
41  * Window type has effect of DALi window's behavior, window's stack and extra functions.
42  * The default window type is NORMAL. If application does not set the specific window type, this type will be set.
43  *
44  * Ime window type is special type. It can only set by one Application::New function.
45  * The fuction is "New(int* argc, char** argv[], const std::string& stylesheet, Application::WINDOW_MODE windowMode, PositionSize positionSize, WindowType type)".
46  * Ime window type can not set by Window::SetType().
47  *
48  * @SINCE_2_0.0
49  */
50 enum class WindowType
51 {
52   NORMAL,       ///< A default window type. Indicates a normal, top-level window. Almost every window will be created with this type. @SINCE_2_0.0
53   NOTIFICATION, ///< A notification window, like a warning about battery life or a new E-Mail received. @SINCE_2_0.0
54   UTILITY,      ///< A persistent utility window, like a toolbox or palette. @SINCE_2_0.0
55   DIALOG,       ///< Used for simple dialog window. @SINCE_2_0.0
56   IME           ///< Used for Ime keyboard window. It should be set in application New function. @SINCE_2_0.33
57 };
58
59 /**
60  * @brief An enum of notification level.
61  * @SINCE_2_0.0
62  */
63 enum class WindowNotificationLevel
64 {
65   NONE   = -1, ///< No notification level. Default level. This value makes the notification window place in the layer of the normal window. @SINCE_2_0.0
66   BASE   = 10, ///< Base notification level. @SINCE_2_0.0
67   MEDIUM = 20, ///< Higher notification level than base. @SINCE_2_0.0
68   HIGH   = 30, ///< Higher notification level than medium. @SINCE_2_0.0
69   TOP    = 40  ///< The highest notification level. @SINCE_2_0.0
70 };
71
72 /**
73  * @brief An enum of screen mode.
74  * @SINCE_2_0.0
75  */
76 enum class WindowScreenOffMode
77 {
78   TIMEOUT, ///< The mode which turns the screen off after a timeout. @SINCE_2_0.0
79   NEVER,   ///< The mode which keeps the screen turned on. @SINCE_2_0.0
80 };
81
82 /**
83  * @brief Enumeration for transition effect's state.
84  * @SINCE_2_0.0
85  */
86 enum class WindowEffectState
87 {
88   NONE = 0, ///< None state. @SINCE_2_0.0
89   START,    ///< Transition effect is started. @SINCE_2_0.0
90   END       ///< Transition effect is ended. @SINCE_2_0.0
91 };
92
93 /**
94  * @brief Enumeration for transition effect's type.
95  * @SINCE_2_0.0
96  */
97 enum class WindowEffectType
98 {
99   NONE = 0, ///< None type. @SINCE_2_0.0
100   SHOW,     ///< Window show effect. @SINCE_2_0.0
101   HIDE,     ///< Window hide effect. @SINCE_2_0.0
102 };
103
104 /**
105  * @brief An enum of window operation result.
106  */
107 enum class WindowOperationResult
108 {
109   UNKNOWN_ERROR = 0, ///< Failed for unknown reason.
110   SUCCEED,           ///< Succeed.
111   PERMISSION_DENIED, ///< Permission denied.
112   NOT_SUPPORTED,     ///< The operation is not supported.
113   INVALID_OPERATION, ///< The operation is invalid. (e.g. Try to operate to the wrong window)
114 };
115
116 } // namespace Dali
117
118 #endif // DALI_WINDOW_ENUMERATIONS_H