Scripting: Json format changes; style sets, includes
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / builder / builder-impl.h
index ba52c08..87a35b9 100644 (file)
@@ -28,6 +28,7 @@
 // INTERNAL INCLUDES
 #include <dali-toolkit/public-api/builder/json-parser.h>
 #include <dali-toolkit/public-api/builder/builder.h>
 // INTERNAL INCLUDES
 #include <dali-toolkit/public-api/builder/json-parser.h>
 #include <dali-toolkit/public-api/builder/builder.h>
+#include <dali-toolkit/internal/builder/builder-declarations.h>
 
 // Warning messages usually displayed
 #define DALI_SCRIPT_WARNING(format, args...) \
 
 // Warning messages usually displayed
 #define DALI_SCRIPT_WARNING(format, args...) \
@@ -60,6 +61,7 @@ extern Dali::Integration::Log::Filter* gFilterScript;
 #endif
 
 class Builder;
 #endif
 
 class Builder;
+class Replacement;
 
 /**
  * @copydoc Toolkit::Builder
 
 /**
  * @copydoc Toolkit::Builder
@@ -77,16 +79,56 @@ public:
                        Dali::Toolkit::Builder::UIFormat rep = Dali::Toolkit::Builder::JSON );
 
   /**
                        Dali::Toolkit::Builder::UIFormat rep = Dali::Toolkit::Builder::JSON );
 
   /**
-   * @copydoc Toolkit::Builder::CreateAnimation
+   * @copydoc Toolkit::Builder::AddConstants
+   */
+  void AddConstants( const PropertyValueMap& map );
+
+  /**
+   * @copydoc Toolkit::Builder::AddConstant
+   */
+  void AddConstant( const std::string& key, const Property::Value& value );
+
+  /**
+   * @copydoc Toolkit::Builder::GetConstants
+   */
+  const PropertyValueMap& GetConstants() const;
+
+  /**
+   * @copydoc Toolkit::Builder::GetConstant
+   */
+  const Property::Value& GetConstant( const std::string& key ) const;
+
+  /**
+   * @copydoc Toolkit::Builder::CreateAnimation( const std::string& animationName );
    */
   Animation CreateAnimation( const std::string& animationName );
 
   /**
    */
   Animation CreateAnimation( const std::string& animationName );
 
   /**
-   * @copydoc Toolkit::Builder::CreateFromStyle
+   * @copydoc Toolkit::Builder::CreateAnimation( const std::string& animationName, const PropertyValueMap& map );
+   */
+  Animation CreateAnimation( const std::string& animationName, const PropertyValueMap& map );
+
+  /**
+   * @copydoc Toolkit::Builder::CreateAnimation( const std::string&,Dali::Actor);
    */
    */
-  BaseHandle CreateFromStyle( const std::string& styleName );
+  Animation CreateAnimation( const std::string& animationName, Dali::Actor sourceActor );
 
   /**
 
   /**
+   * @copydoc Toolkit::Builder::CreateAnimation( const std::string&,const PropertyValueMap&,Dali::Actor);
+   */
+  Animation CreateAnimation( const std::string& animationName, const PropertyValueMap& map, Dali::Actor sourceActor );
+
+  /**
+   * @copydoc Toolkit::Builder::Create( const std::string& templateName );
+   */
+  BaseHandle Create( const std::string& templateName );
+
+  /**
+   * @copydoc Toolkit::Builder::Create( const std::string& templateName, const PropertyValueMap& map );
+   */
+  BaseHandle Create( const std::string& templateName, const PropertyValueMap& map );
+
+ /**
    * @copydoc Toolkit::Builder::GetFont
    */
   Font GetFont(const std::string &name) const;
    * @copydoc Toolkit::Builder::GetFont
    */
   Font GetFont(const std::string &name) const;
@@ -111,6 +153,8 @@ public:
    */
   void ApplyStyle( const std::string& styleName, Handle& handle );
 
    */
   void ApplyStyle( const std::string& styleName, Handle& handle );
 
+  void AnimateTo( const std::string& styleName, Handle& handle );
+
   /**
    * @copydoc Toolkit::Builder::AddActors
    */
   /**
    * @copydoc Toolkit::Builder::AddActors
    */
@@ -137,11 +181,21 @@ public:
   ShaderEffect GetShaderEffect( const std::string &name );
 
   /**
   ShaderEffect GetShaderEffect( const std::string &name );
 
   /**
+   * @copydoc Toolkit::Builder::GetShaderEffect
+   */
+  ShaderEffect GetShaderEffect( const std::string &name, const Replacement& constant );
+
+  /**
    * @copydoc Toolkit::Builder::GetFrameBufferImage
    */
   FrameBufferImage GetFrameBufferImage( const std::string &name );
 
   /**
    * @copydoc Toolkit::Builder::GetFrameBufferImage
    */
   FrameBufferImage GetFrameBufferImage( const std::string &name );
 
   /**
+   * @copydoc Toolkit::Builder::GetFrameBufferImage
+   */
+  FrameBufferImage GetFrameBufferImage( const std::string &name, const Replacement& constant );
+
+  /**
    * @copydoc Toolkit::Builder::GetTopLevelActors
    */
   ActorContainer GetTopLevelActors( void ) const;
    * @copydoc Toolkit::Builder::GetTopLevelActors
    */
   ActorContainer GetTopLevelActors( void ) const;
@@ -155,7 +209,7 @@ private:
   Builder(const Builder&);
   Builder& operator=(const Builder& rhs);
 
   Builder(const Builder&);
   Builder& operator=(const Builder& rhs);
 
-  void SetupTask( RenderTask& task, const Toolkit::TreeNode& node );
+  void SetupTask( RenderTask& task, const Toolkit::TreeNode& node, const Replacement& replacement );
 
 private:
   Toolkit::JsonParser mParser;
 
 private:
   Toolkit::JsonParser mParser;
@@ -167,6 +221,32 @@ private:
   ShaderEffectLut mShaderEffectLut;
 
   SlotDelegate<Builder> mSlotDelegate;
   ShaderEffectLut mShaderEffectLut;
 
   SlotDelegate<Builder> mSlotDelegate;
+
+  PropertyValueMap mReplacementMap;
+
+  BaseHandle Create( const std::string& templateName, const Replacement& constant );
+
+  BaseHandle DoCreate( const TreeNode& root, const TreeNode& node, Actor parent, const Replacement& replacements );
+
+  void LoadConstants( const TreeNode& root, PropertyValueMap& intoMap );
+
+  void LoadIncludes( const std::string& data );
+
+  void ApplyStyle( const std::string& styleName, Handle& handle, const Replacement& replacement);
+
+  Animation CreateAnimation( const std::string& animationName, const Replacement& replacement, Dali::Actor sourceActor );
+
+  void ApplyProperties( const TreeNode& root, const TreeNode& node,
+                        Dali::Handle& handle, const Replacement& constant );
+
+  void ApplyStylesByActor( const TreeNode& root, const TreeNode& node,
+                           Dali::Handle& handle, const Replacement& constant );
+
+  void ApplyAllStyleProperties( const TreeNode& root, const TreeNode& node,
+                                Dali::Handle& handle, const Replacement& constant );
+
+  void SetProperties( const TreeNode& node, Handle& handle, const Replacement& constant );
+
 };
 
 } // namespace Internal
 };
 
 } // namespace Internal