blob: e7e5facabb0a7ae248e0de09b76f5689d930043c [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 "SkDrawText.h"
11#include "SkAnimateMaker.h"
12#include "SkCanvas.h"
13#include "SkPaint.h"
14
15enum SkText_Properties {
16 SK_PROPERTY(length)
17};
18
19#if SK_USE_CONDENSED_INFO == 0
20
21const 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
30DEFINE_GET_MEMBER(SkText);
31
32SkText::SkText() : x(0), y(0) {
33}
34
35SkText::~SkText() {
36}
37
38bool 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
45void SkText::dump(SkAnimateMaker* maker) {
46 INHERITED::dump(maker);
47}
48#endif
49
50bool 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}