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