1 /* 2 * Copyright (c) 2021-2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef OHOS_JS_WINDOW_H 17 #define OHOS_JS_WINDOW_H 18 19 #include "js_runtime_utils.h" 20 21 #ifndef WINDOW_PREVIEW 22 #include "js_window_register_manager.h" 23 #else 24 #include "mock/js_window_register_manager.h" 25 #endif 26 27 #include "js_window_utils.h" 28 #include "native_engine/native_engine.h" 29 #include "native_engine/native_value.h" 30 #include "window.h" 31 32 namespace OHOS { 33 namespace Rosen { 34 napi_value CreateJsWindowObject(napi_env env, sptr<Window>& window); 35 napi_value CreateJsWindowArrayObject(napi_env env, const std::vector<sptr<Window>>& windows); 36 std::shared_ptr<NativeReference> FindJsWindowObject(const std::string& windowName); 37 void BindFunctions(napi_env env, napi_value object, const char* moduleName); 38 napi_value NapiGetUndefined(napi_env env); 39 napi_valuetype GetType(napi_env env, napi_value value); 40 bool NapiIsCallable(napi_env env, napi_value value); 41 napi_value NapiThrowError(napi_env env, WmErrorCode errCode); 42 napi_value NapiThrowError(napi_env env, WmErrorCode errCode, const std::string& msg); 43 class JsWindow final { 44 public: 45 explicit JsWindow(const sptr<Window>& window); 46 ~JsWindow(); 47 static void Finalizer(napi_env env, void* data, void* hint); 48 static napi_value Show(napi_env env, napi_callback_info info); 49 static napi_value ShowWindow(napi_env env, napi_callback_info info); 50 static napi_value ShowWithAnimation(napi_env env, napi_callback_info info); 51 static napi_value Destroy(napi_env env, napi_callback_info info); 52 static napi_value DestroyWindow(napi_env env, napi_callback_info info); 53 static napi_value Hide(napi_env env, napi_callback_info info); 54 static napi_value HideWithAnimation(napi_env env, napi_callback_info info); 55 56 /* 57 * Window Layout 58 */ 59 static napi_value MoveTo(napi_env env, napi_callback_info info); 60 static napi_value MoveWindowTo(napi_env env, napi_callback_info info); 61 static napi_value MoveWindowToAsync(napi_env env, napi_callback_info info); 62 static napi_value MoveWindowToGlobal(napi_env env, napi_callback_info info); 63 static napi_value MoveWindowToGlobalDisplay(napi_env env, napi_callback_info info); 64 static napi_value GetGlobalScaledRect(napi_env env, napi_callback_info info); 65 static napi_value Resize(napi_env env, napi_callback_info info); 66 static napi_value ResizeWindow(napi_env env, napi_callback_info info); 67 static napi_value ResizeWindowAsync(napi_env env, napi_callback_info info); 68 static napi_value ResizeWindowWithAnimation(napi_env env, napi_callback_info info); 69 static napi_value ClientToGlobalDisplay(napi_env env, napi_callback_info info); 70 static napi_value GlobalDisplayToClient(napi_env env, napi_callback_info info); 71 72 static napi_value SetWindowType(napi_env env, napi_callback_info info); 73 static napi_value SetWindowMode(napi_env env, napi_callback_info info); 74 static napi_value GetProperties(napi_env env, napi_callback_info info); 75 static napi_value GetWindowPropertiesSync(napi_env env, napi_callback_info info); 76 static napi_value RegisterWindowCallback(napi_env env, napi_callback_info info); 77 static napi_value UnregisterWindowCallback(napi_env env, napi_callback_info info); 78 static napi_value BindDialogTarget(napi_env env, napi_callback_info info); 79 static napi_value SetDialogBackGestureEnabled(napi_env env, napi_callback_info info); 80 static napi_value LoadContent(napi_env env, napi_callback_info info); 81 static napi_value LoadContentByName(napi_env env, napi_callback_info info); 82 static napi_value GetUIContext(napi_env env, napi_callback_info info); 83 static napi_value SetUIContent(napi_env env, napi_callback_info info); 84 static napi_value IsShowing(napi_env env, napi_callback_info info); 85 static napi_value IsWindowShowingSync(napi_env env, napi_callback_info info); 86 static napi_value SetBackgroundColor(napi_env env, napi_callback_info info); 87 static napi_value SetWindowBackgroundColorSync(napi_env env, napi_callback_info info); 88 static napi_value SetBrightness(napi_env env, napi_callback_info info); 89 static napi_value SetWindowBrightness(napi_env env, napi_callback_info info); 90 static napi_value SetDimBehind(napi_env env, napi_callback_info info); 91 static napi_value SetFocusable(napi_env env, napi_callback_info info); 92 static napi_value SetWindowFocusable(napi_env env, napi_callback_info info); 93 static napi_value SetTopmost(napi_env env, napi_callback_info info); 94 static napi_value SetWindowTopmost(napi_env env, napi_callback_info info); 95 static napi_value SetSubWindowZLevel(napi_env env, napi_callback_info info); 96 static napi_value GetSubWindowZLevel(napi_env env, napi_callback_info info); 97 static napi_value SetWindowDelayRaiseOnDrag(napi_env env, napi_callback_info info); 98 static napi_value SetKeepScreenOn(napi_env env, napi_callback_info info); 99 static napi_value SetWindowKeepScreenOn(napi_env env, napi_callback_info info); 100 static napi_value SetWakeUpScreen(napi_env env, napi_callback_info info); 101 static napi_value SetOutsideTouchable(napi_env env, napi_callback_info info); 102 static napi_value SetPrivacyMode(napi_env env, napi_callback_info info); 103 static napi_value SetWindowPrivacyMode(napi_env env, napi_callback_info info); 104 static napi_value SetTouchable(napi_env env, napi_callback_info info); 105 static napi_value SetTouchableAreas(napi_env env, napi_callback_info info); 106 static napi_value SetResizeByDragEnabled(napi_env env, napi_callback_info info); 107 static napi_value SetRaiseByClickEnabled(napi_env env, napi_callback_info info); 108 static napi_value HideNonSystemFloatingWindows(napi_env env, napi_callback_info info); 109 static napi_value SetWindowTouchable(napi_env env, napi_callback_info info); 110 static napi_value SetTransparent(napi_env env, napi_callback_info info); 111 static napi_value SetCallingWindow(napi_env env, napi_callback_info info); 112 static napi_value SetPreferredOrientation(napi_env env, napi_callback_info info); 113 static napi_value GetPreferredOrientation(napi_env env, napi_callback_info info); 114 static napi_value SetSnapshotSkip(napi_env env, napi_callback_info info); 115 static napi_value RaiseToAppTop(napi_env env, napi_callback_info info); 116 static napi_value SetAspectRatio(napi_env env, napi_callback_info info); 117 static napi_value ResetAspectRatio(napi_env env, napi_callback_info info); 118 static napi_value Minimize(napi_env env, napi_callback_info info); 119 static napi_value RaiseAboveTarget(napi_env env, napi_callback_info info); 120 static napi_value RaiseMainWindowAboveTarget(napi_env env, napi_callback_info info); 121 static napi_value KeepKeyboardOnFocus(napi_env env, napi_callback_info info); 122 static napi_value GetWindowLimits(napi_env env, napi_callback_info info); 123 static napi_value SetWindowLimits(napi_env env, napi_callback_info info); 124 static napi_value SetSingleFrameComposerEnabled(napi_env env, napi_callback_info info); 125 static napi_value EnableLandscapeMultiWindow(napi_env env, napi_callback_info info); 126 static napi_value DisableLandscapeMultiWindow(napi_env env, napi_callback_info info); 127 static napi_value IsFocused(napi_env env, napi_callback_info info); 128 static napi_value RequestFocus(napi_env env, napi_callback_info info); 129 static napi_value StartMoving(napi_env env, napi_callback_info info); 130 static napi_value StopMoving(napi_env env, napi_callback_info info); 131 static napi_value GetWindowDensityInfo(napi_env env, napi_callback_info info); 132 static napi_value SetDefaultDensityEnabled(napi_env env, napi_callback_info info); 133 static napi_value IsMainWindowFullScreenAcrossDisplays(napi_env env, napi_callback_info info); 134 static napi_value EnableDrag(napi_env env, napi_callback_info info); 135 static napi_value SetExclusivelyHighlighted(napi_env env, napi_callback_info info); 136 static napi_value IsWindowHighlighted(napi_env env, napi_callback_info info); 137 138 // colorspace, gamut 139 static napi_value IsSupportWideGamut(napi_env env, napi_callback_info info); 140 static napi_value IsWindowSupportWideGamut(napi_env env, napi_callback_info info); 141 static napi_value SetColorSpace(napi_env env, napi_callback_info info); 142 static napi_value SetWindowColorSpace(napi_env env, napi_callback_info info); 143 static napi_value GetColorSpace(napi_env env, napi_callback_info info); 144 static napi_value GetWindowColorSpaceSync(napi_env env, napi_callback_info info); 145 static napi_value Dump(napi_env env, napi_callback_info info); 146 static napi_value SetForbidSplitMove(napi_env env, napi_callback_info info); 147 static napi_value Snapshot(napi_env env, napi_callback_info info); 148 static napi_value SnapshotSync(napi_env env, napi_callback_info info); 149 static napi_value SnapshotIgnorePrivacy(napi_env env, napi_callback_info info); 150 151 // animation config 152 static napi_value Opacity(napi_env env, napi_callback_info info); 153 static napi_value Scale(napi_env env, napi_callback_info info); 154 static napi_value Rotate(napi_env env, napi_callback_info info); 155 static napi_value Translate(napi_env env, napi_callback_info info); 156 static napi_value GetTransitionController(napi_env env, napi_callback_info info); 157 158 /* 159 * Window Property 160 */ 161 static napi_value SetCornerRadius(napi_env env, napi_callback_info info); 162 static napi_value SetWindowCornerRadius(napi_env env, napi_callback_info info); 163 static napi_value GetWindowCornerRadius(napi_env env, napi_callback_info info); 164 static napi_value SetShadow(napi_env env, napi_callback_info info); 165 static napi_value SetWindowShadowRadius(napi_env env, napi_callback_info info); 166 static napi_value SetBlur(napi_env env, napi_callback_info info); 167 static napi_value SetBackdropBlur(napi_env env, napi_callback_info info); 168 static napi_value SetBackdropBlurStyle(napi_env env, napi_callback_info info); 169 static napi_value SetWaterMarkFlag(napi_env env, napi_callback_info info); 170 static napi_value SetHandwritingFlag(napi_env env, napi_callback_info info); 171 static napi_value SetWindowGrayScale(napi_env env, napi_callback_info info); 172 173 /* 174 * Sub Window 175 */ 176 static napi_value CreateSubWindowWithOptions(napi_env env, napi_callback_info info); 177 static napi_value SetSubWindowModal(napi_env env, napi_callback_info info); 178 static napi_value SetParentWindow(napi_env env, napi_callback_info info); 179 static napi_value GetParentWindow(napi_env env, napi_callback_info info); 180 181 /* 182 * Gesture Back 183 */ 184 static napi_value SetGestureBackEnabled(napi_env env, napi_callback_info info); 185 static napi_value GetGestureBackEnabled(napi_env env, napi_callback_info info); 186 187 /* 188 * PC Window 189 */ 190 static napi_value GetWindowStatus(napi_env env, napi_callback_info info); 191 static napi_value SetWindowMask(napi_env env, napi_callback_info info); 192 static napi_value SetFollowParentMultiScreenPolicy(napi_env env, napi_callback_info info); 193 194 /* 195 * Window Transition Animation For PC 196 */ 197 static napi_value SetWindowTransitionAnimation(napi_env env, napi_callback_info info); 198 static napi_value GetWindowTransitionAnimation(napi_env env, napi_callback_info info); 199 200 /* 201 * Window Decor 202 */ 203 static napi_value DisableWindowDecor(napi_env env, napi_callback_info info); 204 static napi_value SetWindowDecorVisible(napi_env env, napi_callback_info info); 205 static napi_value GetWindowDecorVisible(napi_env env, napi_callback_info info); 206 static napi_value SetWindowTitleMoveEnabled(napi_env env, napi_callback_info info); 207 static napi_value SetWindowDecorHeight(napi_env env, napi_callback_info info); 208 static napi_value GetWindowDecorHeight(napi_env env, napi_callback_info info); 209 static napi_value GetTitleButtonRect(napi_env env, napi_callback_info info); 210 static napi_value SetTitleButtonVisible(napi_env env, napi_callback_info info); 211 static napi_value SetWindowTitleButtonVisible(napi_env env, napi_callback_info info); 212 static napi_value SetWindowContainerColor(napi_env env, napi_callback_info info); 213 static napi_value SetWindowContainerModalColor(napi_env env, napi_callback_info info); 214 static napi_value SetDecorButtonStyle(napi_env env, napi_callback_info info); 215 static napi_value GetDecorButtonStyle(napi_env env, napi_callback_info info); 216 static napi_value SetWindowTitle(napi_env env, napi_callback_info info); 217 218 /* 219 * PC Window Layout 220 */ 221 static napi_value Recover(napi_env env, napi_callback_info info); 222 static napi_value Maximize(napi_env env, napi_callback_info info); 223 static napi_value SetTitleAndDockHoverShown(napi_env env, napi_callback_info info); 224 static napi_value Restore(napi_env env, napi_callback_info info); 225 static napi_value SetDragKeyFramePolicy(napi_env env, napi_callback_info info); 226 227 /* 228 * Window Immersive 229 */ 230 static napi_value SetFullScreen(napi_env env, napi_callback_info info); 231 static napi_value SetLayoutFullScreen(napi_env env, napi_callback_info info); 232 static napi_value SetWindowLayoutFullScreen(napi_env env, napi_callback_info info); 233 static napi_value SetSystemBarEnable(napi_env env, napi_callback_info info); 234 static napi_value SetWindowSystemBarEnable(napi_env env, napi_callback_info info); 235 static napi_value SetSystemBarProperties(napi_env env, napi_callback_info info); 236 static napi_value GetWindowSystemBarPropertiesSync(napi_env env, napi_callback_info info); 237 static napi_value SetWindowSystemBarProperties(napi_env env, napi_callback_info info); 238 static napi_value SetStatusBarColor(napi_env env, napi_callback_info info); 239 static napi_value GetStatusBarProperty(napi_env env, napi_callback_info info); 240 static napi_value GetAvoidArea(napi_env env, napi_callback_info info); 241 static napi_value GetWindowAvoidAreaSync(napi_env env, napi_callback_info info); 242 static napi_value SetSpecificSystemBarEnabled(napi_env env, napi_callback_info info); 243 static napi_value SetSystemAvoidAreaEnabled(napi_env env, napi_callback_info info); 244 static napi_value IsSystemAvoidAreaEnabled(napi_env env, napi_callback_info info); 245 static napi_value SetImmersiveModeEnabledState(napi_env env, napi_callback_info info); 246 static napi_value GetImmersiveModeEnabledState(napi_env env, napi_callback_info info); 247 static napi_value IsImmersiveLayout(napi_env env, napi_callback_info info); 248 static napi_value SetRelativePositionToParentWindowEnabled(napi_env env, napi_callback_info info); 249 static napi_value SetFollowParentWindowLayoutEnabled(napi_env env, napi_callback_info info); 250 static napi_value SetWindowShadowEnabled(napi_env env, napi_callback_info info); 251 252 private: 253 const std::string& GetWindowName() const; 254 static bool ParseScaleOption(napi_env env, napi_value jsObject, Transform& trans); 255 static bool ParseRotateOption(napi_env env, napi_value jsObject, Transform& trans); 256 static bool ParseTranslateOption(napi_env env, napi_value jsObject, Transform& trans); 257 static bool ParseWindowLimits(napi_env env, napi_value jsObject, WindowLimits& windowLimits); 258 void ParseShadowOptionalParameters(WmErrorCode& ret, std::shared_ptr<ShadowsInfo>& shadowsInfo, 259 napi_env env, const napi_value* argv, size_t argc); 260 bool CheckWindowMaskParams(napi_env env, napi_value jsObject); 261 napi_value LoadContentScheduleOld(napi_env env, napi_callback_info info, bool isLoadedByName); 262 napi_value LoadContentScheduleNew(napi_env env, napi_callback_info info, bool isLoadedByName); 263 napi_value HideWindowFunction(napi_env env, napi_callback_info info, WmErrorCode errCode); 264 napi_value OnShow(napi_env env, napi_callback_info info); 265 napi_value OnShowWindow(napi_env env, napi_callback_info info); 266 napi_value OnShowWithAnimation(napi_env env, napi_callback_info info); 267 napi_value OnDestroy(napi_env env, napi_callback_info info); 268 napi_value OnDestroyWindow(napi_env env, napi_callback_info info); 269 napi_value OnHide(napi_env env, napi_callback_info info); 270 napi_value OnHideWithAnimation(napi_env env, napi_callback_info info); 271 272 /* 273 * Window Layout 274 */ 275 napi_value OnMoveTo(napi_env env, napi_callback_info info); 276 napi_value OnMoveWindowTo(napi_env env, napi_callback_info info); 277 napi_value OnMoveWindowToAsync(napi_env env, napi_callback_info info); 278 napi_value OnMoveWindowToGlobal(napi_env env, napi_callback_info info); 279 napi_value OnMoveWindowToGlobalDisplay(napi_env env, napi_callback_info info); 280 napi_value OnGetGlobalScaledRect(napi_env env, napi_callback_info info); 281 napi_value OnResize(napi_env env, napi_callback_info info); 282 napi_value OnResizeWindow(napi_env env, napi_callback_info info); 283 napi_value OnResizeWindowAsync(napi_env env, napi_callback_info info); 284 napi_value OnResizeWindowWithAnimation(napi_env env, napi_callback_info info); 285 template <typename PositionTransformFunc> 286 napi_value HandlePositionTransform( 287 napi_env env, napi_callback_info info, PositionTransformFunc transformFunc, const char* caller); 288 napi_value OnClientToGlobalDisplay(napi_env env, napi_callback_info info); 289 napi_value OnGlobalDisplayToClient(napi_env env, napi_callback_info info); 290 291 napi_value OnSetWindowType(napi_env env, napi_callback_info info); 292 napi_value OnSetWindowMode(napi_env env, napi_callback_info info); 293 napi_value OnGetProperties(napi_env env, napi_callback_info info); 294 napi_value OnGetWindowPropertiesSync(napi_env env, napi_callback_info info); 295 napi_value OnRegisterWindowCallback(napi_env env, napi_callback_info info); 296 napi_value OnUnregisterWindowCallback(napi_env env, napi_callback_info info); 297 napi_value OnBindDialogTarget(napi_env env, napi_callback_info info); 298 napi_value OnSetDialogBackGestureEnabled(napi_env env, napi_callback_info info); 299 napi_value OnLoadContent(napi_env env, napi_callback_info info, bool isLoadedByName); 300 napi_value OnGetUIContext(napi_env env, napi_callback_info info); 301 napi_value OnSetUIContent(napi_env env, napi_callback_info info); 302 napi_value OnIsShowing(napi_env env, napi_callback_info info); 303 napi_value OnIsWindowShowingSync(napi_env env, napi_callback_info info); 304 napi_value OnSetPreferredOrientation(napi_env env, napi_callback_info info); 305 napi_value OnGetPreferredOrientation(napi_env env, napi_callback_info info); 306 napi_value OnRaiseToAppTop(napi_env env, napi_callback_info info); 307 napi_value OnSetAspectRatio(napi_env env, napi_callback_info info); 308 napi_value OnResetAspectRatio(napi_env env, napi_callback_info info); 309 napi_value OnMinimize(napi_env env, napi_callback_info info); 310 WmErrorCode CheckRaiseMainWindowParams(napi_env env, size_t argc, napi_value argv[], 311 int32_t sourceId, int32_t& targetId); 312 napi_value OnRaiseAboveTarget(napi_env env, napi_callback_info info); 313 napi_value OnRaiseMainWindowAboveTarget(napi_env env, napi_callback_info info); 314 napi_value OnKeepKeyboardOnFocus(napi_env env, napi_callback_info info); 315 napi_value OnSetWindowLimits(napi_env env, napi_callback_info info); 316 napi_value OnGetWindowLimits(napi_env env, napi_callback_info info); 317 318 napi_value OnIsFocused(napi_env env, napi_callback_info info); 319 napi_value OnRequestFocus(napi_env env, napi_callback_info info); 320 napi_value OnGetWindowDensityInfo(napi_env env, napi_callback_info info); 321 napi_value OnSetDefaultDensityEnabled(napi_env env, napi_callback_info info); 322 napi_value OnIsMainWindowFullScreenAcrossDisplays(napi_env env, napi_callback_info info); 323 napi_value OnSetExclusivelyHighlighted(napi_env env, napi_callback_info info); 324 napi_value OnIsWindowHighlighted(napi_env env, napi_callback_info info); 325 326 // colorspace, gamut 327 napi_value OnIsSupportWideGamut(napi_env env, napi_callback_info info); 328 napi_value OnIsWindowSupportWideGamut(napi_env env, napi_callback_info info); 329 napi_value OnSetColorSpace(napi_env env, napi_callback_info info); 330 napi_value OnSetWindowColorSpace(napi_env env, napi_callback_info info); 331 napi_value OnGetColorSpace(napi_env env, napi_callback_info info); 332 napi_value OnGetWindowColorSpaceSync(napi_env env, napi_callback_info info); 333 napi_value OnSetBackgroundColor(napi_env env, napi_callback_info info); 334 napi_value OnSetWindowBackgroundColorSync(napi_env env, napi_callback_info info); 335 napi_value OnSetBrightness(napi_env env, napi_callback_info info); 336 napi_value OnSetWindowBrightness(napi_env env, napi_callback_info info); 337 napi_value OnSetDimBehind(napi_env env, napi_callback_info info); 338 napi_value OnSetFocusable(napi_env env, napi_callback_info info); 339 napi_value OnSetWindowFocusable(napi_env env, napi_callback_info info); 340 napi_value OnSetTopmost(napi_env env, napi_callback_info info); 341 napi_value OnSetWindowTopmost(napi_env env, napi_callback_info info); 342 napi_value OnSetSubWindowZLevel(napi_env env, napi_callback_info info); 343 napi_value OnGetSubWindowZLevel(napi_env env, napi_callback_info info); 344 napi_value OnSetWindowDelayRaiseOnDrag(napi_env env, napi_callback_info info); 345 napi_value OnSetKeepScreenOn(napi_env env, napi_callback_info info); 346 napi_value OnSetWindowKeepScreenOn(napi_env env, napi_callback_info info); 347 napi_value OnSetWakeUpScreen(napi_env env, napi_callback_info info); 348 napi_value OnSetOutsideTouchable(napi_env env, napi_callback_info info); 349 napi_value OnSetPrivacyMode(napi_env env, napi_callback_info info); 350 napi_value OnSetWindowPrivacyMode(napi_env env, napi_callback_info info); 351 napi_value OnSetTouchable(napi_env env, napi_callback_info info); 352 napi_value OnSetTouchableAreas(napi_env env, napi_callback_info info); 353 napi_value OnSetResizeByDragEnabled(napi_env env, napi_callback_info info); 354 napi_value OnSetRaiseByClickEnabled(napi_env env, napi_callback_info info); 355 napi_value OnHideNonSystemFloatingWindows(napi_env env, napi_callback_info info); 356 napi_value OnSetWindowTouchable(napi_env env, napi_callback_info info); 357 napi_value OnSetTransparent(napi_env env, napi_callback_info info); 358 napi_value OnSetCallingWindow(napi_env env, napi_callback_info info); 359 napi_value OnDump(napi_env env, napi_callback_info info); 360 napi_value OnSetForbidSplitMove(napi_env env, napi_callback_info info); 361 napi_value OnSnapshot(napi_env env, napi_callback_info info); 362 napi_value OnSnapshotSync(napi_env env, napi_callback_info info); 363 napi_value OnSnapshotIgnorePrivacy(napi_env env, napi_callback_info info); 364 napi_value OnSetSnapshotSkip(napi_env env, napi_callback_info info); 365 napi_value OnSetSingleFrameComposerEnabled(napi_env env, napi_callback_info info); 366 napi_value OnEnableLandscapeMultiWindow(napi_env env, napi_callback_info info); 367 napi_value OnDisableLandscapeMultiWindow(napi_env env, napi_callback_info info); 368 369 // animation Config 370 napi_value OnOpacity(napi_env env, napi_callback_info info); 371 napi_value OnScale(napi_env env, napi_callback_info info); 372 napi_value OnRotate(napi_env env, napi_callback_info info); 373 napi_value OnTranslate(napi_env env, napi_callback_info info); 374 napi_value OnGetTransitionController(napi_env env, napi_callback_info info); 375 WmErrorCode CreateTransitionController(napi_env env); 376 377 /* 378 * Window Property 379 */ 380 napi_value OnSetCornerRadius(napi_env env, napi_callback_info info); 381 napi_value OnSetWindowCornerRadius(napi_env env, napi_callback_info info); 382 napi_value OnGetWindowCornerRadius(napi_env env, napi_callback_info info); 383 napi_value OnSetShadow(napi_env env, napi_callback_info info); 384 napi_value OnSetWindowShadowRadius(napi_env env, napi_callback_info info); 385 napi_value OnSetBlur(napi_env env, napi_callback_info info); 386 napi_value OnSetBackdropBlur(napi_env env, napi_callback_info info); 387 napi_value OnSetBackdropBlurStyle(napi_env env, napi_callback_info info); 388 napi_value OnSetWaterMarkFlag(napi_env env, napi_callback_info info); 389 napi_value OnSetHandwritingFlag(napi_env env, napi_callback_info info); 390 napi_value OnSetWindowGrayScale(napi_env env, napi_callback_info info); 391 napi_value OnEnableDrag(napi_env env, napi_callback_info info); 392 napi_value OnStartMoving(napi_env env, napi_callback_info info); 393 napi_value OnStopMoving(napi_env env, napi_callback_info info); 394 395 /* 396 * Sub Window 397 */ 398 napi_value OnCreateSubWindowWithOptions(napi_env env, napi_callback_info info); 399 napi_value OnSetSubWindowModal(napi_env env, napi_callback_info info); 400 napi_value OnSetParentWindow(napi_env env, napi_callback_info info); 401 napi_value OnGetParentWindow(napi_env env, napi_callback_info info); 402 403 /* 404 * Gesture Back 405 */ 406 napi_value OnSetGestureBackEnabled(napi_env env, napi_callback_info info); 407 napi_value OnGetGestureBackEnabled(napi_env env, napi_callback_info info); 408 409 /* 410 * PC Window 411 */ 412 napi_value OnSetWindowMask(napi_env env, napi_callback_info info); 413 napi_value OnGetWindowStatus(napi_env env, napi_callback_info info); 414 napi_value OnSetFollowParentMultiScreenPolicy(napi_env env, napi_callback_info info); 415 416 /* 417 * Window Transition Animation For PC 418 */ 419 napi_value OnSetWindowTransitionAnimation(napi_env env, napi_callback_info info); 420 napi_value OnGetWindowTransitionAnimation(napi_env env, napi_callback_info info); 421 422 /* 423 * Window Decor 424 */ 425 napi_value OnDisableWindowDecor(napi_env env, napi_callback_info info); 426 napi_value OnSetWindowDecorVisible(napi_env env, napi_callback_info info); 427 napi_value OnGetWindowDecorVisible(napi_env env, napi_callback_info info); 428 napi_value OnSetWindowTitleMoveEnabled(napi_env env, napi_callback_info info); 429 napi_value OnSetWindowDecorHeight(napi_env env, napi_callback_info info); 430 napi_value OnGetWindowDecorHeight(napi_env env, napi_callback_info info); 431 napi_value OnGetTitleButtonRect(napi_env env, napi_callback_info info); 432 napi_value OnSetTitleButtonVisible(napi_env env, napi_callback_info info); 433 napi_value OnSetWindowTitleButtonVisible(napi_env env, napi_callback_info info); 434 napi_value OnSetWindowContainerColor(napi_env env, napi_callback_info info); 435 napi_value OnSetWindowContainerModalColor(napi_env env, napi_callback_info info); 436 napi_value OnSetDecorButtonStyle(napi_env env, napi_callback_info info); 437 napi_value OnGetDecorButtonStyle(napi_env env, napi_callback_info info); 438 napi_value OnSetWindowTitle(napi_env env, napi_callback_info info); 439 440 /* 441 * PC Window Layout 442 */ 443 napi_value OnRecover(napi_env env, napi_callback_info info); 444 napi_value OnMaximize(napi_env env, napi_callback_info info); 445 napi_value OnSetTitleAndDockHoverShown(napi_env env, napi_callback_info info); 446 napi_value OnRestore(napi_env env, napi_callback_info info); 447 napi_value OnStartMoveWindowWithCoordinate(napi_env env, size_t argc, napi_value* argv); 448 napi_value OnSetDragKeyFramePolicy(napi_env env, napi_callback_info info); 449 450 std::string windowName_; 451 sptr<Window> windowToken_ = nullptr; 452 std::unique_ptr<JsWindowRegisterManager> registerManager_ = nullptr; 453 std::shared_ptr<NativeReference> jsTransControllerObj_ = nullptr; 454 455 /* 456 * Window Immersive 457 */ 458 napi_value OnSetFullScreen(napi_env env, napi_callback_info info); 459 napi_value OnSetLayoutFullScreen(napi_env env, napi_callback_info info); 460 napi_value OnSetWindowLayoutFullScreen(napi_env env, napi_callback_info info); 461 napi_value OnSetSystemBarEnable(napi_env env, napi_callback_info info); 462 napi_value OnSetWindowSystemBarEnable(napi_env env, napi_callback_info info); 463 napi_value OnSetSystemBarProperties(napi_env env, napi_callback_info info); 464 napi_value OnGetWindowSystemBarPropertiesSync(napi_env env, napi_callback_info info); 465 napi_value OnSetWindowSystemBarProperties(napi_env env, napi_callback_info info); 466 napi_value OnSetStatusBarColor(napi_env env, napi_callback_info info); 467 napi_value OnGetStatusBarPropertySync(napi_env env, napi_callback_info info); 468 napi_value OnGetAvoidArea(napi_env env, napi_callback_info info); 469 napi_value OnGetWindowAvoidAreaSync(napi_env env, napi_callback_info info); 470 napi_value OnSetSpecificSystemBarEnabled(napi_env env, napi_callback_info info); 471 napi_value OnSetImmersiveModeEnabledState(napi_env env, napi_callback_info info); 472 napi_value OnGetImmersiveModeEnabledState(napi_env env, napi_callback_info info); 473 napi_value OnIsImmersiveLayout(napi_env env, napi_callback_info info); 474 napi_value OnSetSystemAvoidAreaEnabled(napi_env env, napi_callback_info info); 475 napi_value OnIsSystemAvoidAreaEnabled(napi_env env, napi_callback_info info); 476 napi_value OnSetFollowParentWindowLayoutEnabled(napi_env env, napi_callback_info info); 477 napi_value OnSetRelativePositionToParentWindowEnabled(napi_env env, napi_callback_info info); 478 napi_value OnSetWindowShadowEnabled(napi_env env, napi_callback_info info); 479 }; 480 } // namespace Rosen 481 } // namespace OHOS 482 #endif