1e0dac50fSopenharmony_ci/* 2e0dac50fSopenharmony_ci * Copyright (c) 2021-2022 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#include "window_option.h" 17e0dac50fSopenharmony_ci#include "window_helper.h" 18e0dac50fSopenharmony_ci#include "wm_common.h" 19e0dac50fSopenharmony_ci 20e0dac50fSopenharmony_cinamespace OHOS { 21e0dac50fSopenharmony_cinamespace Rosen { 22e0dac50fSopenharmony_ciWindowOption::WindowOption(): windowTag_(WindowTag::SYSTEM_WINDOW) 23e0dac50fSopenharmony_ci{ 24e0dac50fSopenharmony_ci} 25e0dac50fSopenharmony_ci 26e0dac50fSopenharmony_civoid WindowOption::SetWindowRect(const struct Rect& rect) 27e0dac50fSopenharmony_ci{ 28e0dac50fSopenharmony_ci windowRect_ = rect; 29e0dac50fSopenharmony_ci} 30e0dac50fSopenharmony_ci 31e0dac50fSopenharmony_civoid WindowOption::SetWindowType(WindowType type) 32e0dac50fSopenharmony_ci{ 33e0dac50fSopenharmony_ci type_ = type; 34e0dac50fSopenharmony_ci} 35e0dac50fSopenharmony_ci 36e0dac50fSopenharmony_civoid WindowOption::SetWindowMode(WindowMode mode) 37e0dac50fSopenharmony_ci{ 38e0dac50fSopenharmony_ci if (!WindowHelper::IsValidWindowMode(mode)) { 39e0dac50fSopenharmony_ci return; 40e0dac50fSopenharmony_ci } 41e0dac50fSopenharmony_ci mode_ = mode; 42e0dac50fSopenharmony_ci} 43e0dac50fSopenharmony_ci 44e0dac50fSopenharmony_civoid WindowOption::SetFocusable(bool isFocusable) 45e0dac50fSopenharmony_ci{ 46e0dac50fSopenharmony_ci focusable_ = isFocusable; 47e0dac50fSopenharmony_ci} 48e0dac50fSopenharmony_ci 49e0dac50fSopenharmony_civoid WindowOption::SetTouchable(bool isTouchable) 50e0dac50fSopenharmony_ci{ 51e0dac50fSopenharmony_ci touchable_ = isTouchable; 52e0dac50fSopenharmony_ci} 53e0dac50fSopenharmony_ci 54e0dac50fSopenharmony_civoid WindowOption::SetDisplayId(DisplayId displayId) 55e0dac50fSopenharmony_ci{ 56e0dac50fSopenharmony_ci displayId_ = displayId; 57e0dac50fSopenharmony_ci} 58e0dac50fSopenharmony_ci 59e0dac50fSopenharmony_civoid WindowOption::SetParentId(uint32_t parentId) 60e0dac50fSopenharmony_ci{ 61e0dac50fSopenharmony_ci parentId_ = parentId; 62e0dac50fSopenharmony_ci} 63e0dac50fSopenharmony_ci 64e0dac50fSopenharmony_civoid WindowOption::SetWindowName(const std::string& windowName) 65e0dac50fSopenharmony_ci{ 66e0dac50fSopenharmony_ci windowName_ = windowName; 67e0dac50fSopenharmony_ci} 68e0dac50fSopenharmony_ci 69e0dac50fSopenharmony_civoid WindowOption::AddWindowFlag(WindowFlag flag) 70e0dac50fSopenharmony_ci{ 71e0dac50fSopenharmony_ci flags_ |= static_cast<uint32_t>(flag); 72e0dac50fSopenharmony_ci} 73e0dac50fSopenharmony_ci 74e0dac50fSopenharmony_civoid WindowOption::RemoveWindowFlag(WindowFlag flag) 75e0dac50fSopenharmony_ci{ 76e0dac50fSopenharmony_ci flags_ &= ~(static_cast<uint32_t>(flag)); 77e0dac50fSopenharmony_ci} 78e0dac50fSopenharmony_ci 79e0dac50fSopenharmony_civoid WindowOption::SetWindowFlags(uint32_t flags) 80e0dac50fSopenharmony_ci{ 81e0dac50fSopenharmony_ci flags_ = flags; 82e0dac50fSopenharmony_ci} 83e0dac50fSopenharmony_ci 84e0dac50fSopenharmony_civoid WindowOption::SetSystemBarProperty(WindowType type, const SystemBarProperty& property) 85e0dac50fSopenharmony_ci{ 86e0dac50fSopenharmony_ci if (type == WindowType::WINDOW_TYPE_STATUS_BAR || type == WindowType::WINDOW_TYPE_NAVIGATION_BAR) { 87e0dac50fSopenharmony_ci sysBarPropMap_[type] = property; 88e0dac50fSopenharmony_ci } 89e0dac50fSopenharmony_ci} 90e0dac50fSopenharmony_ci 91e0dac50fSopenharmony_ciRect WindowOption::GetWindowRect() const 92e0dac50fSopenharmony_ci{ 93e0dac50fSopenharmony_ci return windowRect_; 94e0dac50fSopenharmony_ci} 95e0dac50fSopenharmony_ci 96e0dac50fSopenharmony_ciWindowType WindowOption::GetWindowType() const 97e0dac50fSopenharmony_ci{ 98e0dac50fSopenharmony_ci return type_; 99e0dac50fSopenharmony_ci} 100e0dac50fSopenharmony_ci 101e0dac50fSopenharmony_ciWindowMode WindowOption::GetWindowMode() const 102e0dac50fSopenharmony_ci{ 103e0dac50fSopenharmony_ci return mode_; 104e0dac50fSopenharmony_ci} 105e0dac50fSopenharmony_ci 106e0dac50fSopenharmony_cibool WindowOption::GetFocusable() const 107e0dac50fSopenharmony_ci{ 108e0dac50fSopenharmony_ci return focusable_; 109e0dac50fSopenharmony_ci} 110e0dac50fSopenharmony_ci 111e0dac50fSopenharmony_cibool WindowOption::GetTouchable() const 112e0dac50fSopenharmony_ci{ 113e0dac50fSopenharmony_ci return touchable_; 114e0dac50fSopenharmony_ci} 115e0dac50fSopenharmony_ci 116e0dac50fSopenharmony_ciDisplayId WindowOption::GetDisplayId() const 117e0dac50fSopenharmony_ci{ 118e0dac50fSopenharmony_ci return displayId_; 119e0dac50fSopenharmony_ci} 120e0dac50fSopenharmony_ci 121e0dac50fSopenharmony_ciuint32_t WindowOption::GetParentId() const 122e0dac50fSopenharmony_ci{ 123e0dac50fSopenharmony_ci return parentId_; 124e0dac50fSopenharmony_ci} 125e0dac50fSopenharmony_ci 126e0dac50fSopenharmony_ciconst std::string& WindowOption::GetWindowName() const 127e0dac50fSopenharmony_ci{ 128e0dac50fSopenharmony_ci return windowName_; 129e0dac50fSopenharmony_ci} 130e0dac50fSopenharmony_ci 131e0dac50fSopenharmony_ciuint32_t WindowOption::GetWindowFlags() const 132e0dac50fSopenharmony_ci{ 133e0dac50fSopenharmony_ci return flags_; 134e0dac50fSopenharmony_ci} 135e0dac50fSopenharmony_ci 136e0dac50fSopenharmony_civoid WindowOption::SetHitOffset(int32_t x, int32_t y) 137e0dac50fSopenharmony_ci{ 138e0dac50fSopenharmony_ci hitOffset_.x = x; 139e0dac50fSopenharmony_ci hitOffset_.y = y; 140e0dac50fSopenharmony_ci} 141e0dac50fSopenharmony_ci 142e0dac50fSopenharmony_civoid WindowOption::SetWindowTag(WindowTag windowTag) 143e0dac50fSopenharmony_ci{ 144e0dac50fSopenharmony_ci windowTag_ = windowTag; 145e0dac50fSopenharmony_ci} 146e0dac50fSopenharmony_ci 147e0dac50fSopenharmony_ciWindowTag WindowOption::GetWindowTag() const 148e0dac50fSopenharmony_ci{ 149e0dac50fSopenharmony_ci return windowTag_; 150e0dac50fSopenharmony_ci} 151e0dac50fSopenharmony_ci 152e0dac50fSopenharmony_civoid WindowOption::SetWindowSessionType(WindowSessionType sessionType) 153e0dac50fSopenharmony_ci{ 154e0dac50fSopenharmony_ci sessionType_ = sessionType; 155e0dac50fSopenharmony_ci} 156e0dac50fSopenharmony_ci 157e0dac50fSopenharmony_ciWindowSessionType WindowOption::GetWindowSessionType() const 158e0dac50fSopenharmony_ci{ 159e0dac50fSopenharmony_ci return sessionType_; 160e0dac50fSopenharmony_ci} 161e0dac50fSopenharmony_ci 162e0dac50fSopenharmony_civoid WindowOption::SetMainHandlerAvailable(bool isMainHandlerAvailable) 163e0dac50fSopenharmony_ci{ 164e0dac50fSopenharmony_ci isMainHandlerAvailable_ = isMainHandlerAvailable; 165e0dac50fSopenharmony_ci} 166e0dac50fSopenharmony_ci 167e0dac50fSopenharmony_cibool WindowOption::GetMainHandlerAvailable() const 168e0dac50fSopenharmony_ci{ 169e0dac50fSopenharmony_ci return isMainHandlerAvailable_; 170e0dac50fSopenharmony_ci} 171e0dac50fSopenharmony_ci 172e0dac50fSopenharmony_ciconst PointInfo& WindowOption::GetHitOffset() const 173e0dac50fSopenharmony_ci{ 174e0dac50fSopenharmony_ci return hitOffset_; 175e0dac50fSopenharmony_ci} 176e0dac50fSopenharmony_ci 177e0dac50fSopenharmony_ciconst std::unordered_map<WindowType, SystemBarProperty>& WindowOption::GetSystemBarProperty() const 178e0dac50fSopenharmony_ci{ 179e0dac50fSopenharmony_ci return sysBarPropMap_; 180e0dac50fSopenharmony_ci} 181e0dac50fSopenharmony_ci 182e0dac50fSopenharmony_civoid WindowOption::SetKeepScreenOn(bool keepScreenOn) 183e0dac50fSopenharmony_ci{ 184e0dac50fSopenharmony_ci keepScreenOn_ = keepScreenOn; 185e0dac50fSopenharmony_ci} 186e0dac50fSopenharmony_ci 187e0dac50fSopenharmony_cibool WindowOption::IsKeepScreenOn() const 188e0dac50fSopenharmony_ci{ 189e0dac50fSopenharmony_ci return keepScreenOn_; 190e0dac50fSopenharmony_ci} 191e0dac50fSopenharmony_ci 192e0dac50fSopenharmony_civoid WindowOption::SetTurnScreenOn(bool turnScreenOn) 193e0dac50fSopenharmony_ci{ 194e0dac50fSopenharmony_ci turnScreenOn_ = turnScreenOn; 195e0dac50fSopenharmony_ci} 196e0dac50fSopenharmony_ci 197e0dac50fSopenharmony_cibool WindowOption::IsTurnScreenOn() const 198e0dac50fSopenharmony_ci{ 199e0dac50fSopenharmony_ci return turnScreenOn_; 200e0dac50fSopenharmony_ci} 201e0dac50fSopenharmony_ci 202e0dac50fSopenharmony_civoid WindowOption::SetBrightness(float brightness) 203e0dac50fSopenharmony_ci{ 204e0dac50fSopenharmony_ci brightness_ = brightness; 205e0dac50fSopenharmony_ci} 206e0dac50fSopenharmony_ci 207e0dac50fSopenharmony_cifloat WindowOption::GetBrightness() const 208e0dac50fSopenharmony_ci{ 209e0dac50fSopenharmony_ci return brightness_; 210e0dac50fSopenharmony_ci} 211e0dac50fSopenharmony_ci 212e0dac50fSopenharmony_civoid WindowOption::SetCallingWindow(uint32_t windowId) 213e0dac50fSopenharmony_ci{ 214e0dac50fSopenharmony_ci callingWindow_ = windowId; 215e0dac50fSopenharmony_ci} 216e0dac50fSopenharmony_ci 217e0dac50fSopenharmony_ciuint32_t WindowOption::GetCallingWindow() const 218e0dac50fSopenharmony_ci{ 219e0dac50fSopenharmony_ci return callingWindow_; 220e0dac50fSopenharmony_ci} 221e0dac50fSopenharmony_ci 222e0dac50fSopenharmony_ciOrientation WindowOption::GetRequestedOrientation() const 223e0dac50fSopenharmony_ci{ 224e0dac50fSopenharmony_ci return requestedOrientation_; 225e0dac50fSopenharmony_ci} 226e0dac50fSopenharmony_ci 227e0dac50fSopenharmony_civoid WindowOption::SetRequestedOrientation(Orientation orientation) 228e0dac50fSopenharmony_ci{ 229e0dac50fSopenharmony_ci requestedOrientation_ = orientation; 230e0dac50fSopenharmony_ci} 231e0dac50fSopenharmony_ci 232e0dac50fSopenharmony_civoid WindowOption::SetBundleName(const std::string bundleName) 233e0dac50fSopenharmony_ci{ 234e0dac50fSopenharmony_ci bundleName_ = bundleName; 235e0dac50fSopenharmony_ci} 236e0dac50fSopenharmony_ci 237e0dac50fSopenharmony_ciconst std::string WindowOption::GetBundleName() const 238e0dac50fSopenharmony_ci{ 239e0dac50fSopenharmony_ci return bundleName_; 240e0dac50fSopenharmony_ci} 241e0dac50fSopenharmony_ci 242e0dac50fSopenharmony_civoid WindowOption::SetSubWindowTitle(const std::string& subWindowTitle) 243e0dac50fSopenharmony_ci{ 244e0dac50fSopenharmony_ci subWindowTitle_ = subWindowTitle; 245e0dac50fSopenharmony_ci} 246e0dac50fSopenharmony_ci 247e0dac50fSopenharmony_cistd::string WindowOption::GetSubWindowTitle() const 248e0dac50fSopenharmony_ci{ 249e0dac50fSopenharmony_ci return subWindowTitle_; 250e0dac50fSopenharmony_ci} 251e0dac50fSopenharmony_ci 252e0dac50fSopenharmony_civoid WindowOption::SetSubWindowDecorEnable(bool subWindowDecorEnable) 253e0dac50fSopenharmony_ci{ 254e0dac50fSopenharmony_ci subWindowDecorEnable_ = subWindowDecorEnable; 255e0dac50fSopenharmony_ci} 256e0dac50fSopenharmony_ci 257e0dac50fSopenharmony_cibool WindowOption::GetSubWindowDecorEnable() const 258e0dac50fSopenharmony_ci{ 259e0dac50fSopenharmony_ci return subWindowDecorEnable_; 260e0dac50fSopenharmony_ci} 261e0dac50fSopenharmony_ci 262e0dac50fSopenharmony_civoid WindowOption::SetOnlySupportSceneBoard(bool onlySupportSceneBoard) 263e0dac50fSopenharmony_ci{ 264e0dac50fSopenharmony_ci onlySupportSceneBoard_ = onlySupportSceneBoard; 265e0dac50fSopenharmony_ci} 266e0dac50fSopenharmony_ci 267e0dac50fSopenharmony_cibool WindowOption::GetOnlySupportSceneBoard() const 268e0dac50fSopenharmony_ci{ 269e0dac50fSopenharmony_ci return onlySupportSceneBoard_; 270e0dac50fSopenharmony_ci} 271e0dac50fSopenharmony_ci 272e0dac50fSopenharmony_civoid WindowOption::SetRealParentId(int32_t realParentId) 273e0dac50fSopenharmony_ci{ 274e0dac50fSopenharmony_ci realParentId_ = realParentId; 275e0dac50fSopenharmony_ci} 276e0dac50fSopenharmony_ci 277e0dac50fSopenharmony_ciint32_t WindowOption::GetRealParentId() const 278e0dac50fSopenharmony_ci{ 279e0dac50fSopenharmony_ci return realParentId_; 280e0dac50fSopenharmony_ci} 281e0dac50fSopenharmony_ci 282e0dac50fSopenharmony_civoid WindowOption::SetParentWindowType(WindowType parentWindowType) 283e0dac50fSopenharmony_ci{ 284e0dac50fSopenharmony_ci parentWindowType_ = parentWindowType; 285e0dac50fSopenharmony_ci} 286e0dac50fSopenharmony_ci 287e0dac50fSopenharmony_ciWindowType WindowOption::GetParentWindowType() const 288e0dac50fSopenharmony_ci{ 289e0dac50fSopenharmony_ci return parentWindowType_; 290e0dac50fSopenharmony_ci} 291e0dac50fSopenharmony_ci 292e0dac50fSopenharmony_civoid WindowOption::SetIsUIExtFirstSubWindow(bool isUIExtFirstSubWindow) 293e0dac50fSopenharmony_ci{ 294e0dac50fSopenharmony_ci isUIExtFirstSubWindow_ = isUIExtFirstSubWindow; 295e0dac50fSopenharmony_ci} 296e0dac50fSopenharmony_ci 297e0dac50fSopenharmony_cibool WindowOption::GetIsUIExtFirstSubWindow() const 298e0dac50fSopenharmony_ci{ 299e0dac50fSopenharmony_ci return isUIExtFirstSubWindow_; 300e0dac50fSopenharmony_ci} 301e0dac50fSopenharmony_ci 302e0dac50fSopenharmony_civoid WindowOption::SetUIExtensionUsage(uint32_t uiExtensionUsage) 303e0dac50fSopenharmony_ci{ 304e0dac50fSopenharmony_ci if (uiExtensionUsage < static_cast<uint32_t>(UIExtensionUsage::UIEXTENSION_USAGE_END)) { 305e0dac50fSopenharmony_ci uiExtensionUsage_ = uiExtensionUsage; 306e0dac50fSopenharmony_ci } else { 307e0dac50fSopenharmony_ci uiExtensionUsage_ = static_cast<uint32_t>(UIExtensionUsage::EMBEDDED); 308e0dac50fSopenharmony_ci } 309e0dac50fSopenharmony_ci} 310e0dac50fSopenharmony_ci 311e0dac50fSopenharmony_ciuint32_t WindowOption::GetUIExtensionUsage() const 312e0dac50fSopenharmony_ci{ 313e0dac50fSopenharmony_ci return uiExtensionUsage_; 314e0dac50fSopenharmony_ci} 315e0dac50fSopenharmony_ci 316e0dac50fSopenharmony_civoid WindowOption::SetDialogDecorEnable(bool decorEnable) 317e0dac50fSopenharmony_ci{ 318e0dac50fSopenharmony_ci dialogDecorEnable_ = decorEnable; 319e0dac50fSopenharmony_ci} 320e0dac50fSopenharmony_ci 321e0dac50fSopenharmony_civoid WindowOption::SetIsUIExtAnySubWindow(bool isUIExtAnySubWindow) 322e0dac50fSopenharmony_ci{ 323e0dac50fSopenharmony_ci isUIExtAnySubWindow_ = isUIExtAnySubWindow; 324e0dac50fSopenharmony_ci} 325e0dac50fSopenharmony_ci 326e0dac50fSopenharmony_cibool WindowOption::GetIsUIExtAnySubWindow() const 327e0dac50fSopenharmony_ci{ 328e0dac50fSopenharmony_ci return isUIExtAnySubWindow_; 329e0dac50fSopenharmony_ci} 330e0dac50fSopenharmony_ci 331e0dac50fSopenharmony_cibool WindowOption::GetDialogDecorEnable() const 332e0dac50fSopenharmony_ci{ 333e0dac50fSopenharmony_ci return dialogDecorEnable_; 334e0dac50fSopenharmony_ci} 335e0dac50fSopenharmony_ci 336e0dac50fSopenharmony_civoid WindowOption::SetDialogTitle(const std::string& dialogTitle) 337e0dac50fSopenharmony_ci{ 338e0dac50fSopenharmony_ci dialogTitle_ = dialogTitle; 339e0dac50fSopenharmony_ci} 340e0dac50fSopenharmony_ci 341e0dac50fSopenharmony_cistd::string WindowOption::GetDialogTitle() const 342e0dac50fSopenharmony_ci{ 343e0dac50fSopenharmony_ci return dialogTitle_; 344e0dac50fSopenharmony_ci} 345e0dac50fSopenharmony_ci 346e0dac50fSopenharmony_civoid WindowOption::SetWindowTopmost(bool isTopmost) 347e0dac50fSopenharmony_ci{ 348e0dac50fSopenharmony_ci isTopmost_ = isTopmost; 349e0dac50fSopenharmony_ci} 350e0dac50fSopenharmony_ci 351e0dac50fSopenharmony_cibool WindowOption::GetWindowTopmost() const 352e0dac50fSopenharmony_ci{ 353e0dac50fSopenharmony_ci return isTopmost_; 354e0dac50fSopenharmony_ci} 355e0dac50fSopenharmony_ci 356e0dac50fSopenharmony_ci} // namespace Rosen 357e0dac50fSopenharmony_ci} // namespace OHOS 358e0dac50fSopenharmony_ci 359