gui: create a TImageList with famfamfam/silk resources
BIN
assets/database.png
Normal file
After Width: | Height: | Size: 390 B |
BIN
assets/database_add.png
Normal file
After Width: | Height: | Size: 658 B |
BIN
assets/database_delete.png
Normal file
After Width: | Height: | Size: 659 B |
BIN
assets/database_save.png
Normal file
After Width: | Height: | Size: 755 B |
BIN
assets/table.png
Normal file
After Width: | Height: | Size: 566 B |
BIN
assets/table_add.png
Normal file
After Width: | Height: | Size: 663 B |
BIN
assets/table_delete.png
Normal file
After Width: | Height: | Size: 660 B |
BIN
assets/table_save.png
Normal file
After Width: | Height: | Size: 723 B |
50
images.go
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"embed"
|
||||||
|
|
||||||
|
"github.com/ying32/govcl/vcl"
|
||||||
|
)
|
||||||
|
|
||||||
|
//go:embed assets/*
|
||||||
|
var assetsFs embed.FS
|
||||||
|
|
||||||
|
const (
|
||||||
|
imgDatabase = 0
|
||||||
|
imgDatabaseAdd = 1
|
||||||
|
imgDatabaseDelete = 2
|
||||||
|
imgDatabaseSave = 3
|
||||||
|
imgTable = 4
|
||||||
|
imgTableAdd = 5
|
||||||
|
imgTableDelete = 6
|
||||||
|
imgTableSave = 7
|
||||||
|
)
|
||||||
|
|
||||||
|
func loadImages(owner vcl.IComponent) *vcl.TImageList {
|
||||||
|
|
||||||
|
mustLoad := func(n string) *vcl.TBitmap {
|
||||||
|
imgData, err := assetsFs.ReadFile(n)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
png := vcl.NewPngImage()
|
||||||
|
png.LoadFromBytes(imgData)
|
||||||
|
|
||||||
|
ret := vcl.NewBitmap()
|
||||||
|
ret.Assign(png)
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
ilist := vcl.NewImageList(owner)
|
||||||
|
ilist.Add(mustLoad("assets/database.png"), nil)
|
||||||
|
ilist.Add(mustLoad("assets/database_add.png"), nil)
|
||||||
|
ilist.Add(mustLoad("assets/database_delete.png"), nil)
|
||||||
|
ilist.Add(mustLoad("assets/database_save.png"), nil)
|
||||||
|
ilist.Add(mustLoad("assets/table.png"), nil)
|
||||||
|
ilist.Add(mustLoad("assets/table_add.png"), nil)
|
||||||
|
ilist.Add(mustLoad("assets/table_delete.png"), nil)
|
||||||
|
ilist.Add(mustLoad("assets/table_save.png"), nil)
|
||||||
|
return ilist
|
||||||
|
|
||||||
|
}
|
4
main.go
@ -14,6 +14,8 @@ import (
|
|||||||
|
|
||||||
type TMainForm struct {
|
type TMainForm struct {
|
||||||
*vcl.TForm
|
*vcl.TForm
|
||||||
|
|
||||||
|
ImageList *vcl.TImageList
|
||||||
Menu *vcl.TMainMenu
|
Menu *vcl.TMainMenu
|
||||||
Buckets *vcl.TTreeView
|
Buckets *vcl.TTreeView
|
||||||
Tabs *vcl.TPageControl
|
Tabs *vcl.TPageControl
|
||||||
@ -35,6 +37,8 @@ func (f *TMainForm) OnFormCreate(sender vcl.IObject) {
|
|||||||
const MY_SPACING = 6
|
const MY_SPACING = 6
|
||||||
const MY_WIDTH = 180
|
const MY_WIDTH = 180
|
||||||
|
|
||||||
|
f.ImageList = loadImages(f)
|
||||||
|
|
||||||
f.SetCaption("yvbolt")
|
f.SetCaption("yvbolt")
|
||||||
|
|
||||||
mnuFile := vcl.NewMenuItem(f)
|
mnuFile := vcl.NewMenuItem(f)
|
||||||
|