gfx/skia/trunk/src/views/SkViewPriv.cpp

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/gfx/skia/trunk/src/views/SkViewPriv.cpp	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,103 @@
     1.4 +
     1.5 +/*
     1.6 + * Copyright 2011 Google Inc.
     1.7 + *
     1.8 + * Use of this source code is governed by a BSD-style license that can be
     1.9 + * found in the LICENSE file.
    1.10 + */
    1.11 +#include "SkViewPriv.h"
    1.12 +
    1.13 +//////////////////////////////////////////////////////////////////////
    1.14 +
    1.15 +void SkView::Artist::draw(SkView* view, SkCanvas* canvas)
    1.16 +{
    1.17 +    SkASSERT(view && canvas);
    1.18 +    this->onDraw(view, canvas);
    1.19 +}
    1.20 +
    1.21 +void SkView::Artist::inflate(const SkDOM& dom, const SkDOM::Node* node)
    1.22 +{
    1.23 +    SkASSERT(&dom && node);
    1.24 +    this->onInflate(dom, node);
    1.25 +}
    1.26 +
    1.27 +void SkView::Artist::onInflate(const SkDOM&, const SkDOM::Node*)
    1.28 +{
    1.29 +    // subclass should override this as needed
    1.30 +}
    1.31 +
    1.32 +SkView::Artist* SkView::getArtist() const
    1.33 +{
    1.34 +    Artist_SkTagList* rec = (Artist_SkTagList*)this->findTagList(kViewArtist_SkTagList);
    1.35 +    SkASSERT(rec == NULL || rec->fArtist != NULL);
    1.36 +
    1.37 +    return rec ? rec->fArtist : NULL;
    1.38 +}
    1.39 +
    1.40 +SkView::Artist* SkView::setArtist(Artist* obj)
    1.41 +{
    1.42 +    if (obj == NULL)
    1.43 +    {
    1.44 +        this->removeTagList(kViewArtist_SkTagList);
    1.45 +    }
    1.46 +    else    // add/replace
    1.47 +    {
    1.48 +        Artist_SkTagList* rec = (Artist_SkTagList*)this->findTagList(kViewArtist_SkTagList);
    1.49 +
    1.50 +        if (rec)
    1.51 +            SkRefCnt_SafeAssign(rec->fArtist, obj);
    1.52 +        else
    1.53 +            this->addTagList(new Artist_SkTagList(obj));
    1.54 +    }
    1.55 +    return obj;
    1.56 +}
    1.57 +
    1.58 +////////////////////////////////////////////////////////////////////////////////
    1.59 +
    1.60 +void SkView::Layout::layoutChildren(SkView* parent)
    1.61 +{
    1.62 +    SkASSERT(parent);
    1.63 +    if (parent->width() > 0 && parent->height() > 0)
    1.64 +        this->onLayoutChildren(parent);
    1.65 +}
    1.66 +
    1.67 +void SkView::Layout::inflate(const SkDOM& dom, const SkDOM::Node* node)
    1.68 +{
    1.69 +    SkASSERT(&dom && node);
    1.70 +    this->onInflate(dom, node);
    1.71 +}
    1.72 +
    1.73 +void SkView::Layout::onInflate(const SkDOM&, const SkDOM::Node*)
    1.74 +{
    1.75 +    // subclass should override this as needed
    1.76 +}
    1.77 +
    1.78 +SkView::Layout* SkView::getLayout() const
    1.79 +{
    1.80 +    Layout_SkTagList* rec = (Layout_SkTagList*)this->findTagList(kViewLayout_SkTagList);
    1.81 +    SkASSERT(rec == NULL || rec->fLayout != NULL);
    1.82 +
    1.83 +    return rec ? rec->fLayout : NULL;
    1.84 +}
    1.85 +
    1.86 +SkView::Layout* SkView::setLayout(Layout* obj, bool invokeLayoutNow)
    1.87 +{
    1.88 +    if (obj == NULL)
    1.89 +    {
    1.90 +        this->removeTagList(kViewLayout_SkTagList);
    1.91 +    }
    1.92 +    else    // add/replace
    1.93 +    {
    1.94 +        Layout_SkTagList* rec = (Layout_SkTagList*)this->findTagList(kViewLayout_SkTagList);
    1.95 +
    1.96 +        if (rec)
    1.97 +            SkRefCnt_SafeAssign(rec->fLayout, obj);
    1.98 +        else
    1.99 +            this->addTagList(new Layout_SkTagList(obj));
   1.100 +    }
   1.101 +
   1.102 +    if (invokeLayoutNow)
   1.103 +        this->invokeLayout();
   1.104 +
   1.105 +    return obj;
   1.106 +}

mercurial