bf6c46b567af7779268c88fe2a668b3c427f414a
[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) 2022 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   DESKTOP       ///< Used for desktop windows.
58 };
59
60 /**
61  * @brief An enum of notification level.
62  * @SINCE_2_0.0
63  */
64 enum class WindowNotificationLevel
65 {
66   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
67   BASE   = 10, ///< Base notification level. @SINCE_2_0.0
68   MEDIUM = 20, ///< Higher notification level than base. @SINCE_2_0.0
69   HIGH   = 30, ///< Higher notification level than medium. @SINCE_2_0.0
70   TOP    = 40  ///< The highest notification level. @SINCE_2_0.0
71 };
72
73 /**
74  * @brief An enum of screen mode.
75  * @SINCE_2_0.0
76  */
77 enum class WindowScreenOffMode
78 {
79   TIMEOUT, ///< The mode which turns the screen off after a timeout. @SINCE_2_0.0
80   NEVER,   ///< The mode which keeps the screen turned on. @SINCE_2_0.0
81 };
82
83 /**
84  * @brief Enumeration for transition effect's state.
85  * @SINCE_2_0.0
86  */
87 enum class WindowEffectState
88 {
89   NONE = 0, ///< None state. @SINCE_2_0.0
90   START,    ///< Transition effect is started. @SINCE_2_0.0
91   END       ///< Transition effect is ended. @SINCE_2_0.0
92 };
93
94 /**
95  * @brief Enumeration for transition effect's type.
96  * @SINCE_2_0.0
97  */
98 enum class WindowEffectType
99 {
100   NONE = 0, ///< None type. @SINCE_2_0.0
101   SHOW,     ///< Window show effect. @SINCE_2_0.0
102   HIDE,     ///< Window hide effect. @SINCE_2_0.0
103 };
104
105 /**
106  * @brief An enum of window operation result.
107  */
108 enum class WindowOperationResult
109 {
110   UNKNOWN_ERROR = 0, ///< Failed for unknown reason.
111   SUCCEED,           ///< Succeed.
112   PERMISSION_DENIED, ///< Permission denied.
113   NOT_SUPPORTED,     ///< The operation is not supported.
114   INVALID_OPERATION, ///< The operation is invalid. (e.g. Try to operate to the wrong window)
115 };
116
117 /**
118  * @brief Enumeration of direction for window resized by display server.
119  */
120 enum class WindowResizeDirection
121 {
122   TOP_LEFT     = 1, ///< Start resizing window to the top-left edge.
123   TOP          = 2, ///< Start resizing window to the top side.
124   TOP_RIGHT    = 3, ///< Start resizing window to the top-right edge.
125   LEFT         = 4, ///< Start resizing window to the left side.
126   RIGHT        = 5, ///< Start resizing window to the right side.
127   BOTTOM_LEFT  = 6, ///< Start resizing window to the bottom-left edge.
128   BOTTOM       = 7, ///< Start resizing window to the bottom side.
129   BOTTOM_RIGHT = 8  ///< Start resizing window to the bottom-right edge.
130 };
131
132 } // namespace Dali
133
134 #endif // DALI_WINDOW_ENUMERATIONS_H