gfx/skia/trunk/src/animator/SkDrawTextBox.cpp

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     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  */
    10 #include "SkDrawTextBox.h"
    11 #include "SkAnimateMaker.h"
    12 #include "SkCanvas.h"
    13 #include "SkPaint.h"
    15 enum SkDrawTextBox_Properties {
    16     foo = 100,
    17     SK_PROPERTY(spacingAlign),
    18     SK_PROPERTY(mode)
    19 };
    22 #if SK_USE_CONDENSED_INFO == 0
    24 const SkMemberInfo SkDrawTextBox::fInfo[] = {
    25     SK_MEMBER_INHERITED,
    26     SK_MEMBER(mode, TextBoxMode),
    27     SK_MEMBER_ALIAS(spacingAdd, fSpacingAdd, Float),
    28     SK_MEMBER(spacingAlign, TextBoxAlign),
    29     SK_MEMBER_ALIAS(spacingMul, fSpacingMul, Float),
    30     SK_MEMBER_ALIAS(text, fText, String)
    31 };
    33 #endif
    35 DEFINE_GET_MEMBER(SkDrawTextBox);
    37 SkDrawTextBox::SkDrawTextBox()
    38 {
    39     fSpacingMul     = SK_Scalar1;
    40     fSpacingAdd     = 0;
    41     spacingAlign    = SkTextBox::kStart_SpacingAlign;
    42     mode            = SkTextBox::kLineBreak_Mode;
    43 }
    45 #ifdef SK_DUMP_ENABLED
    46 void SkDrawTextBox::dump(SkAnimateMaker* maker)
    47 {
    48     dumpBase(maker);
    49     dumpAttrs(maker);
    50     if (mode == 0)
    51         SkDebugf("mode=\"oneLine\" ");
    52     if (spacingAlign == 1)
    53         SkDebugf("spacingAlign=\"center\" ");
    54     else if (spacingAlign == 2)
    55         SkDebugf("spacingAlign=\"end\" ");
    56     SkDebugf("/>\n");
    57 }
    58 #endif
    60 bool SkDrawTextBox::getProperty(int index, SkScriptValue* value) const
    61 {
    62     return this->INHERITED::getProperty(index, value);
    63 }
    65 bool SkDrawTextBox::setProperty(int index, SkScriptValue& scriptValue)
    66 {
    67     return this->INHERITED::setProperty(index, scriptValue);
    68 }
    70 bool SkDrawTextBox::draw(SkAnimateMaker& maker)
    71 {
    72     SkTextBox   box;
    73     box.setMode((SkTextBox::Mode) mode);
    74     box.setSpacingAlign((SkTextBox::SpacingAlign) spacingAlign);
    75     box.setBox(fRect);
    76     box.setSpacing(fSpacingMul, fSpacingAdd);
    77     SkBoundableAuto boundable(this, maker);
    78     box.draw(maker.fCanvas, fText.c_str(), fText.size(), *maker.fPaint);
    79     return false;
    80 }

mercurial