package icons import ( "bytes" "log" "github.com/gotk3/gotk3/gdk" "github.com/markbates/pkger" ) // static assets var logo256 *gdk.Pixbuf func Logo256() *gdk.Pixbuf { if logo256 == nil { logo256 = loadPixbuf(pkger.Include("/icons/cchat-variant2_256.png")) } return logo256 } func loadPixbuf(name string) *gdk.Pixbuf { l, err := gdk.PixbufLoaderNew() if err != nil { log.Fatalln("Failed to create a pixbuf loader for icons:", err) } p, err := l.WriteAndReturnPixbuf(readFile(name)) if err != nil { log.Fatalln("Failed to write and return pixbuf:", err) } return p } func readFile(name string) []byte { f, err := pkger.Open(name) if err != nil { log.Fatalln("Failed to open pkger file:", err) } defer f.Close() var buf bytes.Buffer if _, err := buf.ReadFrom(f); err != nil { log.Fatalln("Failed to read from pkger file:", err) } return buf.Bytes() }