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 class 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 */
19 void SkAddFlagToString(SkString* string, bool flag,
20 const char* flagStr, bool* needSeparator);
21
22
23 enum SkScalarAsStringType {
24 kDec_SkScalarAsStringType,
25 kHex_SkScalarAsStringType,
26 };
27
28 void SkAppendScalar(SkString*, SkScalar, SkScalarAsStringType);
29
SkAppendScalarDec(SkString * str,SkScalar value)30 static inline void SkAppendScalarDec(SkString* str, SkScalar value) {
31 SkAppendScalar(str, value, kDec_SkScalarAsStringType);
32 }
33
SkAppendScalarHex(SkString * str,SkScalar value)34 static 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 */
39 SkString SkTabString(const SkString& string, int tabCnt);
40
41 #endif
42