1e0dac50fSopenharmony_ci/*
2e0dac50fSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
3e0dac50fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4e0dac50fSopenharmony_ci * you may not use this file except in compliance with the License.
5e0dac50fSopenharmony_ci * You may obtain a copy of the License at
6e0dac50fSopenharmony_ci *
7e0dac50fSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8e0dac50fSopenharmony_ci *
9e0dac50fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10e0dac50fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11e0dac50fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12e0dac50fSopenharmony_ci * See the License for the specific language governing permissions and
13e0dac50fSopenharmony_ci * limitations under the License.
14e0dac50fSopenharmony_ci */
15e0dac50fSopenharmony_ci
16e0dac50fSopenharmony_ci#ifndef OHOS_ROSEN_WINDOW_OPTION_H
17e0dac50fSopenharmony_ci#define OHOS_ROSEN_WINDOW_OPTION_H
18e0dac50fSopenharmony_ci#include <refbase.h>
19e0dac50fSopenharmony_ci#include <string>
20e0dac50fSopenharmony_ci#include <unordered_map>
21e0dac50fSopenharmony_ci
22e0dac50fSopenharmony_ci#include "dm_common.h"
23e0dac50fSopenharmony_ci#include "wm_common.h"
24e0dac50fSopenharmony_ci
25e0dac50fSopenharmony_cinamespace OHOS {
26e0dac50fSopenharmony_cinamespace Rosen {
27e0dac50fSopenharmony_ci/**
28e0dac50fSopenharmony_ci * @class WindowOption
29e0dac50fSopenharmony_ci * WindowOption is used to create a window.
30e0dac50fSopenharmony_ci */
31e0dac50fSopenharmony_ciclass WINDOW_EXPORT WindowOption : public RefBase {
32e0dac50fSopenharmony_cipublic:
33e0dac50fSopenharmony_ci    /**
34e0dac50fSopenharmony_ci     * @brief Default construct of WindowOption.
35e0dac50fSopenharmony_ci     */
36e0dac50fSopenharmony_ci    WindowOption();
37e0dac50fSopenharmony_ci
38e0dac50fSopenharmony_ci    /**
39e0dac50fSopenharmony_ci     * @brief Deconstruct of WindowOption.
40e0dac50fSopenharmony_ci     */
41e0dac50fSopenharmony_ci    virtual ~WindowOption() = default;
42e0dac50fSopenharmony_ci
43e0dac50fSopenharmony_ci    /**
44e0dac50fSopenharmony_ci     * @brief Set window mode.
45e0dac50fSopenharmony_ci     *
46e0dac50fSopenharmony_ci     * @param mode The mode of window.
47e0dac50fSopenharmony_ci     */
48e0dac50fSopenharmony_ci    void SetWindowMode(WindowMode mode);
49e0dac50fSopenharmony_ci
50e0dac50fSopenharmony_ci    /**
51e0dac50fSopenharmony_ci     * @brief Set window type.
52e0dac50fSopenharmony_ci     *
53e0dac50fSopenharmony_ci     * @param type The type of window.
54e0dac50fSopenharmony_ci     */
55e0dac50fSopenharmony_ci    void SetWindowType(WindowType type);
56e0dac50fSopenharmony_ci
57e0dac50fSopenharmony_ci    /**
58e0dac50fSopenharmony_ci     * @brief Set window rect.
59e0dac50fSopenharmony_ci     *
60e0dac50fSopenharmony_ci     * @param rect The rect of window to set window position and size.
61e0dac50fSopenharmony_ci     */
62e0dac50fSopenharmony_ci    void SetWindowRect(const struct Rect& rect);
63e0dac50fSopenharmony_ci
64e0dac50fSopenharmony_ci    /**
65e0dac50fSopenharmony_ci     * @brief Set parent id.
66e0dac50fSopenharmony_ci     *
67e0dac50fSopenharmony_ci     * @param parentId The parent window id.
68e0dac50fSopenharmony_ci     */
69e0dac50fSopenharmony_ci    void SetParentId(uint32_t parentId);
70e0dac50fSopenharmony_ci
71e0dac50fSopenharmony_ci    /**
72e0dac50fSopenharmony_ci     * @brief Set display id.
73e0dac50fSopenharmony_ci     *
74e0dac50fSopenharmony_ci     * @param displayId The display id of window.
75e0dac50fSopenharmony_ci     */
76e0dac50fSopenharmony_ci    void SetDisplayId(DisplayId displayId);
77e0dac50fSopenharmony_ci
78e0dac50fSopenharmony_ci    /**
79e0dac50fSopenharmony_ci     * @brief Set window focusable.
80e0dac50fSopenharmony_ci     *
81e0dac50fSopenharmony_ci     * @param isFocusable True means the window can be focused, otherwise not.
82e0dac50fSopenharmony_ci     */
83e0dac50fSopenharmony_ci    void SetFocusable(bool isFocusable);
84e0dac50fSopenharmony_ci
85e0dac50fSopenharmony_ci    /**
86e0dac50fSopenharmony_ci     * @brief Set window touchable.
87e0dac50fSopenharmony_ci     *
88e0dac50fSopenharmony_ci     * @param isTouchable True means the window can be touched, otherwise not.
89e0dac50fSopenharmony_ci     */
90e0dac50fSopenharmony_ci    void SetTouchable(bool isTouchable);
91e0dac50fSopenharmony_ci
92e0dac50fSopenharmony_ci    /**
93e0dac50fSopenharmony_ci     * @brief Set bundle name.
94e0dac50fSopenharmony_ci     *
95e0dac50fSopenharmony_ci     * @param bundleName The bundle name.
96e0dac50fSopenharmony_ci     */
97e0dac50fSopenharmony_ci    void SetBundleName(const std::string bundleName);
98e0dac50fSopenharmony_ci
99e0dac50fSopenharmony_ci    /**
100e0dac50fSopenharmony_ci     * @brief Set window name.
101e0dac50fSopenharmony_ci     *
102e0dac50fSopenharmony_ci     * @param windowName The window name.
103e0dac50fSopenharmony_ci     */
104e0dac50fSopenharmony_ci    void SetWindowName(const std::string& windowName);
105e0dac50fSopenharmony_ci
106e0dac50fSopenharmony_ci    /**
107e0dac50fSopenharmony_ci     * @brief Set window flags.
108e0dac50fSopenharmony_ci     *
109e0dac50fSopenharmony_ci     * @param flags The flag value.
110e0dac50fSopenharmony_ci     */
111e0dac50fSopenharmony_ci    void SetWindowFlags(uint32_t flags);
112e0dac50fSopenharmony_ci
113e0dac50fSopenharmony_ci    /**
114e0dac50fSopenharmony_ci     * @brief Remove winodw flag.
115e0dac50fSopenharmony_ci     *
116e0dac50fSopenharmony_ci     * @param flag The flag value removed.
117e0dac50fSopenharmony_ci     */
118e0dac50fSopenharmony_ci    void RemoveWindowFlag(WindowFlag flag);
119e0dac50fSopenharmony_ci
120e0dac50fSopenharmony_ci    /**
121e0dac50fSopenharmony_ci     * @brief Add window flag.
122e0dac50fSopenharmony_ci     *
123e0dac50fSopenharmony_ci     * @param flag The flag value added.
124e0dac50fSopenharmony_ci     */
125e0dac50fSopenharmony_ci    void AddWindowFlag(WindowFlag flag);
126e0dac50fSopenharmony_ci
127e0dac50fSopenharmony_ci    /**
128e0dac50fSopenharmony_ci     * @brief Set window tag.
129e0dac50fSopenharmony_ci     *
130e0dac50fSopenharmony_ci     * @param windowTag The tag of window.
131e0dac50fSopenharmony_ci     */
132e0dac50fSopenharmony_ci    void SetWindowTag(WindowTag windowTag);
133e0dac50fSopenharmony_ci
134e0dac50fSopenharmony_ci    /**
135e0dac50fSopenharmony_ci     * @brief Set system bar property.
136e0dac50fSopenharmony_ci     *
137e0dac50fSopenharmony_ci     * @param type The system bar window type.
138e0dac50fSopenharmony_ci     * @param property The system bar property.
139e0dac50fSopenharmony_ci     */
140e0dac50fSopenharmony_ci    void SetSystemBarProperty(WindowType type, const SystemBarProperty& property);
141e0dac50fSopenharmony_ci
142e0dac50fSopenharmony_ci    /**
143e0dac50fSopenharmony_ci     * @brief Set window session type.
144e0dac50fSopenharmony_ci     *
145e0dac50fSopenharmony_ci     * @param sessionType The session type of window.
146e0dac50fSopenharmony_ci     */
147e0dac50fSopenharmony_ci    void SetWindowSessionType(WindowSessionType sessionType);
148e0dac50fSopenharmony_ci
149e0dac50fSopenharmony_ci    /**
150e0dac50fSopenharmony_ci     * @brief Set hit offset.
151e0dac50fSopenharmony_ci     *
152e0dac50fSopenharmony_ci     * @param x The position x of hit offset.
153e0dac50fSopenharmony_ci     * @param y The position y of hit offset.
154e0dac50fSopenharmony_ci     */
155e0dac50fSopenharmony_ci    void SetHitOffset(int32_t x, int32_t y);
156e0dac50fSopenharmony_ci
157e0dac50fSopenharmony_ci    /**
158e0dac50fSopenharmony_ci     * @brief Is turned screen on.
159e0dac50fSopenharmony_ci     *
160e0dac50fSopenharmony_ci     * @return The window is marked to turn the screen on or not.
161e0dac50fSopenharmony_ci     */
162e0dac50fSopenharmony_ci    bool IsTurnScreenOn() const;
163e0dac50fSopenharmony_ci
164e0dac50fSopenharmony_ci    /**
165e0dac50fSopenharmony_ci     * @brief Set screen on.
166e0dac50fSopenharmony_ci     *
167e0dac50fSopenharmony_ci     * @param turnScreenOn mark the window to turn the screen on or not.
168e0dac50fSopenharmony_ci     */
169e0dac50fSopenharmony_ci    void SetTurnScreenOn(bool turnScreenOn);
170e0dac50fSopenharmony_ci
171e0dac50fSopenharmony_ci    /**
172e0dac50fSopenharmony_ci     * @brief Is keep screen on.
173e0dac50fSopenharmony_ci     *
174e0dac50fSopenharmony_ci     * @return Return true means the window would keep screen on, otherwise not.
175e0dac50fSopenharmony_ci     */
176e0dac50fSopenharmony_ci    bool IsKeepScreenOn() const;
177e0dac50fSopenharmony_ci
178e0dac50fSopenharmony_ci    /**
179e0dac50fSopenharmony_ci     * @brief Set keep screen on.
180e0dac50fSopenharmony_ci     *
181e0dac50fSopenharmony_ci     * @param keepScreenOn The window keep screen on or not.
182e0dac50fSopenharmony_ci     */
183e0dac50fSopenharmony_ci    void SetKeepScreenOn(bool keepScreenOn);
184e0dac50fSopenharmony_ci
185e0dac50fSopenharmony_ci    /**
186e0dac50fSopenharmony_ci     * @brief Set window calling window id.
187e0dac50fSopenharmony_ci     *
188e0dac50fSopenharmony_ci     * @param windowId The window id of calling window.
189e0dac50fSopenharmony_ci     */
190e0dac50fSopenharmony_ci    void SetCallingWindow(uint32_t windowId);
191e0dac50fSopenharmony_ci
192e0dac50fSopenharmony_ci    /**
193e0dac50fSopenharmony_ci     * @brief Set window requested orientation.
194e0dac50fSopenharmony_ci     *
195e0dac50fSopenharmony_ci     * @param orientation The requested orientation of window.
196e0dac50fSopenharmony_ci     */
197e0dac50fSopenharmony_ci    void SetRequestedOrientation(Orientation orientation);
198e0dac50fSopenharmony_ci
199e0dac50fSopenharmony_ci    /**
200e0dac50fSopenharmony_ci     * @brief Set window brightness.
201e0dac50fSopenharmony_ci     *
202e0dac50fSopenharmony_ci     * @param brightness The brightness of screen. the value is between 0.0 ~ 1.0.
203e0dac50fSopenharmony_ci     */
204e0dac50fSopenharmony_ci    void SetBrightness(float brightness);
205e0dac50fSopenharmony_ci
206e0dac50fSopenharmony_ci    /**
207e0dac50fSopenharmony_ci     * @brief Set window main handler available.
208e0dac50fSopenharmony_ci     *
209e0dac50fSopenharmony_ci     * @param isMainHandlerAvailable is window main handler available.
210e0dac50fSopenharmony_ci     */
211e0dac50fSopenharmony_ci    void SetMainHandlerAvailable(bool isMainHandlerAvailable);
212e0dac50fSopenharmony_ci
213e0dac50fSopenharmony_ci    /**
214e0dac50fSopenharmony_ci     * @brief Set subwindow decor enable.
215e0dac50fSopenharmony_ci     *
216e0dac50fSopenharmony_ci     * @param subWindowDecorEnable the subwindow decor enable.
217e0dac50fSopenharmony_ci     */
218e0dac50fSopenharmony_ci    void SetSubWindowDecorEnable(bool subWindowDecorEnable);
219e0dac50fSopenharmony_ci
220e0dac50fSopenharmony_ci    /**
221e0dac50fSopenharmony_ci     * @brief Set subwindow title.
222e0dac50fSopenharmony_ci     *
223e0dac50fSopenharmony_ci     * @param subWindowTitle the subwindow title.
224e0dac50fSopenharmony_ci     */
225e0dac50fSopenharmony_ci    void SetSubWindowTitle(const std::string& subWindowTitle);
226e0dac50fSopenharmony_ci
227e0dac50fSopenharmony_ci    /**
228e0dac50fSopenharmony_ci     * @brief Set subwindow topmost.
229e0dac50fSopenharmony_ci     *
230e0dac50fSopenharmony_ci     * @param isTopmost true means enable, default disabled.
231e0dac50fSopenharmony_ci     */
232e0dac50fSopenharmony_ci    void SetWindowTopmost(bool isTopmost);
233e0dac50fSopenharmony_ci
234e0dac50fSopenharmony_ci    /**
235e0dac50fSopenharmony_ci     * @brief Set only sceneboard supported.
236e0dac50fSopenharmony_ci     *
237e0dac50fSopenharmony_ci     * @param onlySupportSceneBoard only sceneboard supported.
238e0dac50fSopenharmony_ci     */
239e0dac50fSopenharmony_ci    void SetOnlySupportSceneBoard(bool onlySupportSceneBoard);
240e0dac50fSopenharmony_ci
241e0dac50fSopenharmony_ci    /**
242e0dac50fSopenharmony_ci     * @brief Get window mode.
243e0dac50fSopenharmony_ci     *
244e0dac50fSopenharmony_ci     * @return The mode of window.
245e0dac50fSopenharmony_ci     */
246e0dac50fSopenharmony_ci    WindowMode GetWindowMode() const;
247e0dac50fSopenharmony_ci
248e0dac50fSopenharmony_ci    /**
249e0dac50fSopenharmony_ci     * @brief Get window type.
250e0dac50fSopenharmony_ci     *
251e0dac50fSopenharmony_ci     * @return The type of window.
252e0dac50fSopenharmony_ci     */
253e0dac50fSopenharmony_ci    WindowType GetWindowType() const;
254e0dac50fSopenharmony_ci
255e0dac50fSopenharmony_ci    /**
256e0dac50fSopenharmony_ci     * @brief Get window tag.
257e0dac50fSopenharmony_ci     *
258e0dac50fSopenharmony_ci     * @return Return window tag.
259e0dac50fSopenharmony_ci     */
260e0dac50fSopenharmony_ci    WindowTag GetWindowTag() const;
261e0dac50fSopenharmony_ci
262e0dac50fSopenharmony_ci    /**
263e0dac50fSopenharmony_ci     * @brief Get window rect.
264e0dac50fSopenharmony_ci     *
265e0dac50fSopenharmony_ci     * @return The rect of window.
266e0dac50fSopenharmony_ci     */
267e0dac50fSopenharmony_ci    Rect GetWindowRect() const;
268e0dac50fSopenharmony_ci
269e0dac50fSopenharmony_ci    /**
270e0dac50fSopenharmony_ci     * @brief Get parent id.
271e0dac50fSopenharmony_ci     *
272e0dac50fSopenharmony_ci     * @return Return parent window id.
273e0dac50fSopenharmony_ci     */
274e0dac50fSopenharmony_ci    uint32_t GetParentId() const;
275e0dac50fSopenharmony_ci
276e0dac50fSopenharmony_ci    /**
277e0dac50fSopenharmony_ci     * @brief Get display id.
278e0dac50fSopenharmony_ci     *
279e0dac50fSopenharmony_ci     * @return Return diplay id.
280e0dac50fSopenharmony_ci     */
281e0dac50fSopenharmony_ci    DisplayId GetDisplayId() const;
282e0dac50fSopenharmony_ci
283e0dac50fSopenharmony_ci    /**
284e0dac50fSopenharmony_ci     * @brief Get window flags.
285e0dac50fSopenharmony_ci     *
286e0dac50fSopenharmony_ci     * @return Return the window flags.
287e0dac50fSopenharmony_ci     */
288e0dac50fSopenharmony_ci    uint32_t GetWindowFlags() const;
289e0dac50fSopenharmony_ci
290e0dac50fSopenharmony_ci    /**
291e0dac50fSopenharmony_ci     * @brief Get bundle name.
292e0dac50fSopenharmony_ci     *
293e0dac50fSopenharmony_ci     * @return Return the bundle name.
294e0dac50fSopenharmony_ci     */
295e0dac50fSopenharmony_ci    const std::string GetBundleName() const;
296e0dac50fSopenharmony_ci
297e0dac50fSopenharmony_ci    /**
298e0dac50fSopenharmony_ci     * @brief Get window name.
299e0dac50fSopenharmony_ci     *
300e0dac50fSopenharmony_ci     * @return Return the window name.
301e0dac50fSopenharmony_ci     */
302e0dac50fSopenharmony_ci    const std::string& GetWindowName() const;
303e0dac50fSopenharmony_ci
304e0dac50fSopenharmony_ci    /**
305e0dac50fSopenharmony_ci     * @brief Get window touchable.
306e0dac50fSopenharmony_ci     *
307e0dac50fSopenharmony_ci     * @return Return true means the window is touchable, otherwise not.
308e0dac50fSopenharmony_ci     */
309e0dac50fSopenharmony_ci    bool GetTouchable() const;
310e0dac50fSopenharmony_ci
311e0dac50fSopenharmony_ci    /**
312e0dac50fSopenharmony_ci     * @brief Get window focusable.
313e0dac50fSopenharmony_ci     *
314e0dac50fSopenharmony_ci     * @return Return true means the window is focusable, otherwise not.
315e0dac50fSopenharmony_ci     */
316e0dac50fSopenharmony_ci    bool GetFocusable() const;
317e0dac50fSopenharmony_ci
318e0dac50fSopenharmony_ci    /**
319e0dac50fSopenharmony_ci     * @brief Get window hit offset.
320e0dac50fSopenharmony_ci     *
321e0dac50fSopenharmony_ci     * @return Return hit offset value as PointInfo.
322e0dac50fSopenharmony_ci     */
323e0dac50fSopenharmony_ci    const PointInfo& GetHitOffset() const;
324e0dac50fSopenharmony_ci
325e0dac50fSopenharmony_ci    /**
326e0dac50fSopenharmony_ci     * @brief Get system bar property.
327e0dac50fSopenharmony_ci     *
328e0dac50fSopenharmony_ci     * @return Return system bar property map.
329e0dac50fSopenharmony_ci     */
330e0dac50fSopenharmony_ci    const std::unordered_map<WindowType, SystemBarProperty>& GetSystemBarProperty() const;
331e0dac50fSopenharmony_ci
332e0dac50fSopenharmony_ci    /**
333e0dac50fSopenharmony_ci     * @brief Get window request orientation.
334e0dac50fSopenharmony_ci     *
335e0dac50fSopenharmony_ci     * @return Return window requested orientation.
336e0dac50fSopenharmony_ci     */
337e0dac50fSopenharmony_ci    Orientation GetRequestedOrientation() const;
338e0dac50fSopenharmony_ci
339e0dac50fSopenharmony_ci    /**
340e0dac50fSopenharmony_ci     * @brief Get window session type.
341e0dac50fSopenharmony_ci     *
342e0dac50fSopenharmony_ci     * @return Return window session type.
343e0dac50fSopenharmony_ci     */
344e0dac50fSopenharmony_ci    WindowSessionType GetWindowSessionType() const;
345e0dac50fSopenharmony_ci
346e0dac50fSopenharmony_ci    /**
347e0dac50fSopenharmony_ci     * @brief Get calling window id.
348e0dac50fSopenharmony_ci     *
349e0dac50fSopenharmony_ci     * @return Return the calling window id of window.
350e0dac50fSopenharmony_ci     */
351e0dac50fSopenharmony_ci    uint32_t GetCallingWindow() const;
352e0dac50fSopenharmony_ci
353e0dac50fSopenharmony_ci    /**
354e0dac50fSopenharmony_ci     * @brief Get window brightness.
355e0dac50fSopenharmony_ci     *
356e0dac50fSopenharmony_ci     * @return Return screen brightness.
357e0dac50fSopenharmony_ci     */
358e0dac50fSopenharmony_ci    float GetBrightness() const;
359e0dac50fSopenharmony_ci
360e0dac50fSopenharmony_ci    /**
361e0dac50fSopenharmony_ci     * @brief Get main handler available
362e0dac50fSopenharmony_ci     *
363e0dac50fSopenharmony_ci     * @return Return true means the main handler available, otherwise not.
364e0dac50fSopenharmony_ci     */
365e0dac50fSopenharmony_ci    bool GetMainHandlerAvailable() const;
366e0dac50fSopenharmony_ci
367e0dac50fSopenharmony_ci    /**
368e0dac50fSopenharmony_ci     * @brief Get only sceneboard supported
369e0dac50fSopenharmony_ci     *
370e0dac50fSopenharmony_ci     * @return Return ture means only sceneboard supported, otherwise not.
371e0dac50fSopenharmony_ci    */
372e0dac50fSopenharmony_ci    bool GetOnlySupportSceneBoard() const;
373e0dac50fSopenharmony_ci
374e0dac50fSopenharmony_ci    /**
375e0dac50fSopenharmony_ci     * @brief Get subwindow decor enable
376e0dac50fSopenharmony_ci     *
377e0dac50fSopenharmony_ci     * @return Return ture means the subwindow decor enabled, otherwise not.
378e0dac50fSopenharmony_ci    */
379e0dac50fSopenharmony_ci    bool GetSubWindowDecorEnable() const;
380e0dac50fSopenharmony_ci
381e0dac50fSopenharmony_ci    /**
382e0dac50fSopenharmony_ci     * @brief Get subwindow title
383e0dac50fSopenharmony_ci     *
384e0dac50fSopenharmony_ci     * @return Return the subwindow title
385e0dac50fSopenharmony_ci    */
386e0dac50fSopenharmony_ci    std::string GetSubWindowTitle() const;
387e0dac50fSopenharmony_ci
388e0dac50fSopenharmony_ci    /**
389e0dac50fSopenharmony_ci     * @brief Get window topmost
390e0dac50fSopenharmony_ci     *
391e0dac50fSopenharmony_ci     * @return true means the window is topmost, otherwise not.
392e0dac50fSopenharmony_ci    */
393e0dac50fSopenharmony_ci    bool GetWindowTopmost() const;
394e0dac50fSopenharmony_ci
395e0dac50fSopenharmony_ci    /**
396e0dac50fSopenharmony_ci     * @brief Set whether this window is a sub window of any level of UIExtension.
397e0dac50fSopenharmony_ci     *
398e0dac50fSopenharmony_ci     * @param isUIExtAnySubWindow true - is any sub window of UIExtension,
399e0dac50fSopenharmony_ci     *                            false - is not any sub window of UIExtension.
400e0dac50fSopenharmony_ci    */
401e0dac50fSopenharmony_ci    void SetIsUIExtAnySubWindow(bool isUIExtAnySubWindow);
402e0dac50fSopenharmony_ci
403e0dac50fSopenharmony_ci    /**
404e0dac50fSopenharmony_ci     * @brief Get whether this window is a sub window of any level of UIExtension.
405e0dac50fSopenharmony_ci     *
406e0dac50fSopenharmony_ci     * @return true - is a sub window of any level of UIExtension,
407e0dac50fSopenharmony_ci     *         false - is not a sub window of any level of UIExtension.
408e0dac50fSopenharmony_ci     */
409e0dac50fSopenharmony_ci    bool GetIsUIExtAnySubWindow() const;
410e0dac50fSopenharmony_ci
411e0dac50fSopenharmony_ciprivate:
412e0dac50fSopenharmony_ci    Rect windowRect_ { 0, 0, 0, 0 };
413e0dac50fSopenharmony_ci    std::string windowName_ { "" };
414e0dac50fSopenharmony_ci    std::string bundleName_ { "" };
415e0dac50fSopenharmony_ci    std::string subWindowTitle_ = { "" };
416e0dac50fSopenharmony_ci    WindowType type_ { WindowType::WINDOW_TYPE_APP_MAIN_WINDOW };
417e0dac50fSopenharmony_ci    WindowMode mode_ { WindowMode::WINDOW_MODE_UNDEFINED };
418e0dac50fSopenharmony_ci    bool focusable_ { true };
419e0dac50fSopenharmony_ci    bool touchable_ { true };
420e0dac50fSopenharmony_ci    bool subWindowDecorEnable_ = { false };
421e0dac50fSopenharmony_ci    bool onlySupportSceneBoard_ = { false };
422e0dac50fSopenharmony_ci    bool keepScreenOn_ = { false };
423e0dac50fSopenharmony_ci    bool turnScreenOn_ = { false };
424e0dac50fSopenharmony_ci    bool isMainHandlerAvailable_ = { true };
425e0dac50fSopenharmony_ci    bool isTopmost_ = false;
426e0dac50fSopenharmony_ci    DisplayId displayId_ { 0 };
427e0dac50fSopenharmony_ci    uint32_t parentId_ = INVALID_WINDOW_ID;
428e0dac50fSopenharmony_ci    uint32_t callingWindow_ = INVALID_WINDOW_ID;
429e0dac50fSopenharmony_ci    uint32_t flags_ { 0 };
430e0dac50fSopenharmony_ci    PointInfo hitOffset_ { 0, 0 };
431e0dac50fSopenharmony_ci    WindowTag windowTag_;
432e0dac50fSopenharmony_ci    WindowSessionType sessionType_ { WindowSessionType::SCENE_SESSION };
433e0dac50fSopenharmony_ci    float brightness_ = UNDEFINED_BRIGHTNESS;
434e0dac50fSopenharmony_ci
435e0dac50fSopenharmony_ci    Orientation requestedOrientation_ { Orientation::UNSPECIFIED };
436e0dac50fSopenharmony_ci    std::unordered_map<WindowType, SystemBarProperty> sysBarPropMap_ {
437e0dac50fSopenharmony_ci        { WindowType::WINDOW_TYPE_STATUS_BAR,     SystemBarProperty() },
438e0dac50fSopenharmony_ci        { WindowType::WINDOW_TYPE_NAVIGATION_BAR, SystemBarProperty() },
439e0dac50fSopenharmony_ci    };
440e0dac50fSopenharmony_ci};
441e0dac50fSopenharmony_ci} // namespace Rosen
442e0dac50fSopenharmony_ci} // namespace OHOS
443e0dac50fSopenharmony_ci#endif // OHOS_ROSEN_WINDOW_OPTION_H
444