1885b47fbSopenharmony_ci/* 2885b47fbSopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd. 3885b47fbSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4885b47fbSopenharmony_ci * you may not use this file except in compliance with the License. 5885b47fbSopenharmony_ci * You may obtain a copy of the License at 6885b47fbSopenharmony_ci * 7885b47fbSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8885b47fbSopenharmony_ci * 9885b47fbSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10885b47fbSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11885b47fbSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12885b47fbSopenharmony_ci * See the License for the specific language governing permissions and 13885b47fbSopenharmony_ci * limitations under the License. 14885b47fbSopenharmony_ci */ 15885b47fbSopenharmony_ci 16885b47fbSopenharmony_ci#ifndef ACCESSIBILITY_WINDOW_INFO_H 17885b47fbSopenharmony_ci#define ACCESSIBILITY_WINDOW_INFO_H 18885b47fbSopenharmony_ci 19885b47fbSopenharmony_ci#include <vector> 20885b47fbSopenharmony_ci#include "accessibility_element_info.h" 21885b47fbSopenharmony_ci 22885b47fbSopenharmony_cinamespace OHOS { 23885b47fbSopenharmony_cinamespace Accessibility { 24885b47fbSopenharmony_ciclass AccessibilityWindowInfo { 25885b47fbSopenharmony_cipublic: 26885b47fbSopenharmony_ci /** 27885b47fbSopenharmony_ci * @brief Construct 28885b47fbSopenharmony_ci * @since 3 29885b47fbSopenharmony_ci * @sysCap Accessibility 30885b47fbSopenharmony_ci */ 31885b47fbSopenharmony_ci AccessibilityWindowInfo(); 32885b47fbSopenharmony_ci 33885b47fbSopenharmony_ci /** 34885b47fbSopenharmony_ci * @brief Get the window type. 35885b47fbSopenharmony_ci * @return The accessibility window type. Refer to [AccessibilityWindowType]. 36885b47fbSopenharmony_ci * @since 3 37885b47fbSopenharmony_ci * @sysCap Accessibility 38885b47fbSopenharmony_ci */ 39885b47fbSopenharmony_ci AccessibilityWindowType GetAccessibilityWindowType() const; 40885b47fbSopenharmony_ci 41885b47fbSopenharmony_ci /** 42885b47fbSopenharmony_ci * @brief Set the window type. 43885b47fbSopenharmony_ci * @param type The accessibility window type. Refer to [AccessibilityWindowType]. 44885b47fbSopenharmony_ci * @since 3 45885b47fbSopenharmony_ci * @sysCap Accessibility 46885b47fbSopenharmony_ci */ 47885b47fbSopenharmony_ci void SetAccessibilityWindowType(const AccessibilityWindowType type); 48885b47fbSopenharmony_ci 49885b47fbSopenharmony_ci /** 50885b47fbSopenharmony_ci * @brief Get The window layer 51885b47fbSopenharmony_ci * @return The layer of window 52885b47fbSopenharmony_ci * @since 3 53885b47fbSopenharmony_ci * @sysCap Accessibility 54885b47fbSopenharmony_ci */ 55885b47fbSopenharmony_ci int32_t GetWindowLayer() const; 56885b47fbSopenharmony_ci 57885b47fbSopenharmony_ci /** 58885b47fbSopenharmony_ci * @brief Set The window layer 59885b47fbSopenharmony_ci * @param layer The window layer 60885b47fbSopenharmony_ci * @since 3 61885b47fbSopenharmony_ci * @sysCap Accessibility 62885b47fbSopenharmony_ci */ 63885b47fbSopenharmony_ci void SetWindowLayer(const int32_t layer); 64885b47fbSopenharmony_ci 65885b47fbSopenharmony_ci /** 66885b47fbSopenharmony_ci * @brief Get the window id of current window. 67885b47fbSopenharmony_ci * @return The window id of current window. 68885b47fbSopenharmony_ci * @since 3 69885b47fbSopenharmony_ci * @sysCap Accessibility 70885b47fbSopenharmony_ci */ 71885b47fbSopenharmony_ci int32_t GetWindowId() const; 72885b47fbSopenharmony_ci 73885b47fbSopenharmony_ci /** 74885b47fbSopenharmony_ci * @brief Set the window id of current window. 75885b47fbSopenharmony_ci * @param id The window id of current window. 76885b47fbSopenharmony_ci * @since 3 77885b47fbSopenharmony_ci * @sysCap Accessibility 78885b47fbSopenharmony_ci */ 79885b47fbSopenharmony_ci void SetWindowId(const int32_t id); 80885b47fbSopenharmony_ci 81885b47fbSopenharmony_ci /** 82885b47fbSopenharmony_ci * @brief Get the screen pixel coordinates 83885b47fbSopenharmony_ci * @return The screen pixel coordinates 84885b47fbSopenharmony_ci * @since 3 85885b47fbSopenharmony_ci * @sysCap Accessibility 86885b47fbSopenharmony_ci */ 87885b47fbSopenharmony_ci const Rect &GetRectInScreen() const; 88885b47fbSopenharmony_ci 89885b47fbSopenharmony_ci /** 90885b47fbSopenharmony_ci * @brief Set the screen pixel coordinates 91885b47fbSopenharmony_ci * @param bounds The screen pixel coordinates 92885b47fbSopenharmony_ci * @since 3 93885b47fbSopenharmony_ci * @sysCap Accessibility 94885b47fbSopenharmony_ci */ 95885b47fbSopenharmony_ci void SetRectInScreen(const Rect &bounds); 96885b47fbSopenharmony_ci 97885b47fbSopenharmony_ci /** 98885b47fbSopenharmony_ci * @brief Check whether the window is active or not. 99885b47fbSopenharmony_ci * @return true: the window is active, otherwise is not. 100885b47fbSopenharmony_ci * @since 3 101885b47fbSopenharmony_ci * @sysCap Accessibility 102885b47fbSopenharmony_ci */ 103885b47fbSopenharmony_ci bool IsActive() const; 104885b47fbSopenharmony_ci 105885b47fbSopenharmony_ci /** 106885b47fbSopenharmony_ci * @brief Set whether the window is active or not. 107885b47fbSopenharmony_ci * @param active true: the window is active, otherwise is not. 108885b47fbSopenharmony_ci * @since 3 109885b47fbSopenharmony_ci * @sysCap Accessibility 110885b47fbSopenharmony_ci */ 111885b47fbSopenharmony_ci void SetActive(bool active); 112885b47fbSopenharmony_ci 113885b47fbSopenharmony_ci /** 114885b47fbSopenharmony_ci * @brief Checks whether this window has gained focus. 115885b47fbSopenharmony_ci * @return true: the window has gained focus, otherwise is not. 116885b47fbSopenharmony_ci * @since 3 117885b47fbSopenharmony_ci * @sysCap Accessibility 118885b47fbSopenharmony_ci */ 119885b47fbSopenharmony_ci bool IsFocused() const; 120885b47fbSopenharmony_ci 121885b47fbSopenharmony_ci /** 122885b47fbSopenharmony_ci * @brief Set whether this window has gained focus. 123885b47fbSopenharmony_ci * @param focused true: the window has gained focus, otherwise is not. 124885b47fbSopenharmony_ci * @since 3 125885b47fbSopenharmony_ci * @sysCap Accessibility 126885b47fbSopenharmony_ci */ 127885b47fbSopenharmony_ci void SetFocused(bool focused); 128885b47fbSopenharmony_ci 129885b47fbSopenharmony_ci /** 130885b47fbSopenharmony_ci * @brief Checks whether this window has gained accessibility focus. 131885b47fbSopenharmony_ci * @return true: this window has gained accessibility focus, otherwise is not. 132885b47fbSopenharmony_ci * @since 3 133885b47fbSopenharmony_ci * @sysCap Accessibility 134885b47fbSopenharmony_ci */ 135885b47fbSopenharmony_ci bool IsAccessibilityFocused() const; 136885b47fbSopenharmony_ci 137885b47fbSopenharmony_ci /** 138885b47fbSopenharmony_ci * @brief Set whether this window has gained accessibility focus. 139885b47fbSopenharmony_ci * @param accessibilityFocused true: this window has gained accessibility focus, otherwise is not. 140885b47fbSopenharmony_ci * @since 3 141885b47fbSopenharmony_ci * @sysCap Accessibility 142885b47fbSopenharmony_ci */ 143885b47fbSopenharmony_ci void SetAccessibilityFocused(const bool accessibilityFocused); 144885b47fbSopenharmony_ci 145885b47fbSopenharmony_ci /** 146885b47fbSopenharmony_ci * @brief Set the display id 147885b47fbSopenharmony_ci * @param displayId the display id of the window 148885b47fbSopenharmony_ci * @sysCap Accessibility 149885b47fbSopenharmony_ci */ 150885b47fbSopenharmony_ci void SetDisplayId(const uint64_t displayId); 151885b47fbSopenharmony_ci 152885b47fbSopenharmony_ci /** 153885b47fbSopenharmony_ci * @brief Get the display id 154885b47fbSopenharmony_ci * @return Return the display id of the window. 155885b47fbSopenharmony_ci * @sysCap Accessibility 156885b47fbSopenharmony_ci */ 157885b47fbSopenharmony_ci uint64_t GetDisplayId() const; 158885b47fbSopenharmony_ci 159885b47fbSopenharmony_ci /** 160885b47fbSopenharmony_ci * @brief Get window type 161885b47fbSopenharmony_ci * @return The type of window. Refer to [OHOS::Rosen::WindowType]. 162885b47fbSopenharmony_ci * @sysCap Accessibility 163885b47fbSopenharmony_ci */ 164885b47fbSopenharmony_ci uint32_t GetWindowType() const; 165885b47fbSopenharmony_ci 166885b47fbSopenharmony_ci /** 167885b47fbSopenharmony_ci * @brief Set window type 168885b47fbSopenharmony_ci * @param type The type of window. Refer to [OHOS::Rosen::WindowType]. 169885b47fbSopenharmony_ci * @sysCap Accessibility 170885b47fbSopenharmony_ci */ 171885b47fbSopenharmony_ci void SetWindowType(const uint32_t type); 172885b47fbSopenharmony_ci 173885b47fbSopenharmony_ci /** 174885b47fbSopenharmony_ci * @brief Get window mode 175885b47fbSopenharmony_ci * @return The mode of window. Refer to [OHOS::Rosen::WindowMode]. 176885b47fbSopenharmony_ci * @sysCap Accessibility 177885b47fbSopenharmony_ci */ 178885b47fbSopenharmony_ci uint32_t GetWindowMode() const; 179885b47fbSopenharmony_ci 180885b47fbSopenharmony_ci /** 181885b47fbSopenharmony_ci * @brief Set window mode 182885b47fbSopenharmony_ci * @param mode The mode of window. Refer to [OHOS::Rosen::WindowMode]. 183885b47fbSopenharmony_ci * @sysCap Accessibility 184885b47fbSopenharmony_ci */ 185885b47fbSopenharmony_ci void SetWindowMode(const uint32_t mode); 186885b47fbSopenharmony_ci 187885b47fbSopenharmony_ci /** 188885b47fbSopenharmony_ci * @brief Get whether the decoration state is enabled 189885b47fbSopenharmony_ci * @return true:the decoration is enabled; false:the decoration is disabled 190885b47fbSopenharmony_ci * @sysCap Accessibility 191885b47fbSopenharmony_ci */ 192885b47fbSopenharmony_ci bool IsDecorEnable() const; 193885b47fbSopenharmony_ci 194885b47fbSopenharmony_ci /** 195885b47fbSopenharmony_ci * @brief Set the decoration state 196885b47fbSopenharmony_ci * @param isDecorEnable true:enable decoration; false:disable decoration 197885b47fbSopenharmony_ci * @sysCap Accessibility 198885b47fbSopenharmony_ci */ 199885b47fbSopenharmony_ci void SetDecorEnable(const bool isDecorEnable); 200885b47fbSopenharmony_ci 201885b47fbSopenharmony_ci /** 202885b47fbSopenharmony_ci * @brief Set inner window id 203885b47fbSopenharmony_ci * @param innerWid inner window id 204885b47fbSopenharmony_ci * @sysCap Accessibility 205885b47fbSopenharmony_ci */ 206885b47fbSopenharmony_ci void SetInnerWid(const int32_t innerWid); 207885b47fbSopenharmony_ci 208885b47fbSopenharmony_ci /** 209885b47fbSopenharmony_ci * @brief Get inner window id 210885b47fbSopenharmony_ci * @return Inner window id 211885b47fbSopenharmony_ci * @sysCap Accessibility 212885b47fbSopenharmony_ci */ 213885b47fbSopenharmony_ci int32_t GetInnerWid() const; 214885b47fbSopenharmony_ci 215885b47fbSopenharmony_ci /** 216885b47fbSopenharmony_ci * @brief Set arkui node id 217885b47fbSopenharmony_ci * @param nodeId Arkui node id 218885b47fbSopenharmony_ci * @sysCap Accessibility 219885b47fbSopenharmony_ci */ 220885b47fbSopenharmony_ci void SetUiNodeId(const int64_t nodeId); 221885b47fbSopenharmony_ci 222885b47fbSopenharmony_ci /** 223885b47fbSopenharmony_ci * @brief Get arkui node id 224885b47fbSopenharmony_ci * @return Arkui node id 225885b47fbSopenharmony_ci * @sysCap Accessibility 226885b47fbSopenharmony_ci */ 227885b47fbSopenharmony_ci int64_t GetUiNodeId() const; 228885b47fbSopenharmony_ci 229885b47fbSopenharmony_ci /** 230885b47fbSopenharmony_ci * @brief Set window scale val 231885b47fbSopenharmony_ci * @param scaleVal_ WMS scale Val 232885b47fbSopenharmony_ci * @sysCap Accessibility 233885b47fbSopenharmony_ci */ 234885b47fbSopenharmony_ci void SetScaleVal(const float scaleVal); 235885b47fbSopenharmony_ci 236885b47fbSopenharmony_ci /** 237885b47fbSopenharmony_ci * @brief Get window scale val 238885b47fbSopenharmony_ci * @return window scale val 239885b47fbSopenharmony_ci * @sysCap Accessibility 240885b47fbSopenharmony_ci */ 241885b47fbSopenharmony_ci float GetScaleVal() const; 242885b47fbSopenharmony_ci 243885b47fbSopenharmony_ci /** 244885b47fbSopenharmony_ci * @brief Set window scale x 245885b47fbSopenharmony_ci * @param scaleX_ WMS scale x 246885b47fbSopenharmony_ci * @sysCap Accessibility 247885b47fbSopenharmony_ci */ 248885b47fbSopenharmony_ci void SetScaleX(const float scaleX); 249885b47fbSopenharmony_ci 250885b47fbSopenharmony_ci /** 251885b47fbSopenharmony_ci * @brief Get window Scale X 252885b47fbSopenharmony_ci * @return window Scale X 253885b47fbSopenharmony_ci * @sysCap Accessibility 254885b47fbSopenharmony_ci */ 255885b47fbSopenharmony_ci float GetScaleX() const; 256885b47fbSopenharmony_ci 257885b47fbSopenharmony_ci /** 258885b47fbSopenharmony_ci * @brief Set window scale Y 259885b47fbSopenharmony_ci * @param scaleY_ WMS scale Y 260885b47fbSopenharmony_ci * @sysCap Accessibility 261885b47fbSopenharmony_ci */ 262885b47fbSopenharmony_ci void SetScaleY(const float scaleY); 263885b47fbSopenharmony_ci 264885b47fbSopenharmony_ci /** 265885b47fbSopenharmony_ci * @brief Get window scale Y 266885b47fbSopenharmony_ci * @return window scale Y 267885b47fbSopenharmony_ci * @sysCap Accessibility 268885b47fbSopenharmony_ci */ 269885b47fbSopenharmony_ci float GetScaleY() const; 270885b47fbSopenharmony_ci 271885b47fbSopenharmony_ci /** 272885b47fbSopenharmony_ci * @brief Set window bundle name 273885b47fbSopenharmony_ci * @param bundleName_ WMS bundle name 274885b47fbSopenharmony_ci * @sysCap Accessibility 275885b47fbSopenharmony_ci */ 276885b47fbSopenharmony_ci void SetBundleName(const std::string bundleName); 277885b47fbSopenharmony_ci 278885b47fbSopenharmony_ci /** 279885b47fbSopenharmony_ci * @brief Get window bundle name 280885b47fbSopenharmony_ci * @return window bundle name 281885b47fbSopenharmony_ci * @sysCap Accessibility 282885b47fbSopenharmony_ci */ 283885b47fbSopenharmony_ci std::string GetBundleName(); 284885b47fbSopenharmony_ci 285885b47fbSopenharmony_ci /** 286885b47fbSopenharmony_ci * @brief Set window touch hot areas 287885b47fbSopenharmony_ci * @param touchHotAreas_ WMS touch hot areas 288885b47fbSopenharmony_ci * @sysCap Accessibility 289885b47fbSopenharmony_ci */ 290885b47fbSopenharmony_ci void SetTouchHotAreas(const std::vector<Rect> &touchHotAreas); 291885b47fbSopenharmony_ci 292885b47fbSopenharmony_ci /** 293885b47fbSopenharmony_ci * @brief Get window touch hot areas 294885b47fbSopenharmony_ci * @return window touch hot areas 295885b47fbSopenharmony_ci * @sysCap Accessibility 296885b47fbSopenharmony_ci */ 297885b47fbSopenharmony_ci std::vector<Rect> GetTouchHotAreas(); 298885b47fbSopenharmony_ci 299885b47fbSopenharmony_ci /** 300885b47fbSopenharmony_ci * @brief Get the main window id of current window. 301885b47fbSopenharmony_ci * @return The main window id of current window. 302885b47fbSopenharmony_ci * @sysCap Accessibility 303885b47fbSopenharmony_ci */ 304885b47fbSopenharmony_ci int32_t GetMainWindowId() const; 305885b47fbSopenharmony_ci 306885b47fbSopenharmony_ci /** 307885b47fbSopenharmony_ci * @brief Set the main window id of current window. 308885b47fbSopenharmony_ci * @param id The main window id of current window. 309885b47fbSopenharmony_ci * @sysCap Accessibility 310885b47fbSopenharmony_ci */ 311885b47fbSopenharmony_ci void SetMainWindowId(const int32_t id); 312885b47fbSopenharmony_ci 313885b47fbSopenharmony_ciprotected: 314885b47fbSopenharmony_ci uint64_t displayId_ = 0; 315885b47fbSopenharmony_ci uint32_t windowMode_ = 0; 316885b47fbSopenharmony_ci uint32_t windowType_ = 0; 317885b47fbSopenharmony_ci AccessibilityWindowType accessibilityWindowType_ = TYPE_WINDOW_INVALID; 318885b47fbSopenharmony_ci int32_t windowLayer_ = INVALID_WINDOW_ID; 319885b47fbSopenharmony_ci int32_t windowId_ = INVALID_WINDOW_ID; 320885b47fbSopenharmony_ci bool active_ = false; 321885b47fbSopenharmony_ci bool focused_ = false; 322885b47fbSopenharmony_ci bool accessibilityFocused_ = false; 323885b47fbSopenharmony_ci Rect boundsInScreen_ {}; 324885b47fbSopenharmony_ci bool isDecorEnable_ = false; 325885b47fbSopenharmony_ci int32_t innerWid_ = 0; // used for window id 1, scene board 326885b47fbSopenharmony_ci int64_t uiNodeId_ = 0; // used for window id 1, scene board 327885b47fbSopenharmony_ci float scaleVal_ = 0.0; 328885b47fbSopenharmony_ci float scaleX_ = 0.0; 329885b47fbSopenharmony_ci float scaleY_ = 0.0; 330885b47fbSopenharmony_ci std::string bundleName_ = ""; 331885b47fbSopenharmony_ci std::vector<Rect> touchHotAreas_ = {}; 332885b47fbSopenharmony_ci int32_t mainWindowId_ = INVALID_WINDOW_ID; 333885b47fbSopenharmony_ci}; 334885b47fbSopenharmony_ci} // namespace Accessibility 335885b47fbSopenharmony_ci} // namespace OHOS 336885b47fbSopenharmony_ci#endif // ACCESSIBILITY_WINDOW_INFO_H