| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "SkAnnotation.h" | 8 #include "SkAnnotation.h" |
| 9 #include "SkData.h" | 9 #include "SkData.h" |
| 10 #include "gm.h" | 10 #include "gm.h" |
| 11 | 11 |
| 12 static void draw_url_annotated_text_with_box( | 12 static void draw_url_annotated_text_with_box( |
| 13 SkCanvas* canvas, const void* text, | 13 SkCanvas* canvas, const void* text, |
| 14 SkScalar x, SkScalar y, const SkPaint& paint, const char* url) { | 14 SkScalar x, SkScalar y, const SkPaint& paint, const char* url) { |
| 15 size_t byteLength = strlen(static_cast<const char*>(text)); | 15 size_t byteLength = strlen(static_cast<const char*>(text)); |
| 16 SkRect bounds; | 16 SkRect bounds; |
| 17 (void)paint.measureText(text, byteLength, &bounds); | 17 (void)paint.measureText(text, byteLength, &bounds); |
| 18 bounds.offset(x, y); | 18 bounds.offset(x, y); |
| 19 SkAutoTUnref<SkData> urlData(SkData::NewWithCString(url)); | 19 sk_sp<SkData> urlData(SkData::MakeWithCString(url)); |
| 20 SkAnnotateRectWithURL(canvas, bounds, urlData); | 20 SkAnnotateRectWithURL(canvas, bounds, urlData.get()); |
| 21 SkPaint shade; | 21 SkPaint shade; |
| 22 shade.setColor(0x80346180); | 22 shade.setColor(0x80346180); |
| 23 canvas->drawRect(bounds, shade); | 23 canvas->drawRect(bounds, shade); |
| 24 canvas->drawText(text, byteLength, x, y, paint); | 24 canvas->drawText(text, byteLength, x, y, paint); |
| 25 } | 25 } |
| 26 | 26 |
| 27 DEF_SIMPLE_GM(annotated_text, canvas, 512, 512) { | 27 DEF_SIMPLE_GM(annotated_text, canvas, 512, 512) { |
| 28 SkAutoCanvasRestore autoCanvasRestore(canvas, true); | 28 SkAutoCanvasRestore autoCanvasRestore(canvas, true); |
| 29 canvas->clear(SK_ColorWHITE); | 29 canvas->clear(SK_ColorWHITE); |
| 30 canvas->clipRect(SkRect::MakeXYWH(64, 64, 256, 256)); | 30 canvas->clipRect(SkRect::MakeXYWH(64, 64, 256, 256)); |
| 31 canvas->clear(0xFFEEEEEE); | 31 canvas->clear(0xFFEEEEEE); |
| 32 SkPaint p; | 32 SkPaint p; |
| 33 p.setTextSize(40); | 33 p.setTextSize(40); |
| 34 const char text[] = "Click this link!"; | 34 const char text[] = "Click this link!"; |
| 35 const char url[] = "https://www.google.com/"; | 35 const char url[] = "https://www.google.com/"; |
| 36 draw_url_annotated_text_with_box(canvas, text, 200.0f, 80.0f, p, url); | 36 draw_url_annotated_text_with_box(canvas, text, 200.0f, 80.0f, p, url); |
| 37 canvas->saveLayer(nullptr, nullptr); | 37 canvas->saveLayer(nullptr, nullptr); |
| 38 canvas->rotate(90); | 38 canvas->rotate(90); |
| 39 draw_url_annotated_text_with_box(canvas, text, 150.0f, -55.0f, p, url); | 39 draw_url_annotated_text_with_box(canvas, text, 150.0f, -55.0f, p, url); |
| 40 canvas->restore(); | 40 canvas->restore(); |
| 41 } | 41 } |
| OLD | NEW |