• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 FOUNDATION_ACE_INTERFACE_INNERKITS_ACE_UI_CONTENT_H
17 #define FOUNDATION_ACE_INTERFACE_INNERKITS_ACE_UI_CONTENT_H
18 
19 #include <functional>
20 #include <map>
21 #include <memory>
22 #include <refbase.h>
23 #include <string>
24 #include <vector>
25 #include <list>
26 
27 #include "arkui_rect.h"
28 #include "macros.h"
29 #include "modal_ui_extension_config.h"
30 #include "popup_ui_extension_config.h"
31 #include "serialized_gesture.h"
32 #include "serializeable_object.h"
33 #include "viewport_config.h"
34 #include "constants.h"
35 namespace OHOS {
36 
37 namespace AbilityRuntime {
38 class Context;
39 } // namespace AbilityRuntime
40 
41 namespace AppExecFwk {
42 class Configuration;
43 class Ability;
44 class FormAshmem;
45 } // namespace AppExecFwk
46 
47 namespace Accessibility {
48 class AccessibilityElementInfo;
49 }
50 namespace Rosen {
51 class Window;
52 struct Rect;
53 enum class WindowSizeChangeReason : uint32_t;
54 enum class WindowMode : uint32_t;
55 enum class MaximizeMode : uint32_t;
56 class RSNode;
57 class RSCanvasNode;
58 class RSSurfaceNode;
59 class RSTransaction;
60 class Transform;
61 enum class AvoidAreaType : uint32_t;
62 class AvoidArea;
63 struct DecorButtonStyle;
64 struct SingleHandTransform;
65 } // namespace Rosen
66 
67 namespace AAFwk {
68 class Want;
69 } // namespace AAFwk
70 
71 namespace MMI {
72 class PointerEvent;
73 class KeyEvent;
74 class AxisEvent;
75 } // namespace MMI
76 
77 namespace Media {
78 class PixelMap;
79 } // namespace Media
80 
81 namespace AbilityBase {
82 struct ViewData;
83 enum class AutoFillType;
84 } // namespace AbilityBase
85 
86 namespace Global {
87 namespace Resource {
88 class ResourceManager;
89 }
90 } // namespace Global
91 
92 class RefBase;
93 class Parcelable;
94 class IRemoteObject;
95 
96 } // namespace OHOS
97 
98 namespace OHOS::Ace {
99 struct AccessibilityParentRectInfo;
100 } // namespace OHOS::Ace
101 
102 class NativeEngine;
103 typedef struct napi_value__* napi_value;
104 
105 namespace OHOS::Ace {
106 class ACE_FORCE_EXPORT UIContent {
107 public:
108     static std::unique_ptr<UIContent> Create(
109         OHOS::AbilityRuntime::Context* context, NativeEngine* runtime, bool isFormRender);
110     static std::unique_ptr<UIContent> Create(OHOS::AbilityRuntime::Context* context, NativeEngine* runtime);
111     static std::unique_ptr<UIContent> Create(OHOS::AppExecFwk::Ability* ability);
112     static void ShowDumpHelp(std::vector<std::string>& info);
113     static UIContent* GetUIContent(int32_t instanceId);
114     static std::string GetCurrentUIStackInfo();
115 
116     virtual ~UIContent() = default;
117 
118     // UI content life-cycles
119     virtual UIContentErrorCode Initialize(OHOS::Rosen::Window* window, const std::string& url, napi_value storage) = 0;
120     virtual UIContentErrorCode Initialize(
121         OHOS::Rosen::Window* window, const std::shared_ptr<std::vector<uint8_t>>& content, napi_value storage) = 0;
Initialize(OHOS::Rosen::Window * window,const std::shared_ptr<std::vector<uint8_t>> & content,napi_value storage,const std::string & contentName)122     virtual UIContentErrorCode Initialize(OHOS::Rosen::Window* window,
123         const std::shared_ptr<std::vector<uint8_t>>& content, napi_value storage, const std::string& contentName)
124     {
125         return UIContentErrorCode::NO_ERRORS;
126     }
127     virtual UIContentErrorCode InitializeByName(OHOS::Rosen::Window *window, const std::string &name,
128                                                 napi_value storage) = 0;
InitializeByName(OHOS::Rosen::Window * window,const std::string & name,napi_value storage,uint32_t focusWindowId)129     virtual void InitializeByName(OHOS::Rosen::Window *window,
130         const std::string &name, napi_value storage, uint32_t focusWindowId) {};
InitializeDynamic(int32_t hostInstanceId,const std::string & hapPath,const std::string & abcPath,const std::string & entryPoint,const std::vector<std::string> & registerComponents)131     virtual void InitializeDynamic(int32_t hostInstanceId, const std::string& hapPath, const std::string& abcPath,
132         const std::string& entryPoint, const std::vector<std::string>& registerComponents) {};
133 
134     // UIExtensionAbility initialize for focusWindow ID
135     virtual void Initialize(
136         OHOS::Rosen::Window* window, const std::string& url, napi_value storage, uint32_t focusWindowID) = 0;
137     virtual void Foreground() = 0;
138     virtual void Background() = 0;
139     virtual void Focus() = 0;
140     virtual void UnFocus() = 0;
141     virtual void Destroy() = 0;
142     virtual void OnNewWant(const OHOS::AAFwk::Want& want) = 0;
143 
144     // restore
145     virtual UIContentErrorCode Restore(
146         OHOS::Rosen::Window* window, const std::string& contentInfo, napi_value storage,
147         ContentInfoType type = ContentInfoType::CONTINUATION) = 0;
148     virtual std::string GetContentInfo(ContentInfoType type = ContentInfoType::CONTINUATION) const = 0;
149     virtual void DestroyUIDirector() = 0;
150 
151     // UI content event process
152     virtual bool ProcessBackPressed() = 0;
153     virtual bool ProcessPointerEvent(const std::shared_ptr<OHOS::MMI::PointerEvent>& pointerEvent) = 0;
154     virtual bool ProcessKeyEvent(const std::shared_ptr<OHOS::MMI::KeyEvent>& keyEvent, bool isPreIme = false) = 0;
155     virtual bool ProcessAxisEvent(const std::shared_ptr<OHOS::MMI::AxisEvent>& axisEvent) = 0;
156     virtual bool ProcessVsyncEvent(uint64_t timeStampNanos) = 0;
157     virtual void SetIsFocusActive(bool isFocusActive) = 0;
158     virtual void UpdateConfiguration(const std::shared_ptr<OHOS::AppExecFwk::Configuration>& config) = 0;
159     virtual void UpdateConfiguration(const std::shared_ptr<OHOS::AppExecFwk::Configuration>& config,
160         const std::shared_ptr<Global::Resource::ResourceManager>& resourceManager) = 0;
161     virtual void UpdateViewportConfig(const ViewportConfig& config, OHOS::Rosen::WindowSizeChangeReason reason,
162         const std::shared_ptr<OHOS::Rosen::RSTransaction>& rsTransaction = nullptr,
163         const std::map<OHOS::Rosen::AvoidAreaType, OHOS::Rosen::AvoidArea>& avoidAreas = {}) {};
164     virtual void UpdateWindowMode(OHOS::Rosen::WindowMode mode, bool hasDeco = true) = 0;
NotifyWindowMode(OHOS::Rosen::WindowMode mode)165     virtual void NotifyWindowMode(OHOS::Rosen::WindowMode mode) {};
166     virtual void HideWindowTitleButton(bool hideSplit, bool hideMaximize, bool hideMinimize, bool hideClose) = 0;
167     virtual void SetIgnoreViewSafeArea(bool ignoreViewSafeArea) = 0;
UpdateMaximizeMode(OHOS::Rosen::MaximizeMode mode)168     virtual void UpdateMaximizeMode(OHOS::Rosen::MaximizeMode mode) {};
ProcessFormVisibleChange(bool isVisible)169     virtual void ProcessFormVisibleChange(bool isVisible) {};
NotifyRotationAnimationEnd()170     virtual void NotifyRotationAnimationEnd() {};
171 
172     // only vaild in ContainerModalPatternEnhance
173     virtual void UpdateTitleInTargetPos(bool isShow, int32_t height) = 0;
174 
175     // Window color
176     virtual uint32_t GetBackgroundColor() = 0;
177     virtual void SetBackgroundColor(uint32_t color) = 0;
SetUIContentType(UIContentType uIContentType)178     virtual void SetUIContentType(UIContentType uIContentType) {};
179     virtual void SetWindowContainerColor(uint32_t activeColor, uint32_t inactiveColor) = 0;
180 
181     // Judge whether window need soft keyboard or not
NeedSoftKeyboard()182     virtual bool NeedSoftKeyboard()
183     {
184         return false;
185     }
186 
ChangeSensitiveNodes(bool isSensitive)187     virtual void ChangeSensitiveNodes(bool isSensitive) {}
188 
SetOnWindowFocused(const std::function<void ()> & callback)189     virtual void SetOnWindowFocused(const std::function<void()>& callback) {};
190 
191     virtual void DumpInfo(const std::vector<std::string>& params, std::vector<std::string>& info) = 0;
192 
193     // Set UIContent callback for custom window animation
194     virtual void SetNextFrameLayoutCallback(std::function<void()>&& callback) = 0;
195 
196     // Receive memory level notification
197     virtual void NotifyMemoryLevel(int32_t level) = 0;
198 
199     virtual void SetAppWindowTitle(const std::string& title) = 0;
200     virtual void SetAppWindowIcon(const std::shared_ptr<Media::PixelMap>& pixelMap) = 0;
201 
202     // ArkTS Form
203     virtual void PreInitializeForm(OHOS::Rosen::Window* window, const std::string& url, napi_value storage) = 0;
204     virtual void RunFormPage() = 0;
205     virtual std::shared_ptr<Rosen::RSSurfaceNode> GetFormRootNode() = 0;
206 
207     virtual void UpdateFormData(const std::string& data) = 0;
UpdateFormSharedImage(const std::map<std::string,sptr<OHOS::AppExecFwk::FormAshmem>> & imageDataMap)208     virtual void UpdateFormSharedImage(const std::map<std::string, sptr<OHOS::AppExecFwk::FormAshmem>>& imageDataMap) {}
209 
210     virtual void SetFormWidth(const float width) = 0;
211     virtual void SetFormHeight(const float height) = 0;
212     virtual float GetFormWidth() = 0;
213     virtual float GetFormHeight() = 0;
ReloadForm(const std::string & url)214     virtual void ReloadForm(const std::string& url) {};
215     virtual void OnFormSurfaceChange(float width, float height,
216         OHOS::Rosen::WindowSizeChangeReason type = static_cast<OHOS::Rosen::WindowSizeChangeReason>(0),
217         const std::shared_ptr<Rosen::RSTransaction>& rsTransaction = nullptr) {}
218 
SetFormBackgroundColor(const std::string & color)219     virtual void SetFormBackgroundColor(const std::string& color) {};
SetFontScaleFollowSystem(const bool fontScaleFollowSystem)220     virtual void SetFontScaleFollowSystem(const bool fontScaleFollowSystem) {};
SetFormRenderingMode(int8_t renderMode)221     virtual void SetFormRenderingMode(int8_t renderMode) {};
SetFormEnableBlurBackground(bool enableBlurBackground)222     virtual void SetFormEnableBlurBackground(bool enableBlurBackground) {};
223 
SetActionEventHandler(std::function<void (const std::string &)> && actionCallback)224     virtual void SetActionEventHandler(std::function<void(const std::string&)>&& actionCallback) {};
SetErrorEventHandler(std::function<void (const std::string &,const std::string &)> && errorCallback)225     virtual void SetErrorEventHandler(std::function<void(const std::string&, const std::string&)>&& errorCallback) {};
SetFormLinkInfoUpdateHandler(std::function<void (const std::vector<std::string> &)> && callback)226     virtual void SetFormLinkInfoUpdateHandler(std::function<void(const std::vector<std::string>&)>&& callback) {};
RegisterAccessibilityChildTree(uint32_t parentWindowId,int32_t parentTreeId,int64_t parentElementId)227     virtual void RegisterAccessibilityChildTree(
228         uint32_t parentWindowId, int32_t parentTreeId, int64_t parentElementId) {};
SetAccessibilityGetParentRectHandler(std::function<void (int32_t &,int32_t &)> && callback)229     virtual void SetAccessibilityGetParentRectHandler(std::function<void(int32_t&, int32_t&)>&& callback) {};
SetAccessibilityGetParentRectHandler(std::function<void (AccessibilityParentRectInfo &)> && callback)230     virtual void SetAccessibilityGetParentRectHandler(std::function<void(AccessibilityParentRectInfo&)>&& callback) {};
DeregisterAccessibilityChildTree()231     virtual void DeregisterAccessibilityChildTree() {};
AccessibilityDumpChildInfo(const std::vector<std::string> & params,std::vector<std::string> & info)232     virtual void AccessibilityDumpChildInfo(const std::vector<std::string>& params, std::vector<std::string>& info) {};
233 
234     // for distribute UI source
DumpUITree()235     virtual SerializeableObjectArray DumpUITree()
236     {
237         return SerializeableObjectArray();
238     };
SubscribeUpdate(const std::function<void (int32_t,SerializeableObjectArray &)> & onUpdate)239     virtual void SubscribeUpdate(const std::function<void(int32_t, SerializeableObjectArray&)>& onUpdate) {}
UnSubscribeUpdate()240     virtual void UnSubscribeUpdate() {}
ProcessSerializeableInputEvent(const SerializeableObjectArray & array)241     virtual void ProcessSerializeableInputEvent(const SerializeableObjectArray& array) {}
242     // for distribute UI sink
RestoreUITree(const SerializeableObjectArray & array)243     virtual void RestoreUITree(const SerializeableObjectArray& array) {}
UpdateUITree(const SerializeableObjectArray & array)244     virtual void UpdateUITree(const SerializeableObjectArray& array) {}
SubscribeInputEventProcess(const std::function<void (SerializeableObjectArray &)> & onEvent)245     virtual void SubscribeInputEventProcess(const std::function<void(SerializeableObjectArray&)>& onEvent) {}
UnSubscribeInputEventProcess()246     virtual void UnSubscribeInputEventProcess() {}
247 
GetResourcePaths(std::vector<std::string> & resourcesPaths,std::string & assetRootPath,std::vector<std::string> & assetBasePaths,std::string & resFolderName)248     virtual void GetResourcePaths(std::vector<std::string>& resourcesPaths, std::string& assetRootPath,
249         std::vector<std::string>& assetBasePaths, std::string& resFolderName) {};
SetResourcePaths(const std::vector<std::string> & resourcesPaths,const std::string & assetRootPath,const std::vector<std::string> & assetBasePaths)250     virtual void SetResourcePaths(const std::vector<std::string>& resourcesPaths, const std::string& assetRootPath,
251         const std::vector<std::string>& assetBasePaths) {};
252 
UpdateResource()253     virtual void UpdateResource() {}
254 
GetUINapiContext()255     virtual napi_value GetUINapiContext()
256     {
257         napi_value result = nullptr;
258         return result;
259     }
260 
261     /**
262      * @description: Create a full-window modal UIExtensionComponent.
263      * @param want Indicates the want of UIExtensionAbility.
264      * @param callbacks Indicates the UIExtensionComponent callbacks.
265      * @param config Indicates the Modal page configs.
266      * @return The return value is the ID of the session held by the UIExtensionComponent
267      * if creation is not successful, it returns 0 by default.
268      */
269     virtual int32_t CreateModalUIExtension(
270         const AAFwk::Want& want, const ModalUIExtensionCallbacks& callbacks, const ModalUIExtensionConfig& config) = 0;
271 
272     /**
273      * @description: Close the full-window modal.
274      * @param sessionId Indicates the sessionId of UIExtensionAbility.
275      * If the sessionId is 0, refuse to close
276      */
277     virtual void CloseModalUIExtension(int32_t sessionId) = 0;
278 
UpdateModalUIExtensionConfig(int32_t sessionId,const ModalUIExtensionAllowedUpdateConfig & config)279     virtual void UpdateModalUIExtensionConfig(
280         int32_t sessionId, const ModalUIExtensionAllowedUpdateConfig& config) {};
281 
282     /**
283      * @description: Set parent ability token.
284      * @param token ability token.
285      */
286     virtual void SetParentToken(sptr<IRemoteObject> token);
287 
288     /**
289      * @description: Get parent ability token.
290      * @return return parent ability token.
291      */
292     virtual sptr<IRemoteObject> GetParentToken();
293 
DumpViewData(AbilityBase::ViewData & viewData,AbilityBase::AutoFillType & type)294     virtual bool DumpViewData(AbilityBase::ViewData& viewData, AbilityBase::AutoFillType& type)
295     {
296         return false;
297     }
298 
CheckNeedAutoSave()299     virtual bool CheckNeedAutoSave()
300     {
301         return false;
302     }
303 
GetInstanceId()304     virtual int32_t GetInstanceId()
305     {
306         return -1;
307     }
308 
309     /**
310      * @description: Recycle form.
311      * @return return Json string of status data of ArkTS form.
312      */
RecycleForm()313     virtual std::string RecycleForm()
314     {
315         return "";
316     }
317 
318     /**
319      * @description: Recover form.
320      * @param statusData Indicates json string of status data of ArkTS form.
321      */
RecoverForm(const std::string & statusData)322     virtual void RecoverForm(const std::string &statusData) {}
323 
SetContainerModalTitleVisible(bool customTitleSettedShow,bool floatingTitleSettedShow)324     virtual void SetContainerModalTitleVisible(bool customTitleSettedShow, bool floatingTitleSettedShow) {}
325 
GetContainerModalTitleVisible(bool isImmersive)326     virtual bool GetContainerModalTitleVisible(bool isImmersive) { return false; }
327 
SetContainerModalTitleHeight(int height)328     virtual void SetContainerModalTitleHeight(int height) {}
329 
GetContainerModalTitleHeight()330     virtual int32_t GetContainerModalTitleHeight()
331     {
332         return -1;
333     }
334 
GetContainerModalButtonsRect(Rosen::Rect & containerModal,Rosen::Rect & buttons)335     virtual bool GetContainerModalButtonsRect(Rosen::Rect& containerModal, Rosen::Rect& buttons)
336     {
337         return false;
338     }
339 
SubscribeContainerModalButtonsRectChange(std::function<void (Rosen::Rect & containerModal,Rosen::Rect & buttons)> && callback)340     virtual void SubscribeContainerModalButtonsRectChange(
341         std::function<void(Rosen::Rect& containerModal, Rosen::Rect& buttons)>&& callback) {}
342 
SetUIExtensionSubWindow(bool isUIExtensionSubWindow)343     virtual void SetUIExtensionSubWindow(bool isUIExtensionSubWindow) {}
344 
IsUIExtensionSubWindow()345     virtual bool IsUIExtensionSubWindow()
346     {
347         return false;
348     }
349 
SetUIExtensionAbilityProcess(bool isUIExtensionAbilityProcess)350     virtual void SetUIExtensionAbilityProcess(bool isUIExtensionAbilityProcess) {}
351 
IsUIExtensionAbilityProcess()352     virtual bool IsUIExtensionAbilityProcess()
353     {
354         return false;
355     }
356 
SetUIExtensionAbilityHost(bool isUIExtensionAbilityHost)357     virtual void SetUIExtensionAbilityHost(bool isUIExtensionAbilityHost) {}
358 
IsUIExtensionAbilityHost()359     virtual bool IsUIExtensionAbilityHost()
360     {
361         return false;
362     }
363 
364 #ifndef PREVIEW
SearchElementInfoByAccessibilityId(int64_t elementId,int32_t mode,int64_t baseParent,std::list<Accessibility::AccessibilityElementInfo> & output)365     virtual void SearchElementInfoByAccessibilityId(
366         int64_t elementId, int32_t mode,
367         int64_t baseParent, std::list<Accessibility::AccessibilityElementInfo>& output) {};
368 
SearchElementInfosByText(int64_t elementId,const std::string & text,int64_t baseParent,std::list<Accessibility::AccessibilityElementInfo> & output)369     virtual void SearchElementInfosByText(
370         int64_t elementId, const std::string& text, int64_t baseParent,
371         std::list<Accessibility::AccessibilityElementInfo>& output) {};
372 
FindFocusedElementInfo(int64_t elementId,int32_t focusType,int64_t baseParent,Accessibility::AccessibilityElementInfo & output)373     virtual void FindFocusedElementInfo(
374         int64_t elementId, int32_t focusType,
375         int64_t baseParent, Accessibility::AccessibilityElementInfo& output) {};
376 
FocusMoveSearch(int64_t elementId,int32_t direction,int64_t baseParent,Accessibility::AccessibilityElementInfo & output)377     virtual void FocusMoveSearch(
378         int64_t elementId, int32_t direction,
379         int64_t baseParent, Accessibility::AccessibilityElementInfo& output) {};
380 
NotifyExecuteAction(int64_t elementId,const std::map<std::string,std::string> & actionArguments,int32_t action,int64_t offset)381     virtual bool NotifyExecuteAction(int64_t elementId, const std::map<std::string, std::string>& actionArguments,
382         int32_t action, int64_t offset)
383     {
384         return false;
385     }
386 
HandleAccessibilityHoverEvent(float pointX,float pointY,int32_t sourceType,int32_t eventType,int64_t timeMs)387     virtual void HandleAccessibilityHoverEvent(float pointX, float pointY, int32_t sourceType,
388         int32_t eventType, int64_t timeMs) {}
389 #endif
390 
391     /**
392      * @description: Set UIContent callback after layout finish.
393      * @param callback callback func.
394      */
SetFrameLayoutFinishCallback(std::function<void ()> && callback)395     virtual void SetFrameLayoutFinishCallback(std::function<void()>&& callback) {};
396 
397     // Current paintSize of window
GetAppPaintSize(OHOS::Rosen::Rect & paintrect)398     virtual void GetAppPaintSize(OHOS::Rosen::Rect& paintrect) {};
399 
400     // Get paintSize of window by calculating
GetWindowPaintSize(OHOS::Rosen::Rect & paintrect)401     virtual void GetWindowPaintSize(OHOS::Rosen::Rect& paintrect) {};
402 
403     /**
404      * @description: Create a custom popup with UIExtensionComponent.
405      * @param want Indicates the want of UIExtensionAbility.
406      * @param callbacks Indicates the UIExtensionComponent callbacks.
407      * @param config Indicates the custom popup configs.
408      * @return The return value is the ID of the UI node which bind the pupop
409      * if creation is not successful, it returns 0 by default.
410      */
CreateCustomPopupUIExtension(const AAFwk::Want & want,const ModalUIExtensionCallbacks & callbacks,const CustomPopupUIExtensionConfig & config)411     virtual int32_t CreateCustomPopupUIExtension(
412         const AAFwk::Want& want, const ModalUIExtensionCallbacks& callbacks, const CustomPopupUIExtensionConfig& config)
413     {
414         return 0;
415     }
416 
417     /**
418      * @description: Destroy the custom popup.
419      * @param config Indicates the ID of the UI node which bind the pupop
420      */
DestroyCustomPopupUIExtension(int32_t nodeId)421     virtual void DestroyCustomPopupUIExtension(int32_t nodeId) {}
422 
423     /**
424      * @description: Update the custom popup.
425      * @param config Indicates the custom popup configs.
426       */
UpdateCustomPopupUIExtension(const CustomPopupUIExtensionConfig & config)427     virtual void UpdateCustomPopupUIExtension(const CustomPopupUIExtensionConfig& config) {}
428 
GetFormSerializedGesture()429     virtual SerializedGesture GetFormSerializedGesture()
430     {
431         return SerializedGesture();
432     }
433 
ProcessPointerEventWithCallback(const std::shared_ptr<OHOS::MMI::PointerEvent> & pointerEvent,const std::function<void ()> & callback)434     virtual bool ProcessPointerEventWithCallback(
435         const std::shared_ptr<OHOS::MMI::PointerEvent>& pointerEvent, const std::function<void()>& callback)
436     {
437         return true;
438     };
439 
UpdateTransform(const OHOS::Rosen::Transform & transform)440     virtual void UpdateTransform(const OHOS::Rosen::Transform& transform) {};
441 
442     virtual void UpdateDecorVisible(bool visible, bool hasDeco = true) {};
443 
GetOverlayNodePositions()444     virtual std::vector<Ace::RectF> GetOverlayNodePositions() const
445     {
446         return {};
447     };
448 
RegisterOverlayNodePositionsUpdateCallback(const std::function<void (std::vector<Ace::RectF>)> & callback)449     virtual void RegisterOverlayNodePositionsUpdateCallback(
450         const std::function<void(std::vector<Ace::RectF>)>& callback) const {};
451 
SetContentNodeGrayScale(float grayscale)452     virtual void SetContentNodeGrayScale(float grayscale) {};
453 
GetRemoteObj()454     virtual sptr<IRemoteObject> GetRemoteObj()
455     {
456         return {};
457     }
458 
PreLayout()459     virtual void PreLayout() {};
460 
SetStatusBarItemColor(uint32_t color)461     virtual void SetStatusBarItemColor(uint32_t color) {};
462 
SetForceSplitEnable(bool isForceSplit,const std::string & homePage)463     virtual void SetForceSplitEnable(bool isForceSplit, const std::string& homePage) {};
464 
EnableContainerModalGesture(bool isEnable)465     virtual void EnableContainerModalGesture(bool isEnable) {};
466 
GetContainerFloatingTitleVisible()467     virtual bool GetContainerFloatingTitleVisible()
468     {
469         return false;
470     }
471 
GetContainerCustomTitleVisible()472     virtual bool GetContainerCustomTitleVisible()
473     {
474         return false;
475     }
476 
GetContainerControlButtonVisible()477     virtual bool GetContainerControlButtonVisible()
478     {
479         return false;
480     }
481 
OnContainerModalEvent(const std::string & name,const std::string & value)482     virtual void OnContainerModalEvent(const std::string& name, const std::string& value) {}
UpdateConfigurationSyncForAll(const std::shared_ptr<OHOS::AppExecFwk::Configuration> & config)483     virtual void UpdateConfigurationSyncForAll(const std::shared_ptr<OHOS::AppExecFwk::Configuration>& config) {}
484 
SetContainerButtonStyle(const Rosen::DecorButtonStyle & decorButtonStyle)485     virtual void SetContainerButtonStyle(const Rosen::DecorButtonStyle& decorButtonStyle) {}
486 
AddFocusActiveChangeCallback(const std::function<void (bool isFocusAvtive)> & callback)487     virtual int32_t AddFocusActiveChangeCallback(const std::function<void(bool isFocusAvtive)>& callback)
488     {
489         return 0;
490     }
491 
RemoveFocusActiveChangeCallback(int32_t handler)492     virtual void RemoveFocusActiveChangeCallback(int32_t handler) {};
493 
ProcessPointerEvent(const std::shared_ptr<OHOS::MMI::PointerEvent> & pointerEvent,const std::function<void (bool)> & callback)494     virtual bool ProcessPointerEvent(
495         const std::shared_ptr<OHOS::MMI::PointerEvent>& pointerEvent, const std::function<void(bool)>& callback)
496     {
497         return false;
498     }
499 
ConfigCustomWindowMask(bool enable)500     virtual bool ConfigCustomWindowMask(bool enable)
501     {
502         return false;
503     }
504 
UpdateSingleHandTransform(const OHOS::Rosen::SingleHandTransform & transform)505     virtual void UpdateSingleHandTransform(const OHOS::Rosen::SingleHandTransform& transform) {};
506 
GetRSNodeByStringID(const std::string & stringId)507     virtual std::shared_ptr<Rosen::RSNode> GetRSNodeByStringID(const std::string& stringId)
508     {
509         return nullptr;
510     }
511 
ActiveWindow()512     virtual void ActiveWindow() {};
513 
UnActiveWindow()514     virtual void UnActiveWindow() {};
515 
SetTopWindowBoundaryByID(const std::string & stringId)516     virtual void SetTopWindowBoundaryByID(const std::string& stringId) {};
517 
SendUIExtProprty(uint32_t code,const AAFwk::Want & data,uint8_t subSystemId)518     virtual bool SendUIExtProprty(uint32_t code, const AAFwk::Want& data, uint8_t subSystemId)
519     {
520         return false;
521     }
522 
EnableContainerModalCustomGesture(bool enable)523     virtual void EnableContainerModalCustomGesture(bool enable) {};
524 
AddKeyFrameAnimateEndCallback(const std::function<void ()> & callback)525     virtual void AddKeyFrameAnimateEndCallback(const std::function<void()> &callback) {};
AddKeyFrameCanvasNodeCallback(const std::function<void (std::shared_ptr<Rosen::RSCanvasNode> & canvasNode,std::shared_ptr<OHOS::Rosen::RSTransaction> & rsTransaction)> & callback)526     virtual void AddKeyFrameCanvasNodeCallback(const std::function<
527         void(std::shared_ptr<Rosen::RSCanvasNode>& canvasNode,
528             std::shared_ptr<OHOS::Rosen::RSTransaction>& rsTransaction)>& callback) {};
LinkKeyFrameCanvasNode(std::shared_ptr<OHOS::Rosen::RSCanvasNode> &)529     virtual void LinkKeyFrameCanvasNode(std::shared_ptr<OHOS::Rosen::RSCanvasNode>&) {};
530 };
531 
532 } // namespace OHOS::Ace
533 
534 #endif // FOUNDATION_ACE_INTERFACE_INNERKITS_ACE_UI_CONTENT_H
535