Merge "(Control Base) Add GetVisual() & GetPlacementActor() methods" into devel/master
authorAdeel Kazmi <adeel.kazmi@samsung.com>
Fri, 12 Aug 2016 12:37:57 +0000 (05:37 -0700)
committerGerrit Code Review <gerrit@review.vlan103.tizen.org>
Fri, 12 Aug 2016 12:37:58 +0000 (05:37 -0700)
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.h
automated-tests/src/dali-toolkit/utc-Dali-ControlImpl.cpp
dali-toolkit/public-api/controls/control-impl.cpp
dali-toolkit/public-api/controls/control-impl.h

index fcf6825..80fb6ec 100644 (file)
@@ -85,6 +85,16 @@ void DummyControlImpl::UnregisterVisual( Property::Index index )
   Control::UnregisterVisual( index );
 }
 
+Toolkit::Visual::Base DummyControlImpl::GetVisual( Property::Index index )
+{
+  return Control::GetVisual( index );
+}
+
+Actor DummyControlImpl::GetPlacementActor( Property::Index index )
+{
+  return Control::GetPlacementActor( index );
+}
+
 DummyControl DummyControlImplOverride::New()
 {
   IntrusivePtr< DummyControlImplOverride > impl = new DummyControlImplOverride;
index 897fc17..3c88685 100644 (file)
@@ -73,6 +73,8 @@ public:
 
   void RegisterVisual( Property::Index index, Actor placementActor, Toolkit::Visual::Base visual);
   void UnregisterVisual( Property::Index index );
+  Toolkit::Visual::Base GetVisual( Property::Index index );
+  Actor GetPlacementActor( Property::Index index );
 
   // Used to test signal connections
   void CustomSlot1( Actor actor );
index 09d1dd7..2e691af 100644 (file)
@@ -956,6 +956,9 @@ int UtcDaliControlImplRegisterThenReRegisterVisual(void)
   Property::Index index =1;
   Actor placementActor = Actor::New();
 
+  DALI_TEST_CHECK( !dummyImpl.GetVisual( index )  );
+  DALI_TEST_CHECK( !dummyImpl.GetPlacementActor( index ) );
+
   Toolkit::VisualFactory visualFactory = Toolkit::VisualFactory::Get();
   Toolkit::Visual::Base visual;
 
@@ -969,6 +972,8 @@ int UtcDaliControlImplRegisterThenReRegisterVisual(void)
   // Register index with a color visual
   dummyImpl.RegisterVisual( index, placementActor, visual );
 
+  DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual );
+  DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == placementActor );
 
   Property::Map newMap;
   newMap[Visual::Property::TYPE] = Visual::COLOR;
@@ -980,6 +985,9 @@ int UtcDaliControlImplRegisterThenReRegisterVisual(void)
   // ReRegister with altered color visual
   dummyImpl.RegisterVisual( index, placementActor, visual );
 
+  DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual );
+  DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == placementActor );
+
   tet_result(TET_PASS);
 
   END_TEST;
@@ -1008,9 +1016,15 @@ int UtcDaliControlImplRegisterVisaulThenReRegisterToSelf(void)
   // Register index with a color visual
   dummyImpl.RegisterVisual( index, placementActor, visual );
 
+  DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual );
+  DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == placementActor );
+
   // ReRegister to self
   dummyImpl.RegisterVisual( index, dummy, visual );
 
+  DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual );
+  DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == dummy );
+
   END_TEST;
 }
 
@@ -1041,6 +1055,8 @@ int UtcDaliControlImplRegisterVisualToSelf(void)
     // Register to self
     dummyImpl.RegisterVisual( index, dummy, visual );
     DALI_TEST_EQUALS( objectDestructionTracker.IsDestroyed(), false, TEST_LOCATION ); // Control not destroyed yet
+    DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual );
+    DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == dummy );
   }
 
   DALI_TEST_EQUALS( objectDestructionTracker.IsDestroyed(), true, TEST_LOCATION ); // Should be destroyed
@@ -1085,6 +1101,12 @@ int UtcDaliControlImplRegisterTwoVisuals(void)
   // ReRegister with altered color visual
   dummyImpl.RegisterVisual( index2, secondPlacementActor, secondVisual );
 
+  DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual );
+  DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == placementActor );
+
+  DALI_TEST_CHECK( dummyImpl.GetVisual( index2 ) == secondVisual );
+  DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index2 ) == secondPlacementActor );
+
   END_TEST;
 }
 
@@ -1111,8 +1133,14 @@ int UtcDaliControlImplRegisterUnregisterVisual(void)
   // Register index with a color visual
   dummyImpl.RegisterVisual( index, placementActor, visual );
 
+  DALI_TEST_CHECK( dummyImpl.GetVisual( index ) == visual );
+  DALI_TEST_CHECK( dummyImpl.GetPlacementActor( index ) == placementActor );
+
   // Unregister visual
   dummyImpl.UnregisterVisual( index );
 
+  DALI_TEST_CHECK( !dummyImpl.GetVisual( index ) );
+  DALI_TEST_CHECK( !dummyImpl.GetPlacementActor( index ) );
+
   END_TEST;
 }
index 253f3a2..23745bb 100644 (file)
@@ -691,6 +691,35 @@ void Control::UnregisterVisual( Property::Index index )
    }
 }
 
+Toolkit::Visual::Base Control::GetVisual( Property::Index index )
+{
+  std::vector< RegisteredVisual >::iterator iter;
+  if ( FindVisual( index, mImpl->mVisuals, iter ) )
+  {
+    return (*iter).visual;
+  }
+
+  return Toolkit::Visual::Base();
+}
+
+Actor Control::GetPlacementActor( Property::Index index )
+{
+  std::vector< RegisteredVisual >::iterator iter;
+  if ( FindVisual( index, mImpl->mVisuals, iter ) )
+  {
+    if( (*iter).placementActor )
+    {
+      return (*iter).placementActor;
+    }
+    else
+    {
+      return Self();
+    }
+  }
+
+  return Actor();
+}
+
 bool Control::OnAccessibilityActivated()
 {
   return false; // Accessibility activation is not handled by default
index 7cd1dcd..e8a71fe 100644 (file)
@@ -316,6 +316,28 @@ protected: // For derived classes to call
     */
    void UnregisterVisual( Property::Index index );
 
+   /**
+    * @brief Retrieve the visual associated with the given property index.
+    *
+    * @SINCE_1_2.2
+    *
+    * @param[in] index The Property index of the visual.
+    * @return The registered visual if exist, otherwise empty handle.
+    * @note For managing object life-cycle, do not store the returned visual as a member which increments its reference count.
+    */
+   Toolkit::Visual::Base GetVisual( Property::Index index );
+
+   /**
+    * @brief Retrieve the placement actor associated with the given index.
+    *
+    * @SINCE_1_2.2
+    *
+    * @@param[in] index The Property index of the visual.
+    * @return Then placement actor if exist, otherwise empty handle.
+    * @note For managing object life-cycle, do not store the returned placement actor as a member which increments its reference count.
+    */
+   Actor GetPlacementActor( Property::Index index );
+
   /**
    * @brief Emits KeyInputFocusGained signal if true else emits KeyInputFocusLost signal
    *