a10742c69c
remove asserts for null pointers to references change var args signature to pointer instead of array R=mtklein@google.com, reed@android.com, reed@google.com, mtklein, reed Author: caryclark@google.com Review URL: https://codereview.chromium.org/577243002
104 lines
2.4 KiB
C++
104 lines
2.4 KiB
C++
|
|
/*
|
|
* Copyright 2011 Google Inc.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
#include "SkViewPriv.h"
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
void SkView::Artist::draw(SkView* view, SkCanvas* canvas)
|
|
{
|
|
SkASSERT(view && canvas);
|
|
this->onDraw(view, canvas);
|
|
}
|
|
|
|
void SkView::Artist::inflate(const SkDOM& dom, const SkDOM::Node* node)
|
|
{
|
|
SkASSERT(node);
|
|
this->onInflate(dom, node);
|
|
}
|
|
|
|
void SkView::Artist::onInflate(const SkDOM&, const SkDOM::Node*)
|
|
{
|
|
// subclass should override this as needed
|
|
}
|
|
|
|
SkView::Artist* SkView::getArtist() const
|
|
{
|
|
Artist_SkTagList* rec = (Artist_SkTagList*)this->findTagList(kViewArtist_SkTagList);
|
|
SkASSERT(rec == NULL || rec->fArtist != NULL);
|
|
|
|
return rec ? rec->fArtist : NULL;
|
|
}
|
|
|
|
SkView::Artist* SkView::setArtist(Artist* obj)
|
|
{
|
|
if (obj == NULL)
|
|
{
|
|
this->removeTagList(kViewArtist_SkTagList);
|
|
}
|
|
else // add/replace
|
|
{
|
|
Artist_SkTagList* rec = (Artist_SkTagList*)this->findTagList(kViewArtist_SkTagList);
|
|
|
|
if (rec)
|
|
SkRefCnt_SafeAssign(rec->fArtist, obj);
|
|
else
|
|
this->addTagList(new Artist_SkTagList(obj));
|
|
}
|
|
return obj;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
void SkView::Layout::layoutChildren(SkView* parent)
|
|
{
|
|
SkASSERT(parent);
|
|
if (parent->width() > 0 && parent->height() > 0)
|
|
this->onLayoutChildren(parent);
|
|
}
|
|
|
|
void SkView::Layout::inflate(const SkDOM& dom, const SkDOM::Node* node)
|
|
{
|
|
SkASSERT(node);
|
|
this->onInflate(dom, node);
|
|
}
|
|
|
|
void SkView::Layout::onInflate(const SkDOM&, const SkDOM::Node*)
|
|
{
|
|
// subclass should override this as needed
|
|
}
|
|
|
|
SkView::Layout* SkView::getLayout() const
|
|
{
|
|
Layout_SkTagList* rec = (Layout_SkTagList*)this->findTagList(kViewLayout_SkTagList);
|
|
SkASSERT(rec == NULL || rec->fLayout != NULL);
|
|
|
|
return rec ? rec->fLayout : NULL;
|
|
}
|
|
|
|
SkView::Layout* SkView::setLayout(Layout* obj, bool invokeLayoutNow)
|
|
{
|
|
if (obj == NULL)
|
|
{
|
|
this->removeTagList(kViewLayout_SkTagList);
|
|
}
|
|
else // add/replace
|
|
{
|
|
Layout_SkTagList* rec = (Layout_SkTagList*)this->findTagList(kViewLayout_SkTagList);
|
|
|
|
if (rec)
|
|
SkRefCnt_SafeAssign(rec->fLayout, obj);
|
|
else
|
|
this->addTagList(new Layout_SkTagList(obj));
|
|
}
|
|
|
|
if (invokeLayoutNow)
|
|
this->invokeLayout();
|
|
|
|
return obj;
|
|
}
|