1e0dac50fSopenharmony_ci/*
2e0dac50fSopenharmony_ci * Copyright (c) 2021 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#ifndef OHOS_WINDOW_MANAGER_INTERFACE_H
17e0dac50fSopenharmony_ci#define OHOS_WINDOW_MANAGER_INTERFACE_H
18e0dac50fSopenharmony_ci
19e0dac50fSopenharmony_ci#include <iremote_broker.h>
20e0dac50fSopenharmony_ci#include <rs_iwindow_animation_finished_callback.h>
21e0dac50fSopenharmony_ci
22e0dac50fSopenharmony_ci#include "common/include/window_session_property.h"
23e0dac50fSopenharmony_ci#include "interfaces/include/ws_common_inner.h"
24e0dac50fSopenharmony_ci#include "pixel_map.h"
25e0dac50fSopenharmony_ci#include "session/container/include/zidl/session_stage_interface.h"
26e0dac50fSopenharmony_ci#include "session/container/include/zidl/window_event_channel_interface.h"
27e0dac50fSopenharmony_ci#include "window_property.h"
28e0dac50fSopenharmony_ci#include "window_transition_info.h"
29e0dac50fSopenharmony_ci#include "mission_snapshot.h"
30e0dac50fSopenharmony_ci#include "zidl/window_interface.h"
31e0dac50fSopenharmony_ci#include "zidl/window_manager_agent_interface.h"
32e0dac50fSopenharmony_ci#include "interfaces/include/ws_common.h"
33e0dac50fSopenharmony_ci
34e0dac50fSopenharmony_cinamespace OHOS {
35e0dac50fSopenharmony_cinamespace Rosen {
36e0dac50fSopenharmony_ciclass RSIWindowAnimationController;
37e0dac50fSopenharmony_ciclass RSSurfaceNode;
38e0dac50fSopenharmony_ci
39e0dac50fSopenharmony_ciclass IWindowManager : public IRemoteBroker {
40e0dac50fSopenharmony_cipublic:
41e0dac50fSopenharmony_ci    DECLARE_INTERFACE_DESCRIPTOR(u"OHOS.IWindowManager");
42e0dac50fSopenharmony_ci
43e0dac50fSopenharmony_ci    enum class WindowManagerMessage : uint32_t {
44e0dac50fSopenharmony_ci        TRANS_ID_CREATE_WINDOW,
45e0dac50fSopenharmony_ci        TRANS_ID_ADD_WINDOW,
46e0dac50fSopenharmony_ci        TRANS_ID_REMOVE_WINDOW,
47e0dac50fSopenharmony_ci        TRANS_ID_DESTROY_WINDOW,
48e0dac50fSopenharmony_ci        TRANS_ID_REQUEST_FOCUS,
49e0dac50fSopenharmony_ci        TRANS_ID_REGISTER_FOCUS_CHANGED_LISTENER,
50e0dac50fSopenharmony_ci        TRANS_ID_UNREGISTER_FOCUS_CHANGED_LISTENER,
51e0dac50fSopenharmony_ci        TRANS_ID_REGISTER_WINDOW_MANAGER_AGENT,
52e0dac50fSopenharmony_ci        TRANS_ID_UNREGISTER_WINDOW_MANAGER_AGENT,
53e0dac50fSopenharmony_ci        TRANS_ID_GET_AVOID_AREA,
54e0dac50fSopenharmony_ci        TRANS_ID_GET_TOP_WINDOW_ID,
55e0dac50fSopenharmony_ci        TRANS_ID_PROCESS_POINT_DOWN,
56e0dac50fSopenharmony_ci        TRANS_ID_PROCESS_POINT_UP,
57e0dac50fSopenharmony_ci        TRANS_ID_MINIMIZE_ALL_APP_WINDOWS,
58e0dac50fSopenharmony_ci        TRANS_ID_TOGGLE_SHOWN_STATE_FOR_ALL_APP_WINDOWS,
59e0dac50fSopenharmony_ci        TRANS_ID_SET_BACKGROUND_BLUR,
60e0dac50fSopenharmony_ci        TRANS_ID_SET_ALPHA,
61e0dac50fSopenharmony_ci        TRANS_ID_UPDATE_LAYOUT_MODE,
62e0dac50fSopenharmony_ci        TRANS_ID_UPDATE_PROPERTY,
63e0dac50fSopenharmony_ci        TRANS_ID_GET_ACCESSIBILITY_WINDOW_INFO_ID,
64e0dac50fSopenharmony_ci        TRANS_ID_GET_VISIBILITY_WINDOW_INFO_ID,
65e0dac50fSopenharmony_ci        TRANS_ID_ANIMATION_SET_CONTROLLER,
66e0dac50fSopenharmony_ci        TRANS_ID_GET_SYSTEM_CONFIG,
67e0dac50fSopenharmony_ci        TRANS_ID_NOTIFY_WINDOW_TRANSITION,
68e0dac50fSopenharmony_ci        TRANS_ID_GET_FULLSCREEN_AND_SPLIT_HOT_ZONE,
69e0dac50fSopenharmony_ci        TRANS_ID_GET_ANIMATION_CALLBACK,
70e0dac50fSopenharmony_ci        TRANS_ID_UPDATE_AVOIDAREA_LISTENER,
71e0dac50fSopenharmony_ci        TRANS_ID_UPDATE_RS_TREE,
72e0dac50fSopenharmony_ci        TRANS_ID_BIND_DIALOG_TARGET,
73e0dac50fSopenharmony_ci        TRANS_ID_NOTIFY_READY_MOVE_OR_DRAG,
74e0dac50fSopenharmony_ci        TRANS_ID_SET_ANCHOR_AND_SCALE,
75e0dac50fSopenharmony_ci        TRANS_ID_SET_ANCHOR_OFFSET,
76e0dac50fSopenharmony_ci        TRANS_ID_OFF_WINDOW_ZOOM,
77e0dac50fSopenharmony_ci        TRANS_ID_RAISE_WINDOW_Z_ORDER,
78e0dac50fSopenharmony_ci        TRANS_ID_GET_SNAPSHOT,
79e0dac50fSopenharmony_ci        TRANS_ID_GESTURE_NAVIGATION_ENABLED,
80e0dac50fSopenharmony_ci        TRANS_ID_SET_WINDOW_GRAVITY,
81e0dac50fSopenharmony_ci        TRANS_ID_DISPATCH_KEY_EVENT,
82e0dac50fSopenharmony_ci        TRANS_ID_NOTIFY_DUMP_INFO_RESULT,
83e0dac50fSopenharmony_ci        TRANS_ID_GET_WINDOW_ANIMATION_TARGETS,
84e0dac50fSopenharmony_ci        TRANS_ID_SET_MAXIMIZE_MODE,
85e0dac50fSopenharmony_ci        TRANS_ID_GET_MAXIMIZE_MODE,
86e0dac50fSopenharmony_ci        TRANS_ID_GET_FOCUS_WINDOW_INFO,
87e0dac50fSopenharmony_ci        TRANS_ID_ADD_EXTENSION_WINDOW_STAGE_TO_SCB,
88e0dac50fSopenharmony_ci        TRANS_ID_UPDATE_MODALEXTENSION_RECT_TO_SCB,
89e0dac50fSopenharmony_ci        TRANS_ID_PROCESS_MODALEXTENSION_POINTDOWN_TO_SCB,
90e0dac50fSopenharmony_ci        TRANS_ID_UPDATE_EXTENSION_WINDOW_FLAGS,
91e0dac50fSopenharmony_ci        TRANS_ID_GET_HOST_WINDOW_RECT,
92e0dac50fSopenharmony_ci        TRANS_ID_GET_UNRELIABLE_WINDOW_INFO_ID,
93e0dac50fSopenharmony_ci        TRANS_ID_GET_FREE_MULTI_WINDOW_ENABLE_STATE,
94e0dac50fSopenharmony_ci    };
95e0dac50fSopenharmony_ci    virtual WMError CreateWindow(sptr<IWindow>& window, sptr<WindowProperty>& property,
96e0dac50fSopenharmony_ci        const std::shared_ptr<RSSurfaceNode>& surfaceNode,
97e0dac50fSopenharmony_ci        uint32_t& windowId, sptr<IRemoteObject> token) = 0;
98e0dac50fSopenharmony_ci    virtual WMError AddWindow(sptr<WindowProperty>& property) = 0;
99e0dac50fSopenharmony_ci    virtual WMError RemoveWindow(uint32_t windowId, bool isFromInnerkits) = 0;
100e0dac50fSopenharmony_ci    virtual WMError DestroyWindow(uint32_t windowId, bool onlySelf = false) = 0;
101e0dac50fSopenharmony_ci    virtual WMError RequestFocus(uint32_t windowId) = 0;
102e0dac50fSopenharmony_ci    virtual AvoidArea GetAvoidAreaByType(uint32_t windowId, AvoidAreaType type) = 0;
103e0dac50fSopenharmony_ci    virtual WMError GetTopWindowId(uint32_t mainWinId, uint32_t& topWinId) = 0;
104e0dac50fSopenharmony_ci    virtual void NotifyServerReadyToMoveOrDrag(uint32_t windowId, sptr<WindowProperty>& windowProperty,
105e0dac50fSopenharmony_ci        sptr<MoveDragProperty>& moveDragProperty) = 0;
106e0dac50fSopenharmony_ci    virtual void ProcessPointDown(uint32_t windowId, bool isPointDown) = 0;
107e0dac50fSopenharmony_ci    virtual void ProcessPointUp(uint32_t windowId) = 0;
108e0dac50fSopenharmony_ci    virtual WMError MinimizeAllAppWindows(DisplayId displayId) = 0;
109e0dac50fSopenharmony_ci    virtual WMError ToggleShownStateForAllAppWindows() = 0;
110e0dac50fSopenharmony_ci    virtual WMError SetWindowLayoutMode(WindowLayoutMode mode) = 0;
111e0dac50fSopenharmony_ci    virtual WMError UpdateProperty(sptr<WindowProperty>& windowProperty, PropertyChangeAction action,
112e0dac50fSopenharmony_ci        bool isAsyncTask = false) = 0;
113e0dac50fSopenharmony_ci    virtual WMError SetWindowGravity(uint32_t windowId, WindowGravity gravity, uint32_t percent) = 0;
114e0dac50fSopenharmony_ci    virtual WMError RegisterWindowManagerAgent(WindowManagerAgentType type,
115e0dac50fSopenharmony_ci        const sptr<IWindowManagerAgent>& windowManagerAgent) = 0;
116e0dac50fSopenharmony_ci    virtual WMError UnregisterWindowManagerAgent(WindowManagerAgentType type,
117e0dac50fSopenharmony_ci        const sptr<IWindowManagerAgent>& windowManagerAgent) = 0;
118e0dac50fSopenharmony_ci    virtual WMError GetAccessibilityWindowInfo(std::vector<sptr<AccessibilityWindowInfo>>& infos) = 0;
119e0dac50fSopenharmony_ci    virtual WMError GetUnreliableWindowInfo(int32_t windowId, std::vector<sptr<UnreliableWindowInfo>>& infos) = 0;
120e0dac50fSopenharmony_ci    virtual WMError GetVisibilityWindowInfo(std::vector<sptr<WindowVisibilityInfo>>& infos) = 0;
121e0dac50fSopenharmony_ci    virtual WMError SetWindowAnimationController(const sptr<RSIWindowAnimationController>& controller) = 0;
122e0dac50fSopenharmony_ci    virtual WMError GetSystemConfig(SystemConfig& systemConfig) = 0;
123e0dac50fSopenharmony_ci    virtual WMError NotifyWindowTransition(sptr<WindowTransitionInfo>& from, sptr<WindowTransitionInfo>& to,
124e0dac50fSopenharmony_ci        bool isFromClient = false) = 0;
125e0dac50fSopenharmony_ci    virtual WMError GetModeChangeHotZones(DisplayId displayId, ModeChangeHotZones& hotZones) = 0;
126e0dac50fSopenharmony_ci    virtual void MinimizeWindowsByLauncher(std::vector<uint32_t> windowIds, bool isAnimated,
127e0dac50fSopenharmony_ci        sptr<RSIWindowAnimationFinishedCallback>& finishCallback) = 0;
128e0dac50fSopenharmony_ci    virtual WMError UpdateAvoidAreaListener(uint32_t windowId, bool haveListener) = 0;
129e0dac50fSopenharmony_ci    virtual WMError UpdateRsTree(uint32_t windowId, bool isAdd) = 0;
130e0dac50fSopenharmony_ci    virtual WMError BindDialogTarget(uint32_t& windowId, sptr<IRemoteObject> targetToken) = 0;
131e0dac50fSopenharmony_ci    virtual void SetAnchorAndScale(int32_t x, int32_t y, float scale) = 0;
132e0dac50fSopenharmony_ci    virtual void SetAnchorOffset(int32_t deltaX, int32_t deltaY) = 0;
133e0dac50fSopenharmony_ci    virtual void OffWindowZoom() = 0;
134e0dac50fSopenharmony_ci    virtual WMError RaiseToAppTop(uint32_t windowId) = 0;
135e0dac50fSopenharmony_ci    virtual std::shared_ptr<Media::PixelMap> GetSnapshot(int32_t windowId) = 0;
136e0dac50fSopenharmony_ci    virtual WMError SetGestureNavigationEnabled(bool enable) = 0;
137e0dac50fSopenharmony_ci    virtual void DispatchKeyEvent(uint32_t windowId, std::shared_ptr<MMI::KeyEvent> event) = 0;
138e0dac50fSopenharmony_ci    virtual void NotifyDumpInfoResult(const std::vector<std::string>& info) {};
139e0dac50fSopenharmony_ci    virtual WSError DumpSessionAll(std::vector<std::string>& infos) { return WSError::WS_OK; }
140e0dac50fSopenharmony_ci    virtual WSError DumpSessionWithId(int32_t persistentId, std::vector<std::string>& infos) { return WSError::WS_OK; }
141e0dac50fSopenharmony_ci    virtual WSError GetUIContentRemoteObj(int32_t persistentId, sptr<IRemoteObject>& uiContentRemoteObj)
142e0dac50fSopenharmony_ci    {
143e0dac50fSopenharmony_ci        return WSError::WS_OK;
144e0dac50fSopenharmony_ci    }
145e0dac50fSopenharmony_ci    virtual WMError GetWindowAnimationTargets(std::vector<uint32_t> missionIds,
146e0dac50fSopenharmony_ci        std::vector<sptr<RSWindowAnimationTarget>>& targets) = 0;
147e0dac50fSopenharmony_ci    virtual void SetMaximizeMode(MaximizeMode maximizeMode) = 0;
148e0dac50fSopenharmony_ci    virtual MaximizeMode GetMaximizeMode() = 0;
149e0dac50fSopenharmony_ci    virtual void GetFocusWindowInfo(FocusChangeInfo& focusInfo) = 0;
150e0dac50fSopenharmony_ci    virtual WMError CheckWindowId(int32_t windowId, int32_t& pid) { return WMError::WM_OK; }
151e0dac50fSopenharmony_ci    virtual WSError UpdateSessionAvoidAreaListener(int32_t& persistentId, bool haveListener) { return WSError::WS_OK; }
152e0dac50fSopenharmony_ci    virtual WSError UpdateSessionTouchOutsideListener(int32_t& persistentId, bool haveListener)
153e0dac50fSopenharmony_ci    {
154e0dac50fSopenharmony_ci        return WSError::WS_OK;
155e0dac50fSopenharmony_ci    }
156e0dac50fSopenharmony_ci    virtual WSError NotifyWindowExtensionVisibilityChange(int32_t pid, int32_t uid, bool visible)
157e0dac50fSopenharmony_ci    {
158e0dac50fSopenharmony_ci        return WSError::WS_OK;
159e0dac50fSopenharmony_ci    }
160e0dac50fSopenharmony_ci    virtual WSError RaiseWindowToTop(int32_t persistentId) { return WSError::WS_OK; }
161e0dac50fSopenharmony_ci    virtual WSError UpdateSessionWindowVisibilityListener(int32_t persistentId, bool haveListener)
162e0dac50fSopenharmony_ci    {
163e0dac50fSopenharmony_ci        return WSError::WS_OK;
164e0dac50fSopenharmony_ci    }
165e0dac50fSopenharmony_ci    virtual WSError ShiftAppWindowFocus(int32_t sourcePersistentId, int32_t targetPersistentId)
166e0dac50fSopenharmony_ci    {
167e0dac50fSopenharmony_ci        return WSError::WS_ERROR_DEVICE_NOT_SUPPORT;
168e0dac50fSopenharmony_ci    }
169e0dac50fSopenharmony_ci    virtual WSError CreateAndConnectSpecificSession(const sptr<ISessionStage>& sessionStage,
170e0dac50fSopenharmony_ci        const sptr<IWindowEventChannel>& eventChannel, const std::shared_ptr<RSSurfaceNode>& surfaceNode,
171e0dac50fSopenharmony_ci        sptr<WindowSessionProperty> property, int32_t& persistentId, sptr<ISession>& session,
172e0dac50fSopenharmony_ci        SystemSessionConfig& systemConfig, sptr<IRemoteObject> token = nullptr) { return WSError::WS_OK; }
173e0dac50fSopenharmony_ci    virtual WSError RecoverAndConnectSpecificSession(const sptr<ISessionStage>& sessionStage,
174e0dac50fSopenharmony_ci        const sptr<IWindowEventChannel>& eventChannel, const std::shared_ptr<RSSurfaceNode>& surfaceNode,
175e0dac50fSopenharmony_ci        sptr<WindowSessionProperty> property, sptr<ISession>& session, sptr<IRemoteObject> token = nullptr)
176e0dac50fSopenharmony_ci    {
177e0dac50fSopenharmony_ci        return WSError::WS_OK;
178e0dac50fSopenharmony_ci    }
179e0dac50fSopenharmony_ci    virtual WSError DestroyAndDisconnectSpecificSession(const int32_t persistentId) { return WSError::WS_OK; }
180e0dac50fSopenharmony_ci    virtual WSError DestroyAndDisconnectSpecificSessionWithDetachCallback(const int32_t persistentId,
181e0dac50fSopenharmony_ci        const sptr<IRemoteObject>& callback) { return WSError::WS_OK; }
182e0dac50fSopenharmony_ci    virtual WSError RecoverAndReconnectSceneSession(const sptr<ISessionStage>& sessionStage,
183e0dac50fSopenharmony_ci        const sptr<IWindowEventChannel>& eventChannel, const std::shared_ptr<RSSurfaceNode>& surfaceNode,
184e0dac50fSopenharmony_ci        sptr<ISession>& session, sptr<WindowSessionProperty> property, sptr<IRemoteObject> token = nullptr)
185e0dac50fSopenharmony_ci    {
186e0dac50fSopenharmony_ci        return WSError::WS_OK;
187e0dac50fSopenharmony_ci    }
188e0dac50fSopenharmony_ci    virtual WSError BindDialogSessionTarget(uint64_t persistentId, sptr<IRemoteObject> targetToken)
189e0dac50fSopenharmony_ci    {
190e0dac50fSopenharmony_ci        return WSError::WS_OK;
191e0dac50fSopenharmony_ci    }
192e0dac50fSopenharmony_ci    virtual WSError SetSessionGravity(int32_t persistentId, SessionGravity gravity, uint32_t percent)
193e0dac50fSopenharmony_ci    {
194e0dac50fSopenharmony_ci        return WSError::WS_OK;
195e0dac50fSopenharmony_ci    }
196e0dac50fSopenharmony_ci    virtual WMError RequestFocusStatus(int32_t persistentId, bool isFocused, bool byForeground = true,
197e0dac50fSopenharmony_ci        FocusChangeReason reason = FocusChangeReason::DEFAULT)
198e0dac50fSopenharmony_ci    {
199e0dac50fSopenharmony_ci        return WMError::WM_OK;
200e0dac50fSopenharmony_ci    }
201e0dac50fSopenharmony_ci    virtual WMError GetSnapshotByWindowId(int32_t persistentId, std::shared_ptr<Media::PixelMap>& pixelMap)
202e0dac50fSopenharmony_ci    {
203e0dac50fSopenharmony_ci        return WMError::WM_OK;
204e0dac50fSopenharmony_ci    }
205e0dac50fSopenharmony_ci    virtual void AddExtensionWindowStageToSCB(const sptr<ISessionStage>& sessionStage,
206e0dac50fSopenharmony_ci        const sptr<IRemoteObject>& token, uint64_t surfaceNodeId) {}
207e0dac50fSopenharmony_ci    virtual void RemoveExtensionWindowStageFromSCB(const sptr<ISessionStage>& sessionStage,
208e0dac50fSopenharmony_ci        const sptr<IRemoteObject>& token) {}
209e0dac50fSopenharmony_ci    virtual void UpdateModalExtensionRect(const sptr<IRemoteObject>& token, Rect rect) {}
210e0dac50fSopenharmony_ci    virtual void ProcessModalExtensionPointDown(const sptr<IRemoteObject>& token, int32_t posX, int32_t posY) {}
211e0dac50fSopenharmony_ci    virtual WSError AddOrRemoveSecureSession(int32_t persistentId, bool shouldHide)
212e0dac50fSopenharmony_ci    {
213e0dac50fSopenharmony_ci        return WSError::WS_OK;
214e0dac50fSopenharmony_ci    }
215e0dac50fSopenharmony_ci    virtual WSError UpdateExtWindowFlags(const sptr<IRemoteObject>& token, uint32_t extWindowFlags,
216e0dac50fSopenharmony_ci        uint32_t extWindowActions)
217e0dac50fSopenharmony_ci    {
218e0dac50fSopenharmony_ci        return WSError::WS_OK;
219e0dac50fSopenharmony_ci    }
220e0dac50fSopenharmony_ci    virtual WSError GetHostWindowRect(int32_t hostWindowId, Rect& rect)
221e0dac50fSopenharmony_ci    {
222e0dac50fSopenharmony_ci        return WSError::WS_OK;
223e0dac50fSopenharmony_ci    }
224e0dac50fSopenharmony_ci    virtual WSError GetFreeMultiWindowEnableState(bool& enable)
225e0dac50fSopenharmony_ci    {
226e0dac50fSopenharmony_ci        return WSError::WS_OK;
227e0dac50fSopenharmony_ci    }
228e0dac50fSopenharmony_ci    virtual WMError GetCallingWindowWindowStatus(int32_t persistentId, WindowStatus& windowStatus)
229e0dac50fSopenharmony_ci    {
230e0dac50fSopenharmony_ci        return WMError::WM_OK;
231e0dac50fSopenharmony_ci    }
232e0dac50fSopenharmony_ci    virtual WMError GetCallingWindowRect(int32_t persistentId, Rect& rect)
233e0dac50fSopenharmony_ci    {
234e0dac50fSopenharmony_ci        return WMError::WM_OK;
235e0dac50fSopenharmony_ci    }
236e0dac50fSopenharmony_ci    virtual WMError GetWindowModeType(WindowModeType& windowModeType)
237e0dac50fSopenharmony_ci    {
238e0dac50fSopenharmony_ci        return WMError::WM_OK;
239e0dac50fSopenharmony_ci    };
240e0dac50fSopenharmony_ci    virtual WMError GetWindowStyleType(WindowStyleType& windowStyleType)
241e0dac50fSopenharmony_ci    {
242e0dac50fSopenharmony_ci        return WMError::WM_OK;
243e0dac50fSopenharmony_ci    };
244e0dac50fSopenharmony_ci    virtual WMError SkipSnapshotForAppProcess(int32_t pid, bool skip) { return WMError::WM_OK; }
245e0dac50fSopenharmony_ci    virtual WMError SetProcessWatermark(int32_t pid, const std::string& watermarkName,
246e0dac50fSopenharmony_ci        bool isEnabled) { return WMError::WM_OK; }
247e0dac50fSopenharmony_ci    virtual WMError GetWindowIdsByCoordinate(DisplayId displayId, int32_t windowNumber,
248e0dac50fSopenharmony_ci        int32_t x, int32_t y, std::vector<int32_t>& windowIds) { return WMError::WM_ERROR_DEVICE_NOT_SUPPORT; }
249e0dac50fSopenharmony_ci    virtual WMError GetParentMainWindowId(int32_t windowId, int32_t& mainWindowId) { return WMError::WM_OK; }
250e0dac50fSopenharmony_ci    virtual WMError ReleaseForegroundSessionScreenLock() { return WMError::WM_OK; }
251e0dac50fSopenharmony_ci    virtual WMError GetDisplayIdByPersistentId(int32_t persistentId, int32_t& displayId)
252e0dac50fSopenharmony_ci    {
253e0dac50fSopenharmony_ci        return WMError::WM_OK;
254e0dac50fSopenharmony_ci    }
255e0dac50fSopenharmony_ci    virtual WMError IsPcOrPadFreeMultiWindowMode(bool& isPcOrPadFreeMultiWindowMode) { return WMError::WM_OK; }
256e0dac50fSopenharmony_ci};
257e0dac50fSopenharmony_ci}
258e0dac50fSopenharmony_ci}
259e0dac50fSopenharmony_ci#endif // OHOS_WINDOW_MANAGER_INTERFACE_H
260