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 SkAutoTUnref<SkData> urlData(SkData::NewWithCString(url)); |
20 SkAnnotateRectWithURL(canvas, bounds, urlData); | 20 SkAnnotateRectWithURL(canvas, bounds, urlData); |
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, 384, 384)); | 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 SkAutoCanvasRestore autoCanvasRestore2(canvas, true); | 37 SkAutoCanvasRestore autoCanvasRestore2(canvas, true); |
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 } | 40 } |
OLD | NEW |