| 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 | 
|---|