From 4bcb4ec8b696e478fdaa1d2be68f48a8f677fca2 Mon Sep 17 00:00:00 2001 From: Werner Laurensse Date: Sat, 23 Nov 2019 06:53:34 +0100 Subject: [PATCH] text: add Metrics method to Face interface. font/opentype: implement Metrics method for Font struct. Signed-off-by: Werner Laurensse --- font/opentype/opentype.go | 5 +++++ text/text.go | 2 ++ 2 files changed, 7 insertions(+) diff --git a/font/opentype/opentype.go b/font/opentype/opentype.go index 7552a66d..13325883 100644 --- a/font/opentype/opentype.go +++ b/font/opentype/opentype.go @@ -46,6 +46,11 @@ func (f *Font) Shape(ppem fixed.Int26_6, str text.String) clip.Op { return textPath(&f.buf, ppem, &opentype{Font: f.font, Hinting: font.HintingFull}, str) } +func (f *Font) Metrics(ppem fixed.Int26_6) font.Metrics { + o := &opentype{Font: f.font, Hinting: font.HintingFull} + return o.Metrics(&f.buf, ppem) +} + func layoutText(buf *sfnt.Buffer, ppem fixed.Int26_6, str string, f *opentype, opts text.LayoutOptions) *text.Layout { m := f.Metrics(buf, ppem) lineTmpl := text.Line{ diff --git a/text/text.go b/text/text.go index 9c968ac2..5c1a5d90 100644 --- a/text/text.go +++ b/text/text.go @@ -5,6 +5,7 @@ package text import ( "gioui.org/op/clip" "gioui.org/unit" + "golang.org/x/image/font" "golang.org/x/image/math/fixed" ) @@ -60,6 +61,7 @@ type Font struct { type Face interface { Layout(ppem fixed.Int26_6, str string, opts LayoutOptions) *Layout Shape(ppem fixed.Int26_6, str String) clip.Op + Metrics(ppem fixed.Int26_6) font.Metrics } // Typeface identifies a particular typeface design. The empty