1e0dac50fSopenharmony_ci/* 2e0dac50fSopenharmony_ci * Copyright (c) 2021-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#include "window_property.h" 17e0dac50fSopenharmony_ci#include "window_helper.h" 18e0dac50fSopenharmony_ci#include "wm_common.h" 19e0dac50fSopenharmony_ci 20e0dac50fSopenharmony_cinamespace OHOS { 21e0dac50fSopenharmony_cinamespace Rosen { 22e0dac50fSopenharmony_cinamespace { 23e0dac50fSopenharmony_ciconstexpr uint32_t SYSTEM_BAR_PROPERTY_MAX_NUM = 2; 24e0dac50fSopenharmony_ciconstexpr uint32_t TOUCH_HOT_AREA_MAX_NUM = 50; 25e0dac50fSopenharmony_ci} 26e0dac50fSopenharmony_ciWindowProperty::WindowProperty(const sptr<WindowProperty>& property) 27e0dac50fSopenharmony_ci{ 28e0dac50fSopenharmony_ci CopyFrom(property); 29e0dac50fSopenharmony_ci} 30e0dac50fSopenharmony_ci 31e0dac50fSopenharmony_civoid WindowProperty::SetWindowName(const std::string& name) 32e0dac50fSopenharmony_ci{ 33e0dac50fSopenharmony_ci windowName_ = name; 34e0dac50fSopenharmony_ci} 35e0dac50fSopenharmony_ci 36e0dac50fSopenharmony_civoid WindowProperty::SetAbilityInfo(const AbilityInfo& info) 37e0dac50fSopenharmony_ci{ 38e0dac50fSopenharmony_ci abilityInfo_ = info; 39e0dac50fSopenharmony_ci} 40e0dac50fSopenharmony_ci 41e0dac50fSopenharmony_civoid WindowProperty::SetWindowRect(const struct Rect& rect) 42e0dac50fSopenharmony_ci{ 43e0dac50fSopenharmony_ci ComputeTransform(); 44e0dac50fSopenharmony_ci windowRect_ = rect; 45e0dac50fSopenharmony_ci} 46e0dac50fSopenharmony_ci 47e0dac50fSopenharmony_civoid WindowProperty::SetDecoStatus(bool decoStatus) 48e0dac50fSopenharmony_ci{ 49e0dac50fSopenharmony_ci decoStatus_ = decoStatus; 50e0dac50fSopenharmony_ci} 51e0dac50fSopenharmony_ci 52e0dac50fSopenharmony_civoid WindowProperty::SetRequestRect(const Rect& requestRect) 53e0dac50fSopenharmony_ci{ 54e0dac50fSopenharmony_ci requestRect_ = requestRect; 55e0dac50fSopenharmony_ci} 56e0dac50fSopenharmony_ci 57e0dac50fSopenharmony_civoid WindowProperty::SetWindowType(WindowType type) 58e0dac50fSopenharmony_ci{ 59e0dac50fSopenharmony_ci type_ = type; 60e0dac50fSopenharmony_ci} 61e0dac50fSopenharmony_ci 62e0dac50fSopenharmony_civoid WindowProperty::SetWindowMode(WindowMode mode) 63e0dac50fSopenharmony_ci{ 64e0dac50fSopenharmony_ci if (!WindowHelper::IsValidWindowMode(mode) || !WindowHelper::IsWindowModeSupported(modeSupportInfo_, mode)) { 65e0dac50fSopenharmony_ci return; 66e0dac50fSopenharmony_ci } 67e0dac50fSopenharmony_ci if (!WindowHelper::IsSplitWindowMode(mode_)) { 68e0dac50fSopenharmony_ci lastMode_ = mode_; 69e0dac50fSopenharmony_ci } 70e0dac50fSopenharmony_ci mode_ = mode; 71e0dac50fSopenharmony_ci} 72e0dac50fSopenharmony_ci 73e0dac50fSopenharmony_civoid WindowProperty::SetLastWindowMode(WindowMode mode) 74e0dac50fSopenharmony_ci{ 75e0dac50fSopenharmony_ci if (!WindowHelper::IsWindowModeSupported(modeSupportInfo_, mode)) { 76e0dac50fSopenharmony_ci return; 77e0dac50fSopenharmony_ci } 78e0dac50fSopenharmony_ci lastMode_ = mode; 79e0dac50fSopenharmony_ci} 80e0dac50fSopenharmony_ci 81e0dac50fSopenharmony_civoid WindowProperty::SetFullScreen(bool isFullScreen) 82e0dac50fSopenharmony_ci{ 83e0dac50fSopenharmony_ci isFullScreen_ = isFullScreen; 84e0dac50fSopenharmony_ci} 85e0dac50fSopenharmony_ci 86e0dac50fSopenharmony_civoid WindowProperty::SetFocusable(bool isFocusable) 87e0dac50fSopenharmony_ci{ 88e0dac50fSopenharmony_ci focusable_ = isFocusable; 89e0dac50fSopenharmony_ci} 90e0dac50fSopenharmony_ci 91e0dac50fSopenharmony_civoid WindowProperty::SetTouchable(bool isTouchable) 92e0dac50fSopenharmony_ci{ 93e0dac50fSopenharmony_ci touchable_ = isTouchable; 94e0dac50fSopenharmony_ci} 95e0dac50fSopenharmony_ci 96e0dac50fSopenharmony_civoid WindowProperty::SetPrivacyMode(bool isPrivate) 97e0dac50fSopenharmony_ci{ 98e0dac50fSopenharmony_ci isPrivacyMode_ = isPrivate; 99e0dac50fSopenharmony_ci} 100e0dac50fSopenharmony_ci 101e0dac50fSopenharmony_civoid WindowProperty::SetSnapshotSkip(bool isSkip) 102e0dac50fSopenharmony_ci{ 103e0dac50fSopenharmony_ci isSnapshotSkip_ = isSkip; 104e0dac50fSopenharmony_ci} 105e0dac50fSopenharmony_ci 106e0dac50fSopenharmony_civoid WindowProperty::SetSystemPrivacyMode(bool isSystemPrivate) 107e0dac50fSopenharmony_ci{ 108e0dac50fSopenharmony_ci isSystemPrivacyMode_ = isSystemPrivate; 109e0dac50fSopenharmony_ci} 110e0dac50fSopenharmony_ci 111e0dac50fSopenharmony_civoid WindowProperty::SetTransparent(bool isTransparent) 112e0dac50fSopenharmony_ci{ 113e0dac50fSopenharmony_ci isTransparent_ = isTransparent; 114e0dac50fSopenharmony_ci} 115e0dac50fSopenharmony_ci 116e0dac50fSopenharmony_civoid WindowProperty::SetAlpha(float alpha) 117e0dac50fSopenharmony_ci{ 118e0dac50fSopenharmony_ci alpha_ = alpha; 119e0dac50fSopenharmony_ci} 120e0dac50fSopenharmony_ci 121e0dac50fSopenharmony_civoid WindowProperty::SetTransform(const Transform& trans) 122e0dac50fSopenharmony_ci{ 123e0dac50fSopenharmony_ci recomputeTransformMat_ = true; 124e0dac50fSopenharmony_ci trans_ = trans; 125e0dac50fSopenharmony_ci} 126e0dac50fSopenharmony_ci 127e0dac50fSopenharmony_civoid WindowProperty::HandleComputeTransform(const Transform& trans) 128e0dac50fSopenharmony_ci{ 129e0dac50fSopenharmony_ci TransformHelper::Vector3 pivotPos = { windowRect_.posX_ + trans.pivotX_ * windowRect_.width_, 130e0dac50fSopenharmony_ci windowRect_.posY_ + trans.pivotY_ * windowRect_.height_, 0 }; 131e0dac50fSopenharmony_ci worldTransformMat_ = TransformHelper::CreateTranslation(-pivotPos) * 132e0dac50fSopenharmony_ci WindowHelper::ComputeWorldTransformMat4(trans) * 133e0dac50fSopenharmony_ci TransformHelper::CreateTranslation(pivotPos); 134e0dac50fSopenharmony_ci // transformMat = worldTransformMat * viewProjectionMat 135e0dac50fSopenharmony_ci transformMat_ = worldTransformMat_; 136e0dac50fSopenharmony_ci // Z component of camera position is constant value 137e0dac50fSopenharmony_ci constexpr float cameraZ = -576.f; 138e0dac50fSopenharmony_ci TransformHelper::Vector3 cameraPos(pivotPos.x_ + trans.translateX_, pivotPos.y_ + trans.translateY_, cameraZ); 139e0dac50fSopenharmony_ci // Concatenate with view projection matrix 140e0dac50fSopenharmony_ci transformMat_ *= TransformHelper::CreateLookAt(cameraPos, 141e0dac50fSopenharmony_ci TransformHelper::Vector3(cameraPos.x_, cameraPos.y_, 0), TransformHelper::Vector3(0, 1, 0)) * 142e0dac50fSopenharmony_ci TransformHelper::CreatePerspective(cameraPos); 143e0dac50fSopenharmony_ci} 144e0dac50fSopenharmony_ci 145e0dac50fSopenharmony_civoid WindowProperty::ComputeTransform() 146e0dac50fSopenharmony_ci{ 147e0dac50fSopenharmony_ci if (isDisplayZoomOn_) { 148e0dac50fSopenharmony_ci if (reCalcuZoomTransformMat_) { 149e0dac50fSopenharmony_ci HandleComputeTransform(zoomTrans_); 150e0dac50fSopenharmony_ci reCalcuZoomTransformMat_ = false; 151e0dac50fSopenharmony_ci } 152e0dac50fSopenharmony_ci } else if (recomputeTransformMat_) { 153e0dac50fSopenharmony_ci HandleComputeTransform(trans_); 154e0dac50fSopenharmony_ci recomputeTransformMat_ = false; 155e0dac50fSopenharmony_ci } 156e0dac50fSopenharmony_ci} 157e0dac50fSopenharmony_ci 158e0dac50fSopenharmony_civoid WindowProperty::SetZoomTransform(const Transform& trans) 159e0dac50fSopenharmony_ci{ 160e0dac50fSopenharmony_ci zoomTrans_ = trans; 161e0dac50fSopenharmony_ci reCalcuZoomTransformMat_ = true; 162e0dac50fSopenharmony_ci} 163e0dac50fSopenharmony_ci 164e0dac50fSopenharmony_civoid WindowProperty::ClearTransformZAxisOffset(Transform& trans) 165e0dac50fSopenharmony_ci{ 166e0dac50fSopenharmony_ci // replace Z axis translation by scaling 167e0dac50fSopenharmony_ci TransformHelper::Matrix4 preTransformMat = transformMat_; 168e0dac50fSopenharmony_ci HandleComputeTransform(trans); 169e0dac50fSopenharmony_ci Rect rect = WindowHelper::TransformRect(transformMat_, windowRect_); 170e0dac50fSopenharmony_ci float translateZ = trans.translateZ_; 171e0dac50fSopenharmony_ci trans.translateZ_ = 0.f; 172e0dac50fSopenharmony_ci HandleComputeTransform(trans); 173e0dac50fSopenharmony_ci Rect rectWithoutZAxisOffset = WindowHelper::TransformRect(transformMat_, windowRect_); 174e0dac50fSopenharmony_ci if (rectWithoutZAxisOffset.width_ == 0) { 175e0dac50fSopenharmony_ci trans.translateZ_ = translateZ; 176e0dac50fSopenharmony_ci return; 177e0dac50fSopenharmony_ci } 178e0dac50fSopenharmony_ci float scale = rect.width_ * 1.0f / rectWithoutZAxisOffset.width_; 179e0dac50fSopenharmony_ci trans.scaleX_ *= scale; 180e0dac50fSopenharmony_ci trans.scaleY_ *= scale; 181e0dac50fSopenharmony_ci transformMat_ = preTransformMat; 182e0dac50fSopenharmony_ci} 183e0dac50fSopenharmony_ci 184e0dac50fSopenharmony_civoid WindowProperty::UpdatePointerEvent(const std::shared_ptr<MMI::PointerEvent>& pointerEvent) 185e0dac50fSopenharmony_ci{ 186e0dac50fSopenharmony_ci if (trans_ == Transform::Identity() && zoomTrans_ == Transform::Identity()) { 187e0dac50fSopenharmony_ci return; 188e0dac50fSopenharmony_ci } 189e0dac50fSopenharmony_ci ComputeTransform(); 190e0dac50fSopenharmony_ci MMI::PointerEvent::PointerItem pointerItem; 191e0dac50fSopenharmony_ci if (!pointerEvent->GetPointerItem(pointerEvent->GetPointerId(), pointerItem)) { 192e0dac50fSopenharmony_ci return; 193e0dac50fSopenharmony_ci } 194e0dac50fSopenharmony_ci PointInfo originPos = 195e0dac50fSopenharmony_ci WindowHelper::CalculateOriginPosition(transformMat_, 196e0dac50fSopenharmony_ci { pointerItem.GetDisplayX(), pointerItem.GetDisplayY() }); 197e0dac50fSopenharmony_ci pointerItem.SetDisplayX(originPos.x); 198e0dac50fSopenharmony_ci pointerItem.SetDisplayY(originPos.y); 199e0dac50fSopenharmony_ci pointerItem.SetWindowX(originPos.x - windowRect_.posX_); 200e0dac50fSopenharmony_ci pointerItem.SetWindowY(originPos.y - windowRect_.posY_); 201e0dac50fSopenharmony_ci pointerEvent->UpdatePointerItem(pointerEvent->GetPointerId(), pointerItem); 202e0dac50fSopenharmony_ci} 203e0dac50fSopenharmony_ci 204e0dac50fSopenharmony_cibool WindowProperty::isNeedComputerTransform() 205e0dac50fSopenharmony_ci{ 206e0dac50fSopenharmony_ci return ((!isDisplayZoomOn_ && trans_ != Transform::Identity()) || zoomTrans_ != Transform::Identity()); 207e0dac50fSopenharmony_ci} 208e0dac50fSopenharmony_ci 209e0dac50fSopenharmony_civoid WindowProperty::SetAnimateWindowFlag(bool isAnimateWindow) 210e0dac50fSopenharmony_ci{ 211e0dac50fSopenharmony_ci isAnimateWindow_ = isAnimateWindow; 212e0dac50fSopenharmony_ci} 213e0dac50fSopenharmony_ci 214e0dac50fSopenharmony_civoid WindowProperty::SetDisplayZoomState(bool isDisplayZoomOn) 215e0dac50fSopenharmony_ci{ 216e0dac50fSopenharmony_ci isDisplayZoomOn_ = isDisplayZoomOn; 217e0dac50fSopenharmony_ci} 218e0dac50fSopenharmony_ci 219e0dac50fSopenharmony_cibool WindowProperty::IsDisplayZoomOn() const 220e0dac50fSopenharmony_ci{ 221e0dac50fSopenharmony_ci return isDisplayZoomOn_; 222e0dac50fSopenharmony_ci} 223e0dac50fSopenharmony_ci 224e0dac50fSopenharmony_cibool WindowProperty::IsAnimateWindow() const 225e0dac50fSopenharmony_ci{ 226e0dac50fSopenharmony_ci return isAnimateWindow_; 227e0dac50fSopenharmony_ci} 228e0dac50fSopenharmony_ci 229e0dac50fSopenharmony_ciconst Transform& WindowProperty::GetZoomTransform() const 230e0dac50fSopenharmony_ci{ 231e0dac50fSopenharmony_ci return zoomTrans_; 232e0dac50fSopenharmony_ci} 233e0dac50fSopenharmony_ci 234e0dac50fSopenharmony_civoid WindowProperty::SetBrightness(float brightness) 235e0dac50fSopenharmony_ci{ 236e0dac50fSopenharmony_ci brightness_ = brightness; 237e0dac50fSopenharmony_ci} 238e0dac50fSopenharmony_ci 239e0dac50fSopenharmony_civoid WindowProperty::SetTurnScreenOn(bool turnScreenOn) 240e0dac50fSopenharmony_ci{ 241e0dac50fSopenharmony_ci turnScreenOn_ = turnScreenOn; 242e0dac50fSopenharmony_ci} 243e0dac50fSopenharmony_ci 244e0dac50fSopenharmony_civoid WindowProperty::SetKeepScreenOn(bool keepScreenOn) 245e0dac50fSopenharmony_ci{ 246e0dac50fSopenharmony_ci keepScreenOn_ = keepScreenOn; 247e0dac50fSopenharmony_ci} 248e0dac50fSopenharmony_ci 249e0dac50fSopenharmony_civoid WindowProperty::SetCallingWindow(uint32_t windowId) 250e0dac50fSopenharmony_ci{ 251e0dac50fSopenharmony_ci callingWindow_ = windowId; 252e0dac50fSopenharmony_ci} 253e0dac50fSopenharmony_ci 254e0dac50fSopenharmony_civoid WindowProperty::SetDisplayId(DisplayId displayId) 255e0dac50fSopenharmony_ci{ 256e0dac50fSopenharmony_ci displayId_ = displayId; 257e0dac50fSopenharmony_ci} 258e0dac50fSopenharmony_ci 259e0dac50fSopenharmony_civoid WindowProperty::SetWindowFlags(uint32_t flags) 260e0dac50fSopenharmony_ci{ 261e0dac50fSopenharmony_ci flags_ = flags; 262e0dac50fSopenharmony_ci} 263e0dac50fSopenharmony_ci 264e0dac50fSopenharmony_civoid WindowProperty::SetSizeLimits(const WindowLimits& sizeLimits) 265e0dac50fSopenharmony_ci{ 266e0dac50fSopenharmony_ci sizeLimits_ = sizeLimits; 267e0dac50fSopenharmony_ci} 268e0dac50fSopenharmony_ci 269e0dac50fSopenharmony_civoid WindowProperty::SetUpdatedSizeLimits(const WindowLimits& sizeLimits) 270e0dac50fSopenharmony_ci{ 271e0dac50fSopenharmony_ci updatedSizeLimits_ = sizeLimits; 272e0dac50fSopenharmony_ci} 273e0dac50fSopenharmony_ci 274e0dac50fSopenharmony_civoid WindowProperty::AddWindowFlag(WindowFlag flag) 275e0dac50fSopenharmony_ci{ 276e0dac50fSopenharmony_ci flags_ |= static_cast<uint32_t>(flag); 277e0dac50fSopenharmony_ci} 278e0dac50fSopenharmony_ci 279e0dac50fSopenharmony_civoid WindowProperty::SetSystemBarProperty(WindowType type, const SystemBarProperty& property) 280e0dac50fSopenharmony_ci{ 281e0dac50fSopenharmony_ci if (type == WindowType::WINDOW_TYPE_STATUS_BAR || type == WindowType::WINDOW_TYPE_NAVIGATION_BAR) { 282e0dac50fSopenharmony_ci sysBarPropMap_[type] = property; 283e0dac50fSopenharmony_ci } 284e0dac50fSopenharmony_ci} 285e0dac50fSopenharmony_ci 286e0dac50fSopenharmony_civoid WindowProperty::SetDecorEnable(bool decorEnable) 287e0dac50fSopenharmony_ci{ 288e0dac50fSopenharmony_ci isDecorEnable_ = decorEnable; 289e0dac50fSopenharmony_ci} 290e0dac50fSopenharmony_ci 291e0dac50fSopenharmony_civoid WindowProperty::SetHitOffset(const PointInfo& offset) 292e0dac50fSopenharmony_ci{ 293e0dac50fSopenharmony_ci hitOffset_ = offset; 294e0dac50fSopenharmony_ci} 295e0dac50fSopenharmony_ci 296e0dac50fSopenharmony_civoid WindowProperty::SetAnimationFlag(uint32_t animationFlag) 297e0dac50fSopenharmony_ci{ 298e0dac50fSopenharmony_ci animationFlag_ = animationFlag; 299e0dac50fSopenharmony_ci} 300e0dac50fSopenharmony_ci 301e0dac50fSopenharmony_civoid WindowProperty::SetWindowSizeChangeReason(WindowSizeChangeReason reason) 302e0dac50fSopenharmony_ci{ 303e0dac50fSopenharmony_ci windowSizeChangeReason_ = reason; 304e0dac50fSopenharmony_ci} 305e0dac50fSopenharmony_ci 306e0dac50fSopenharmony_civoid WindowProperty::SetDragType(DragType dragType) 307e0dac50fSopenharmony_ci{ 308e0dac50fSopenharmony_ci dragType_ = dragType; 309e0dac50fSopenharmony_ci} 310e0dac50fSopenharmony_ci 311e0dac50fSopenharmony_civoid WindowProperty::SetStretchable(bool stretchable) 312e0dac50fSopenharmony_ci{ 313e0dac50fSopenharmony_ci isStretchable_ = stretchable; 314e0dac50fSopenharmony_ci} 315e0dac50fSopenharmony_ci 316e0dac50fSopenharmony_civoid WindowProperty::SetOriginRect(const Rect& rect) 317e0dac50fSopenharmony_ci{ 318e0dac50fSopenharmony_ci originRect_ = rect; 319e0dac50fSopenharmony_ci} 320e0dac50fSopenharmony_ci 321e0dac50fSopenharmony_civoid WindowProperty::SetAccessTokenId(uint32_t accessTokenId) 322e0dac50fSopenharmony_ci{ 323e0dac50fSopenharmony_ci accessTokenId_ = accessTokenId; 324e0dac50fSopenharmony_ci} 325e0dac50fSopenharmony_ci 326e0dac50fSopenharmony_ciWindowSizeChangeReason WindowProperty::GetWindowSizeChangeReason() const 327e0dac50fSopenharmony_ci{ 328e0dac50fSopenharmony_ci return windowSizeChangeReason_; 329e0dac50fSopenharmony_ci} 330e0dac50fSopenharmony_ci 331e0dac50fSopenharmony_civoid WindowProperty::ResumeLastWindowMode() 332e0dac50fSopenharmony_ci{ 333e0dac50fSopenharmony_ci // if lastMode isn't supported, get supported mode from supportModeInfo 334e0dac50fSopenharmony_ci if (!WindowHelper::IsWindowModeSupported(modeSupportInfo_, lastMode_)) { 335e0dac50fSopenharmony_ci auto mode = WindowHelper::GetWindowModeFromModeSupportInfo(modeSupportInfo_); 336e0dac50fSopenharmony_ci if (!WindowHelper::IsSplitWindowMode(mode)) { 337e0dac50fSopenharmony_ci mode_ = mode; 338e0dac50fSopenharmony_ci } 339e0dac50fSopenharmony_ci return; 340e0dac50fSopenharmony_ci } 341e0dac50fSopenharmony_ci mode_ = lastMode_; 342e0dac50fSopenharmony_ci} 343e0dac50fSopenharmony_ci 344e0dac50fSopenharmony_ciconst std::string& WindowProperty::GetWindowName() const 345e0dac50fSopenharmony_ci{ 346e0dac50fSopenharmony_ci return windowName_ ; 347e0dac50fSopenharmony_ci} 348e0dac50fSopenharmony_ci 349e0dac50fSopenharmony_ciconst AbilityInfo& WindowProperty::GetAbilityInfo() const 350e0dac50fSopenharmony_ci{ 351e0dac50fSopenharmony_ci return abilityInfo_ ; 352e0dac50fSopenharmony_ci} 353e0dac50fSopenharmony_ci 354e0dac50fSopenharmony_ciRect WindowProperty::GetWindowRect() const 355e0dac50fSopenharmony_ci{ 356e0dac50fSopenharmony_ci return windowRect_; 357e0dac50fSopenharmony_ci} 358e0dac50fSopenharmony_ci 359e0dac50fSopenharmony_cibool WindowProperty::GetDecoStatus() const 360e0dac50fSopenharmony_ci{ 361e0dac50fSopenharmony_ci return decoStatus_; 362e0dac50fSopenharmony_ci} 363e0dac50fSopenharmony_ci 364e0dac50fSopenharmony_ciRect WindowProperty::GetRequestRect() const 365e0dac50fSopenharmony_ci{ 366e0dac50fSopenharmony_ci return requestRect_; 367e0dac50fSopenharmony_ci} 368e0dac50fSopenharmony_ci 369e0dac50fSopenharmony_ciWindowType WindowProperty::GetWindowType() const 370e0dac50fSopenharmony_ci{ 371e0dac50fSopenharmony_ci return type_; 372e0dac50fSopenharmony_ci} 373e0dac50fSopenharmony_ci 374e0dac50fSopenharmony_ciWindowMode WindowProperty::GetWindowMode() const 375e0dac50fSopenharmony_ci{ 376e0dac50fSopenharmony_ci return mode_; 377e0dac50fSopenharmony_ci} 378e0dac50fSopenharmony_ci 379e0dac50fSopenharmony_ciWindowMode WindowProperty::GetLastWindowMode() const 380e0dac50fSopenharmony_ci{ 381e0dac50fSopenharmony_ci return lastMode_; 382e0dac50fSopenharmony_ci} 383e0dac50fSopenharmony_ci 384e0dac50fSopenharmony_cibool WindowProperty::GetFullScreen() const 385e0dac50fSopenharmony_ci{ 386e0dac50fSopenharmony_ci return isFullScreen_; 387e0dac50fSopenharmony_ci} 388e0dac50fSopenharmony_ci 389e0dac50fSopenharmony_cibool WindowProperty::GetFocusable() const 390e0dac50fSopenharmony_ci{ 391e0dac50fSopenharmony_ci return focusable_; 392e0dac50fSopenharmony_ci} 393e0dac50fSopenharmony_ci 394e0dac50fSopenharmony_cibool WindowProperty::GetTouchable() const 395e0dac50fSopenharmony_ci{ 396e0dac50fSopenharmony_ci return touchable_; 397e0dac50fSopenharmony_ci} 398e0dac50fSopenharmony_ci 399e0dac50fSopenharmony_ciuint32_t WindowProperty::GetCallingWindow() const 400e0dac50fSopenharmony_ci{ 401e0dac50fSopenharmony_ci return callingWindow_; 402e0dac50fSopenharmony_ci} 403e0dac50fSopenharmony_ci 404e0dac50fSopenharmony_cibool WindowProperty::GetPrivacyMode() const 405e0dac50fSopenharmony_ci{ 406e0dac50fSopenharmony_ci return isPrivacyMode_; 407e0dac50fSopenharmony_ci} 408e0dac50fSopenharmony_ci 409e0dac50fSopenharmony_cibool WindowProperty::GetSystemPrivacyMode() const 410e0dac50fSopenharmony_ci{ 411e0dac50fSopenharmony_ci return isSystemPrivacyMode_; 412e0dac50fSopenharmony_ci} 413e0dac50fSopenharmony_ci 414e0dac50fSopenharmony_cibool WindowProperty::GetSnapshotSkip() const 415e0dac50fSopenharmony_ci{ 416e0dac50fSopenharmony_ci return isSnapshotSkip_; 417e0dac50fSopenharmony_ci} 418e0dac50fSopenharmony_ci 419e0dac50fSopenharmony_cibool WindowProperty::GetTransparent() const 420e0dac50fSopenharmony_ci{ 421e0dac50fSopenharmony_ci return isTransparent_; 422e0dac50fSopenharmony_ci} 423e0dac50fSopenharmony_ci 424e0dac50fSopenharmony_cifloat WindowProperty::GetAlpha() const 425e0dac50fSopenharmony_ci{ 426e0dac50fSopenharmony_ci return alpha_; 427e0dac50fSopenharmony_ci} 428e0dac50fSopenharmony_ci 429e0dac50fSopenharmony_ciconst Transform& WindowProperty::GetTransform() const 430e0dac50fSopenharmony_ci{ 431e0dac50fSopenharmony_ci return trans_; 432e0dac50fSopenharmony_ci} 433e0dac50fSopenharmony_ci 434e0dac50fSopenharmony_cifloat WindowProperty::GetBrightness() const 435e0dac50fSopenharmony_ci{ 436e0dac50fSopenharmony_ci return brightness_; 437e0dac50fSopenharmony_ci} 438e0dac50fSopenharmony_ci 439e0dac50fSopenharmony_cibool WindowProperty::IsTurnScreenOn() const 440e0dac50fSopenharmony_ci{ 441e0dac50fSopenharmony_ci return turnScreenOn_; 442e0dac50fSopenharmony_ci} 443e0dac50fSopenharmony_ci 444e0dac50fSopenharmony_cibool WindowProperty::IsKeepScreenOn() const 445e0dac50fSopenharmony_ci{ 446e0dac50fSopenharmony_ci return keepScreenOn_; 447e0dac50fSopenharmony_ci} 448e0dac50fSopenharmony_ci 449e0dac50fSopenharmony_ciDisplayId WindowProperty::GetDisplayId() const 450e0dac50fSopenharmony_ci{ 451e0dac50fSopenharmony_ci return displayId_; 452e0dac50fSopenharmony_ci} 453e0dac50fSopenharmony_ci 454e0dac50fSopenharmony_ciuint32_t WindowProperty::GetWindowFlags() const 455e0dac50fSopenharmony_ci{ 456e0dac50fSopenharmony_ci return flags_; 457e0dac50fSopenharmony_ci} 458e0dac50fSopenharmony_ci 459e0dac50fSopenharmony_ciconst std::unordered_map<WindowType, SystemBarProperty>& WindowProperty::GetSystemBarProperty() const 460e0dac50fSopenharmony_ci{ 461e0dac50fSopenharmony_ci return sysBarPropMap_; 462e0dac50fSopenharmony_ci} 463e0dac50fSopenharmony_ci 464e0dac50fSopenharmony_cibool WindowProperty::GetDecorEnable() const 465e0dac50fSopenharmony_ci{ 466e0dac50fSopenharmony_ci return isDecorEnable_; 467e0dac50fSopenharmony_ci} 468e0dac50fSopenharmony_ci 469e0dac50fSopenharmony_civoid WindowProperty::SetWindowId(uint32_t windowId) 470e0dac50fSopenharmony_ci{ 471e0dac50fSopenharmony_ci windowId_ = windowId; 472e0dac50fSopenharmony_ci} 473e0dac50fSopenharmony_ci 474e0dac50fSopenharmony_civoid WindowProperty::SetParentId(uint32_t parentId) 475e0dac50fSopenharmony_ci{ 476e0dac50fSopenharmony_ci parentId_ = parentId; 477e0dac50fSopenharmony_ci} 478e0dac50fSopenharmony_ci 479e0dac50fSopenharmony_civoid WindowProperty::SetTokenState(bool hasToken) 480e0dac50fSopenharmony_ci{ 481e0dac50fSopenharmony_ci tokenState_ = hasToken; 482e0dac50fSopenharmony_ci} 483e0dac50fSopenharmony_ci 484e0dac50fSopenharmony_civoid WindowProperty::SetModeSupportInfo(uint32_t modeSupportInfo) 485e0dac50fSopenharmony_ci{ 486e0dac50fSopenharmony_ci modeSupportInfo_ = modeSupportInfo; 487e0dac50fSopenharmony_ci} 488e0dac50fSopenharmony_ci 489e0dac50fSopenharmony_civoid WindowProperty::SetRequestModeSupportInfo(uint32_t requestModeSupportInfo) 490e0dac50fSopenharmony_ci{ 491e0dac50fSopenharmony_ci requestModeSupportInfo_ = requestModeSupportInfo; 492e0dac50fSopenharmony_ci} 493e0dac50fSopenharmony_ci 494e0dac50fSopenharmony_ciuint32_t WindowProperty::GetWindowId() const 495e0dac50fSopenharmony_ci{ 496e0dac50fSopenharmony_ci return windowId_; 497e0dac50fSopenharmony_ci} 498e0dac50fSopenharmony_ci 499e0dac50fSopenharmony_ciuint32_t WindowProperty::GetParentId() const 500e0dac50fSopenharmony_ci{ 501e0dac50fSopenharmony_ci return parentId_; 502e0dac50fSopenharmony_ci} 503e0dac50fSopenharmony_ci 504e0dac50fSopenharmony_ciconst PointInfo& WindowProperty::GetHitOffset() const 505e0dac50fSopenharmony_ci{ 506e0dac50fSopenharmony_ci return hitOffset_; 507e0dac50fSopenharmony_ci} 508e0dac50fSopenharmony_ci 509e0dac50fSopenharmony_ciuint32_t WindowProperty::GetAnimationFlag() const 510e0dac50fSopenharmony_ci{ 511e0dac50fSopenharmony_ci return animationFlag_; 512e0dac50fSopenharmony_ci} 513e0dac50fSopenharmony_ci 514e0dac50fSopenharmony_ciuint32_t WindowProperty::GetModeSupportInfo() const 515e0dac50fSopenharmony_ci{ 516e0dac50fSopenharmony_ci return modeSupportInfo_; 517e0dac50fSopenharmony_ci} 518e0dac50fSopenharmony_ci 519e0dac50fSopenharmony_ciuint32_t WindowProperty::GetRequestModeSupportInfo() const 520e0dac50fSopenharmony_ci{ 521e0dac50fSopenharmony_ci return requestModeSupportInfo_; 522e0dac50fSopenharmony_ci} 523e0dac50fSopenharmony_ci 524e0dac50fSopenharmony_cibool WindowProperty::GetTokenState() const 525e0dac50fSopenharmony_ci{ 526e0dac50fSopenharmony_ci return tokenState_; 527e0dac50fSopenharmony_ci} 528e0dac50fSopenharmony_ci 529e0dac50fSopenharmony_ciDragType WindowProperty::GetDragType() const 530e0dac50fSopenharmony_ci{ 531e0dac50fSopenharmony_ci return dragType_; 532e0dac50fSopenharmony_ci} 533e0dac50fSopenharmony_ci 534e0dac50fSopenharmony_ciconst Rect& WindowProperty::GetOriginRect() const 535e0dac50fSopenharmony_ci{ 536e0dac50fSopenharmony_ci return originRect_; 537e0dac50fSopenharmony_ci} 538e0dac50fSopenharmony_ci 539e0dac50fSopenharmony_cibool WindowProperty::GetStretchable() const 540e0dac50fSopenharmony_ci{ 541e0dac50fSopenharmony_ci return isStretchable_; 542e0dac50fSopenharmony_ci} 543e0dac50fSopenharmony_ci 544e0dac50fSopenharmony_ciWindowLimits WindowProperty::GetSizeLimits() const 545e0dac50fSopenharmony_ci{ 546e0dac50fSopenharmony_ci return sizeLimits_; 547e0dac50fSopenharmony_ci} 548e0dac50fSopenharmony_ci 549e0dac50fSopenharmony_ciWindowLimits WindowProperty::GetUpdatedSizeLimits() const 550e0dac50fSopenharmony_ci{ 551e0dac50fSopenharmony_ci return updatedSizeLimits_; 552e0dac50fSopenharmony_ci} 553e0dac50fSopenharmony_ci 554e0dac50fSopenharmony_ciconst TransformHelper::Matrix4& WindowProperty::GetTransformMat() const 555e0dac50fSopenharmony_ci{ 556e0dac50fSopenharmony_ci return transformMat_; 557e0dac50fSopenharmony_ci} 558e0dac50fSopenharmony_ci 559e0dac50fSopenharmony_ciconst TransformHelper::Matrix4& WindowProperty::GetWorldTransformMat() const 560e0dac50fSopenharmony_ci{ 561e0dac50fSopenharmony_ci return worldTransformMat_; 562e0dac50fSopenharmony_ci} 563e0dac50fSopenharmony_ci 564e0dac50fSopenharmony_civoid WindowProperty::SetTouchHotAreas(const std::vector<Rect>& rects) 565e0dac50fSopenharmony_ci{ 566e0dac50fSopenharmony_ci touchHotAreas_ = rects; 567e0dac50fSopenharmony_ci} 568e0dac50fSopenharmony_ci 569e0dac50fSopenharmony_civoid WindowProperty::GetTouchHotAreas(std::vector<Rect>& rects) const 570e0dac50fSopenharmony_ci{ 571e0dac50fSopenharmony_ci rects = touchHotAreas_; 572e0dac50fSopenharmony_ci} 573e0dac50fSopenharmony_ci 574e0dac50fSopenharmony_civoid WindowProperty::SetAspectRatio(float ratio) 575e0dac50fSopenharmony_ci{ 576e0dac50fSopenharmony_ci aspectRatio_ = ratio; 577e0dac50fSopenharmony_ci} 578e0dac50fSopenharmony_ci 579e0dac50fSopenharmony_civoid WindowProperty::SetMaximizeMode(MaximizeMode maximizeMode) 580e0dac50fSopenharmony_ci{ 581e0dac50fSopenharmony_ci maximizeMode_ = maximizeMode; 582e0dac50fSopenharmony_ci} 583e0dac50fSopenharmony_ci 584e0dac50fSopenharmony_cifloat WindowProperty::GetAspectRatio() const 585e0dac50fSopenharmony_ci{ 586e0dac50fSopenharmony_ci return aspectRatio_; 587e0dac50fSopenharmony_ci} 588e0dac50fSopenharmony_ci 589e0dac50fSopenharmony_ciMaximizeMode WindowProperty::GetMaximizeMode() const 590e0dac50fSopenharmony_ci{ 591e0dac50fSopenharmony_ci return maximizeMode_; 592e0dac50fSopenharmony_ci} 593e0dac50fSopenharmony_ci 594e0dac50fSopenharmony_ciuint32_t WindowProperty::GetAccessTokenId() const 595e0dac50fSopenharmony_ci{ 596e0dac50fSopenharmony_ci return accessTokenId_; 597e0dac50fSopenharmony_ci} 598e0dac50fSopenharmony_ci 599e0dac50fSopenharmony_civoid WindowProperty::SetWindowGravity(WindowGravity gravity, uint32_t percent) 600e0dac50fSopenharmony_ci{ 601e0dac50fSopenharmony_ci windowGravity_ = gravity; 602e0dac50fSopenharmony_ci windowGravitySizePercent_ = percent; 603e0dac50fSopenharmony_ci} 604e0dac50fSopenharmony_ci 605e0dac50fSopenharmony_civoid WindowProperty::GetWindowGravity(WindowGravity& gravity, uint32_t& percent) const 606e0dac50fSopenharmony_ci{ 607e0dac50fSopenharmony_ci gravity = windowGravity_; 608e0dac50fSopenharmony_ci percent = windowGravitySizePercent_; 609e0dac50fSopenharmony_ci} 610e0dac50fSopenharmony_ci 611e0dac50fSopenharmony_cibool WindowProperty::MapMarshalling(Parcel& parcel) const 612e0dac50fSopenharmony_ci{ 613e0dac50fSopenharmony_ci auto size = sysBarPropMap_.size(); 614e0dac50fSopenharmony_ci if (!parcel.WriteUint32(static_cast<uint32_t>(size))) { 615e0dac50fSopenharmony_ci return false; 616e0dac50fSopenharmony_ci } 617e0dac50fSopenharmony_ci for (auto it : sysBarPropMap_) { 618e0dac50fSopenharmony_ci // write key(type) 619e0dac50fSopenharmony_ci if (!parcel.WriteUint32(static_cast<uint32_t>(it.first))) { 620e0dac50fSopenharmony_ci return false; 621e0dac50fSopenharmony_ci } 622e0dac50fSopenharmony_ci // write val(sysBarProps) 623e0dac50fSopenharmony_ci if (!(parcel.WriteBool(it.second.enable_) && parcel.WriteUint32(it.second.backgroundColor_) && 624e0dac50fSopenharmony_ci parcel.WriteUint32(it.second.contentColor_))) { 625e0dac50fSopenharmony_ci return false; 626e0dac50fSopenharmony_ci } 627e0dac50fSopenharmony_ci } 628e0dac50fSopenharmony_ci return true; 629e0dac50fSopenharmony_ci} 630e0dac50fSopenharmony_ci 631e0dac50fSopenharmony_civoid WindowProperty::MapUnmarshalling(Parcel& parcel, WindowProperty* property) 632e0dac50fSopenharmony_ci{ 633e0dac50fSopenharmony_ci uint32_t size = parcel.ReadUint32(); 634e0dac50fSopenharmony_ci if (size > SYSTEM_BAR_PROPERTY_MAX_NUM) { 635e0dac50fSopenharmony_ci return; 636e0dac50fSopenharmony_ci } 637e0dac50fSopenharmony_ci for (uint32_t i = 0; i < size; i++) { 638e0dac50fSopenharmony_ci WindowType type = static_cast<WindowType>(parcel.ReadUint32()); 639e0dac50fSopenharmony_ci SystemBarProperty prop = { parcel.ReadBool(), parcel.ReadUint32(), parcel.ReadUint32() }; 640e0dac50fSopenharmony_ci property->SetSystemBarProperty(type, prop); 641e0dac50fSopenharmony_ci } 642e0dac50fSopenharmony_ci} 643e0dac50fSopenharmony_ci 644e0dac50fSopenharmony_cibool WindowProperty::MarshallingTouchHotAreas(Parcel& parcel) const 645e0dac50fSopenharmony_ci{ 646e0dac50fSopenharmony_ci auto size = touchHotAreas_.size(); 647e0dac50fSopenharmony_ci if (!parcel.WriteUint32(static_cast<uint32_t>(size))) { 648e0dac50fSopenharmony_ci return false; 649e0dac50fSopenharmony_ci } 650e0dac50fSopenharmony_ci for (const auto& rect : touchHotAreas_) { 651e0dac50fSopenharmony_ci if (!(parcel.WriteInt32(rect.posX_) && parcel.WriteInt32(rect.posY_) && 652e0dac50fSopenharmony_ci parcel.WriteUint32(rect.width_) && parcel.WriteUint32(rect.height_))) { 653e0dac50fSopenharmony_ci return false; 654e0dac50fSopenharmony_ci } 655e0dac50fSopenharmony_ci } 656e0dac50fSopenharmony_ci return true; 657e0dac50fSopenharmony_ci} 658e0dac50fSopenharmony_ci 659e0dac50fSopenharmony_civoid WindowProperty::UnmarshallingTouchHotAreas(Parcel& parcel, WindowProperty* property) 660e0dac50fSopenharmony_ci{ 661e0dac50fSopenharmony_ci uint32_t size = parcel.ReadUint32(); 662e0dac50fSopenharmony_ci if (size > TOUCH_HOT_AREA_MAX_NUM) { 663e0dac50fSopenharmony_ci return; 664e0dac50fSopenharmony_ci } 665e0dac50fSopenharmony_ci for (uint32_t i = 0; i < size; i++) { 666e0dac50fSopenharmony_ci property->touchHotAreas_.emplace_back( 667e0dac50fSopenharmony_ci Rect{ parcel.ReadInt32(), parcel.ReadInt32(), parcel.ReadUint32(), parcel.ReadUint32() }); 668e0dac50fSopenharmony_ci } 669e0dac50fSopenharmony_ci} 670e0dac50fSopenharmony_ci 671e0dac50fSopenharmony_cibool WindowProperty::MarshallingTransform(Parcel& parcel) const 672e0dac50fSopenharmony_ci{ 673e0dac50fSopenharmony_ci return parcel.WriteFloat(trans_.pivotX_) && parcel.WriteFloat(trans_.pivotY_) && 674e0dac50fSopenharmony_ci parcel.WriteFloat(trans_.scaleX_) && parcel.WriteFloat(trans_.scaleY_) && 675e0dac50fSopenharmony_ci parcel.WriteFloat(trans_.rotationX_) && parcel.WriteFloat(trans_.rotationY_) && 676e0dac50fSopenharmony_ci parcel.WriteFloat(trans_.rotationZ_) && parcel.WriteFloat(trans_.translateX_) && 677e0dac50fSopenharmony_ci parcel.WriteFloat(trans_.translateY_) && parcel.WriteFloat(trans_.translateZ_); 678e0dac50fSopenharmony_ci} 679e0dac50fSopenharmony_ci 680e0dac50fSopenharmony_civoid WindowProperty::UnmarshallingTransform(Parcel& parcel, WindowProperty* property) 681e0dac50fSopenharmony_ci{ 682e0dac50fSopenharmony_ci Transform trans; 683e0dac50fSopenharmony_ci trans.pivotX_ = parcel.ReadFloat(); 684e0dac50fSopenharmony_ci trans.pivotY_ = parcel.ReadFloat(); 685e0dac50fSopenharmony_ci trans.scaleX_ = parcel.ReadFloat(); 686e0dac50fSopenharmony_ci trans.scaleY_ = parcel.ReadFloat(); 687e0dac50fSopenharmony_ci trans.rotationX_ = parcel.ReadFloat(); 688e0dac50fSopenharmony_ci trans.rotationY_ = parcel.ReadFloat(); 689e0dac50fSopenharmony_ci trans.rotationZ_ = parcel.ReadFloat(); 690e0dac50fSopenharmony_ci trans.translateX_ = parcel.ReadFloat(); 691e0dac50fSopenharmony_ci trans.translateY_ = parcel.ReadFloat(); 692e0dac50fSopenharmony_ci trans.translateZ_ = parcel.ReadFloat(); 693e0dac50fSopenharmony_ci property->SetTransform(trans); 694e0dac50fSopenharmony_ci} 695e0dac50fSopenharmony_ci 696e0dac50fSopenharmony_cibool WindowProperty::MarshallingWindowSizeLimits(Parcel& parcel) const 697e0dac50fSopenharmony_ci{ 698e0dac50fSopenharmony_ci if (parcel.WriteUint32(sizeLimits_.maxWidth_) && 699e0dac50fSopenharmony_ci parcel.WriteUint32(sizeLimits_.maxHeight_) && parcel.WriteUint32(sizeLimits_.minWidth_) && 700e0dac50fSopenharmony_ci parcel.WriteUint32(sizeLimits_.minHeight_) && parcel.WriteFloat(sizeLimits_.maxRatio_) && 701e0dac50fSopenharmony_ci parcel.WriteFloat(sizeLimits_.minRatio_)) { 702e0dac50fSopenharmony_ci return true; 703e0dac50fSopenharmony_ci } 704e0dac50fSopenharmony_ci return false; 705e0dac50fSopenharmony_ci} 706e0dac50fSopenharmony_ci 707e0dac50fSopenharmony_civoid WindowProperty::UnmarshallingWindowSizeLimits(Parcel& parcel, WindowProperty* property) 708e0dac50fSopenharmony_ci{ 709e0dac50fSopenharmony_ci WindowLimits sizeLimits = { parcel.ReadUint32(), parcel.ReadUint32(), parcel.ReadUint32(), 710e0dac50fSopenharmony_ci parcel.ReadUint32(), parcel.ReadFloat(), parcel.ReadFloat() }; 711e0dac50fSopenharmony_ci property->SetSizeLimits(sizeLimits); 712e0dac50fSopenharmony_ci} 713e0dac50fSopenharmony_ci 714e0dac50fSopenharmony_cibool WindowProperty::Marshalling(Parcel& parcel) const 715e0dac50fSopenharmony_ci{ 716e0dac50fSopenharmony_ci return parcel.WriteString(windowName_) && parcel.WriteInt32(windowRect_.posX_) && 717e0dac50fSopenharmony_ci parcel.WriteInt32(windowRect_.posY_) && parcel.WriteUint32(windowRect_.width_) && 718e0dac50fSopenharmony_ci parcel.WriteUint32(windowRect_.height_) && parcel.WriteInt32(requestRect_.posX_) && 719e0dac50fSopenharmony_ci parcel.WriteInt32(requestRect_.posY_) && parcel.WriteUint32(requestRect_.width_) && 720e0dac50fSopenharmony_ci parcel.WriteUint32(requestRect_.height_) && parcel.WriteBool(decoStatus_) && 721e0dac50fSopenharmony_ci parcel.WriteUint32(static_cast<uint32_t>(type_)) && 722e0dac50fSopenharmony_ci parcel.WriteUint32(static_cast<uint32_t>(mode_)) && parcel.WriteUint32(static_cast<uint32_t>(lastMode_)) && 723e0dac50fSopenharmony_ci parcel.WriteUint32(flags_) && 724e0dac50fSopenharmony_ci parcel.WriteBool(isFullScreen_) && parcel.WriteBool(focusable_) && parcel.WriteBool(touchable_) && 725e0dac50fSopenharmony_ci parcel.WriteBool(isPrivacyMode_) && parcel.WriteBool(isTransparent_) && parcel.WriteFloat(alpha_) && 726e0dac50fSopenharmony_ci parcel.WriteFloat(brightness_) && parcel.WriteUint64(displayId_) && parcel.WriteUint32(windowId_) && 727e0dac50fSopenharmony_ci parcel.WriteUint32(parentId_) && MapMarshalling(parcel) && parcel.WriteBool(isDecorEnable_) && 728e0dac50fSopenharmony_ci parcel.WriteInt32(hitOffset_.x) && parcel.WriteInt32(hitOffset_.y) && parcel.WriteUint32(animationFlag_) && 729e0dac50fSopenharmony_ci parcel.WriteUint32(static_cast<uint32_t>(windowSizeChangeReason_)) && parcel.WriteBool(tokenState_) && 730e0dac50fSopenharmony_ci parcel.WriteUint32(callingWindow_) && parcel.WriteUint32(static_cast<uint32_t>(requestedOrientation_)) && 731e0dac50fSopenharmony_ci parcel.WriteBool(turnScreenOn_) && parcel.WriteBool(keepScreenOn_) && 732e0dac50fSopenharmony_ci parcel.WriteUint32(modeSupportInfo_) && parcel.WriteUint32(requestModeSupportInfo_) && 733e0dac50fSopenharmony_ci parcel.WriteUint32(static_cast<uint32_t>(dragType_)) && 734e0dac50fSopenharmony_ci parcel.WriteUint32(originRect_.width_) && parcel.WriteUint32(originRect_.height_) && 735e0dac50fSopenharmony_ci parcel.WriteBool(isStretchable_) && MarshallingTouchHotAreas(parcel) && parcel.WriteUint32(accessTokenId_) && 736e0dac50fSopenharmony_ci MarshallingTransform(parcel) && MarshallingWindowSizeLimits(parcel) && zoomTrans_.Marshalling(parcel) && 737e0dac50fSopenharmony_ci parcel.WriteBool(isDisplayZoomOn_) && parcel.WriteString(abilityInfo_.bundleName_) && 738e0dac50fSopenharmony_ci parcel.WriteString(abilityInfo_.abilityName_) && parcel.WriteInt32(abilityInfo_.missionId_) && 739e0dac50fSopenharmony_ci parcel.WriteBool(isSnapshotSkip_) && 740e0dac50fSopenharmony_ci parcel.WriteDouble(textFieldPositionY_) && parcel.WriteDouble(textFieldHeight_); 741e0dac50fSopenharmony_ci} 742e0dac50fSopenharmony_ci 743e0dac50fSopenharmony_ciWindowProperty* WindowProperty::Unmarshalling(Parcel& parcel) 744e0dac50fSopenharmony_ci{ 745e0dac50fSopenharmony_ci WindowProperty* property = new(std::nothrow) WindowProperty(); 746e0dac50fSopenharmony_ci if (property == nullptr) { 747e0dac50fSopenharmony_ci return nullptr; 748e0dac50fSopenharmony_ci } 749e0dac50fSopenharmony_ci property->SetWindowName(parcel.ReadString()); 750e0dac50fSopenharmony_ci Rect rect = { parcel.ReadInt32(), parcel.ReadInt32(), parcel.ReadUint32(), parcel.ReadUint32() }; 751e0dac50fSopenharmony_ci property->SetWindowRect(rect); 752e0dac50fSopenharmony_ci Rect reqRect = { parcel.ReadInt32(), parcel.ReadInt32(), parcel.ReadUint32(), parcel.ReadUint32() }; 753e0dac50fSopenharmony_ci property->SetRequestRect(reqRect); 754e0dac50fSopenharmony_ci property->SetDecoStatus(parcel.ReadBool()); 755e0dac50fSopenharmony_ci property->SetWindowType(static_cast<WindowType>(parcel.ReadUint32())); 756e0dac50fSopenharmony_ci property->SetWindowMode(static_cast<WindowMode>(parcel.ReadUint32())); 757e0dac50fSopenharmony_ci property->SetLastWindowMode(static_cast<WindowMode>(parcel.ReadUint32())); 758e0dac50fSopenharmony_ci property->SetWindowFlags(parcel.ReadUint32()); 759e0dac50fSopenharmony_ci property->SetFullScreen(parcel.ReadBool()); 760e0dac50fSopenharmony_ci property->SetFocusable(parcel.ReadBool()); 761e0dac50fSopenharmony_ci property->SetTouchable(parcel.ReadBool()); 762e0dac50fSopenharmony_ci property->SetPrivacyMode(parcel.ReadBool()); 763e0dac50fSopenharmony_ci property->SetTransparent(parcel.ReadBool()); 764e0dac50fSopenharmony_ci property->SetAlpha(parcel.ReadFloat()); 765e0dac50fSopenharmony_ci property->SetBrightness(parcel.ReadFloat()); 766e0dac50fSopenharmony_ci property->SetDisplayId(parcel.ReadUint64()); 767e0dac50fSopenharmony_ci property->SetWindowId(parcel.ReadUint32()); 768e0dac50fSopenharmony_ci property->SetParentId(parcel.ReadUint32()); 769e0dac50fSopenharmony_ci MapUnmarshalling(parcel, property); 770e0dac50fSopenharmony_ci property->SetDecorEnable(parcel.ReadBool()); 771e0dac50fSopenharmony_ci PointInfo offset = {parcel.ReadInt32(), parcel.ReadInt32()}; 772e0dac50fSopenharmony_ci property->SetHitOffset(offset); 773e0dac50fSopenharmony_ci property->SetAnimationFlag(parcel.ReadUint32()); 774e0dac50fSopenharmony_ci property->SetWindowSizeChangeReason(static_cast<WindowSizeChangeReason>(parcel.ReadUint32())); 775e0dac50fSopenharmony_ci property->SetTokenState(parcel.ReadBool()); 776e0dac50fSopenharmony_ci property->SetCallingWindow(parcel.ReadUint32()); 777e0dac50fSopenharmony_ci property->SetRequestedOrientation(static_cast<Orientation>(parcel.ReadUint32())); 778e0dac50fSopenharmony_ci property->SetTurnScreenOn(parcel.ReadBool()); 779e0dac50fSopenharmony_ci property->SetKeepScreenOn(parcel.ReadBool()); 780e0dac50fSopenharmony_ci property->SetModeSupportInfo(parcel.ReadUint32()); 781e0dac50fSopenharmony_ci property->SetRequestModeSupportInfo(parcel.ReadUint32()); 782e0dac50fSopenharmony_ci property->SetDragType(static_cast<DragType>(parcel.ReadUint32())); 783e0dac50fSopenharmony_ci uint32_t w = parcel.ReadUint32(); 784e0dac50fSopenharmony_ci uint32_t h = parcel.ReadUint32(); 785e0dac50fSopenharmony_ci property->SetOriginRect(Rect { 0, 0, w, h }); 786e0dac50fSopenharmony_ci property->SetStretchable(parcel.ReadBool()); 787e0dac50fSopenharmony_ci UnmarshallingTouchHotAreas(parcel, property); 788e0dac50fSopenharmony_ci property->SetAccessTokenId(parcel.ReadUint32()); 789e0dac50fSopenharmony_ci UnmarshallingTransform(parcel, property); 790e0dac50fSopenharmony_ci UnmarshallingWindowSizeLimits(parcel, property); 791e0dac50fSopenharmony_ci Transform zoomTrans; 792e0dac50fSopenharmony_ci zoomTrans.Unmarshalling(parcel); 793e0dac50fSopenharmony_ci property->SetZoomTransform(zoomTrans); 794e0dac50fSopenharmony_ci property->SetDisplayZoomState(parcel.ReadBool()); 795e0dac50fSopenharmony_ci AbilityInfo info = { parcel.ReadString(), parcel.ReadString(), parcel.ReadInt32() }; 796e0dac50fSopenharmony_ci property->SetAbilityInfo(info); 797e0dac50fSopenharmony_ci property->SetSnapshotSkip(parcel.ReadBool()); 798e0dac50fSopenharmony_ci property->SetTextFieldPositionY(parcel.ReadDouble()); 799e0dac50fSopenharmony_ci property->SetTextFieldHeight(parcel.ReadDouble()); 800e0dac50fSopenharmony_ci return property; 801e0dac50fSopenharmony_ci} 802e0dac50fSopenharmony_ci 803e0dac50fSopenharmony_cibool WindowProperty::Write(Parcel& parcel, PropertyChangeAction action) 804e0dac50fSopenharmony_ci{ 805e0dac50fSopenharmony_ci bool ret = parcel.WriteUint32(static_cast<uint32_t>(windowId_)); 806e0dac50fSopenharmony_ci switch (action) { 807e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_RECT: 808e0dac50fSopenharmony_ci ret = ret && parcel.WriteBool(decoStatus_) && parcel.WriteUint32(static_cast<uint32_t>(dragType_)) && 809e0dac50fSopenharmony_ci parcel.WriteInt32(originRect_.posX_) && parcel.WriteInt32(originRect_.posY_) && 810e0dac50fSopenharmony_ci parcel.WriteUint32(originRect_.width_) && parcel.WriteUint32(originRect_.height_) && 811e0dac50fSopenharmony_ci parcel.WriteInt32(requestRect_.posX_) && parcel.WriteInt32(requestRect_.posY_) && 812e0dac50fSopenharmony_ci parcel.WriteUint32(requestRect_.width_) && parcel.WriteUint32(requestRect_.height_) && 813e0dac50fSopenharmony_ci parcel.WriteUint32(static_cast<uint32_t>(windowSizeChangeReason_)); 814e0dac50fSopenharmony_ci break; 815e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_MODE: 816e0dac50fSopenharmony_ci ret = ret && parcel.WriteUint32(static_cast<uint32_t>(mode_)) && parcel.WriteBool(isDecorEnable_); 817e0dac50fSopenharmony_ci break; 818e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_FLAGS: 819e0dac50fSopenharmony_ci ret = ret && parcel.WriteUint32(flags_); 820e0dac50fSopenharmony_ci break; 821e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_OTHER_PROPS: 822e0dac50fSopenharmony_ci ret = ret && MapMarshalling(parcel); 823e0dac50fSopenharmony_ci break; 824e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_FOCUSABLE: 825e0dac50fSopenharmony_ci ret = ret && parcel.WriteBool(focusable_); 826e0dac50fSopenharmony_ci break; 827e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_TOUCHABLE: 828e0dac50fSopenharmony_ci ret = ret && parcel.WriteBool(touchable_); 829e0dac50fSopenharmony_ci break; 830e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_CALLING_WINDOW: 831e0dac50fSopenharmony_ci ret = ret && parcel.WriteUint32(callingWindow_); 832e0dac50fSopenharmony_ci break; 833e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_ORIENTATION: 834e0dac50fSopenharmony_ci ret = ret && parcel.WriteUint32(static_cast<uint32_t>(requestedOrientation_)); 835e0dac50fSopenharmony_ci break; 836e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_TURN_SCREEN_ON: 837e0dac50fSopenharmony_ci ret = ret && parcel.WriteBool(turnScreenOn_); 838e0dac50fSopenharmony_ci break; 839e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_KEEP_SCREEN_ON: 840e0dac50fSopenharmony_ci ret = ret && parcel.WriteBool(keepScreenOn_); 841e0dac50fSopenharmony_ci break; 842e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_SET_BRIGHTNESS: 843e0dac50fSopenharmony_ci ret = ret && parcel.WriteFloat(brightness_); 844e0dac50fSopenharmony_ci break; 845e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_MODE_SUPPORT_INFO: 846e0dac50fSopenharmony_ci ret = ret && parcel.WriteUint32(modeSupportInfo_); 847e0dac50fSopenharmony_ci break; 848e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_TOUCH_HOT_AREA: 849e0dac50fSopenharmony_ci ret = ret && MarshallingTouchHotAreas(parcel); 850e0dac50fSopenharmony_ci break; 851e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_TRANSFORM_PROPERTY: 852e0dac50fSopenharmony_ci ret = ret && MarshallingTransform(parcel); 853e0dac50fSopenharmony_ci break; 854e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_ANIMATION_FLAG: 855e0dac50fSopenharmony_ci ret = ret && parcel.WriteUint32(animationFlag_); 856e0dac50fSopenharmony_ci break; 857e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_PRIVACY_MODE: 858e0dac50fSopenharmony_ci ret = ret && parcel.WriteBool(isPrivacyMode_) && parcel.WriteBool(isSystemPrivacyMode_); 859e0dac50fSopenharmony_ci break; 860e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_SYSTEM_PRIVACY_MODE: 861e0dac50fSopenharmony_ci ret = ret && parcel.WriteBool(isPrivacyMode_) && parcel.WriteBool(isSystemPrivacyMode_); 862e0dac50fSopenharmony_ci break; 863e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_SNAPSHOT_SKIP: 864e0dac50fSopenharmony_ci ret = ret && parcel.WriteBool(isSnapshotSkip_) && parcel.WriteBool(isSystemPrivacyMode_); 865e0dac50fSopenharmony_ci break; 866e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_ASPECT_RATIO: 867e0dac50fSopenharmony_ci ret = ret && parcel.WriteFloat(aspectRatio_); 868e0dac50fSopenharmony_ci break; 869e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_MAXIMIZE_STATE: 870e0dac50fSopenharmony_ci ret = ret && parcel.WriteUint32(static_cast<uint32_t>(maximizeMode_)); 871e0dac50fSopenharmony_ci break; 872e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_TEXTFIELD_AVOID_INFO: 873e0dac50fSopenharmony_ci ret = ret && parcel.WriteDouble(textFieldPositionY_) && parcel.WriteDouble(textFieldHeight_); 874e0dac50fSopenharmony_ci break; 875e0dac50fSopenharmony_ci default: 876e0dac50fSopenharmony_ci break; 877e0dac50fSopenharmony_ci } 878e0dac50fSopenharmony_ci return ret; 879e0dac50fSopenharmony_ci} 880e0dac50fSopenharmony_ci 881e0dac50fSopenharmony_civoid WindowProperty::Read(Parcel& parcel, PropertyChangeAction action) 882e0dac50fSopenharmony_ci{ 883e0dac50fSopenharmony_ci SetWindowId(parcel.ReadUint32()); 884e0dac50fSopenharmony_ci switch (action) { 885e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_RECT: 886e0dac50fSopenharmony_ci SetDecoStatus(parcel.ReadBool()); 887e0dac50fSopenharmony_ci SetDragType(static_cast<DragType>(parcel.ReadUint32())); 888e0dac50fSopenharmony_ci SetOriginRect(Rect { parcel.ReadInt32(), parcel.ReadInt32(), parcel.ReadUint32(), parcel.ReadUint32() }); 889e0dac50fSopenharmony_ci SetRequestRect(Rect { parcel.ReadInt32(), parcel.ReadInt32(), parcel.ReadUint32(), parcel.ReadUint32() }); 890e0dac50fSopenharmony_ci SetWindowSizeChangeReason(static_cast<WindowSizeChangeReason>(parcel.ReadUint32())); 891e0dac50fSopenharmony_ci break; 892e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_MODE: 893e0dac50fSopenharmony_ci SetWindowMode(static_cast<WindowMode>(parcel.ReadUint32())); 894e0dac50fSopenharmony_ci SetDecorEnable(parcel.ReadBool()); 895e0dac50fSopenharmony_ci break; 896e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_FLAGS: 897e0dac50fSopenharmony_ci SetWindowFlags(parcel.ReadUint32()); 898e0dac50fSopenharmony_ci break; 899e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_OTHER_PROPS: 900e0dac50fSopenharmony_ci MapUnmarshalling(parcel, this); 901e0dac50fSopenharmony_ci break; 902e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_FOCUSABLE: 903e0dac50fSopenharmony_ci SetFocusable(parcel.ReadBool()); 904e0dac50fSopenharmony_ci break; 905e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_TOUCHABLE: 906e0dac50fSopenharmony_ci SetTouchable(parcel.ReadBool()); 907e0dac50fSopenharmony_ci break; 908e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_CALLING_WINDOW: 909e0dac50fSopenharmony_ci SetCallingWindow(parcel.ReadUint32()); 910e0dac50fSopenharmony_ci break; 911e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_ORIENTATION: 912e0dac50fSopenharmony_ci SetRequestedOrientation(static_cast<Orientation>(parcel.ReadUint32())); 913e0dac50fSopenharmony_ci break; 914e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_TURN_SCREEN_ON: 915e0dac50fSopenharmony_ci SetTurnScreenOn(parcel.ReadBool()); 916e0dac50fSopenharmony_ci break; 917e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_KEEP_SCREEN_ON: 918e0dac50fSopenharmony_ci SetKeepScreenOn(parcel.ReadBool()); 919e0dac50fSopenharmony_ci break; 920e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_SET_BRIGHTNESS: 921e0dac50fSopenharmony_ci SetBrightness(parcel.ReadFloat()); 922e0dac50fSopenharmony_ci break; 923e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_MODE_SUPPORT_INFO: 924e0dac50fSopenharmony_ci SetModeSupportInfo(parcel.ReadUint32()); 925e0dac50fSopenharmony_ci break; 926e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_TOUCH_HOT_AREA: 927e0dac50fSopenharmony_ci UnmarshallingTouchHotAreas(parcel, this); 928e0dac50fSopenharmony_ci break; 929e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_TRANSFORM_PROPERTY: 930e0dac50fSopenharmony_ci UnmarshallingTransform(parcel, this); 931e0dac50fSopenharmony_ci break; 932e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_ANIMATION_FLAG: { 933e0dac50fSopenharmony_ci SetAnimationFlag(parcel.ReadUint32()); 934e0dac50fSopenharmony_ci break; 935e0dac50fSopenharmony_ci } 936e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_PRIVACY_MODE: 937e0dac50fSopenharmony_ci SetPrivacyMode(parcel.ReadBool()); 938e0dac50fSopenharmony_ci SetSystemPrivacyMode(parcel.ReadBool()); 939e0dac50fSopenharmony_ci break; 940e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_SYSTEM_PRIVACY_MODE: 941e0dac50fSopenharmony_ci SetPrivacyMode(parcel.ReadBool()); 942e0dac50fSopenharmony_ci SetSystemPrivacyMode(parcel.ReadBool()); 943e0dac50fSopenharmony_ci break; 944e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_SNAPSHOT_SKIP: 945e0dac50fSopenharmony_ci SetSnapshotSkip(parcel.ReadBool()); 946e0dac50fSopenharmony_ci SetSystemPrivacyMode(parcel.ReadBool()); 947e0dac50fSopenharmony_ci break; 948e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_ASPECT_RATIO: 949e0dac50fSopenharmony_ci SetAspectRatio(parcel.ReadFloat()); 950e0dac50fSopenharmony_ci break; 951e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_MAXIMIZE_STATE: 952e0dac50fSopenharmony_ci SetMaximizeMode(static_cast<MaximizeMode>(parcel.ReadUint32())); 953e0dac50fSopenharmony_ci break; 954e0dac50fSopenharmony_ci case PropertyChangeAction::ACTION_UPDATE_TEXTFIELD_AVOID_INFO: 955e0dac50fSopenharmony_ci SetTextFieldPositionY(parcel.ReadDouble()); 956e0dac50fSopenharmony_ci SetTextFieldHeight(parcel.ReadDouble()); 957e0dac50fSopenharmony_ci break; 958e0dac50fSopenharmony_ci default: 959e0dac50fSopenharmony_ci break; 960e0dac50fSopenharmony_ci } 961e0dac50fSopenharmony_ci} 962e0dac50fSopenharmony_ci 963e0dac50fSopenharmony_civoid WindowProperty::CopyFrom(const sptr<WindowProperty>& property) 964e0dac50fSopenharmony_ci{ 965e0dac50fSopenharmony_ci windowName_ = property->windowName_; 966e0dac50fSopenharmony_ci windowRect_ = property->windowRect_; 967e0dac50fSopenharmony_ci requestRect_ = property->requestRect_; 968e0dac50fSopenharmony_ci decoStatus_ = property->decoStatus_; 969e0dac50fSopenharmony_ci type_ = property->type_; 970e0dac50fSopenharmony_ci mode_ = property->mode_; 971e0dac50fSopenharmony_ci lastMode_ = property->lastMode_; 972e0dac50fSopenharmony_ci flags_ = property->flags_; 973e0dac50fSopenharmony_ci isFullScreen_ = property->isFullScreen_; 974e0dac50fSopenharmony_ci focusable_ = property->focusable_; 975e0dac50fSopenharmony_ci touchable_ = property->touchable_; 976e0dac50fSopenharmony_ci isPrivacyMode_ = property->isPrivacyMode_; 977e0dac50fSopenharmony_ci isTransparent_ = property->isTransparent_; 978e0dac50fSopenharmony_ci alpha_ = property->alpha_; 979e0dac50fSopenharmony_ci brightness_ = property->brightness_; 980e0dac50fSopenharmony_ci displayId_ = property->displayId_; 981e0dac50fSopenharmony_ci windowId_ = property->windowId_; 982e0dac50fSopenharmony_ci parentId_ = property->parentId_; 983e0dac50fSopenharmony_ci hitOffset_ = property->hitOffset_; 984e0dac50fSopenharmony_ci animationFlag_ = property->animationFlag_; 985e0dac50fSopenharmony_ci windowSizeChangeReason_ = property->windowSizeChangeReason_; 986e0dac50fSopenharmony_ci sysBarPropMap_ = property->sysBarPropMap_; 987e0dac50fSopenharmony_ci isDecorEnable_ = property->isDecorEnable_; 988e0dac50fSopenharmony_ci tokenState_ = property->tokenState_; 989e0dac50fSopenharmony_ci callingWindow_ = property->callingWindow_; 990e0dac50fSopenharmony_ci requestedOrientation_ = property->requestedOrientation_; 991e0dac50fSopenharmony_ci turnScreenOn_ = property->turnScreenOn_; 992e0dac50fSopenharmony_ci keepScreenOn_ = property->keepScreenOn_; 993e0dac50fSopenharmony_ci modeSupportInfo_ = property->modeSupportInfo_; 994e0dac50fSopenharmony_ci requestModeSupportInfo_ = property->requestModeSupportInfo_; 995e0dac50fSopenharmony_ci dragType_ = property->dragType_; 996e0dac50fSopenharmony_ci originRect_ = property->originRect_; 997e0dac50fSopenharmony_ci isStretchable_ = property->isStretchable_; 998e0dac50fSopenharmony_ci touchHotAreas_ = property->touchHotAreas_; 999e0dac50fSopenharmony_ci accessTokenId_ = property->accessTokenId_; 1000e0dac50fSopenharmony_ci trans_ = property->trans_; 1001e0dac50fSopenharmony_ci sizeLimits_ = property->sizeLimits_; 1002e0dac50fSopenharmony_ci zoomTrans_ = property->zoomTrans_; 1003e0dac50fSopenharmony_ci isDisplayZoomOn_ = property->isDisplayZoomOn_; 1004e0dac50fSopenharmony_ci reCalcuZoomTransformMat_ = true; 1005e0dac50fSopenharmony_ci abilityInfo_ = property->abilityInfo_; 1006e0dac50fSopenharmony_ci isSnapshotSkip_ = property->isSnapshotSkip_; 1007e0dac50fSopenharmony_ci textFieldPositionY_ = property->textFieldPositionY_; 1008e0dac50fSopenharmony_ci textFieldHeight_ = property->textFieldHeight_; 1009e0dac50fSopenharmony_ci} 1010e0dac50fSopenharmony_civoid WindowProperty::SetTextFieldPositionY(double textFieldPositionY) 1011e0dac50fSopenharmony_ci{ 1012e0dac50fSopenharmony_ci textFieldPositionY_ = textFieldPositionY; 1013e0dac50fSopenharmony_ci} 1014e0dac50fSopenharmony_ci 1015e0dac50fSopenharmony_civoid WindowProperty::SetTextFieldHeight(double textFieldHeight) 1016e0dac50fSopenharmony_ci{ 1017e0dac50fSopenharmony_ci textFieldHeight_ = textFieldHeight; 1018e0dac50fSopenharmony_ci} 1019e0dac50fSopenharmony_ci 1020e0dac50fSopenharmony_cidouble WindowProperty::GetTextFieldPositionY() const 1021e0dac50fSopenharmony_ci{ 1022e0dac50fSopenharmony_ci return textFieldPositionY_; 1023e0dac50fSopenharmony_ci} 1024e0dac50fSopenharmony_ci 1025e0dac50fSopenharmony_cidouble WindowProperty::GetTextFieldHeight() const 1026e0dac50fSopenharmony_ci{ 1027e0dac50fSopenharmony_ci return textFieldHeight_; 1028e0dac50fSopenharmony_ci} 1029e0dac50fSopenharmony_ci} 1030e0dac50fSopenharmony_ci} 1031