Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Side by Side Diff: include/core/SkPaintOptionsAndroid.h

Issue 14761003: API modifications needed to upstream Android font changes. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: additional fixes Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1
2 /*
3 * Copyright 2012 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
9
10 #ifndef SkPaintOptionsAndroid_DEFINED
11 #define SkPaintOptionsAndroid_DEFINED
12
13 #ifdef SK_BUILD_FOR_ANDROID
14
15 #include "SkString.h"
16 #include "SkTypes.h"
17
18 class SkFlattenableReadBuffer;
19 class SkFlattenableWriteBuffer;
20
21 /** \class SkLanguage
22
23 The SkLanguage class represents a human written language, and is used by
24 text draw operations to determine which glyph to draw when drawing
25 characters with variants (ie Han-derived characters).
26 */
27 class SkLanguage {
28 public:
29 SkLanguage() { }
30 SkLanguage(const char* tag) : fTag(tag) { }
31 SkLanguage(const char* tag, size_t len) : fTag(tag, len) { }
32 SkLanguage(const SkLanguage& b) : fTag(b.fTag) { }
33
34 /** Gets a BCP 47 language identifier for this SkLanguage.
35 @return a BCP 47 language identifier representing this language
36 */
37 const SkString& getTag() const { return fTag; }
38
39 /** Performs BCP 47 fallback to return an SkLanguage one step more general.
40 @return an SkLanguage one step more general
41 */
42 SkLanguage getParent() const;
43
44 bool operator==(const SkLanguage& b) const {
45 return fTag == b.fTag;
46 }
47 bool operator!=(const SkLanguage& b) const {
48 return fTag != b.fTag;
49 }
50 SkLanguage& operator=(const SkLanguage& b) {
51 fTag = b.fTag;
52 return *this;
53 }
54
55 private:
56 //! BCP 47 language identifier
57 SkString fTag;
58 };
59
60 class SkPaintOptionsAndroid {
61 public:
62 SkPaintOptionsAndroid() {
63 fFontVariant = kDefault_Variant;
64 }
65
66 SkPaintOptionsAndroid& operator=(const SkPaintOptionsAndroid& b) {
67 fLanguage = b.fLanguage;
68 fFontVariant = b.fFontVariant;
69 return *this;
70 }
71
72 void flatten(SkFlattenableWriteBuffer&) const;
73 void unflatten(SkFlattenableReadBuffer&);
74
75 /** Return the paint's language value used for drawing text.
76 @return the paint's language value used for drawing text.
77 */
78 const SkLanguage& getLanguage() const { return fLanguage; }
79
80 /** Set the paint's language value used for drawing text.
81 @param language set the paint's language value for drawing text.
82 */
83 void setLanguage(const SkLanguage& language) { fLanguage = language; }
84 void setLanguage(const char* languageTag) { fLanguage = SkLanguage(languageT ag); }
85
86
87 enum FontVariant {
88 kDefault_Variant, // Currently setting yourself to Default gives you Comp act Variant
89 kCompact_Variant,
90 kElegant_Variant,
91 kLast_Variant = kElegant_Variant,
92 };
93
94 /** Return the font variant
95 @return the font variant used by this paint object
96 */
97 FontVariant getFontVariant() const { return fFontVariant; }
98
99 /** Set the font variant
100 @param fontVariant set the paint's font variant for choosing fonts
101 */
102 void setFontVariant(FontVariant fontVariant) {
103 SkASSERT((unsigned)fontVariant <= kLast_Variant);
104 fFontVariant = fontVariant;
105 }
106
107 private:
108 SkLanguage fLanguage;
109 FontVariant fFontVariant;
110 };
111
112 #endif // #ifdef SK_BUILD_FOR_ANDROID
113 #endif // #ifndef SkPaintOptionsAndroid_DEFINED
OLDNEW
« no previous file with comments | « include/core/SkPaint.h ('k') | include/ports/SkTypeface_android.h » ('j') | src/core/SkPaint.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698