summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorRaph Levien <raph@google.com>2014-05-30 23:38:56 -0700
committerRaph Levien <raph@google.com>2014-06-03 17:05:51 -0700
commit448b0fd720d7ba902b9be224a287d08abe3ebea8 (patch)
tree8474d0b8258f84b63a4f17cb96619ae7870cce4d /include
parent066e8575af64fb452617ac6005de6ccf6509553b (diff)
downloadandroid_frameworks_minikin-448b0fd720d7ba902b9be224a287d08abe3ebea8.tar.gz
android_frameworks_minikin-448b0fd720d7ba902b9be224a287d08abe3ebea8.tar.bz2
android_frameworks_minikin-448b0fd720d7ba902b9be224a287d08abe3ebea8.zip
Support for scaleX and skewX
Adds pseudo-css properties for scaleX and skewX, as well as paint flags, and plumb them through to the MinikinPaint abstraction and to Harfbuzz, to support nontrivial scale and stretch of text. This is the Minikin part of the fix for bug 15186705 "Usability of the suggestion strip in recent OTA's is severely reduced" Change-Id: Ifa60355e086e4691ff92c5d50d84eb7cea0fea95
Diffstat (limited to 'include')
-rw-r--r--include/minikin/CssParse.h8
-rw-r--r--include/minikin/MinikinFont.h4
2 files changed, 10 insertions, 2 deletions
diff --git a/include/minikin/CssParse.h b/include/minikin/CssParse.h
index 519056d..ae2aac6 100644
--- a/include/minikin/CssParse.h
+++ b/include/minikin/CssParse.h
@@ -24,24 +24,30 @@ namespace android {
enum CssTag {
unknown,
+ fontScaleX,
fontSize,
+ fontSkewX,
fontStyle,
fontWeight,
cssLang,
minikinBidi,
minikinHinting,
minikinVariant,
+ paintFlags,
};
const std::string cssTagNames[] = {
"unknown",
+ "font-scale-x",
"font-size",
+ "font-skew-x",
"font-style",
"font-weight",
"lang",
"-minikin-bidi",
"-minikin-hinting",
"-minikin-variant",
+ "-paint-flags",
};
class CssValue {
@@ -62,7 +68,7 @@ public:
mType(FLOAT), floatValue(v), mUnits(SCALAR) { }
Type getType() const { return mType; }
double getFloatValue() const { return floatValue; }
- int getIntValue() const { return floatValue; }
+ int32_t getIntValue() const { return floatValue; }
std::string getStringValue() const { return stringValue; }
std::string toString(CssTag tag) const;
void setFloatValue(double v) {
diff --git a/include/minikin/MinikinFont.h b/include/minikin/MinikinFont.h
index dbb89f8..1f6894c 100644
--- a/include/minikin/MinikinFont.h
+++ b/include/minikin/MinikinFont.h
@@ -31,7 +31,9 @@ class MinikinFont;
struct MinikinPaint {
MinikinFont *font;
float size;
- // todo: skew, stretch, hinting
+ float scaleX;
+ float skewX;
+ int32_t paintFlags;
};
struct MinikinRect {