control.SetRenderEffect(effect);
control.SetProperty(DevelControl::Property::OFFSCREEN_RENDERING, DevelControl::OffScreenRenderingType::REFRESH_ALWAYS);
- Vector4 vector = Vector4(0.5f, 0.5f, 0.5f, 0.5f);
- control.SetProperty(DevelControl::Property::CORNER_RADIUS, vector); // default: relative policy
+ Vector4 radius = Vector4(0.5f, 0.5f, 0.5f, 0.5f);
+ Vector4 squreness = Vector4(0.3f, 0.3f, 0.3f, 0.3f);
+ control.SetProperty(DevelControl::Property::CORNER_RADIUS, radius); // default: relative policy
control.SetProperty(DevelControl::Property::CORNER_RADIUS_POLICY, Toolkit::Visual::Transform::Policy::Type::RELATIVE);
+ control.SetProperty(DevelControl::Property::CORNER_SQUARENESS, squreness);
tet_infoline("Sync with render effects.");
application.SendNotification();
Vector4 retrievedVector;
control.GetProperty(DevelControl::Property::CORNER_RADIUS).Get(retrievedVector);
- DALI_TEST_CHECK(retrievedVector == vector);
+ DALI_TEST_CHECK(retrievedVector == radius);
+ control.GetProperty(DevelControl::Property::CORNER_SQUARENESS).Get(retrievedVector);
+ DALI_TEST_CHECK(retrievedVector == squreness);
control.ClearRenderEffect();
control.ClearBackground();
control.SetProperty(Actor::Property::SIZE, Vector2(1.0f, 1.0f));
control.SetProperty(Toolkit::DevelControl::Property::CORNER_RADIUS, Vector4(30.0f, 30.0f, 30.0f, 30.0f));
control.SetProperty(Toolkit::DevelControl::Property::CORNER_RADIUS_POLICY, Visual::Transform::Policy::Type::ABSOLUTE);
- // TODO set squarness
+ control.SetProperty(Toolkit::DevelControl::Property::CORNER_SQUARENESS, Vector4(0.7f, 0.7f, 0.7f, 0.7f));
scene.Add(control);
control.SetProperty(Toolkit::Control::Property::BACKGROUND, blackDimmerMap);
Vector4 radius = Vector4::ZERO;
renderer.GetProperty(renderer.GetPropertyIndex(std::string("uCornerRadius"))).Get(radius);
- //Vector4 squreness = Vector4::ZERO;
- //renderer.GetProperty(renderer.GetPropertyIndex(std::string("uCornerSquareness"))).Get(squreness);
+ Vector4 squreness = Vector4::ZERO;
+ renderer.GetProperty(renderer.GetPropertyIndex(std::string("uCornerSquareness"))).Get(squreness);
Toolkit::Visual::Transform::Policy::Type policy;
renderer.GetProperty(renderer.GetPropertyIndex(std::string("uCornerRadiusPolicy"))).Get(policy);
DALI_TEST_CHECK(radius.z == 30.0f);
DALI_TEST_CHECK(radius.w == 30.0f);
- //DALI_TEST_CHECK(squreness.x == 0.3f);
- //DALI_TEST_CHECK(squreness.y == 0.3f);
- //DALI_TEST_CHECK(squreness.z == 0.3f);
- //DALI_TEST_CHECK(squreness.w == 0.3f);
+ DALI_TEST_CHECK(squreness.x == 0.7f);
+ DALI_TEST_CHECK(squreness.y == 0.7f);
+ DALI_TEST_CHECK(squreness.z == 0.7f);
+ DALI_TEST_CHECK(squreness.w == 0.7f);
END_TEST;
}
/**
* @brief The radius for the rounded corners of the control.
- * @details Name "cornerRadius", type Property::VECTOR4, animatable
+ * @details Name "cornerRadius", type Property::VECTOR4
* @note By default, it is Vector::ZERO.
* @note Applies to specific visuals inside the control.
* @see Dali::Toolkit::DevelVisual::Property::Type::CORNER_RADIUS
* @see Policy::Type
* @see Dali::Toolkit::DevelVisual::Property::Type::CORNER_RADIUS_POLICY
*/
- CORNER_RADIUS_POLICY
+ CORNER_RADIUS_POLICY,
+
+ /**
+ * @brief The squareness for the rounded corners of the control.
+ * @details Name "cornerSquareness", type Property::VECTOR4
+ * @note By default, it is Vector::ZERO.
+ * @note Applies to specific visuals inside the control.
+ * @see Dali::Toolkit::DevelVisual::Property::Type::CORNER_SQUARENESS
+ */
+ CORNER_SQUARENESS,
};
} // namespace Property
const PropertyRegistration Control::Impl::PROPERTY_29(typeRegistration, "accessibilityStates", Toolkit::DevelControl::Property::ACCESSIBILITY_STATES, Property::INTEGER, &Control::Impl::SetProperty, &Control::Impl::GetProperty);
const PropertyRegistration Control::Impl::PROPERTY_30(typeRegistration, "accessibilityIsModal", Toolkit::DevelControl::Property::ACCESSIBILITY_IS_MODAL, Property::BOOLEAN, &Control::Impl::SetProperty, &Control::Impl::GetProperty);
const PropertyRegistration Control::Impl::PROPERTY_31(typeRegistration, "offScreenRendering", Toolkit::DevelControl::Property::OFFSCREEN_RENDERING, Property::INTEGER, &Control::Impl::SetProperty, &Control::Impl::GetProperty);
-const PropertyRegistration Control::Impl::PROPERTY_32(typeRegistration, "cornerRadius", Toolkit::DevelControl::Property::CORNER_RADIUS, Property::VECTOR4, &Control::Impl::SetProperty, &Control::Impl::GetProperty);
-const PropertyRegistration Control::Impl::PROPERTY_33(typeRegistration, "cornerRadiusPolicy", Toolkit::DevelControl::Property::CORNER_RADIUS_POLICY, Property::INTEGER, &Control::Impl::SetProperty, &Control::Impl::GetProperty);
+const PropertyRegistration Control::Impl::PROPERTY_32(typeRegistration, "cornerRadius", Toolkit::DevelControl::Property::CORNER_RADIUS, Property::VECTOR4, &Control::Impl::SetProperty, &Control::Impl::GetProperty);
+const PropertyRegistration Control::Impl::PROPERTY_33(typeRegistration, "cornerRadiusPolicy", Toolkit::DevelControl::Property::CORNER_RADIUS_POLICY, Property::INTEGER, &Control::Impl::SetProperty, &Control::Impl::GetProperty);
+const PropertyRegistration Control::Impl::PROPERTY_34(typeRegistration, "cornerSquareness", Toolkit::DevelControl::Property::CORNER_SQUARENESS, Property::VECTOR4, &Control::Impl::SetProperty, &Control::Impl::GetProperty);
// clang-format on
mBackgroundColor(Color::TRANSPARENT),
mCornerRadius(Vector4::ZERO),
mCornerRadiusPolicy(Toolkit::Visual::Transform::Policy::Type::ABSOLUTE),
+ mCornerSquareness(Vector4::ZERO),
mRenderEffect(nullptr),
mStartingPinchScale(nullptr),
mMargin(0, 0, 0, 0),
Property::Map map;
map[Toolkit::DevelVisual::Property::CORNER_RADIUS] = mCornerRadius;
map[Toolkit::DevelVisual::Property::CORNER_RADIUS_POLICY] = mCornerRadiusPolicy;
+ map[Toolkit::DevelVisual::Property::CORNER_SQUARENESS] = mCornerSquareness;
mVisualData->EnableCornerPropertiesOverridden(visual, enable, map);
}
case Toolkit::DevelControl::Property::CORNER_RADIUS:
{
- Vector4 vector;
- if(value.Get(vector))
+ Vector4 radius;
+ if(value.Get(radius))
{
- controlImpl.mImpl->SetCornerRadius(vector, controlImpl.mImpl->mCornerRadiusPolicy);
+ controlImpl.mImpl->SetCornerRadius(radius, controlImpl.mImpl->mCornerRadiusPolicy, controlImpl.mImpl->mCornerSquareness);
}
break;
}
if(value.Get(policy))
{
controlImpl.mImpl->SetCornerRadius(controlImpl.mImpl->mCornerRadius,
- static_cast<Toolkit::Visual::Transform::Policy::Type>(policy));
+ static_cast<Toolkit::Visual::Transform::Policy::Type>(policy),
+ controlImpl.mImpl->mCornerSquareness);
+ }
+ break;
+ }
+
+ case Toolkit::DevelControl::Property::CORNER_SQUARENESS:
+ {
+ Vector4 squareness;
+ if(value.Get(squareness))
+ {
+ controlImpl.mImpl->SetCornerRadius(controlImpl.mImpl->mCornerRadius, controlImpl.mImpl->mCornerRadiusPolicy, squareness);
}
break;
}
value = static_cast<int32_t>(controlImpl.mImpl->mCornerRadiusPolicy);
break;
}
+
+ case Toolkit::DevelControl::Property::CORNER_SQUARENESS:
+ {
+ value = controlImpl.mImpl->mCornerSquareness;
+ break;
+ }
}
}
mOffScreenRenderingType = newType;
}
-void Control::Impl::SetCornerRadius(Vector4 vector, Toolkit::Visual::Transform::Policy::Type policy)
+void Control::Impl::SetCornerRadius(Vector4 radius, Toolkit::Visual::Transform::Policy::Type policy, Vector4 squareness)
{
- if(vector == mCornerRadius && policy == mCornerRadiusPolicy)
+ if(radius == mCornerRadius && policy == mCornerRadiusPolicy && squareness == mCornerSquareness)
{
return;
}
- mCornerRadius = vector;
+ mCornerRadius = radius;
mCornerRadiusPolicy = policy;
+ mCornerSquareness = squareness;
Property::Map map;
- map[Toolkit::DevelVisual::Property::CORNER_RADIUS] = vector;
+ map[Toolkit::DevelVisual::Property::CORNER_RADIUS] = radius;
map[Toolkit::DevelVisual::Property::CORNER_RADIUS_POLICY] = policy;
+ map[Toolkit::DevelVisual::Property::CORNER_SQUARENESS] = squareness;
RegisteredVisualContainer& visuals = mVisualData->mVisuals;
for(auto it = visuals.begin(); it != visuals.end(); it++)
/**
* Set corner radius to this control.
- * @param[in] vector Corner radius property value
+ * @param[in] radius Corner radius property value
* @param[in] policy Corner radius policy. Default value is ABSOLUTE.
+ * @param[in] squareness Corner squareness property value
*/
- void SetCornerRadius(Vector4 vector, Toolkit::Visual::Transform::Policy::Type policy);
+ void SetCornerRadius(Vector4 radius, Toolkit::Visual::Transform::Policy::Type policy, Vector4 squareness);
public:
Control& mControlImpl;
Vector4 mBackgroundColor; ///< The color of the background visual
Vector4 mCornerRadius; ///< The corner radius of this control
Toolkit::Visual::Transform::Policy::Type mCornerRadiusPolicy; ///< The corner radius policy of this control
+ Vector4 mCornerSquareness; ///< The corner squareness of this control
RenderEffectImplPtr mRenderEffect; ///< The render effect on this control
Vector3* mStartingPinchScale; ///< The scale when a pinch gesture starts, TODO: consider removing this
Extents mMargin; ///< The margin values
static const PropertyRegistration PROPERTY_31;
static const PropertyRegistration PROPERTY_32;
static const PropertyRegistration PROPERTY_33;
+ static const PropertyRegistration PROPERTY_34;
};
} // namespace Internal
if(cornerRadius != Vector4::ZERO)
{
int32_t cornerRadiusPolicy = ownerControl.GetProperty<int32_t>(Toolkit::DevelControl::Property::CORNER_RADIUS_POLICY);
+ Vector4 cornerSquareness = ownerControl.GetProperty<Vector4>(Toolkit::DevelControl::Property::CORNER_SQUARENESS);
Property::Map map;
map[Toolkit::DevelVisual::Property::CORNER_RADIUS] = cornerRadius;
map[Toolkit::DevelVisual::Property::CORNER_RADIUS_POLICY] = static_cast<Toolkit::Visual::Transform::Policy::Type>(cornerRadiusPolicy);
+ map[Toolkit::DevelVisual::Property::CORNER_SQUARENESS] = cornerSquareness;
SetCornerConstants(map);
}