main.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. package tray
  2. import (
  3. // "launcher/setting"
  4. "launcher/icon"
  5. "github.com/energye/energy/v2/cef"
  6. "github.com/getlantern/systray"
  7. )
  8. func StartSysTray() error {
  9. systray.Run(onReady, nil)
  10. return nil
  11. }
  12. func StopSysTray() {
  13. }
  14. var MenuAddr *systray.MenuItem
  15. func onReady() {
  16. // We can manipulate the systray in other goroutines
  17. systray.SetIcon(icon.Data)
  18. systray.SetTitle("Queen3d")
  19. systray.SetTooltip("QueenCloud工具链")
  20. // ipInfo := systray.AddMenuItem(fmt.Sprintf("ip信息: %s:%d", conf.AppConfig.LocalNatsHosts[0], conf.AppConfig.LocalNatsPort), "ip info")
  21. // if len(conf.AppConfig.LocalNatsHosts) > 0 {
  22. // for i, ip := range conf.AppConfig.LocalNatsHosts {
  23. // if i != 0 {
  24. // ipInfo.AddSubMenuItem(fmt.Sprintf("ip: %s:%d", ip, conf.AppConfig.LocalNatsPort), "ip info")
  25. // }
  26. // }
  27. // }
  28. //history
  29. systray.AddMenuItem("spu3d", "包装设计软件")
  30. systray.AddSeparator()
  31. MenuInput := systray.AddMenuItem("录入", "录入相关应用")
  32. MenuInput.AddSubMenuItem("Queenter", "面料扫描设备")
  33. MenuSave := systray.AddMenuItem("存储", "存储相关应用")
  34. MenuSave.AddSubMenuItem("Queentree(本机)", "本机的存储库")
  35. MenuSave.AddSubMenuItem("Queentree(云端)", "云端的存储库")
  36. MenuEditor := systray.AddMenuItem("编辑", "编辑相关应用")
  37. MenuEditor.AddSubMenuItem("spu3d", "包装设计软件")
  38. MenuEditor.AddSubMenuItem("sku3d", "鞋类在线设计软件")
  39. MenuOutput := systray.AddMenuItem("输出", "输出相关应用")
  40. MenuOutput.AddSubMenuItem("queen5", "在线推广编辑器")
  41. // MenuAddr = systray.AddMenuItem(fmt.Sprintf("地址: (%d/%d)", setting.CurrSystemConfig.WsPort, setting.CurrSystemConfig.NatsPort), "启动中/就绪/渲染中/暂停/异常")
  42. systray.AddSeparator()
  43. // systray.AddMenuItem("最近渲染 2023/1/31 14:30:00", "clean cache")
  44. // systray.AddMenuItem("渲染次数 19/20 ", "clean cache")
  45. // systray.AddMenuItem("渲染时间 19s/20s/90s ", "clean cache")
  46. // systray.AddMenuItem("清除缓存", "clean cache")
  47. // systray.AddMenuItem("打开缓存目录", "open cache dir")
  48. // mHistory := systray.AddMenuItem("历史渲染", "open cache dir")
  49. mSetting := systray.AddMenuItem("管理面板", "open cache dir")
  50. // mVersionCheck := systray.AddMenuItem("版本检查", "check last version is ready")
  51. // mOpen := systray.AddMenuItem("打开", "open special tool")
  52. mQuit := systray.AddMenuItem("退出", "退出")
  53. // mChecked := systray.AddMenuItemCheckbox("Unchecked", "Check Me", true)
  54. // mEnabled := systray.AddMenuItem("Enabled", "Enabled")
  55. // Sets the icon of a menu item. Only available on Mac.
  56. // mEnabled.SetTemplateIcon(icon.Data, icon.Data)
  57. // systray.AddMenuItem("Ignored", "Ignored")
  58. // subMenuTop := systray.AddMenuItem("SubMenuTop", "SubMenu Test (top)")
  59. // subMenuMiddle := subMenuTop.AddSubMenuItem("SubMenuMiddle", "SubMenu Test (middle)")
  60. // subMenuBottom := subMenuMiddle.AddSubMenuItemCheckbox("SubMenuBottom - Toggle Panic!", "SubMenu Test (bottom) - Hide/Show Panic!", false)
  61. // subMenuBottom2 := subMenuMiddle.AddSubMenuItem("SubMenuBottom - Panic!", "SubMenu Test (bottom)")
  62. // mUrl := systray.AddMenuItem("关于鲲擎", "官方网站")
  63. // Sets the icon of a menu item. Only available on Mac.
  64. mQuit.SetIcon(icon.Data)
  65. // mToggle := systray.AddMenuItem("toggle", "Toggle the Quit button")
  66. //shown := true
  67. // toggle := func() {
  68. // if shown {
  69. // // subMenuBottom.Check()
  70. // // subMenuBottom2.Hide()
  71. // // mQuitOrig.Hide()
  72. // // mEnabled.Hide()
  73. // shown = false
  74. // } else {
  75. // // subMenuBottom.Uncheck()
  76. // // subMenuBottom2.Show()
  77. // // mQuitOrig.Show()
  78. // // mEnabled.Show()
  79. // shown = true
  80. // }
  81. //}
  82. // var getPrefixQuery = func() string {
  83. // return url.QueryEscape(fmt.Sprintf("prefix=http://localhost:%d/queengine&host=ws://localhost:%d", setting.CurrSystemConfig.HttpPort, setting.CurrSystemConfig.WsPort))
  84. // }
  85. for {
  86. select {
  87. // case <-MenuAddr.ClickedCh:
  88. // // clipboard.WriteAll(fmt.Sprintf("localhost:%d", setting.CurrSystemConfig.WsPort))
  89. // println("hello")
  90. // go utils.OpenWebView(&utils.OpenWebReq{
  91. // Url: "history.html?" + getPrefixQuery(),
  92. // Width: utils.FloatPtr(800),
  93. // Height: utils.FloatPtr(600),
  94. // })
  95. case <-mSetting.ClickedCh:
  96. window := cef.BrowserWindow.MainWindow()
  97. if window.IsLCL() {
  98. bw := window.AsLCLBrowserWindow().BrowserWindow()
  99. window.RunOnMainThread(func() {
  100. bw.Show()
  101. bw.SetFocus()
  102. })
  103. } else if window.IsViewsFramework() {
  104. window.RunOnMainThread(func() {
  105. window.Show() //显示窗口
  106. })
  107. }
  108. // case <-mChecked.ClickedCh:
  109. // if mChecked.Checked() {
  110. // mChecked.Uncheck()
  111. // mChecked.SetTitle("Unchecked")
  112. // } else {
  113. // mChecked.Check()
  114. // mChecked.SetTitle("Checked")
  115. // }
  116. // case <-mEnabled.ClickedCh:
  117. // mEnabled.SetTitle("Disabled")
  118. // mEnabled.Disable()
  119. // case <-mUrl.ClickedCh:
  120. // open.Run("https://www.3dqueen.cloud")
  121. // case <-subMenuBottom2.ClickedCh:
  122. // panic("panic button pressed")
  123. // case <-subMenuBottom.ClickedCh:
  124. // toggle()
  125. // case <-mToggle.ClickedCh:
  126. // toggle()
  127. case <-mQuit.ClickedCh:
  128. // app.GApp.QuitApp(0)
  129. return
  130. }
  131. }
  132. }