1cb93a386Sopenharmony_ci/*
2cb93a386Sopenharmony_ci * Copyright 2018 Google Inc.
3cb93a386Sopenharmony_ci *
4cb93a386Sopenharmony_ci * Use of this source code is governed by a BSD-style license that can be
5cb93a386Sopenharmony_ci * found in the LICENSE file.
6cb93a386Sopenharmony_ci */
7cb93a386Sopenharmony_ci
8cb93a386Sopenharmony_ci#ifndef SkTextUtils_DEFINED
9cb93a386Sopenharmony_ci#define SkTextUtils_DEFINED
10cb93a386Sopenharmony_ci
11cb93a386Sopenharmony_ci#include "include/core/SkCanvas.h"
12cb93a386Sopenharmony_ci#include "include/core/SkFont.h"
13cb93a386Sopenharmony_ci#include "include/core/SkPaint.h"
14cb93a386Sopenharmony_ci#include "include/core/SkString.h"
15cb93a386Sopenharmony_ci
16cb93a386Sopenharmony_ciclass SkPath;
17cb93a386Sopenharmony_ci
18cb93a386Sopenharmony_ciclass SK_API SkTextUtils {
19cb93a386Sopenharmony_cipublic:
20cb93a386Sopenharmony_ci    enum Align {
21cb93a386Sopenharmony_ci        kLeft_Align,
22cb93a386Sopenharmony_ci        kCenter_Align,
23cb93a386Sopenharmony_ci        kRight_Align,
24cb93a386Sopenharmony_ci    };
25cb93a386Sopenharmony_ci
26cb93a386Sopenharmony_ci    static void Draw(SkCanvas*, const void* text, size_t size, SkTextEncoding,
27cb93a386Sopenharmony_ci                     SkScalar x, SkScalar y, const SkFont&, const SkPaint&, Align = kLeft_Align);
28cb93a386Sopenharmony_ci
29cb93a386Sopenharmony_ci    static void DrawString(SkCanvas* canvas, const char text[], SkScalar x, SkScalar y,
30cb93a386Sopenharmony_ci                           const SkFont& font, const SkPaint& paint, Align align = kLeft_Align) {
31cb93a386Sopenharmony_ci        Draw(canvas, text, strlen(text), SkTextEncoding::kUTF8, x, y, font, paint, align);
32cb93a386Sopenharmony_ci    }
33cb93a386Sopenharmony_ci
34cb93a386Sopenharmony_ci    static void GetPath(const void* text, size_t length, SkTextEncoding, SkScalar x, SkScalar y,
35cb93a386Sopenharmony_ci                        const SkFont&, SkPath*);
36cb93a386Sopenharmony_ci};
37cb93a386Sopenharmony_ci
38cb93a386Sopenharmony_ci#endif
39