Using migrated Public Visual API
[platform/core/uifw/dali-demo.git] / examples / styling / image-channel-control-impl.cpp
index 1b3c9e1..155e145 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 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.
 
 #include "image-channel-control-impl.h"
 #include <dali-toolkit/dali-toolkit.h>
-#include <dali/public-api/object/type-registry-helper.h>
+#include <dali-toolkit/devel-api/controls/control-devel.h>
 #include <dali-toolkit/devel-api/visual-factory/visual-factory.h>
+
 #include <cstdio>
 
+
 using namespace Dali; // Needed for macros
 
 namespace Demo
@@ -34,11 +36,13 @@ const char* FRAGMENT_SHADER = DALI_COMPOSE_SHADER(
   varying mediump vec2 vTexCoord;\n
   uniform sampler2D sTexture;\n
   uniform mediump vec4 uColor;\n
+  uniform mediump vec3 mixColor;\n
+  uniform mediump float opacity;\n
   uniform mediump vec3 uChannels;\n
   \n
   void main()\n
   {\n
-    gl_FragColor = texture2D( sTexture, vTexCoord ) * uColor * vec4(uChannels, 1.0) ;\n
+      gl_FragColor = texture2D( sTexture, vTexCoord ) * vec4(mixColor,opacity) * uColor * vec4(uChannels, 1.0) ;\n
   }\n
 );
 
@@ -67,6 +71,7 @@ DALI_TYPE_REGISTRATION_END();
 Internal::ImageChannelControl::ImageChannelControl()
 : Control( ControlBehaviour( REQUIRES_STYLE_CHANGE_SIGNALS ) ),
   mChannels( 1.0f, 1.0f, 1.0f ),
+  mChannelIndex( Property::INVALID_INDEX ),
   mVisibility(true),
   mTargetVisibility(true)
 {
@@ -98,7 +103,7 @@ void ImageChannelControl::SetImage( const std::string& url )
   properties[Dali::Toolkit::ImageVisual::Property::URL] = url;
 
   mVisual = Toolkit::VisualFactory::Get().CreateVisual( properties );
-  RegisterVisual( Demo::ImageChannelControl::Property::IMAGE_VISUAL, mVisual );
+  Toolkit::DevelControl::RegisterVisual( *this, Demo::ImageChannelControl::Property::IMAGE_VISUAL, mVisual );
   mVisual.SetName("imageVisual");
 
   RelayoutRequest();
@@ -108,8 +113,6 @@ void ImageChannelControl::SetVisibility( bool visibility )
 {
   printf("ImageChannelControl %s: SetVisibility( %s )\n", Self().GetName().c_str(), visibility?"T":"F" );
 
-  Animation animation;
-
   if( mAnimation )
   {
     mAnimation.Stop();
@@ -123,14 +126,14 @@ void ImageChannelControl::SetVisibility( bool visibility )
     {
       if( mDisableVisibilityTransition.Count() > 0 )
       {
-        mAnimation = CreateTransition( mDisableVisibilityTransition );
+        mAnimation = Toolkit::DevelControl::CreateTransition( *this, mDisableVisibilityTransition );
       }
     }
     else
     {
       if( mEnableVisibilityTransition.Count() > 0 )
       {
-        mAnimation = CreateTransition( mEnableVisibilityTransition );
+        mAnimation = Toolkit::DevelControl::CreateTransition( *this, mEnableVisibilityTransition );
       }
     }
   }
@@ -161,22 +164,10 @@ void ImageChannelControl::OnInitialize()
 void ImageChannelControl::OnStageConnection( int depth )
 {
   Control::OnStageConnection( depth );
-
-  if( mVisual )
-  {
-    CustomActor self = Self();
-    mVisual.SetOnStage( self );
-  }
 }
 
 void ImageChannelControl::OnStageDisconnection()
 {
-  if( mVisual )
-  {
-    CustomActor self = Self();
-    mVisual.SetOffStage( self );
-  }
-
   Control::OnStageDisconnection();
 }
 
@@ -187,7 +178,16 @@ void ImageChannelControl::OnSizeSet( const Vector3& targetSize )
   if( mVisual )
   {
     Vector2 size( targetSize );
-    mVisual.SetSize( size );
+    Property::Map transformMap;
+    transformMap
+      .Add( Toolkit::Visual::Transform::Property::OFFSET, Vector2(0.0f, 0.0f) )
+      .Add( Toolkit::Visual::Transform::Property::SIZE, Vector2(1.0f, 1.0f) )
+      .Add( Toolkit::Visual::Transform::Property::ORIGIN, Toolkit::Align::CENTER )
+      .Add( Toolkit::Visual::Transform::Property::ANCHOR_POINT, Toolkit::Align::CENTER )
+      .Add( Toolkit::Visual::Transform::Property::OFFSET_POLICY, Vector2( Toolkit::Visual::Transform::Policy::RELATIVE, Toolkit::Visual::Transform::Policy::RELATIVE ) )
+      .Add( Toolkit::Visual::Transform::Property::SIZE_POLICY, Vector2( Toolkit::Visual::Transform::Policy::RELATIVE, Toolkit::Visual::Transform::Policy::RELATIVE ) );
+
+    mVisual.SetTransformAndSize( transformMap, size );
   }
 }
 
@@ -235,7 +235,7 @@ void ImageChannelControl::SetProperty( BaseObject* object, Property::Index index
         if( map )
         {
           impl.mVisual = Toolkit::VisualFactory::Get().CreateVisual( *map );
-          impl.RegisterVisual( Demo::ImageChannelControl::Property::IMAGE_VISUAL, impl.mVisual );
+          Toolkit::DevelControl::RegisterVisual( impl, Demo::ImageChannelControl::Property::IMAGE_VISUAL, impl.mVisual );
         }
         break;
       }