| Index: src/core/SkAnnotation.cpp
|
| ===================================================================
|
| --- src/core/SkAnnotation.cpp (revision 8005)
|
| +++ src/core/SkAnnotation.cpp (working copy)
|
| @@ -8,6 +8,7 @@
|
| #include "SkAnnotation.h"
|
| #include "SkDataSet.h"
|
| #include "SkFlattenableBuffers.h"
|
| +#include "SkPoint.h"
|
| #include "SkStream.h"
|
|
|
| SkAnnotation::SkAnnotation(SkDataSet* data, uint32_t flags) {
|
| @@ -42,23 +43,50 @@
|
| return "SkAnnotationKey_URL";
|
| };
|
|
|
| +const char* SkAnnotationKeys::Define_Named_Dest_Key() {
|
| + return "SkAnnotationKey_Define_Named_Dest";
|
| +};
|
| +
|
| +const char* SkAnnotationKeys::Link_Named_Dest_Key() {
|
| + return "SkAnnotationKey_Link_Named_Dest";
|
| +};
|
| +
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| #include "SkCanvas.h"
|
|
|
| -void SkAnnotateRectWithURL(SkCanvas* canvas, const SkRect& rect, SkData* value) {
|
| - if (NULL == value) {
|
| - return;
|
| - }
|
| -
|
| - const char* key = SkAnnotationKeys::URL_Key();
|
| +static void annotate_paint(SkPaint& paint, const char* key, SkData* value) {
|
| SkAutoTUnref<SkDataSet> dataset(SkNEW_ARGS(SkDataSet, (key, value)));
|
| SkAnnotation* ann = SkNEW_ARGS(SkAnnotation, (dataset,
|
| SkAnnotation::kNoDraw_Flag));
|
|
|
| - SkPaint paint;
|
| paint.setAnnotation(ann)->unref();
|
| SkASSERT(paint.isNoDrawAnnotation());
|
| +}
|
|
|
| +void SkAnnotateRectWithURL(SkCanvas* canvas, const SkRect& rect, SkData* value) {
|
| + if (NULL == value) {
|
| + return;
|
| + }
|
| + SkPaint paint;
|
| + annotate_paint(paint, SkAnnotationKeys::URL_Key(), value);
|
| canvas->drawRect(rect, paint);
|
| }
|
| +
|
| +void SkAnnotateNamedDestination(SkCanvas* canvas, const SkPoint& point, SkData* name) {
|
| + if (NULL == name) {
|
| + return;
|
| + }
|
| + SkPaint paint;
|
| + annotate_paint(paint, SkAnnotationKeys::Define_Named_Dest_Key(), name);
|
| + canvas->drawPoint(point.x(), point.y(), paint);
|
| +}
|
| +
|
| +void SkAnnotateLinkToDestination(SkCanvas* canvas, const SkRect& rect, SkData* name) {
|
| + if (NULL == name) {
|
| + return;
|
| + }
|
| + SkPaint paint;
|
| + annotate_paint(paint, SkAnnotationKeys::Link_Named_Dest_Key(), name);
|
| + canvas->drawRect(rect, paint);
|
| +}
|
|
|