Add an API that removes the Drawable registered with AddDrawable().
Change-Id: Icf5796ca03093d20f13e5fe12db8c75aa5965a7e
{
public:
CanvasRenderer( const Vector2& size )
- : mPixelBuffer( Devel::PixelBuffer::New(size.width, size.height, Dali::Pixel::RGBA8888) ),
+ : mDrawable(nullptr),
+ mPixelBuffer( Devel::PixelBuffer::New(size.width, size.height, Dali::Pixel::RGBA8888) ),
mSize(size),
mViewBox(size)
{
{
return false;
}
+ mDrawable = &drawable;
return true;
}
+ bool RemoveDrawable(Dali::CanvasRenderer::Drawable& drawable)
+ {
+ if (!drawable)
+ {
+ return false;
+ }
+ if (mDrawable == &drawable)
+ {
+ mDrawable = nullptr;
+ return true;
+ }
+ return false;
+ }
+
Devel::PixelBuffer GetPixelBuffer()
{
return mPixelBuffer;
}
public:
+ Dali::CanvasRenderer::Drawable* mDrawable;
Devel::PixelBuffer mPixelBuffer;
Vector2 mSize;
Vector2 mViewBox;
return Internal::Adaptor::GetImplementation(*this).AddDrawable(drawable);
}
+bool CanvasRenderer::RemoveDrawable(Dali::CanvasRenderer::Drawable& drawable)
+{
+ return Internal::Adaptor::GetImplementation(*this).RemoveDrawable(drawable);
+}
+
bool CanvasRenderer::SetSize(const Vector2& size)
{
return Internal::Adaptor::GetImplementation(*this).SetSize(size);
END_TEST;
}
+int UtcDaliCanvasViewRemoveP(void)
+{
+ ToolkitTestApplication application;
+ CanvasView canvasView = CanvasView::New(Vector2(100,100));
+ DALI_TEST_CHECK( canvasView );
+
+ Dali::CanvasRenderer::Shape shape = Dali::CanvasRenderer::Shape::New();
+
+ canvasView.AddDrawable(shape);
+
+ DALI_TEST_CHECK( canvasView.RemoveDrawable(shape) );
+
+ END_TEST;
+}
+
+int UtcDaliCanvasViewRemoveN(void)
+{
+ ToolkitTestApplication application;
+
+ CanvasView canvasView = CanvasView::New(Vector2(100,100));
+ DALI_TEST_CHECK( canvasView );
+
+ Dali::CanvasRenderer::Shape shape = Dali::CanvasRenderer::Shape::New();
+
+ DALI_TEST_CHECK( !canvasView.RemoveDrawable(shape) );
+
+ END_TEST;
+}
+
int UtcDaliCanvasViewChangeSizeP(void)
{
ToolkitTestApplication application;
Dali::Toolkit::GetImpl(*this).AddDrawable(drawable);
}
+bool CanvasView::RemoveDrawable(Dali::CanvasRenderer::Drawable& drawable)
+{
+ return Dali::Toolkit::GetImpl(*this).RemoveDrawable(drawable);
+}
+
CanvasView::CanvasView(Internal::CanvasView& implementation)
: Control(implementation)
{
/**
* @brief Add drawable object to the CanvasView.
* This method is similar to registration. The added shape is drawn on the inner canvas.
+ * @param[in] drawable the drawable object.
*/
void AddDrawable(Dali::CanvasRenderer::Drawable& drawable);
+ /**
+ * @brief Remove drawable object to the CanvasView.
+ * This method is similar to deregistration.
+ * @param[in] drawable the drawable object.
+ * @return Returns True when it's successful. False otherwise.
+ */
+ bool RemoveDrawable(Dali::CanvasRenderer::Drawable& drawable);
+
public: // Not intended for application developers
/// @cond internal
/**
return false;
}
+bool CanvasView::RemoveDrawable(Dali::CanvasRenderer::Drawable& drawable)
+{
+ if(mCanvasRenderer && mCanvasRenderer.RemoveDrawable(drawable))
+ {
+ return true;
+ }
+ return false;
+}
+
bool CanvasView::SetViewBox(const Vector2& viewBox)
{
if(mCanvasRenderer && mCanvasRenderer.SetViewBox(viewBox))
*/
static Property::Value GetProperty(BaseObject* object, Property::Index propertyIndex);
+ /**
+ * @copydoc Toolkit::Control::CanvasView::RemoveDrawable
+ */
+ bool RemoveDrawable(Dali::CanvasRenderer::Drawable& drawable);
+
private: // From Control
/**
* @copydoc Control::OnRelayout