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

Unified Diff: include/core/SkPaintOptionsAndroid.h

Issue 473543004: Revert of Remove SkPaintOptionsAndroid (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « include/core/SkPaint.h ('k') | include/core/SkPicture.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: include/core/SkPaintOptionsAndroid.h
diff --git a/include/core/SkPaintOptionsAndroid.h b/include/core/SkPaintOptionsAndroid.h
new file mode 100644
index 0000000000000000000000000000000000000000..4d0bae3eb8f851ad8b1b7ee75c30a71476f4aeda
--- /dev/null
+++ b/include/core/SkPaintOptionsAndroid.h
@@ -0,0 +1,120 @@
+
+/*
+ * Copyright 2012 The Android Open Source Project
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#ifndef SkPaintOptionsAndroid_DEFINED
+#define SkPaintOptionsAndroid_DEFINED
+
+#include "SkTypes.h"
+#include "SkString.h"
+
+class SkReadBuffer;
+class SkWriteBuffer;
+
+/** \class SkLanguage
+
+ The SkLanguage class represents a human written language, and is used by
+ text draw operations to determine which glyph to draw when drawing
+ characters with variants (ie Han-derived characters).
+*/
+class SkLanguage {
+public:
+ SkLanguage() { }
+ SkLanguage(const SkString& tag) : fTag(tag) { }
+ SkLanguage(const char* tag) : fTag(tag) { }
+ SkLanguage(const char* tag, size_t len) : fTag(tag, len) { }
+ SkLanguage(const SkLanguage& b) : fTag(b.fTag) { }
+
+ /** Gets a BCP 47 language identifier for this SkLanguage.
+ @return a BCP 47 language identifier representing this language
+ */
+ const SkString& getTag() const { return fTag; }
+
+ /** Performs BCP 47 fallback to return an SkLanguage one step more general.
+ @return an SkLanguage one step more general
+ */
+ SkLanguage getParent() const;
+
+ bool operator==(const SkLanguage& b) const {
+ return fTag == b.fTag;
+ }
+ bool operator!=(const SkLanguage& b) const {
+ return fTag != b.fTag;
+ }
+ SkLanguage& operator=(const SkLanguage& b) {
+ fTag = b.fTag;
+ return *this;
+ }
+
+private:
+ //! BCP 47 language identifier
+ SkString fTag;
+};
+
+class SkPaintOptionsAndroid {
+public:
+ SkPaintOptionsAndroid() {
+ fFontVariant = kDefault_Variant;
+ }
+
+ SkPaintOptionsAndroid& operator=(const SkPaintOptionsAndroid& b) {
+ fLanguage = b.fLanguage;
+ fFontVariant = b.fFontVariant;
+ return *this;
+ }
+
+ bool operator==(const SkPaintOptionsAndroid& b) const {
+ return !(*this != b);
+ }
+
+ bool operator!=(const SkPaintOptionsAndroid& b) const {
+ return fLanguage != b.fLanguage ||
+ fFontVariant != b.fFontVariant;
+ }
+
+ void flatten(SkWriteBuffer&) const;
+ void unflatten(SkReadBuffer&);
+
+ /** Return the paint's language value used for drawing text.
+ @return the paint's language value used for drawing text.
+ */
+ const SkLanguage& getLanguage() const { return fLanguage; }
+
+ /** Set the paint's language value used for drawing text.
+ @param language set the paint's language value for drawing text.
+ */
+ void setLanguage(const SkLanguage& language) { fLanguage = language; }
+ void setLanguage(const char* languageTag) { fLanguage = SkLanguage(languageTag); }
+
+
+ enum FontVariant {
+ kDefault_Variant = 0x01,
+ kCompact_Variant = 0x02,
+ kElegant_Variant = 0x04,
+ kLast_Variant = kElegant_Variant,
+ };
+
+ /** Return the font variant
+ @return the font variant used by this paint object
+ */
+ FontVariant getFontVariant() const { return fFontVariant; }
+
+ /** Set the font variant
+ @param fontVariant set the paint's font variant for choosing fonts
+ */
+ void setFontVariant(FontVariant fontVariant) {
+ SkASSERT((unsigned)fontVariant <= kLast_Variant);
+ fFontVariant = fontVariant;
+ }
+
+private:
+ SkLanguage fLanguage;
+ FontVariant fFontVariant;
+};
+
+#endif // #ifndef SkPaintOptionsAndroid_DEFINED
« no previous file with comments | « include/core/SkPaint.h ('k') | include/core/SkPicture.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698