blob: 9b552c09def9b7890b2c6821942fc8574e315b12 [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
2/*
3 * Copyright 2006 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
reed@android.com8a1c16f2008-12-17 15:59:43 +00009
10#include "SkXMLAnimatorWriter.h"
11#include "SkAnimator.h"
12#include "SkAnimateMaker.h"
13#include "SkDisplayXMLParser.h"
14
15SkXMLAnimatorWriter::SkXMLAnimatorWriter(SkAnimator* animator) : fAnimator(animator)
16{
17 fParser = new SkDisplayXMLParser(*fAnimator->fMaker);
18}
19
20SkXMLAnimatorWriter::~SkXMLAnimatorWriter() {
21 delete fParser;
22}
23
24void SkXMLAnimatorWriter::onAddAttributeLen(const char name[], const char value[], size_t length)
25{
26 fParser->onAddAttributeLen(name, value, length);
27}
28
fmalitafe3f2602015-02-03 17:47:12 -080029void SkXMLAnimatorWriter::onAddText(const char text[])
30{
31 SkDebugf("not implemented: SkXMLAnimatorWriter::onAddText()\n");
32}
33
reed@android.com8a1c16f2008-12-17 15:59:43 +000034void SkXMLAnimatorWriter::onEndElement()
35{
36 Elem* elem = getEnd();
37 fParser->onEndElement(elem->fName.c_str());
38 doEnd(elem);
39}
40
41void SkXMLAnimatorWriter::onStartElementLen(const char name[], size_t length)
42{
43 doStart(name, length);
44 fParser->onStartElementLen(name, length);
45}
46
47void SkXMLAnimatorWriter::writeHeader()
48{
49}
50
51#ifdef SK_DEBUG
52#include "SkCanvas.h"
53#include "SkPaint.h"
54
55void SkXMLAnimatorWriter::UnitTest(SkCanvas* canvas)
56{
57 SkAnimator s;
58 SkXMLAnimatorWriter w(&s);
59 w.startElement("screenplay");
60 w.startElement("animateField");
61 w.addAttribute("field", "x1");
62 w.addAttribute("id", "to100");
63 w.addAttribute("from", "0");
64 w.addAttribute("to", "100");
65 w.addAttribute("dur", "1");
66 w.endElement();
67 w.startElement("event");
68 w.addAttribute("kind", "onLoad");
69 w.startElement("line");
70 w.addAttribute("id", "line");
71 w.addAttribute("x1", "-1");
72 w.addAttribute("y1", "20");
73 w.addAttribute("x2", "150");
74 w.addAttribute("y2", "40");
75 w.endElement();
76 w.startElement("apply");
77 w.addAttribute("animator", "to100");
78 w.addAttribute("scope", "line");
79 w.endElement();
80 w.endElement();
81 w.endElement();
82 SkPaint paint;
83 canvas->drawColor(SK_ColorWHITE);
84 s.draw(canvas, &paint, 0);
85}
86
87#endif