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