diff options
Diffstat (limited to 'src/views/animated/SkStaticTextView.cpp')
-rw-r--r-- | src/views/animated/SkStaticTextView.cpp | 184 |
1 files changed, 92 insertions, 92 deletions
diff --git a/src/views/animated/SkStaticTextView.cpp b/src/views/animated/SkStaticTextView.cpp index 79eecd6cbd..8ab11835d7 100644 --- a/src/views/animated/SkStaticTextView.cpp +++ b/src/views/animated/SkStaticTextView.cpp @@ -21,11 +21,11 @@ static void assert_no_attr(const SkDOM& dom, const SkDOM::Node* node, const char SkStaticTextView::SkStaticTextView() { - fMargin.set(0, 0); - fMode = kFixedSize_Mode; - fSpacingAlign = SkTextBox::kStart_SpacingAlign; - -// init_skin_paint(kStaticText_SkinEnum, &fPaint); + fMargin.set(0, 0); + fMode = kFixedSize_Mode; + fSpacingAlign = SkTextBox::kStart_SpacingAlign; + +// init_skin_paint(kStaticText_SkinEnum, &fPaint); } SkStaticTextView::~SkStaticTextView() @@ -34,155 +34,155 @@ SkStaticTextView::~SkStaticTextView() void SkStaticTextView::computeSize() { - if (fMode == kAutoWidth_Mode) - { - SkScalar width = fPaint.measureText(fText.c_str(), fText.size()); - this->setWidth(width + fMargin.fX * 2); - } - else if (fMode == kAutoHeight_Mode) - { - SkScalar width = this->width() - fMargin.fX * 2; - int lines = width > 0 ? SkTextLineBreaker::CountLines(fText.c_str(), fText.size(), fPaint, width) : 0; + if (fMode == kAutoWidth_Mode) + { + SkScalar width = fPaint.measureText(fText.c_str(), fText.size()); + this->setWidth(width + fMargin.fX * 2); + } + else if (fMode == kAutoHeight_Mode) + { + SkScalar width = this->width() - fMargin.fX * 2; + int lines = width > 0 ? SkTextLineBreaker::CountLines(fText.c_str(), fText.size(), fPaint, width) : 0; - this->setHeight(lines * fPaint.getFontSpacing() + fMargin.fY * 2); - } + this->setHeight(lines * fPaint.getFontSpacing() + fMargin.fY * 2); + } } void SkStaticTextView::setMode(Mode mode) { - SkASSERT((unsigned)mode < kModeCount); + SkASSERT((unsigned)mode < kModeCount); - if (fMode != mode) - { - fMode = SkToU8(mode); - this->computeSize(); - } + if (fMode != mode) + { + fMode = SkToU8(mode); + this->computeSize(); + } } void SkStaticTextView::setSpacingAlign(SkTextBox::SpacingAlign align) { - fSpacingAlign = SkToU8(align); - this->inval(NULL); + fSpacingAlign = SkToU8(align); + this->inval(NULL); } void SkStaticTextView::getMargin(SkPoint* margin) const { - if (margin) - *margin = fMargin; + if (margin) + *margin = fMargin; } void SkStaticTextView::setMargin(SkScalar dx, SkScalar dy) { - if (fMargin.fX != dx || fMargin.fY != dy) - { - fMargin.set(dx, dy); - this->computeSize(); - this->inval(NULL); - } + if (fMargin.fX != dx || fMargin.fY != dy) + { + fMargin.set(dx, dy); + this->computeSize(); + this->inval(NULL); + } } size_t SkStaticTextView::getText(SkString* text) const { - if (text) - *text = fText; - return fText.size(); + if (text) + *text = fText; + return fText.size(); } size_t SkStaticTextView::getText(char text[]) const { - if (text) - memcpy(text, fText.c_str(), fText.size()); - return fText.size(); + if (text) + memcpy(text, fText.c_str(), fText.size()); + return fText.size(); } void SkStaticTextView::setText(const SkString& text) { - this->setText(text.c_str(), text.size()); + this->setText(text.c_str(), text.size()); } void SkStaticTextView::setText(const char text[]) { - if (text == NULL) - text = ""; - this->setText(text, strlen(text)); + if (text == NULL) + text = ""; + this->setText(text, strlen(text)); } void SkStaticTextView::setText(const char text[], size_t len) { - if (!fText.equals(text, len)) - { - fText.set(text, len); - this->computeSize(); - this->inval(NULL); - } + if (!fText.equals(text, len)) + { + fText.set(text, len); + this->computeSize(); + this->inval(NULL); + } } void SkStaticTextView::getPaint(SkPaint* paint) const { - if (paint) - *paint = fPaint; + if (paint) + *paint = fPaint; } void SkStaticTextView::setPaint(const SkPaint& paint) { - if (fPaint != paint) - { - fPaint = paint; - this->computeSize(); - this->inval(NULL); - } + if (fPaint != paint) + { + fPaint = paint; + this->computeSize(); + this->inval(NULL); + } } void SkStaticTextView::onDraw(SkCanvas* canvas) { - this->INHERITED::onDraw(canvas); + this->INHERITED::onDraw(canvas); - if (fText.isEmpty()) - return; + if (fText.isEmpty()) + return; - SkTextBox box; + SkTextBox box; - box.setMode(fMode == kAutoWidth_Mode ? SkTextBox::kOneLine_Mode : SkTextBox::kLineBreak_Mode); - box.setSpacingAlign(this->getSpacingAlign()); - box.setBox(fMargin.fX, fMargin.fY, this->width() - fMargin.fX, this->height() - fMargin.fY); - box.draw(canvas, fText.c_str(), fText.size(), fPaint); + box.setMode(fMode == kAutoWidth_Mode ? SkTextBox::kOneLine_Mode : SkTextBox::kLineBreak_Mode); + box.setSpacingAlign(this->getSpacingAlign()); + box.setBox(fMargin.fX, fMargin.fY, this->width() - fMargin.fX, this->height() - fMargin.fY); + box.draw(canvas, fText.c_str(), fText.size(), fPaint); } void SkStaticTextView::onInflate(const SkDOM& dom, const SkDOM::Node* node) { if (false) { // avoid bit rot, suppress warning - this->INHERITED::onInflate(dom, node); - - int index; - if ((index = dom.findList(node, "mode", "fixed,auto-width,auto-height")) >= 0) - this->setMode((Mode)index); - else - assert_no_attr(dom, node, "mode"); - - if ((index = dom.findList(node, "spacing-align", "start,center,end")) >= 0) - this->setSpacingAlign((SkTextBox::SpacingAlign)index); - else - assert_no_attr(dom, node, "spacing-align"); - - SkScalar s[2]; - if (dom.findScalars(node, "margin", s, 2)) - this->setMargin(s[0], s[1]); - else - assert_no_attr(dom, node, "margin"); - - const char* text = dom.findAttr(node, "text"); - if (text) - this->setText(text); - - if ((node = dom.getFirstChild(node, "paint")) != NULL && - (node = dom.getFirstChild(node, "screenplay")) != NULL) - { + this->INHERITED::onInflate(dom, node); + + int index; + if ((index = dom.findList(node, "mode", "fixed,auto-width,auto-height")) >= 0) + this->setMode((Mode)index); + else + assert_no_attr(dom, node, "mode"); + + if ((index = dom.findList(node, "spacing-align", "start,center,end")) >= 0) + this->setSpacingAlign((SkTextBox::SpacingAlign)index); + else + assert_no_attr(dom, node, "spacing-align"); + + SkScalar s[2]; + if (dom.findScalars(node, "margin", s, 2)) + this->setMargin(s[0], s[1]); + else + assert_no_attr(dom, node, "margin"); + + const char* text = dom.findAttr(node, "text"); + if (text) + this->setText(text); + + if ((node = dom.getFirstChild(node, "paint")) != NULL && + (node = dom.getFirstChild(node, "screenplay")) != NULL) + { // FIXME: Including inflate_paint causes Windows build to fail -- it complains // that SKListView::SkListView is undefined. #if 0 - inflate_paint(dom, node, &fPaint); + inflate_paint(dom, node, &fPaint); #endif - } + } } } |