diff options
author | =Corey Hulen <corey@hulen.com> | 2015-06-14 23:53:32 -0800 |
---|---|---|
committer | =Corey Hulen <corey@hulen.com> | 2015-06-14 23:53:32 -0800 |
commit | 56e74239d6b34df8f30ef046f0b0ff4ff0866a71 (patch) | |
tree | 044da29848cf0f5c8607eac34de69065171669cf /Godeps/_workspace/src/code.google.com/p/draw2d/draw2d/font.go | |
download | chat-56e74239d6b34df8f30ef046f0b0ff4ff0866a71.tar.gz chat-56e74239d6b34df8f30ef046f0b0ff4ff0866a71.tar.bz2 chat-56e74239d6b34df8f30ef046f0b0ff4ff0866a71.zip |
first commit
Diffstat (limited to 'Godeps/_workspace/src/code.google.com/p/draw2d/draw2d/font.go')
-rw-r--r-- | Godeps/_workspace/src/code.google.com/p/draw2d/draw2d/font.go | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/Godeps/_workspace/src/code.google.com/p/draw2d/draw2d/font.go b/Godeps/_workspace/src/code.google.com/p/draw2d/draw2d/font.go new file mode 100644 index 000000000..eb0b5325c --- /dev/null +++ b/Godeps/_workspace/src/code.google.com/p/draw2d/draw2d/font.go @@ -0,0 +1,97 @@ +// Copyright 2010 The draw2d Authors. All rights reserved. +// created: 13/12/2010 by Laurent Le Goff + +package draw2d + +import ( + "code.google.com/p/freetype-go/freetype/truetype" + "io/ioutil" + "log" + "path" +) + +var ( + fontFolder = "../resource/font/" + fonts = make(map[string]*truetype.Font) +) + +type FontStyle byte + +const ( + FontStyleNormal FontStyle = iota + FontStyleBold + FontStyleItalic +) + +type FontFamily byte + +const ( + FontFamilySans FontFamily = iota + FontFamilySerif + FontFamilyMono +) + +type FontData struct { + Name string + Family FontFamily + Style FontStyle +} + +func fontFileName(fontData FontData) string { + fontFileName := fontData.Name + switch fontData.Family { + case FontFamilySans: + fontFileName += "s" + case FontFamilySerif: + fontFileName += "r" + case FontFamilyMono: + fontFileName += "m" + } + if fontData.Style&FontStyleBold != 0 { + fontFileName += "b" + } else { + fontFileName += "r" + } + + if fontData.Style&FontStyleItalic != 0 { + fontFileName += "i" + } + fontFileName += ".ttf" + return fontFileName +} + +func RegisterFont(fontData FontData, font *truetype.Font) { + fonts[fontFileName(fontData)] = font +} + +func GetFont(fontData FontData) *truetype.Font { + fontFileName := fontFileName(fontData) + font := fonts[fontFileName] + if font != nil { + return font + } + fonts[fontFileName] = loadFont(fontFileName) + return fonts[fontFileName] +} + +func GetFontFolder() string { + return fontFolder +} + +func SetFontFolder(folder string) { + fontFolder = folder +} + +func loadFont(fontFileName string) *truetype.Font { + fontBytes, err := ioutil.ReadFile(path.Join(fontFolder, fontFileName)) + if err != nil { + log.Println(err) + return nil + } + font, err := truetype.Parse(fontBytes) + if err != nil { + log.Println(err) + return nil + } + return font +} |