1/*
2 * Copyright 2013 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef SkStringUtils_DEFINED
9#define SkStringUtils_DEFINED
10
11#include "SkScalar.h"
12
13class SkString;
14
15/**
16 * Add 'flagStr' to 'string' and set 'needSeparator' to true only if 'flag' is
17 * true. If 'needSeparator' is true append a '|' before 'flagStr'. This method
18 * is used to streamline the creation of ASCII flag strings within the toString
19 * methods.
20 */
21void SkAddFlagToString(SkString* string, bool flag,
22                       const char* flagStr, bool* needSeparator);
23
24
25enum SkScalarAsStringType {
26    kDec_SkScalarAsStringType,
27    kHex_SkScalarAsStringType,
28};
29
30void SkAppendScalar(SkString*, SkScalar, SkScalarAsStringType);
31
32static inline void SkAppendScalarDec(SkString* str, SkScalar value) {
33    SkAppendScalar(str, value, kDec_SkScalarAsStringType);
34}
35
36static inline void SkAppendScalarHex(SkString* str, SkScalar value) {
37    SkAppendScalar(str, value, kHex_SkScalarAsStringType);
38}
39
40/** Indents every non-empty line of the string by tabCnt tabs */
41SkString SkTabString(const SkString& string, int tabCnt);
42
43#endif
44