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 "SkDrawText.h"
11 #include "SkAnimateMaker.h"
12 #include "SkCanvas.h"
13 #include "SkPaint.h"
14 
15 enum SkText_Properties {
16     SK_PROPERTY(length)
17 };
18 
19 #if SK_USE_CONDENSED_INFO == 0
20 
21 const SkMemberInfo SkText::fInfo[] = {
22     SK_MEMBER_PROPERTY(length, Int),
23     SK_MEMBER(text, String),
24     SK_MEMBER(x, Float),
25     SK_MEMBER(y, Float)
26 };
27 
28 #endif
29 
30 DEFINE_GET_MEMBER(SkText);
31 
SkText()32 SkText::SkText() : x(0), y(0) {
33 }
34 
~SkText()35 SkText::~SkText() {
36 }
37 
draw(SkAnimateMaker & maker)38 bool SkText::draw(SkAnimateMaker& maker) {
39     SkBoundableAuto boundable(this, maker);
40     maker.fCanvas->drawText(text.c_str(), text.size(), x, y, *maker.fPaint);
41     return false;
42 }
43 
44 #ifdef SK_DUMP_ENABLED
dump(SkAnimateMaker * maker)45 void SkText::dump(SkAnimateMaker* maker) {
46     INHERITED::dump(maker);
47 }
48 #endif
49 
getProperty(int index,SkScriptValue * value) const50 bool SkText::getProperty(int index, SkScriptValue* value) const {
51     SkASSERT(index == SK_PROPERTY(length));
52     value->fType = SkType_Int;
53     value->fOperand.fS32 = (int32_t) text.size();
54     return true;
55 }
56