michael@0: michael@0: /* michael@0: * Copyright 2006 The Android Open Source Project michael@0: * michael@0: * Use of this source code is governed by a BSD-style license that can be michael@0: * found in the LICENSE file. michael@0: */ michael@0: michael@0: michael@0: #include "SkXMLAnimatorWriter.h" michael@0: #include "SkAnimator.h" michael@0: #include "SkAnimateMaker.h" michael@0: #include "SkDisplayXMLParser.h" michael@0: michael@0: SkXMLAnimatorWriter::SkXMLAnimatorWriter(SkAnimator* animator) : fAnimator(animator) michael@0: { michael@0: fParser = new SkDisplayXMLParser(*fAnimator->fMaker); michael@0: } michael@0: michael@0: SkXMLAnimatorWriter::~SkXMLAnimatorWriter() { michael@0: delete fParser; michael@0: } michael@0: michael@0: void SkXMLAnimatorWriter::onAddAttributeLen(const char name[], const char value[], size_t length) michael@0: { michael@0: fParser->onAddAttributeLen(name, value, length); michael@0: } michael@0: michael@0: void SkXMLAnimatorWriter::onEndElement() michael@0: { michael@0: Elem* elem = getEnd(); michael@0: fParser->onEndElement(elem->fName.c_str()); michael@0: doEnd(elem); michael@0: } michael@0: michael@0: void SkXMLAnimatorWriter::onStartElementLen(const char name[], size_t length) michael@0: { michael@0: doStart(name, length); michael@0: fParser->onStartElementLen(name, length); michael@0: } michael@0: michael@0: void SkXMLAnimatorWriter::writeHeader() michael@0: { michael@0: } michael@0: michael@0: #ifdef SK_DEBUG michael@0: #include "SkCanvas.h" michael@0: #include "SkPaint.h" michael@0: michael@0: void SkXMLAnimatorWriter::UnitTest(SkCanvas* canvas) michael@0: { michael@0: SkAnimator s; michael@0: SkXMLAnimatorWriter w(&s); michael@0: w.startElement("screenplay"); michael@0: w.startElement("animateField"); michael@0: w.addAttribute("field", "x1"); michael@0: w.addAttribute("id", "to100"); michael@0: w.addAttribute("from", "0"); michael@0: w.addAttribute("to", "100"); michael@0: w.addAttribute("dur", "1"); michael@0: w.endElement(); michael@0: w.startElement("event"); michael@0: w.addAttribute("kind", "onLoad"); michael@0: w.startElement("line"); michael@0: w.addAttribute("id", "line"); michael@0: w.addAttribute("x1", "-1"); michael@0: w.addAttribute("y1", "20"); michael@0: w.addAttribute("x2", "150"); michael@0: w.addAttribute("y2", "40"); michael@0: w.endElement(); michael@0: w.startElement("apply"); michael@0: w.addAttribute("animator", "to100"); michael@0: w.addAttribute("scope", "line"); michael@0: w.endElement(); michael@0: w.endElement(); michael@0: w.endElement(); michael@0: SkPaint paint; michael@0: canvas->drawColor(SK_ColorWHITE); michael@0: s.draw(canvas, &paint, 0); michael@0: } michael@0: michael@0: #endif