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 #ifndef WINDOW_FFI_H
16 #define WINDOW_FFI_H
17 
18 #include "cj_ffi/cj_common_ffi.h"
19 #include "singleton_container.h"
20 #include "window_impl.h"
21 #include "window_manager.h"
22 #include "window_manager_impl.h"
23 #include "window_stage_impl.h"
24 
25 extern "C" {
26     // window maneger
27     FFI_EXPORT RetDataI64 FfiOHOSCreateWindow(char* name, uint32_t windowType, OHOS::AbilityRuntime::Context* context,
28         int64_t displayId, int64_t parentId);
29     FFI_EXPORT int32_t FfiOHOSWindowSetWindowLayoutMode(uint32_t mode);
30     FFI_EXPORT int32_t FfiOHOSWindowMinimizeAll(int64_t displayId);
31     FFI_EXPORT RetDataI64 FfiOHOSGetLastWindow(OHOS::AbilityRuntime::Context* ctx);
32 
33     // window
34     FFI_EXPORT int32_t FfiOHOSWindowHide(int64_t id);
35     FFI_EXPORT int32_t FfiOHOSWindowHideWithAnimation(int64_t id);
36     FFI_EXPORT int32_t FfiOHOSWindowShowWindow(int64_t id);
37     FFI_EXPORT int32_t FfiOHOSWindowShowWithAnimation(int64_t id);
38     FFI_EXPORT int32_t FfiOHOSWindowDestroyWindow(int64_t id);
39     FFI_EXPORT int32_t FfiOHOSWindowMoveWindowTo(int64_t id, int32_t x, int32_t y);
40     FFI_EXPORT int32_t FfiOHOSWindowResize(int64_t id, uint32_t width, uint32_t height);
41     FFI_EXPORT int32_t FfiOHOSWindowSetWindowMode(int64_t id, uint32_t mode);
42     FFI_EXPORT CWindowProperties FfiOHOSWindowGetWindowProperties(int64_t id, int32_t* errCode);
43     FFI_EXPORT int32_t FfiOHOSWindowSetWindowLayoutFullScreen(int64_t id, bool isLayoutFullScreen);
44     FFI_EXPORT int32_t FfiOHOSSetWindowBackgroundColor(int64_t id, const char* color);
45     FFI_EXPORT int32_t FfiOHOSWindowSetWindowBrightness(int64_t id, float brightness);
46     FFI_EXPORT int32_t FfiOHOSWindowSetWindowFocusable(int64_t id, bool focusable);
47     FFI_EXPORT int32_t FfiOHOSWindowSetWindowKeepScreenOn(int64_t id, bool keepScreenOn);
48     FFI_EXPORT int32_t FfiOHOSWindowSetWindowPrivacyMode(int64_t id, bool isPrivacyMode);
49     FFI_EXPORT int32_t FfiOHOSWindowSetWindowTouchable(int64_t id, bool touchable);
50     FFI_EXPORT int32_t FfiOHOSWindowSetForbidSplitMove(int64_t id, bool isForbidSplitMove);
51     FFI_EXPORT bool FfiOHOSWindowIsWindowSupportWideGamut(int64_t id, int32_t* errCode);
52     FFI_EXPORT bool FfiOHOSWindowIsWindowShowing(int64_t id, int32_t* errCode);
53     FFI_EXPORT RetDataI64 FFiOHOSWindowFindWindow(char* name);
54     FFI_EXPORT int32_t FFiOHOSWindowToggleShownStateForAllAppWindows();
55     FFI_EXPORT int32_t FFiOHOSWindowSetGestureNavigationEnabled(bool enable);
56     FFI_EXPORT int32_t FFiOHOSWindowSetWaterMarkImage(int64_t pixelMapId, bool enable);
57     FFI_EXPORT int32_t FFiOHOSWindowSetBackdropBlurStyle(int64_t id, uint32_t blurStyle);
58     FFI_EXPORT int32_t FFiOHOSWindowSetPreferredOrientation(int64_t id, uint32_t orientation);
59     FFI_EXPORT int32_t FFiOHOSWindowGetWindowAvoidArea(int64_t id, uint32_t areaType, OHOS::Rosen::CAvoidArea* retPtr);
60     FFI_EXPORT int32_t FFiOHOSWindowSetShadowRadius(int64_t id, double radius);
61     FFI_EXPORT int32_t FFiOHOSWindowSetShadowColor(int64_t id, char* color);
62     FFI_EXPORT int32_t FFiOHOSWindowSetShadowOffsetX(int64_t id, double offsetX);
63     FFI_EXPORT int32_t FFiOHOSWindowSetShadowOffsetY(int64_t id, double offsetY);
64     FFI_EXPORT int32_t FFiOHOSWindowSetBackdropBlur(int64_t id, double radius);
65     FFI_EXPORT int32_t FFiOHOSWindowSetBlur(int64_t id, double radius);
66     FFI_EXPORT int32_t FFiOHOSWindowSetWaterMarkFlag(int64_t id, bool enable);
67     FFI_EXPORT int32_t FFiOHOSWindowSetAspectRatio(int64_t id, double ratio);
68     FFI_EXPORT int32_t FFiOHOSWindowResetAspectRatio(int64_t id);
69     FFI_EXPORT int32_t FFiOHOSWindowMinimize(int64_t id);
70     FFI_EXPORT int32_t FFiOHOSWindowSetWindowColorSpace(int64_t id, uint32_t colorSpace);
71     FFI_EXPORT int32_t FFiOHOSWindowSetCornerRadius(int64_t id, float radius);
72     FFI_EXPORT int32_t FFiOHOSWindowSetResizeByDragEnabled(int64_t id, bool enable);
73     FFI_EXPORT int32_t FFiOHOSWindowRaiseToAppTop(int64_t id);
74     FFI_EXPORT int32_t FFiOHOSWindowSetSnapshotSkip(int64_t id, bool isSkip);
75     FFI_EXPORT int32_t FFiOHOSWindowSetWakeUpScreen(int64_t id, bool wakeUp);
76     FFI_EXPORT int32_t FFiOHOSWindowSetRaiseByClickEnabled(int64_t id, bool enable);
77     FFI_EXPORT int32_t FFiOHOSWindowGetWindowColorSpace(int64_t id, int32_t* errCode);
78     FFI_EXPORT int32_t FFiOHOSWindowRaiseAboveTarget(int64_t id, int32_t windowId);
79     FFI_EXPORT int32_t FFiOHOSWindowTranslate(int64_t id, double x, double y, double z);
80     FFI_EXPORT int32_t FFiOHOSWindowRotate(int64_t id, WindowRotate window);
81     FFI_EXPORT int32_t FFiOHOSWindowScale(int64_t id, double x, double y, double pivotX, double pivotY);
82     FFI_EXPORT int32_t FFiOHOSWindowOpacity(int64_t id, double opacity);
83     FFI_EXPORT int64_t FFiOHOSWindowSnapshot(int64_t id, int32_t* errCode);
84     FFI_EXPORT int32_t FFiOHOSWindowSetWindowSystemBarEnable(int64_t id, CArrString arr);
85     FFI_EXPORT int32_t FFiOHOSWindowSetWindowSystemBarProperties(int64_t id, CJBarProperties properties);
86     FFI_EXPORT int32_t FFiOHOSMinimize(int64_t id);
87     FFI_EXPORT int32_t FFiOHOSSetWindowColorSpace(int64_t id, uint32_t colorSpace);
88     FFI_EXPORT int32_t FfiOHOSOnKeyboardHeightChange(int64_t id, int64_t callbackId);
89     FFI_EXPORT int32_t FfiOHOSOffKeyboardHeightChange(int64_t id);
90 
91     // WindowStage
92     FFI_EXPORT RetDataI64 FfiOHOSBindWindowStage(int64_t windowStageImplPtr);
93     FFI_EXPORT RetDataI64 FfiOHOSGetMainWindow(int64_t id);
94     FFI_EXPORT RetDataI64 FfiOHOSCreateSubWindow(int64_t id, char* name);
95     FFI_EXPORT RetStruct FfiOHOSGetSubWindow(int64_t id);
96     FFI_EXPORT int32_t FfiOHOSLoadContent(int64_t id, char* path);
97     FFI_EXPORT int32_t FfiOHOSLoadContentByName(int64_t id, char* name);
98     FFI_EXPORT int32_t FfiOHOSDisableWindowDecor(int64_t id);
99     FFI_EXPORT int32_t FfiOHOSSetShowOnLockScreen(int64_t id, bool showOnLockScreen);
100 }
101 
102 #endif
103