[dali_1.1.29] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / magnifier / magnifier-impl.h
index d18fa24..df095b0 100644 (file)
@@ -1,26 +1,31 @@
 #ifndef __DALI_TOOLKIT_INTERNAL_MAGNIFIER_H__
 #define __DALI_TOOLKIT_INTERNAL_MAGNIFIER_H__
 
-//
-// Copyright (c) 2014 Samsung Electronics Co., Ltd.
-//
-// Licensed under the Flora License, Version 1.0 (the License);
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://floralicense.org/license/
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an AS IS BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
+/*
+ * Copyright (c) 2014 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/actors/camera-actor.h>
+#include <dali/public-api/actors/layer.h>
+#include <dali/public-api/render-tasks/render-task.h>
 
 // INTERNAL INCLUDES
-#include <dali/dali.h>
 #include <dali-toolkit/public-api/controls/control-impl.h>
-#include <dali-toolkit/public-api/controls/magnifier/magnifier.h>
+#include <dali-toolkit/devel-api/controls/magnifier/magnifier.h>
 
 namespace Dali
 {
@@ -38,7 +43,7 @@ typedef IntrusivePtr<Magnifier>    MagnifierPtr;
 /**
  * @copydoc Toolkit::Magnifier
  */
-class Magnifier : public ControlImpl
+class Magnifier : public Control
 {
 public:
 
@@ -56,27 +61,30 @@ public:
   void SetSourceActor(Actor actor);
 
   /**
-   * @copydoc Toolkit::ImageView::SetSourcePosition
-   */
-  void SetSourcePosition(const Vector3& position);
-
-  /**
-   * @copydoc Toolkit::ImageView::GetFrameVisibility
+   * Returns whether the frame is visible or not.
+   * @return true if frame is visible, false if not.
    */
   bool GetFrameVisibility() const;
 
   /**
-   * @copydoc Toolkit::ImageView::SetFrameVisibility
+   * Sets whether the frame part of the magnifier should be visible or not.
+   * @param[in] visible true to display frame, false to hide frame.
    */
   void SetFrameVisibility(bool visible);
 
   /**
-   * @copydoc Toolkit::ImageView::GetMagnificationFactor
+   * Get the magnification factor of the magnifier
+   * The larger the value the larger the contents magnified.
+   * A value of 1.0f indications 1x magnification.
+   * @return Magnification factor is returned
    */
   float GetMagnificationFactor() const;
 
   /**
-   * @copydoc Toolkit::ImageView::SetMagnificationFactor
+   * Set the magnification factor of the magnifier
+   * The larger the value the larger the contents magnified.
+   * A value of 1.0f indications 1x magnification.
+   * @param[in] value Magnification factor.
    */
   void SetMagnificationFactor(float value);
 
@@ -85,6 +93,24 @@ public:
    */
   void Update();
 
+  // Properties
+
+  /**
+   * Called when a property of an object of this type is set.
+   * @param[in] object The object whose property is set.
+   * @param[in] index The property index.
+   * @param[in] value The new property value.
+   */
+  static void SetProperty( BaseObject* object, Property::Index index, const Property::Value& value );
+
+  /**
+   * Called to retrieve a property of an object of this type.
+   * @param[in] object The object whose property is to be retrieved.
+   * @param[in] index The property index.
+   * @return The current value of the property.
+   */
+  static Property::Value GetProperty( BaseObject* object, Property::Index index );
+
 protected:
 
   /**
@@ -111,7 +137,7 @@ private:
 
 private:
 
-  virtual void OnControlSizeSet(const Vector3& targetSize);
+  virtual void OnSizeSet(const Vector3& targetSize);
 
 private:
 
@@ -125,8 +151,7 @@ private:
 
   RenderTask mTask;                             ///< Render Task to render the source actor contents.
   CameraActor mCameraActor;                     ///< CameraActor attached to RenderTask
-  Layer mFrameLayer;                            ///< Frame is placed on separate layer added to stage.
-  Property::Index mPropertySourcePosition;      ///< Source Position ("source-position")
+  Actor mFrame;                                 ///< The Magnifier Frame
   Actor mSourceActor;                           ///< Source Delegate Actor represents the source position to read.
   float mDefaultCameraDistance;                 ///< Default RenderTask's camera distance from target.
   Vector3 mActorSize;                           ///< The Actor size