[Tizen] Add a WebView API for notifying orientation change.
[platform/core/uifw/dali-adaptor.git] / dali / internal / web-engine / common / web-engine-impl.h
index 085c28a..e356133 100755 (executable)
@@ -2,7 +2,7 @@
 #define DALI_WEB_ENGINE_IMPL_H
 
 /*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2024 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -93,6 +93,11 @@ public:
   Dali::NativeImageSourcePtr GetNativeImageSource();
 
   /**
+   * @copydoc Dali::WebEngine::ChangeOrientation()
+   */
+  void ChangeOrientation(int orientation);
+
+  /**
    * @copydoc Dali::WebEngine::GetSettings()
    */
   Dali::WebEngineSettings& GetSettings() const;
@@ -145,7 +150,7 @@ public:
   /**
    * @copydoc Dali::WebEngine::LoadContents()
    */
-  bool LoadContents(const std::string& contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri);
+  bool LoadContents(const int8_t* contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri);
 
   /**
    * @copydoc Dali::WebEngine::Reload()
@@ -468,9 +473,14 @@ public:
   bool SendWheelEvent(const Dali::WheelEvent& event);
 
   /**
-   * @copydoc Dali::WebEngine::FrameRenderedSignal()
+   * @copydoc Dali::WebEngine::ExitFullscreen()
+   */
+  void ExitFullscreen();
+
+  /**
+   @copydoc Dali::WebEngine::RegisterFrameRenderedCallback()
    */
-  Dali::WebEnginePlugin::WebEngineFrameRenderedSignalType& FrameRenderedSignal();
+  void RegisterFrameRenderedCallback(Dali::WebEnginePlugin::WebEngineFrameRenderedCallback callback);
 
   /**
    * @copydoc Dali::WebEngine::RegisterPageLoadStartedCallback()
@@ -523,6 +533,16 @@ public:
   void RegisterNavigationPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNavigationPolicyDecidedCallback callback);
 
   /**
+   @copydoc Dali::WebEngine::RegisterNewWindowPolicyDecidedCallback()
+   */
+  void RegisterNewWindowPolicyDecidedCallback(Dali::WebEnginePlugin::WebEngineNewWindowPolicyDecidedCallback callback);
+
+  /**
+   @copydoc Dali::WebEngine::RegisterNewWindowCreatedCallback()
+   */
+  void RegisterNewWindowCreatedCallback(Dali::WebEnginePlugin::WebEngineNewWindowCreatedCallback callback);
+
+  /**
    * @copydoc Dali::WebEngine::RegisterCertificateConfirmedCallback()
    */
   void RegisterCertificateConfirmedCallback(Dali::WebEnginePlugin::WebEngineCertificateCallback callback);
@@ -548,6 +568,21 @@ public:
   void RegisterContextMenuHiddenCallback(Dali::WebEnginePlugin::WebEngineContextMenuHiddenCallback callback);
 
   /**
+   * @copydoc Dali::WebEngine::RegisterFullscreenEnteredCallback()
+   */
+  void RegisterFullscreenEnteredCallback(Dali::WebEnginePlugin::WebEngineFullscreenEnteredCallback callback);
+
+  /**
+   * @copydoc Dali::WebEngine::RegisterFullscreenExitedCallback()
+   */
+  void RegisterFullscreenExitedCallback(Dali::WebEnginePlugin::WebEngineFullscreenExitedCallback callback);
+
+  /**
+   * @copydoc Dali::WebEngine::RegisterTextFoundCallback()
+   */
+  void RegisterTextFoundCallback(Dali::WebEnginePlugin::WebEngineTextFoundCallback callback);
+
+  /**
    * @copydoc Dali::WebEngine::GetPlainTextAsynchronously()
    */
   void GetPlainTextAsynchronously(Dali::WebEnginePlugin::PlainTextReceivedCallback callback);
@@ -576,27 +611,8 @@ private:
    */
   bool Initialize();
 
-  /**
-   * @brief Initialize library handle by loading web engine plugin.
-   *
-   * @return Whether the initialization succeed or not.
-   */
-  static bool InitializePluginHandle();
-
-  /**
-   * @brief Close library handle.
-   */
-  static void ClosePluginHandle();
-
 private:
-  using CreateWebEngineFunction  = Dali::WebEnginePlugin* (*)();
-  using DestroyWebEngineFunction = void (*)(Dali::WebEnginePlugin* plugin);
-
   Dali::WebEnginePlugin* mPlugin; ///< WebEnginePlugin instance
-
-  static void*                    mHandle;              ///< Handle for the loaded library
-  static CreateWebEngineFunction  mCreateWebEnginePtr;  ///< Function to create plugin instance
-  static DestroyWebEngineFunction mDestroyWebEnginePtr; ///< Function to destroy plugin instance
 };
 
 } // namespace Adaptor