|
1 |
|
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 |
|
9 |
|
10 #include "SkXMLAnimatorWriter.h" |
|
11 #include "SkAnimator.h" |
|
12 #include "SkAnimateMaker.h" |
|
13 #include "SkDisplayXMLParser.h" |
|
14 |
|
15 SkXMLAnimatorWriter::SkXMLAnimatorWriter(SkAnimator* animator) : fAnimator(animator) |
|
16 { |
|
17 fParser = new SkDisplayXMLParser(*fAnimator->fMaker); |
|
18 } |
|
19 |
|
20 SkXMLAnimatorWriter::~SkXMLAnimatorWriter() { |
|
21 delete fParser; |
|
22 } |
|
23 |
|
24 void SkXMLAnimatorWriter::onAddAttributeLen(const char name[], const char value[], size_t length) |
|
25 { |
|
26 fParser->onAddAttributeLen(name, value, length); |
|
27 } |
|
28 |
|
29 void SkXMLAnimatorWriter::onEndElement() |
|
30 { |
|
31 Elem* elem = getEnd(); |
|
32 fParser->onEndElement(elem->fName.c_str()); |
|
33 doEnd(elem); |
|
34 } |
|
35 |
|
36 void SkXMLAnimatorWriter::onStartElementLen(const char name[], size_t length) |
|
37 { |
|
38 doStart(name, length); |
|
39 fParser->onStartElementLen(name, length); |
|
40 } |
|
41 |
|
42 void SkXMLAnimatorWriter::writeHeader() |
|
43 { |
|
44 } |
|
45 |
|
46 #ifdef SK_DEBUG |
|
47 #include "SkCanvas.h" |
|
48 #include "SkPaint.h" |
|
49 |
|
50 void 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 |