shiny/font: add Hinting, Stretch, Style and Weight option types.
These will be used by other vector font packages, such as the truetype
package, to select specific faces.
Change-Id: I3db8c97335089c2076811e8f85d9a8868fc900bd
Reviewed-on: https://go-review.googlesource.com/13714
Reviewed-by: Rob Pike <r@golang.org>
diff --git a/font/font.go b/font/font.go
index b3647f5..c370986 100644
--- a/font/font.go
+++ b/font/font.go
@@ -108,3 +108,59 @@
d.Dot, prevC = newDot, c
}
}
+
+// Hinting selects how to quantize a vector font's glyph nodes.
+//
+// Not all fonts support hinting.
+type Hinting int
+
+const (
+ HintingNone Hinting = iota
+ HintingVertical
+ HintingFull
+)
+
+// Stretch selects a normal, condensed, or expanded face.
+//
+// Not all fonts support stretches.
+type Stretch int
+
+const (
+ StretchUltraCondensed Stretch = -4
+ StretchExtraCondensed Stretch = -3
+ StretchCondensed Stretch = -2
+ StretchSemiCondensed Stretch = -1
+ StretchNormal Stretch = +0
+ StretchSemiExpanded Stretch = +1
+ StretchExpanded Stretch = +2
+ StretchExtraExpanded Stretch = +3
+ StretchUltraExpanded Stretch = +4
+)
+
+// Style selects a normal, italic, or oblique face.
+//
+// Not all fonts support styles.
+type Style int
+
+const (
+ StyleNormal Style = iota
+ StyleItalic
+ StyleOblique
+)
+
+// Weight selects a normal, light or bold face.
+//
+// Not all fonts support weights.
+type Weight int
+
+const (
+ WeightThin Weight = 100
+ WeightExtraLight Weight = 200
+ WeightLight Weight = 300
+ WeightNormal Weight = 400
+ WeightMedium Weight = 500
+ WeightSemiBold Weight = 600
+ WeightBold Weight = 700
+ WeightExtraBold Weight = 800
+ WeightBlack Weight = 900
+)