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 "SkTextToPath.h"
11#include "SkAnimateMaker.h"
12#include "SkDrawPaint.h"
13#include "SkDrawPath.h"
14#include "SkDrawText.h"
15#include "SkPaint.h"
16
17#if SK_USE_CONDENSED_INFO == 0
18
19const SkMemberInfo SkTextToPath::fInfo[] = {
20    SK_MEMBER(paint, Paint),
21    SK_MEMBER(path, Path),
22    SK_MEMBER(text, Text)
23};
24
25#endif
26
27DEFINE_GET_MEMBER(SkTextToPath);
28
29SkTextToPath::SkTextToPath() : paint(NULL), path(NULL), text(NULL) {
30}
31
32bool SkTextToPath::draw(SkAnimateMaker& maker) {
33    path->draw(maker);
34    return false;
35}
36
37void SkTextToPath::onEndElement(SkAnimateMaker& maker) {
38    if (paint == NULL || path == NULL || text == NULL) {
39        // !!! add error message here
40        maker.setErrorCode(SkDisplayXMLParserError::kErrorInAttributeValue);
41        return;
42    }
43    SkPaint realPaint;
44    paint->setupPaint(&realPaint);
45    realPaint.getTextPath(text->getText(), text->getSize(), text->x,
46        text->y, &path->getPath());
47}
48