11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/* 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project 41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * 51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file. 71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */ 81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawText.h" 110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkAnimateMaker.h" 120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkCanvas.h" 130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkPaint.h" 140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectenum SkText_Properties { 160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_PROPERTY(length) 170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#if SK_USE_CONDENSED_INFO == 0 200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkMemberInfo SkText::fInfo[] = { 220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER_PROPERTY(length, Int), 230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(text, String), 240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(x, Float), 250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SK_MEMBER(y, Float) 260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_GET_MEMBER(SkText); 310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkText::SkText() : x(0), y(0) { 330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectSkText::~SkText() { 360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkText::draw(SkAnimateMaker& maker) { 390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkBoundableAuto boundable(this, maker); 400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project maker.fCanvas->drawText(text.c_str(), text.size(), x, y, *maker.fPaint); 410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return false; 420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifdef SK_DUMP_ENABLED 450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectvoid SkText::dump(SkAnimateMaker* maker) { 460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project INHERITED::dump(maker); 470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectbool SkText::getProperty(int index, SkScriptValue* value) const { 510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkASSERT(index == SK_PROPERTY(length)); 520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project value->fType = SkType_Int; 530910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project value->fOperand.fS32 = (int32_t) text.size(); 540910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project return true; 550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project} 560910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 57