blob: 6d299b6b084be99a5a5915e91e34436967fb1e01 [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
29void SkXMLAnimatorWriter::onEndElement()
30{
31 Elem* elem = getEnd();
32 fParser->onEndElement(elem->fName.c_str());
33 doEnd(elem);
34}
35
36void SkXMLAnimatorWriter::onStartElementLen(const char name[], size_t length)
37{
38 doStart(name, length);
39 fParser->onStartElementLen(name, length);
40}
41
42void SkXMLAnimatorWriter::writeHeader()
43{
44}
45
46#ifdef SK_DEBUG
47#include "SkCanvas.h"
48#include "SkPaint.h"
49
50void SkXMLAnimatorWriter::UnitTest(SkCanvas* canvas)
51{
52 SkAnimator s;
53 SkXMLAnimatorWriter w(&s);
54 w.startElement("screenplay");
55 w.startElement("animateField");
56 w.addAttribute("field", "x1");
57 w.addAttribute("id", "to100");
58 w.addAttribute("from", "0");
59 w.addAttribute("to", "100");
60 w.addAttribute("dur", "1");
61 w.endElement();
62 w.startElement("event");
63 w.addAttribute("kind", "onLoad");
64 w.startElement("line");
65 w.addAttribute("id", "line");
66 w.addAttribute("x1", "-1");
67 w.addAttribute("y1", "20");
68 w.addAttribute("x2", "150");
69 w.addAttribute("y2", "40");
70 w.endElement();
71 w.startElement("apply");
72 w.addAttribute("animator", "to100");
73 w.addAttribute("scope", "line");
74 w.endElement();
75 w.endElement();
76 w.endElement();
77 SkPaint paint;
78 canvas->drawColor(SK_ColorWHITE);
79 s.draw(canvas, &paint, 0);
80}
81
82#endif
83