diff options
author | Jean-Baptiste Queru <jbq@google.com> | 2012-08-17 15:19:25 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-08-17 15:19:25 -0700 |
commit | 5f421caf157bf54c2cfd2ded128ede466e761d4d (patch) | |
tree | c332aecf0c074c8832b876d60bf13b82ffd2ec6d /include/core | |
parent | dccf2260c8edda887454d40f61f06e72d5389139 (diff) | |
parent | c2ad1992ce99225f79a05ecaed619ec6b52f7bb1 (diff) | |
download | external_skia-5f421caf157bf54c2cfd2ded128ede466e761d4d.zip external_skia-5f421caf157bf54c2cfd2ded128ede466e761d4d.tar.gz external_skia-5f421caf157bf54c2cfd2ded128ede466e761d4d.tar.bz2 |
am c2ad1992: Merge "Forward-compatibility stubs"
* commit 'c2ad1992ce99225f79a05ecaed619ec6b52f7bb1':
Forward-compatibility stubs
Diffstat (limited to 'include/core')
-rw-r--r-- | include/core/SkLanguage.h | 70 | ||||
-rw-r--r-- | include/core/SkPaint.h | 9 |
2 files changed, 79 insertions, 0 deletions
diff --git a/include/core/SkLanguage.h b/include/core/SkLanguage.h new file mode 100644 index 0000000..923008e --- /dev/null +++ b/include/core/SkLanguage.h @@ -0,0 +1,70 @@ + +/* + * 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 SkLanguage_DEFINED +#define SkLanguage_DEFINED + +#include "SkTypes.h" + +#ifdef SK_BUILD_FOR_ANDROID + +#include "SkString.h" + +struct SkLanguageInfo { + SkLanguageInfo(const char* tag) : fTag(tag) { } + SkString fTag; //! BCP 47 language identifier +}; + +/** \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() : fInfo(getInfo("")) { } + SkLanguage(const char* tag) : fInfo(getInfo(tag)) { } + SkLanguage(const SkLanguage& b) : fInfo(b.fInfo) { } + + /** Gets a BCP 47 language identifier for this SkLanguage. + @return a BCP 47 language identifier representing this language + */ + const SkString& getTag() const { return fInfo->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 fInfo == b.fInfo; + } + bool operator!=(const SkLanguage& b) const { + return fInfo != b.fInfo; + } + bool operator<(const SkLanguage& b) const { + return fInfo < b.fInfo; + } + bool operator>(const SkLanguage& b) const { + return fInfo > b.fInfo; + } + SkLanguage& operator=(const SkLanguage& b) { + fInfo = b.fInfo; + return *this; + } + +private: + const SkLanguageInfo* fInfo; + + static const SkLanguageInfo* getInfo(const char* tag); +}; + +#endif // #ifdef SK_BUILD_FOR_ANDROID +#endif // #ifndef SkLanguage_DEFINED diff --git a/include/core/SkPaint.h b/include/core/SkPaint.h index 0ec6698..9e12ece 100644 --- a/include/core/SkPaint.h +++ b/include/core/SkPaint.h @@ -15,6 +15,10 @@ #include "SkXfermode.h" #include "SkString.h" +#ifdef SK_BUILD_FOR_ANDROID +#include "SkLanguage.h" +#endif + class SkAutoGlyphCache; class SkColorFilter; class SkDescriptor; @@ -665,6 +669,11 @@ public: @param locale set the paint's locale value for drawing text. */ void setTextLocale(const SkString& locale); + + /** 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); #endif /** Return the paint's text size. |