UI.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package UI
  2. import (
  3. "fmt"
  4. "github.com/veandco/go-sdl2/ttf"
  5. "github.com/clockworkpi/LauncherGoDev/sysgo"
  6. "github.com/cuu/gogame/font"
  7. )
  8. type WidgetInterface interface {
  9. Size() (int, int)
  10. NewSize(w, h int)
  11. Coord() (int, int)
  12. NewCoord(x, y int)
  13. }
  14. type Coord struct {
  15. X int
  16. Y int
  17. }
  18. type Plane struct {
  19. W int
  20. H int
  21. }
  22. type Widget struct {
  23. PosX int
  24. PosY int
  25. Width int
  26. Height int
  27. }
  28. func (self *Widget) Size() (int, int) {
  29. return self.Width, self.Height
  30. }
  31. func (self *Widget) NewSize(w, h int) {
  32. self.Width = w
  33. self.Height = h
  34. }
  35. func (self *Widget) Coord() (int, int) {
  36. return self.PosX, self.PosY
  37. }
  38. func (self *Widget) NewCoord(x, y int) {
  39. self.PosX = x
  40. self.PosY = y
  41. }
  42. //invoked in main.go
  43. func Init() {
  44. font.Init()
  45. skinpath := sysgo.SKIN + "/truetype"
  46. Fonts = make(map[string]*ttf.Font)
  47. fonts_path := make(map[string]string)
  48. fonts_path["varela"] = fmt.Sprintf("%s/VarelaRound-Regular.ttf", skinpath)
  49. fonts_path["veramono"] = fmt.Sprintf("%s/VeraMono.ttf", skinpath)
  50. fonts_path["noto"] = fmt.Sprintf("%s/NotoSansMono-Regular.ttf", skinpath)
  51. fonts_path["notocjk"] = fmt.Sprintf("%s/NotoSansCJK-Regular.ttf", skinpath)
  52. for i := 10; i < 41; i++ {
  53. keyname := fmt.Sprintf("varela%d", i)
  54. Fonts[keyname] = font.Font(fonts_path["varela"], i)
  55. }
  56. Fonts["varela120"] = font.Font(fonts_path["varela"], 120)
  57. for i := 10; i < 26; i++ {
  58. keyname := fmt.Sprintf("veramono%d", i)
  59. Fonts[keyname] = font.Font(fonts_path["veramono"], i)
  60. }
  61. for i := 10; i < 28; i++ {
  62. keyname := fmt.Sprintf("notosansmono%d", i)
  63. Fonts[keyname] = font.Font(fonts_path["noto"], i)
  64. }
  65. for i := 10; i < 28; i++ {
  66. keyname := fmt.Sprintf("notosanscjk%d", i)
  67. Fonts[keyname] = font.Font(fonts_path["notocjk"], i)
  68. }
  69. //
  70. keys_def_init()
  71. //// global variables Init
  72. if MyIconPool == nil {
  73. MyIconPool = NewIconPool()
  74. MyIconPool.Init()
  75. }
  76. if MyLangManager == nil {
  77. MyLangManager = NewLangManager()
  78. MyLangManager.Init()
  79. }
  80. if MySkinManager == nil {
  81. MySkinManager = NewSkinManager()
  82. MySkinManager.Init()
  83. }
  84. }