| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "ui/gfx/canvas.h" | 5 #include "ui/gfx/canvas.h" | 
| 6 | 6 | 
| 7 #include <cmath> | 7 #include <cmath> | 
| 8 #include <limits> | 8 #include <limits> | 
| 9 | 9 | 
| 10 #include "base/i18n/rtl.h" | 10 #include "base/i18n/rtl.h" | 
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 91                            int flags) { | 91                            int flags) { | 
| 92   float fractional_width = *width; | 92   float fractional_width = *width; | 
| 93   float factional_height = *height; | 93   float factional_height = *height; | 
| 94   SizeStringFloat(text, font_list, &fractional_width, | 94   SizeStringFloat(text, font_list, &fractional_width, | 
| 95                   &factional_height, line_height, flags); | 95                   &factional_height, line_height, flags); | 
| 96   *width = std::ceil(fractional_width); | 96   *width = std::ceil(fractional_width); | 
| 97   *height = std::ceil(factional_height); | 97   *height = std::ceil(factional_height); | 
| 98 } | 98 } | 
| 99 | 99 | 
| 100 // static | 100 // static | 
| 101 void Canvas::SizeStringInt(const base::string16& text, |  | 
| 102                            const Font& font, |  | 
| 103                            int* width, |  | 
| 104                            int* height, |  | 
| 105                            int line_height, |  | 
| 106                            int flags) { |  | 
| 107   SizeStringInt(text, FontList(font), width, height, line_height, flags); |  | 
| 108 } |  | 
| 109 |  | 
| 110 // static |  | 
| 111 int Canvas::GetStringWidth(const base::string16& text, | 101 int Canvas::GetStringWidth(const base::string16& text, | 
| 112                            const FontList& font_list) { | 102                            const FontList& font_list) { | 
| 113   int width = 0, height = 0; | 103   int width = 0, height = 0; | 
| 114   SizeStringInt(text, font_list, &width, &height, 0, NO_ELLIPSIS); | 104   SizeStringInt(text, font_list, &width, &height, 0, NO_ELLIPSIS); | 
| 115   return width; | 105   return width; | 
| 116 } | 106 } | 
| 117 | 107 | 
| 118 // static | 108 // static | 
| 119 float Canvas::GetStringWidthF(const base::string16& text, | 109 float Canvas::GetStringWidthF(const base::string16& text, | 
| 120                               const FontList& font_list) { | 110                               const FontList& font_list) { | 
| 121   float width = 0, height = 0; | 111   float width = 0, height = 0; | 
| 122   SizeStringFloat(text, font_list, &width, &height, 0, NO_ELLIPSIS); | 112   SizeStringFloat(text, font_list, &width, &height, 0, NO_ELLIPSIS); | 
| 123   return width; | 113   return width; | 
| 124 } | 114 } | 
| 125 | 115 | 
| 126 // static | 116 // static | 
| 127 int Canvas::GetStringWidth(const base::string16& text, const Font& font) { | 117 int Canvas::GetStringWidth(const base::string16& text, const Font& font) { | 
| 128   int width = 0, height = 0; | 118   int width = 0, height = 0; | 
| 129   SizeStringInt(text, FontList(font), &width, &height, 0, NO_ELLIPSIS); | 119   SizeStringInt(text, FontList(font), &width, &height, 0, NO_ELLIPSIS); | 
| 130   return width; | 120   return width; | 
| 131 } | 121 } | 
| 132 | 122 | 
| 133 // static | 123 // static | 
| 134 int Canvas::DefaultCanvasTextAlignment() { | 124 int Canvas::DefaultCanvasTextAlignment() { | 
| 135   return base::i18n::IsRTL() ? TEXT_ALIGN_RIGHT : TEXT_ALIGN_LEFT; | 125   return base::i18n::IsRTL() ? TEXT_ALIGN_RIGHT : TEXT_ALIGN_LEFT; | 
| 136 } | 126 } | 
| 137 | 127 | 
| 138 void Canvas::DrawStringWithHalo(const base::string16& text, |  | 
| 139                                 const Font& font, |  | 
| 140                                 SkColor text_color, |  | 
| 141                                 SkColor halo_color_in, |  | 
| 142                                 int x, |  | 
| 143                                 int y, |  | 
| 144                                 int w, |  | 
| 145                                 int h, |  | 
| 146                                 int flags) { |  | 
| 147   DrawStringRectWithHalo(text, FontList(font), text_color, halo_color_in, |  | 
| 148                          Rect(x, y, w, h), flags); |  | 
| 149 } |  | 
| 150 |  | 
| 151 ImageSkiaRep Canvas::ExtractImageRep() const { | 128 ImageSkiaRep Canvas::ExtractImageRep() const { | 
| 152   const SkBitmap& device_bitmap = canvas_->getDevice()->accessBitmap(false); | 129   const SkBitmap& device_bitmap = canvas_->getDevice()->accessBitmap(false); | 
| 153 | 130 | 
| 154   // Make a bitmap to return, and a canvas to draw into it. We don't just want | 131   // Make a bitmap to return, and a canvas to draw into it. We don't just want | 
| 155   // to call extractSubset or the copy constructor, since we want an actual copy | 132   // to call extractSubset or the copy constructor, since we want an actual copy | 
| 156   // of the bitmap. | 133   // of the bitmap. | 
| 157   SkBitmap result; | 134   SkBitmap result; | 
| 158   device_bitmap.copyTo(&result, SkBitmap::kARGB_8888_Config); | 135   device_bitmap.copyTo(&result, SkBitmap::kARGB_8888_Config); | 
| 159 | 136 | 
| 160   return ImageSkiaRep(result, image_scale_); | 137   return ImageSkiaRep(result, image_scale_); | 
| (...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 494 | 471 | 
| 495 void Canvas::DrawStringRectWithFlags(const base::string16& text, | 472 void Canvas::DrawStringRectWithFlags(const base::string16& text, | 
| 496                                      const FontList& font_list, | 473                                      const FontList& font_list, | 
| 497                                      SkColor color, | 474                                      SkColor color, | 
| 498                                      const Rect& display_rect, | 475                                      const Rect& display_rect, | 
| 499                                      int flags) { | 476                                      int flags) { | 
| 500   DrawStringRectWithShadows(text, font_list, color, display_rect, 0, flags, | 477   DrawStringRectWithShadows(text, font_list, color, display_rect, 0, flags, | 
| 501                             ShadowValues()); | 478                             ShadowValues()); | 
| 502 } | 479 } | 
| 503 | 480 | 
| 504 void Canvas::DrawStringInt(const base::string16& text, |  | 
| 505                            const Font& font, |  | 
| 506                            SkColor color, |  | 
| 507                            int x, |  | 
| 508                            int y, |  | 
| 509                            int w, |  | 
| 510                            int h) { |  | 
| 511   DrawStringInt(text, font, color, x, y, w, h, DefaultCanvasTextAlignment()); |  | 
| 512 } |  | 
| 513 |  | 
| 514 void Canvas::DrawStringInt(const base::string16& text, |  | 
| 515                            const Font& font, |  | 
| 516                            SkColor color, |  | 
| 517                            const Rect& display_rect) { |  | 
| 518   DrawStringInt(text, font, color, display_rect.x(), display_rect.y(), |  | 
| 519                 display_rect.width(), display_rect.height()); |  | 
| 520 } |  | 
| 521 |  | 
| 522 void Canvas::DrawStringInt(const base::string16& text, |  | 
| 523                            const Font& font, |  | 
| 524                            SkColor color, |  | 
| 525                            int x, |  | 
| 526                            int y, |  | 
| 527                            int w, |  | 
| 528                            int h, |  | 
| 529                            int flags) { |  | 
| 530   DrawStringWithShadows(text, font, color, Rect(x, y, w, h), 0, flags, |  | 
| 531                         ShadowValues()); |  | 
| 532 } |  | 
| 533 |  | 
| 534 void Canvas::DrawStringWithShadows(const base::string16& text, |  | 
| 535                                    const Font& font, |  | 
| 536                                    SkColor color, |  | 
| 537                                    const Rect& text_bounds, |  | 
| 538                                    int line_height, |  | 
| 539                                    int flags, |  | 
| 540                                    const ShadowValues& shadows) { |  | 
| 541   DrawStringRectWithShadows(text, FontList(font), color, text_bounds, |  | 
| 542                             line_height, flags, shadows); |  | 
| 543 } |  | 
| 544 |  | 
| 545 void Canvas::TileImageInt(const ImageSkia& image, | 481 void Canvas::TileImageInt(const ImageSkia& image, | 
| 546                           int x, | 482                           int x, | 
| 547                           int y, | 483                           int y, | 
| 548                           int w, | 484                           int w, | 
| 549                           int h) { | 485                           int h) { | 
| 550   TileImageInt(image, 0, 0, x, y, w, h); | 486   TileImageInt(image, 0, 0, x, y, w, h); | 
| 551 } | 487 } | 
| 552 | 488 | 
| 553 void Canvas::TileImageInt(const ImageSkia& image, | 489 void Canvas::TileImageInt(const ImageSkia& image, | 
| 554                           int src_x, | 490                           int src_x, | 
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 649 | 585 | 
| 650     float bitmap_scale = image_rep.scale(); | 586     float bitmap_scale = image_rep.scale(); | 
| 651     if (scale_x < bitmap_scale || scale_y < bitmap_scale) | 587     if (scale_x < bitmap_scale || scale_y < bitmap_scale) | 
| 652       const_cast<SkBitmap&>(image_rep.sk_bitmap()).buildMipMap(); | 588       const_cast<SkBitmap&>(image_rep.sk_bitmap()).buildMipMap(); | 
| 653   } | 589   } | 
| 654 | 590 | 
| 655   return image_rep; | 591   return image_rep; | 
| 656 } | 592 } | 
| 657 | 593 | 
| 658 }  // namespace gfx | 594 }  // namespace gfx | 
| OLD | NEW | 
|---|