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

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: addressing comments 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
« no previous file with comments | « include/core/SkPaint.h ('k') | include/ports/SkTypeface_android.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 bool operator!=(const SkPaintOptionsAndroid& b) const {
73 return fLanguage != b.fLanguage || fFontVariant != b.fFontVariant;
74 }
75
76 void flatten(SkFlattenableWriteBuffer&) const;
77 void unflatten(SkFlattenableReadBuffer&);
78
79 /** Return the paint's language value used for drawing text.
80 @return the paint's language value used for drawing text.
81 */
82 const SkLanguage& getLanguage() const { return fLanguage; }
83
84 /** Set the paint's language value used for drawing text.
85 @param language set the paint's language value for drawing text.
86 */
87 void setLanguage(const SkLanguage& language) { fLanguage = language; }
88 void setLanguage(const char* languageTag) { fLanguage = SkLanguage(languageT ag); }
89
90
91 enum FontVariant {
92 kDefault_Variant, // Currently setting yourself to Default gives you Comp act Variant
93 kCompact_Variant,
94 kElegant_Variant,
95 kLast_Variant = kElegant_Variant,
96 };
97
98 /** Return the font variant
99 @return the font variant used by this paint object
100 */
101 FontVariant getFontVariant() const { return fFontVariant; }
102
103 /** Set the font variant
104 @param fontVariant set the paint's font variant for choosing fonts
105 */
106 void setFontVariant(FontVariant fontVariant) {
107 SkASSERT((unsigned)fontVariant <= kLast_Variant);
108 fFontVariant = fontVariant;
109 }
110
111 private:
112 SkLanguage fLanguage;
113 FontVariant fFontVariant;
114 };
115
116 #endif // #ifdef SK_BUILD_FOR_ANDROID
117 #endif // #ifndef SkPaintOptionsAndroid_DEFINED
OLDNEW
« no previous file with comments | « include/core/SkPaint.h ('k') | include/ports/SkTypeface_android.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698