• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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