1 /* 2 * Copyright (c) 2024 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 WINDOW_FFI_H 17 #define WINDOW_FFI_H 18 19 #include <cstdint> 20 #include "cj_ffi/cj_common_ffi.h" 21 #include "singleton_container.h" 22 #include "window_impl.h" 23 #include "window_manager.h" 24 #include "window_manager_impl.h" 25 #include "window_stage_impl.h" 26 27 extern "C" { 28 // window maneger 29 FFI_EXPORT RetDataI64 FfiOHOSCreateWindow(char* name, uint32_t windowType, OHOS::AbilityRuntime::Context* context, 30 int64_t displayId, int64_t parentId); 31 FFI_EXPORT int32_t FfiOHOSWindowSetWindowLayoutMode(uint32_t mode); 32 FFI_EXPORT int32_t FfiOHOSWindowMinimizeAll(int64_t displayId); 33 FFI_EXPORT RetDataI64 FfiOHOSGetLastWindow(OHOS::AbilityRuntime::Context* ctx); 34 FFI_EXPORT int32_t FfiOHOSShiftAppWindowFocus(int32_t sourceWindowId, int32_t targetWindowId); 35 36 // window 37 FFI_EXPORT int32_t FfiOHOSWindowHide(int64_t id); 38 FFI_EXPORT int32_t FfiOHOSWindowHideWithAnimation(int64_t id); 39 FFI_EXPORT int32_t FfiOHOSWindowShowWindow(int64_t id); 40 FFI_EXPORT int32_t FfiOHOSWindowShowWithAnimation(int64_t id); 41 FFI_EXPORT int32_t FfiOHOSWindowDestroyWindow(int64_t id); 42 FFI_EXPORT int32_t FfiOHOSWindowMoveWindowTo(int64_t id, int32_t x, int32_t y); 43 FFI_EXPORT int32_t FfiOHOSWindowResize(int64_t id, uint32_t width, uint32_t height); 44 FFI_EXPORT int32_t FfiOHOSWindowSetWindowMode(int64_t id, uint32_t mode); 45 FFI_EXPORT CWindowProperties FfiOHOSWindowGetWindowProperties(int64_t id, int32_t* errCode); 46 FFI_EXPORT int32_t FfiOHOSWindowSetWindowLayoutFullScreen(int64_t id, bool isLayoutFullScreen); 47 FFI_EXPORT int32_t FfiOHOSSetWindowBackgroundColor(int64_t id, const char* color); 48 FFI_EXPORT int32_t FfiOHOSWindowSetWindowBrightness(int64_t id, float brightness); 49 FFI_EXPORT int32_t FfiOHOSWindowSetWindowFocusable(int64_t id, bool focusable); 50 FFI_EXPORT int32_t FfiOHOSWindowSetWindowKeepScreenOn(int64_t id, bool keepScreenOn); 51 FFI_EXPORT int32_t FfiOHOSWindowSetWindowPrivacyMode(int64_t id, bool isPrivacyMode); 52 FFI_EXPORT int32_t FfiOHOSWindowSetWindowTouchable(int64_t id, bool touchable); 53 FFI_EXPORT int32_t FfiOHOSWindowSetForbidSplitMove(int64_t id, bool isForbidSplitMove); 54 FFI_EXPORT bool FfiOHOSWindowIsWindowSupportWideGamut(int64_t id, int32_t* errCode); 55 FFI_EXPORT bool FfiOHOSWindowIsWindowShowing(int64_t id, int32_t* errCode); 56 FFI_EXPORT RetDataI64 FFiOHOSWindowFindWindow(char* name); 57 FFI_EXPORT int32_t FFiOHOSWindowToggleShownStateForAllAppWindows(); 58 FFI_EXPORT int32_t FFiOHOSWindowSetGestureNavigationEnabled(bool enable); 59 FFI_EXPORT int32_t FFiOHOSWindowSetWaterMarkImage(int64_t pixelMapId, bool enable); 60 FFI_EXPORT int32_t FFiOHOSWindowSetBackdropBlurStyle(int64_t id, uint32_t blurStyle); 61 FFI_EXPORT int32_t FFiOHOSWindowSetPreferredOrientation(int64_t id, uint32_t orientation); 62 FFI_EXPORT int32_t FFiOHOSWindowGetWindowAvoidArea(int64_t id, uint32_t areaType, OHOS::Rosen::CAvoidArea* retPtr); 63 FFI_EXPORT int32_t FFiOHOSWindowSetShadowRadius(int64_t id, double radius); 64 FFI_EXPORT int32_t FFiOHOSWindowSetShadowColor(int64_t id, char* color); 65 FFI_EXPORT int32_t FFiOHOSWindowSetShadowOffsetX(int64_t id, double offsetX); 66 FFI_EXPORT int32_t FFiOHOSWindowSetShadowOffsetY(int64_t id, double offsetY); 67 FFI_EXPORT int32_t FFiOHOSWindowSetBackdropBlur(int64_t id, double radius); 68 FFI_EXPORT int32_t FFiOHOSWindowSetBlur(int64_t id, double radius); 69 FFI_EXPORT int32_t FFiOHOSWindowSetWaterMarkFlag(int64_t id, bool enable); 70 FFI_EXPORT int32_t FFiOHOSWindowSetAspectRatio(int64_t id, double ratio); 71 FFI_EXPORT int32_t FFiOHOSWindowResetAspectRatio(int64_t id); 72 FFI_EXPORT int32_t FFiOHOSWindowMinimize(int64_t id); 73 FFI_EXPORT int32_t FFiOHOSWindowSetWindowColorSpace(int64_t id, uint32_t colorSpace); 74 FFI_EXPORT int32_t FFiOHOSWindowSetCornerRadius(int64_t id, float radius); 75 FFI_EXPORT int32_t FFiOHOSWindowSetResizeByDragEnabled(int64_t id, bool enable); 76 FFI_EXPORT int32_t FFiOHOSWindowRaiseToAppTop(int64_t id); 77 FFI_EXPORT int32_t FFiOHOSWindowSetSnapshotSkip(int64_t id, bool isSkip); 78 FFI_EXPORT int32_t FFiOHOSWindowSetWakeUpScreen(int64_t id, bool wakeUp); 79 FFI_EXPORT int32_t FFiOHOSWindowSetRaiseByClickEnabled(int64_t id, bool enable); 80 FFI_EXPORT int32_t FFiOHOSWindowGetWindowColorSpace(int64_t id, int32_t* errCode); 81 FFI_EXPORT int32_t FFiOHOSWindowRaiseAboveTarget(int64_t id, int32_t windowId); 82 FFI_EXPORT int32_t FFiOHOSWindowTranslate(int64_t id, double x, double y, double z); 83 FFI_EXPORT int32_t FFiOHOSWindowRotate(int64_t id, WindowRotate window); 84 FFI_EXPORT int32_t FFiOHOSWindowScale(int64_t id, double x, double y, double pivotX, double pivotY); 85 FFI_EXPORT int32_t FFiOHOSWindowOpacity(int64_t id, double opacity); 86 FFI_EXPORT int64_t FFiOHOSWindowSnapshot(int64_t id, int32_t* errCode); 87 FFI_EXPORT int32_t FFiOHOSWindowSetWindowSystemBarEnable(int64_t id, CArrString arr); 88 FFI_EXPORT int32_t FFiOHOSWindowSetWindowSystemBarProperties(int64_t id, CJBarProperties properties); 89 FFI_EXPORT int32_t FFiOHOSMinimize(int64_t id); 90 FFI_EXPORT int32_t FFiOHOSSetWindowColorSpace(int64_t id, uint32_t colorSpace); 91 FFI_EXPORT int32_t FfiOHOSOnKeyboardHeightChange(int64_t id, int64_t callbackId); 92 FFI_EXPORT int32_t FfiOHOSOffKeyboardHeightChange(int64_t id); 93 FFI_EXPORT int32_t FfiOHOSOnWindowEvent(int64_t id, int64_t callbackId); 94 FFI_EXPORT int32_t FfiOHOSOnNoInteractionDetected(int64_t id, int64_t timeout, int64_t callbackId); 95 FFI_EXPORT int32_t FfiOHOSOnCallback(int64_t id, int64_t callbackId, const char* callbackType); 96 FFI_EXPORT int32_t FfiOHOSOffCallback(int64_t id, int64_t callbackId, const char* callbackType); 97 FFI_EXPORT int32_t FfiOHOSSetSubWindowModal(int64_t id, bool isModal); 98 FFI_EXPORT int32_t FfiOHOSIsFocused(int64_t id, int32_t* errCode); 99 FFI_EXPORT int32_t FfiOHOSSetWindowLimits(int64_t id, OHOS::Rosen::CWindowLimits windloLimits, 100 OHOS::Rosen::CWindowLimits* retPtr); 101 FFI_EXPORT int32_t FfiOHOSGetWindowLimits(int64_t id, OHOS::Rosen::CWindowLimits* retPtr); 102 FFI_EXPORT bool FfiOHOSGetImmersiveModeEnabledState(int64_t id, int32_t* errCode); 103 FFI_EXPORT int32_t FfiOHOSSetImmersiveModeEnabledState(int64_t id, bool enabled); 104 FFI_EXPORT int32_t FfiOHOSKeepKeyboardOnFocus(int64_t id, bool keepKeyboardFlag); 105 FFI_EXPORT int32_t FfiOHOSGetWindowDecorHeight(int64_t id, int32_t* height); 106 FFI_EXPORT int32_t FfiOHOSSetWindowDecorHeight(int64_t id, int32_t height); 107 FFI_EXPORT int32_t FfiOHOSRecover(int64_t id); 108 FFI_EXPORT int32_t FfiOHOSSetWindowDecorVisible(int64_t id, bool isVisible); 109 FFI_EXPORT int32_t FfiOHOSGetTitleButtonRect(int64_t id, OHOS::Rosen::CTitleButtonRect* retPtr); 110 FFI_EXPORT int32_t FfiOHOSSetDialogBackGestureEnabled(int64_t id, bool enabled); 111 FFI_EXPORT int32_t FfiOHOSDisableLandscapeMultiWindow(int64_t id); 112 FFI_EXPORT int32_t FfiOHOSEnableLandscapeMultiWindow(int64_t id); 113 FFI_EXPORT int32_t FfiOHOSSetWindowGrayScale(int64_t id, float grayScale); 114 FFI_EXPORT int32_t FfiOHOSSpecificSystemBarEnabled(int64_t id, int32_t name, 115 bool enable, 116 bool enableAnimation); 117 FFI_EXPORT int32_t FfiOHOSGetWindowSystemBarProperties(int64_t id, CJBarProperties* systemBarProperty); 118 FFI_EXPORT uint32_t FfiOHOSGetPreferredOrientation(int64_t id, int32_t* errCode); 119 FFI_EXPORT int32_t FfiOHOSGetWindowStatus(int64_t id, int32_t* errCode); 120 FFI_EXPORT int32_t FfiOHOSMaximize(int64_t id, int32_t presentation); 121 FFI_EXPORT RetDataI64 FfiOHOSCreateSubWindowWithOptions(int64_t id, char* name, CSubWindowOptions option); 122 123 124 // WindowStage 125 FFI_EXPORT RetDataI64 FfiOHOSBindWindowStage(int64_t windowStageImplPtr); 126 FFI_EXPORT RetDataI64 FfiOHOSGetMainWindow(int64_t id); 127 FFI_EXPORT RetDataI64 FfiOHOSCreateSubWindow(int64_t id, char* name); 128 FFI_EXPORT RetStruct FfiOHOSGetSubWindow(int64_t id); 129 FFI_EXPORT int32_t FfiOHOSLoadContent(int64_t id, char* path); 130 FFI_EXPORT int32_t FfiOHOSLoadContentByName(int64_t id, char* name); 131 FFI_EXPORT int32_t FfiOHOSDisableWindowDecor(int64_t id); 132 FFI_EXPORT int32_t FfiOHOSSetShowOnLockScreen(int64_t id, bool showOnLockScreen); 133 FFI_EXPORT int32_t FfiOHOSSetDefaultDensityEnabled(int64_t id, bool enabled); 134 FFI_EXPORT int32_t FfiOHOSStageOn(int64_t id, int64_t callbackId); 135 FFI_EXPORT int32_t FfiOHOSStageOff(int64_t id, int64_t callbackId); 136 FFI_EXPORT RetDataI64 FfiOHOSCreateSubWindowWithOptionsStage(int64_t id, const char* name, 137 const char* title, bool decorEnabled, bool isModal); 138 } 139 140 #endif 141