Moved some signals such as KeyEventGenerated to SceneHolder from Window 20/212520/6
authorJiyun Yang <ji.yang@samsung.com>
Thu, 22 Aug 2019 09:14:53 +0000 (18:14 +0900)
committerJIYUN YANG <ji.yang@samsung.com>
Mon, 2 Sep 2019 01:13:57 +0000 (01:13 +0000)
Change-Id: I58f8263d8dbd7c3bb568a772b7d746ad2caf6041
Signed-off-by: Jiyun Yang <ji.yang@samsung.com>
dali/devel-api/adaptor-framework/window-devel.cpp
dali/devel-api/adaptor-framework/window-devel.h
dali/integration-api/adaptor.h
dali/integration-api/scene-holder-impl.h
dali/integration-api/scene-holder.cpp
dali/integration-api/scene-holder.h
dali/internal/adaptor/common/adaptor-impl.cpp
dali/internal/adaptor/common/adaptor-impl.h
dali/internal/adaptor/common/adaptor.cpp
dali/internal/window-system/common/window-impl.h

index 04e2902..5057f14 100644 (file)
@@ -55,11 +55,6 @@ KeyEventSignalType& KeyEventSignal( Window window )
   return GetImplementation( window ).KeyEventSignal();
 }
 
-KeyEventGeneratedSignalType& KeyEventGeneratedSignal( Window window )
-{
-  return GetImplementation( window ).KeyEventGeneratedSignal();
-}
-
 TouchSignalType& TouchSignal( Window window )
 {
   return GetImplementation( window ).TouchSignal();
index bdcd9a5..a7baa89 100644 (file)
@@ -35,8 +35,6 @@ typedef Signal< void () > EventProcessingFinishedSignalType;       ///< Event Pr
 
 typedef Signal< void (const KeyEvent&) > KeyEventSignalType;       ///< Key event signal type
 
-typedef Signal< bool (const KeyEvent&) > KeyEventGeneratedSignalType;       ///< Key event generated signal type
-
 typedef Signal< void (const TouchData&) > TouchSignalType;         ///< Touch signal type
 
 typedef Signal< void (const WheelEvent&) > WheelEventSignalType;   ///< Touched signal type
@@ -86,18 +84,6 @@ DALI_ADAPTOR_API EventProcessingFinishedSignalType& EventProcessingFinishedSigna
 DALI_ADAPTOR_API KeyEventSignalType& KeyEventSignal( Window window );
 
 /**
- * @brief This signal is emitted when key event is received.
- *
- * A callback of the following type may be connected:
- * @code
- *   bool YourCallbackName(const KeyEvent& event);
- * @endcode
- * @param[in] window The window instance
- * @return The signal to connect to
- */
-DALI_ADAPTOR_API KeyEventGeneratedSignalType& KeyEventGeneratedSignal( Window window );
-
-/**
  * @brief This signal is emitted when the screen is touched and when the touch ends
  * (i.e. the down & up touch events only).
  *
index cb19fa0..eb0f6f0 100755 (executable)
@@ -52,6 +52,8 @@ namespace Integration
 class SceneHolder;
 }
 
+using SceneHolderList = std::vector<Dali::Integration::SceneHolder>;
+
 
 namespace Internal
 {
@@ -125,7 +127,7 @@ class DALI_ADAPTOR_API Adaptor
 public:
 
   typedef Signal< void (Adaptor&) > AdaptorSignalType; ///< Generic Type for adaptor signals
-  typedef Signal< void (Window&) > WindowCreatedSignalType;  ///< Window created signal type
+  typedef Signal< void (Dali::Integration::SceneHolder&) > WindowCreatedSignalType;  ///< SceneHolder created signal type
 
   using SurfaceSize = Uint16Pair; ///< Surface size type
 
@@ -469,6 +471,12 @@ public:
   Dali::WindowContainer GetWindows() const;
 
   /**
+   * @brief Get the list of scene holders.
+   * @return The list of scene holers
+   */
+  SceneHolderList GetSceneHolders() const;
+
+  /**
    * @brief Called when the window becomes fully or partially visible.
    */
   void OnWindowShown();
@@ -496,7 +504,7 @@ public:  // Signals
   AdaptorSignalType& LanguageChangedSignal();
 
   /**
-   * @brief This signal is emitted when a new window is created
+   * @brief This signal is emitted when a new window (scene holder) is created
    *
    * @return The signal to connect to
    */
index 78682ea..29ebf02 100644 (file)
@@ -172,6 +172,26 @@ public:
    */
   static Dali::Integration::SceneHolder Get( Dali::Actor actor );
 
+  /**
+   * @copydoc Dali::Integration::SceneHolder::KeyEventSignal()
+   */
+  Dali::Integration::SceneHolder::KeyEventSignalType& KeyEventSignal() { return mScene.KeyEventSignal(); }
+
+  /**
+   * @copydoc Dali::Integration::SceneHolder::KeyEventGeneratedSignal()
+   */
+  Dali::Integration::SceneHolder::KeyEventGeneratedSignalType& KeyEventGeneratedSignal() { return mScene.KeyEventGeneratedSignal(); }
+
+  /**
+   * @copydoc Dali::Integration::SceneHolder::TouchSignal()
+   */
+  Dali::Integration::SceneHolder::TouchSignalType& TouchSignal() { return mScene.TouchSignal(); }
+
+  /**
+   * @copydoc Dali::Integration::SceneHolder::WheelEventSignal()
+   */
+  Dali::Integration::SceneHolder::WheelEventSignalType& WheelEventSignal() { return mScene.WheelEventSignal(); }
+
 public: // The following methods can be overridden if required
 
   /**
index 8f456d9..7a232b9 100644 (file)
@@ -111,6 +111,26 @@ SceneHolder SceneHolder::Get( Actor actor )
   return Internal::Adaptor::SceneHolder::Get( actor );
 }
 
+SceneHolder::KeyEventSignalType& SceneHolder::KeyEventSignal()
+{
+  return GetImplementation(*this).KeyEventSignal();
+}
+
+SceneHolder::KeyEventGeneratedSignalType& SceneHolder::KeyEventGeneratedSignal()
+{
+  return GetImplementation(*this).KeyEventGeneratedSignal();
+}
+
+SceneHolder::TouchSignalType& SceneHolder::TouchSignal()
+{
+  return GetImplementation(*this).TouchSignal();
+}
+
+SceneHolder::WheelEventSignalType& SceneHolder::WheelEventSignal()
+{
+  return GetImplementation(*this).WheelEventSignal();
+}
+
 }// Integration
 
 } // Dali
index 4881d22..905ed6b 100644 (file)
@@ -22,6 +22,7 @@
 #include <dali/public-api/dali-adaptor-common.h>
 #include <dali/public-api/object/base-handle.h>
 #include <dali/public-api/math/vector4.h>
+#include <dali/public-api/signals/dali-signal.h>
 
 namespace Dali
 {
@@ -29,6 +30,7 @@ namespace Dali
 class Actor;
 class Layer;
 class Any;
+class TouchData;
 struct TouchPoint;
 struct WheelEvent;
 struct KeyEvent;
@@ -55,6 +57,14 @@ class DALI_ADAPTOR_API SceneHolder : public BaseHandle
 {
 public:
 
+  typedef Signal< void (const Dali::KeyEvent&) > KeyEventSignalType;          ///< Key event signal type
+
+  typedef Signal< bool (const Dali::KeyEvent&) > KeyEventGeneratedSignalType; ///< Key event generated signal type
+
+  typedef Signal< void (const Dali::TouchData&) > TouchSignalType;            ///< Touch signal type
+
+  typedef Signal< void (const Dali::WheelEvent&) > WheelEventSignalType;      ///< Touched signal type
+
   /**
    * @brief Create an uninitialized SceneHolder handle.
    */
@@ -158,6 +168,55 @@ public:
    */
   static SceneHolder Get( Actor actor );
 
+  /**
+   * @brief This signal is emitted when key event is received.
+   *
+   * A callback of the following type may be connected:
+   * @code
+   *   void YourCallbackName(const KeyEvent& event);
+   * @endcode
+   * @return The signal to connect to
+   */
+  KeyEventSignalType& KeyEventSignal();
+
+  /**
+   * @brief This signal is emitted when key event is received.
+   *
+   * A callback of the following type may be connected:
+   * @code
+   *   bool YourCallbackName(const KeyEvent& event);
+   * @endcode
+   * @return The signal to connect to
+   */
+  KeyEventGeneratedSignalType& KeyEventGeneratedSignal();
+
+  /**
+   * @brief This signal is emitted when the screen is touched and when the touch ends
+   * (i.e. the down & up touch events only).
+   *
+   * If there are multiple touch points, then this will be emitted when the first touch occurs and
+   * then when the last finger is lifted.
+   * An interrupted event will also be emitted (if it occurs).
+   * A callback of the following type may be connected:
+   * @code
+   *   void YourCallbackName( TouchData event );
+   * @endcode
+   * @return The touch signal to connect to
+   * @note Motion events are not emitted.
+   */
+  TouchSignalType& TouchSignal();
+
+  /**
+   * @brief This signal is emitted when wheel event is received.
+   *
+   * A callback of the following type may be connected:
+   * @code
+   *   void YourCallbackName(const WheelEvent& event);
+   * @endcode
+   * @return The signal to connect to
+   */
+  WheelEventSignalType& WheelEventSignal();
+
 public: // Not intended for application developers
 
   /**
index 868345d..69d0da6 100755 (executable)
@@ -188,11 +188,9 @@ void Adaptor::Initialize( GraphicsFactory& graphicsFactory, Dali::Configuration:
 
   defaultWindow->SetAdaptor( Get() );
 
-  Dali::Window window( dynamic_cast<Dali::Internal::Adaptor::Window*>( defaultWindow ) );
-  if ( window )
-  {
-    mWindowCreatedSignal.Emit( window );
-  }
+  Dali::Integration::SceneHolder defaultSceneHolder( defaultWindow );
+
+  mWindowCreatedSignal.Emit( defaultSceneHolder );
 
   const unsigned int timeInterval = mEnvironmentOptions->GetObjectProfilerInterval();
   if( 0u < timeInterval )
@@ -645,11 +643,7 @@ bool Adaptor::AddWindow( Dali::Integration::SceneHolder childWindow, const std::
   // Add the new Window to the container - the order is not important
   mWindows.push_back( &windowImpl );
 
-  Dali::Window window( dynamic_cast<Dali::Internal::Adaptor::Window*>( &windowImpl ) );
-  if ( window )
-  {
-    mWindowCreatedSignal.Emit( window );
-  }
+  mWindowCreatedSignal.Emit( childWindow );
 
   return true;
 }
@@ -1116,6 +1110,18 @@ Dali::WindowContainer Adaptor::GetWindows() const
   return windows;
 }
 
+Dali::SceneHolderList Adaptor::GetSceneHolders() const
+{
+  Dali::SceneHolderList sceneHolderList;
+
+  for( auto iter = mWindows.begin(); iter != mWindows.end(); ++iter )
+  {
+    sceneHolderList.push_back( Dali::Integration::SceneHolder( *iter ) );
+  }
+
+  return sceneHolderList;
+}
+
 Adaptor::Adaptor(Dali::Integration::SceneHolder window, Dali::Adaptor& adaptor, Dali::RenderSurfaceInterface* surface, EnvironmentOptions* environmentOptions)
 : mResizedSignal(),
   mLanguageChangedSignal(),
index 99e4a0c..74f7ab3 100755 (executable)
@@ -313,6 +313,11 @@ public: // AdaptorInternalServices implementation
    */
   Dali::WindowContainer GetWindows() const;
 
+  /**
+   * @copydoc Dali::Adaptor::GetSceneHolders()
+   */
+  Dali::SceneHolderList GetSceneHolders() const;
+
 public:
 
   /**
@@ -650,7 +655,7 @@ private: // Data
 
   AdaptorSignalType                     mResizedSignal;               ///< Resized signal.
   AdaptorSignalType                     mLanguageChangedSignal;       ///< Language changed signal.
-  WindowCreatedSignalType               mWindowCreatedSignal;         ///< Window created signal.
+  WindowCreatedSignalType               mWindowCreatedSignal;    ///< Window created signal.
 
   Dali::Adaptor&                        mAdaptor;                     ///< Reference to public adaptor instance.
   State                                 mState;                       ///< Current state of the adaptor
index 73fe2b3..195f936 100755 (executable)
@@ -261,6 +261,11 @@ Dali::WindowContainer Adaptor::GetWindows() const
   return mImpl->GetWindows();
 }
 
+SceneHolderList Adaptor::GetSceneHolders() const
+{
+  return mImpl->GetSceneHolders();
+}
+
 void Adaptor::OnWindowShown()
 {
   mImpl->OnWindowShown();
index 5e8ea5b..ea4f24a 100644 (file)
@@ -474,26 +474,6 @@ public: // Signals
    */
   Dali::DevelWindow::EventProcessingFinishedSignalType& EventProcessingFinishedSignal() { return mScene.EventProcessingFinishedSignal(); }
 
-  /**
-   * @copydoc Dali::Window::KeyEventSignal()
-   */
-  Dali::DevelWindow::KeyEventSignalType& KeyEventSignal() { return mScene.KeyEventSignal(); }
-
-  /**
-   * @copydoc Dali::Window::KeyEventGeneratedSignal()
-   */
-  Dali::DevelWindow::KeyEventGeneratedSignalType& KeyEventGeneratedSignal() { return mScene.KeyEventGeneratedSignal(); }
-
-  /**
-    * @copydoc Dali::Window::TouchSignal()
-    */
-  Dali::DevelWindow::TouchSignalType& TouchSignal() { return mScene.TouchSignal(); }
-
-  /**
-   * @copydoc Dali::Window::WheelEventSignal()
-   */
-  Dali::DevelWindow::WheelEventSignalType& WheelEventSignal() { return mScene.WheelEventSignal(); }
-
 private:
 
   WindowRenderSurface*                  mWindowSurface;      ///< The window rendering surface