| Index: src/views/SkViewInflate.cpp
|
| diff --git a/src/views/SkViewInflate.cpp b/src/views/SkViewInflate.cpp
|
| deleted file mode 100644
|
| index 8418fb0e720517dae2cfc0f231827c88993b4c0a..0000000000000000000000000000000000000000
|
| --- a/src/views/SkViewInflate.cpp
|
| +++ /dev/null
|
| @@ -1,145 +0,0 @@
|
| -
|
| -/*
|
| - * 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 "SkViewInflate.h"
|
| -#include "SkView.h"
|
| -#include <stdio.h>
|
| -
|
| -SkViewInflate::SkViewInflate() : fIDs(kMinIDStrAlloc), fStrings(kMinIDStrAlloc)
|
| -{
|
| -}
|
| -
|
| -SkViewInflate::~SkViewInflate()
|
| -{
|
| -}
|
| -
|
| -void SkViewInflate::rInflate(const SkDOM& dom, const SkDOM::Node* node, SkView* parent)
|
| -{
|
| - const char* str = dom.findAttr(node, "id");
|
| - if (str)
|
| - fIDs.set(str, parent);
|
| -
|
| - const SkDOM::Node* child = dom.getFirstChild(node);
|
| - while (child)
|
| - {
|
| - SkView* view = this->createView(dom, child);
|
| - if (view)
|
| - {
|
| - this->rInflate(dom, child, view);
|
| - parent->attachChildToFront(view)->unref();
|
| - }
|
| - else
|
| - {
|
| - const char* name = dom.getName(child);
|
| - const char* target;
|
| -
|
| - if (!strcmp(name, "listenTo") && (target = dom.findAttr(child, "target")) != nullptr)
|
| - this->addIDStr(&fListenTo, parent, target);
|
| -
|
| - if (!strcmp(name, "broadcastTo") && (target = dom.findAttr(child, "target")) != nullptr)
|
| - this->addIDStr(&fBroadcastTo, parent, target);
|
| - }
|
| - child = dom.getNextSibling(child);
|
| - }
|
| -
|
| - parent->setVisibleP(true);
|
| - this->inflateView(parent, dom, node);
|
| -}
|
| -
|
| -void SkViewInflate::inflateView(SkView* view, const SkDOM& dom, const SkDOM::Node* node)
|
| -{
|
| - // called after all of view's children have been instantiated.
|
| - // this may be overridden by a subclass, to load in layout or other helpers
|
| - // they should call through to us (INHERITED) before or after their patch
|
| - view->inflate(dom, node);
|
| -}
|
| -
|
| -SkView* SkViewInflate::inflate(const SkDOM& dom, const SkDOM::Node* node, SkView* root)
|
| -{
|
| - fIDs.reset();
|
| -
|
| - if (root == nullptr)
|
| - {
|
| - root = this->createView(dom, node);
|
| - if (root == nullptr)
|
| - {
|
| - printf("createView returned nullptr on <%s>\n", dom.getName(node));
|
| - return nullptr;
|
| - }
|
| - }
|
| - this->rInflate(dom, node, root);
|
| -
|
| - // resolve listeners and broadcasters
|
| - {
|
| - SkView* target;
|
| - const IDStr* iter = fListenTo.begin();
|
| - const IDStr* stop = fListenTo.end();
|
| - for (; iter < stop; iter++)
|
| - {
|
| - if (fIDs.find(iter->fStr, &target))
|
| - target->addListenerID(iter->fView->getSinkID());
|
| - }
|
| -
|
| - iter = fBroadcastTo.begin();
|
| - stop = fBroadcastTo.end();
|
| - for (; iter < stop; iter++)
|
| - {
|
| - if (fIDs.find(iter->fStr, &target))
|
| - iter->fView->addListenerID(target->getSinkID());
|
| - }
|
| - }
|
| -
|
| - // now that the tree is built, give everyone a shot at the ID dict
|
| - root->postInflate(fIDs);
|
| - return root;
|
| -}
|
| -
|
| -SkView* SkViewInflate::inflate(const char xml[], size_t len, SkView* root)
|
| -{
|
| - SkDOM dom;
|
| - const SkDOM::Node* node = dom.build(xml, len);
|
| -
|
| - return node ? this->inflate(dom, node, root) : nullptr;
|
| -}
|
| -
|
| -SkView* SkViewInflate::findViewByID(const char id[]) const
|
| -{
|
| - SkASSERT(id);
|
| - SkView* view;
|
| - return fIDs.find(id, &view) ? view : nullptr;
|
| -}
|
| -
|
| -SkView* SkViewInflate::createView(const SkDOM& dom, const SkDOM::Node* node)
|
| -{
|
| - if (!strcmp(dom.getName(node), "view"))
|
| - return new SkView;
|
| - return nullptr;
|
| -}
|
| -
|
| -void SkViewInflate::addIDStr(SkTDArray<IDStr>* list, SkView* view, const char* str)
|
| -{
|
| - size_t len = strlen(str) + 1;
|
| - IDStr* pair = list->append();
|
| - pair->fView = view;
|
| - pair->fStr = (char*)fStrings.alloc(len, SkChunkAlloc::kThrow_AllocFailType);
|
| - memcpy(pair->fStr, str, len);
|
| -}
|
| -
|
| -#ifdef SK_DEBUG
|
| -void SkViewInflate::dump() const
|
| -{
|
| - const IDStr* iter = fListenTo.begin();
|
| - const IDStr* stop = fListenTo.end();
|
| - for (; iter < stop; iter++)
|
| - SkDebugf("inflate: listenTo(\"%s\")\n", iter->fStr);
|
| -
|
| - iter = fBroadcastTo.begin();
|
| - stop = fBroadcastTo.end();
|
| - for (; iter < stop; iter++)
|
| - SkDebugf("inflate: broadcastFrom(\"%s\")\n", iter->fStr);
|
| -}
|
| -#endif
|
|
|