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
11class SkString;
12
13/**
14 * Add 'flagStr' to 'string' and set 'needSeparator' to true only if 'flag' is
15 * true. If 'needSeparator' is true append a '|' before 'flagStr'. This method
16 * is used to streamline the creation of ASCII flag strings within the toString
17 * methods.
18 */
19void SkAddFlagToString(SkString* string, bool flag,
20                       const char* flagStr, bool* needSeparator);
21
22
23enum SkScalarAsStringType {
24    kDec_SkScalarAsStringType,
25    kHex_SkScalarAsStringType,
26};
27
28void SkAppendScalar(SkString*, SkScalar, SkScalarAsStringType);
29
30static inline void SkAppendScalarDec(SkString* str, SkScalar value) {
31    SkAppendScalar(str, value, kDec_SkScalarAsStringType);
32}
33
34static inline void SkAppendScalarHex(SkString* str, SkScalar value) {
35    SkAppendScalar(str, value, kHex_SkScalarAsStringType);
36}
37
38/** Indents every non-empty line of the string by tabCnt tabs */
39SkString SkTabString(const SkString& string, int tabCnt);
40
41#endif
42