From ed2454ea646d4cbcfacc763590aeb40b328a4e09 Mon Sep 17 00:00:00 2001 From: cuu Date: Tue, 24 Jan 2023 04:24:07 +0000 Subject: [PATCH] fix --- Menu/GameShell/10_Settings/About/about.go | 3 +- .../10_Settings/Airplane/plugin_init.go | 3 +- .../10_Settings/Bluetooth/plugin_init.go | 3 +- .../10_Settings/Brightness/plugin_init.go | 3 +- .../10_Settings/ButtonsLayout/plugin_init.go | 3 +- .../10_Settings/GateWay/plugin_init.go | 3 +- .../10_Settings/Languages/plugin_init.go | 3 +- .../GameShell/10_Settings/Lima/plugin_init.go | 3 +- .../10_Settings/PowerOFF/plugin_init.go | 3 +- .../10_Settings/PowerOptions/plugin_init.go | 3 +- Menu/GameShell/10_Settings/Settings.go | 3 +- .../10_Settings/Sound/plugin_init.go | 3 +- .../10_Settings/Storage/plugin_init.go | 3 +- .../10_Settings/TimeZone/plugin_init.go | 3 +- .../10_Settings/Update/plugin_init.go | 3 +- .../GameShell/10_Settings/Wifi/plugin_init.go | 6 +- Menu/GameShell/10_Settings/Wifi/wifi.go | 21 ++---- Menu/GameShell/21_Warehouse/plugin_init.go | 3 +- Menu/GameShell/97_MusicPlayer/plugin_init.go | 3 +- Menu/GameShell/98_TinyCloud/plugin_init.go | 3 +- Menu/GameShell/99_PowerOFF/plugin_init.go | 3 +- main.go | 10 +-- .../gameshell/titlebar_icons/battery.png | Bin 0 -> 1274 bytes sysgo/UI/Emulator/emulator.go | 3 +- sysgo/UI/UI.go | 10 +-- sysgo/UI/fullscreen.go | 2 +- sysgo/UI/main_screen.go | 4 +- sysgo/UI/title_bar.go | 64 ++++++++++-------- sysgo/UI/util_funcs.go | 7 +- 29 files changed, 80 insertions(+), 104 deletions(-) create mode 100644 skin/default/sysgo/gameshell/titlebar_icons/battery.png diff --git a/Menu/GameShell/10_Settings/About/about.go b/Menu/GameShell/10_Settings/About/about.go index 597f7c7..c0e5469 100644 --- a/Menu/GameShell/10_Settings/About/about.go +++ b/Menu/GameShell/10_Settings/About/about.go @@ -414,8 +414,7 @@ func (self *AboutPlugin) Init(main_screen *UI.MainScreen) { func (self *AboutPlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushPage(self.Page) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/10_Settings/Airplane/plugin_init.go b/Menu/GameShell/10_Settings/Airplane/plugin_init.go index 31d006f..d2981ea 100644 --- a/Menu/GameShell/10_Settings/Airplane/plugin_init.go +++ b/Menu/GameShell/10_Settings/Airplane/plugin_init.go @@ -30,8 +30,7 @@ func (self *AirplanePlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushCurPage() main_screen.SetCurPage(self.AirplanePage) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/10_Settings/Bluetooth/plugin_init.go b/Menu/GameShell/10_Settings/Bluetooth/plugin_init.go index a9e89c3..6fedc2f 100644 --- a/Menu/GameShell/10_Settings/Bluetooth/plugin_init.go +++ b/Menu/GameShell/10_Settings/Bluetooth/plugin_init.go @@ -121,8 +121,7 @@ func (self *BluetoothPlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushCurPage() main_screen.SetCurPage(self.BluetoothPage) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/10_Settings/Brightness/plugin_init.go b/Menu/GameShell/10_Settings/Brightness/plugin_init.go index 5c47552..53ca21d 100644 --- a/Menu/GameShell/10_Settings/Brightness/plugin_init.go +++ b/Menu/GameShell/10_Settings/Brightness/plugin_init.go @@ -33,8 +33,7 @@ func (self *BrightnessPlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushCurPage() main_screen.SetCurPage(self.BrightnessPage) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/10_Settings/ButtonsLayout/plugin_init.go b/Menu/GameShell/10_Settings/ButtonsLayout/plugin_init.go index 4ec217a..4fe3aed 100644 --- a/Menu/GameShell/10_Settings/ButtonsLayout/plugin_init.go +++ b/Menu/GameShell/10_Settings/ButtonsLayout/plugin_init.go @@ -30,8 +30,7 @@ func (self *ButtonsLayoutPlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushCurPage() main_screen.SetCurPage(self.ButtonsLayoutPage) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/10_Settings/GateWay/plugin_init.go b/Menu/GameShell/10_Settings/GateWay/plugin_init.go index 8ee9cc0..3efc93b 100644 --- a/Menu/GameShell/10_Settings/GateWay/plugin_init.go +++ b/Menu/GameShell/10_Settings/GateWay/plugin_init.go @@ -30,8 +30,7 @@ func (self *GatewayPlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushCurPage() main_screen.SetCurPage(self.Page1st) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/10_Settings/Languages/plugin_init.go b/Menu/GameShell/10_Settings/Languages/plugin_init.go index 1099e42..a92baaa 100644 --- a/Menu/GameShell/10_Settings/Languages/plugin_init.go +++ b/Menu/GameShell/10_Settings/Languages/plugin_init.go @@ -30,8 +30,7 @@ func (self *LanguagesPlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushCurPage() main_screen.SetCurPage(self.LanguagesPage) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/10_Settings/Lima/plugin_init.go b/Menu/GameShell/10_Settings/Lima/plugin_init.go index d33f2f5..8055ac6 100644 --- a/Menu/GameShell/10_Settings/Lima/plugin_init.go +++ b/Menu/GameShell/10_Settings/Lima/plugin_init.go @@ -30,8 +30,7 @@ func (self *LimaPlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushCurPage() main_screen.SetCurPage(self.GPUDriverPage) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/10_Settings/PowerOFF/plugin_init.go b/Menu/GameShell/10_Settings/PowerOFF/plugin_init.go index 8c60de1..6f95534 100644 --- a/Menu/GameShell/10_Settings/PowerOFF/plugin_init.go +++ b/Menu/GameShell/10_Settings/PowerOFF/plugin_init.go @@ -30,8 +30,7 @@ func (self *PowerOFFPlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushCurPage() main_screen.SetCurPage(self.PowerOFFPage) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/10_Settings/PowerOptions/plugin_init.go b/Menu/GameShell/10_Settings/PowerOptions/plugin_init.go index 2223ebc..45593b9 100644 --- a/Menu/GameShell/10_Settings/PowerOptions/plugin_init.go +++ b/Menu/GameShell/10_Settings/PowerOptions/plugin_init.go @@ -30,8 +30,7 @@ func (self *PowerOptionsPlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushCurPage() main_screen.SetCurPage(self.PowerOptionsPage) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/10_Settings/Settings.go b/Menu/GameShell/10_Settings/Settings.go index b99bbaf..911429e 100644 --- a/Menu/GameShell/10_Settings/Settings.go +++ b/Menu/GameShell/10_Settings/Settings.go @@ -307,8 +307,7 @@ func (self *SettingsPlugin) Init(main_screen *UI.MainScreen) { func (self *SettingsPlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushPage(self.Page) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/10_Settings/Sound/plugin_init.go b/Menu/GameShell/10_Settings/Sound/plugin_init.go index a462459..fd9a173 100644 --- a/Menu/GameShell/10_Settings/Sound/plugin_init.go +++ b/Menu/GameShell/10_Settings/Sound/plugin_init.go @@ -34,8 +34,7 @@ func (self *SoundPlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushCurPage() main_screen.SetCurPage(self.SoundPage) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/10_Settings/Storage/plugin_init.go b/Menu/GameShell/10_Settings/Storage/plugin_init.go index bec9469..cc4cdbe 100644 --- a/Menu/GameShell/10_Settings/Storage/plugin_init.go +++ b/Menu/GameShell/10_Settings/Storage/plugin_init.go @@ -29,8 +29,7 @@ func (self *StoragePlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushCurPage() main_screen.SetCurPage(self.StoragePage) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/10_Settings/TimeZone/plugin_init.go b/Menu/GameShell/10_Settings/TimeZone/plugin_init.go index 620f25f..8c5f97a 100644 --- a/Menu/GameShell/10_Settings/TimeZone/plugin_init.go +++ b/Menu/GameShell/10_Settings/TimeZone/plugin_init.go @@ -30,8 +30,7 @@ func (self *TimeZonePlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushCurPage() main_screen.SetCurPage(self.TimeZonePage) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/10_Settings/Update/plugin_init.go b/Menu/GameShell/10_Settings/Update/plugin_init.go index 8e73bb0..5abfdcc 100644 --- a/Menu/GameShell/10_Settings/Update/plugin_init.go +++ b/Menu/GameShell/10_Settings/Update/plugin_init.go @@ -20,8 +20,7 @@ func (self *UpdatePlugin) Init(main_screen *UI.MainScreen) { func (self *UpdatePlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushPage(self.Page) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/10_Settings/Wifi/plugin_init.go b/Menu/GameShell/10_Settings/Wifi/plugin_init.go index 6211651..2c9f5e6 100644 --- a/Menu/GameShell/10_Settings/Wifi/plugin_init.go +++ b/Menu/GameShell/10_Settings/Wifi/plugin_init.go @@ -49,10 +49,8 @@ func (self *WifiPlugin) Init(main_screen *UI.MainScreen) { func (self *WifiPlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { - main_screen.PushCurPage() - main_screen.SetCurPage(self.ScanPage) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.PushPage(self.ScanPage) + main_screen.Refresh() } } diff --git a/Menu/GameShell/10_Settings/Wifi/wifi.go b/Menu/GameShell/10_Settings/Wifi/wifi.go index e13b231..c3408e4 100644 --- a/Menu/GameShell/10_Settings/Wifi/wifi.go +++ b/Menu/GameShell/10_Settings/Wifi/wifi.go @@ -372,7 +372,6 @@ type WifiList struct { Connecting bool Scanning bool - ShowingMessageBox bool MsgBox *WifiListMessageBox ConnectTry int @@ -402,14 +401,7 @@ func NewWifiList() *WifiList { func (self *WifiList) ShowBox(msg string) { self.MsgBox.Text = msg - self.ShowingMessageBox = true - self.Screen.ShowMsg(msg,0) -} - -func (self *WifiList) HideBox() { - self.Draw() - self.ShowingMessageBox = false - self.Screen.SwapAndShow() + self.Screen.ShowMsg(msg,1) } func (self *WifiList) GenNetworkList() { @@ -452,7 +444,7 @@ func (self *WifiList) GenNetworkList() { li_idx++ } } - + self.WifiScanFinished() self.PsIndex = 0 @@ -495,9 +487,7 @@ func (self *WifiList) WifiScanFinished() { self.ResetPageSelector() self.Scanning = false - self.HideBox() - self.BlockingUI = false fmt.Println("dbus says scan finished") } @@ -508,8 +498,7 @@ func (self *WifiList) WifiScanStarted() { } self.Scanning = true - self.ShowBox("Wifi scanning...") - self.BlockingUI = true + self.ShowBox("Wifi scanning") fmt.Println("dbus says start scan") } @@ -602,7 +591,7 @@ func (self *WifiList) ConfigWireless(password string) { ssid := self.MyList[self.PsIndex].Essid fmt.Println(ssid) fmt.Println(password) - self.ShowBox("Connecting...") + self.ShowBox("Connecting") self.Connecting = true cli := fmt.Sprintf("sudo nmcli dev wifi connect %s password \"%s\"", ssid, password) @@ -674,7 +663,6 @@ func (self *WifiList) ScrollDown() { } func (self *WifiList) AbortedAndReturnToUpLevel() { - self.HideBox() self.Screen.FootBar.ResetNavText() self.ReturnToUpLevelPage() @@ -739,6 +727,7 @@ func (self *WifiList) KeyDown(ev *event.Event) { if ev.Data["Key"] == UI.CurKeys["X"] { self.Rescan(false) + self.Screen.Refresh() } if ev.Data["Key"] == UI.CurKeys["Y"] { diff --git a/Menu/GameShell/21_Warehouse/plugin_init.go b/Menu/GameShell/21_Warehouse/plugin_init.go index 2863288..524e6bc 100644 --- a/Menu/GameShell/21_Warehouse/plugin_init.go +++ b/Menu/GameShell/21_Warehouse/plugin_init.go @@ -32,8 +32,7 @@ func (self *WareHousePlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushCurPage() main_screen.SetCurPage(self.MainPage) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/97_MusicPlayer/plugin_init.go b/Menu/GameShell/97_MusicPlayer/plugin_init.go index 444b93f..f8cce2c 100644 --- a/Menu/GameShell/97_MusicPlayer/plugin_init.go +++ b/Menu/GameShell/97_MusicPlayer/plugin_init.go @@ -35,8 +35,7 @@ func (self *MusicPlayerPlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushCurPage() main_screen.SetCurPage(self.MusicPlayerPage) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/98_TinyCloud/plugin_init.go b/Menu/GameShell/98_TinyCloud/plugin_init.go index c5c9d2f..d72d36c 100644 --- a/Menu/GameShell/98_TinyCloud/plugin_init.go +++ b/Menu/GameShell/98_TinyCloud/plugin_init.go @@ -30,8 +30,7 @@ func (self *TinyCloudPlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushCurPage() main_screen.SetCurPage(self.MainPage) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/Menu/GameShell/99_PowerOFF/plugin_init.go b/Menu/GameShell/99_PowerOFF/plugin_init.go index 8c60de1..6f95534 100644 --- a/Menu/GameShell/99_PowerOFF/plugin_init.go +++ b/Menu/GameShell/99_PowerOFF/plugin_init.go @@ -30,8 +30,7 @@ func (self *PowerOFFPlugin) Run(main_screen *UI.MainScreen) { if main_screen != nil { main_screen.PushCurPage() main_screen.SetCurPage(self.PowerOFFPage) - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() } } diff --git a/main.go b/main.go index 1c4fd3e..99b0b10 100644 --- a/main.go +++ b/main.go @@ -122,8 +122,7 @@ func RestoreLastBackLightBrightness(main_screen *UI.MainScreen) bool { if main_screen.CounterScreen.Counting == true { main_screen.CounterScreen.StopCounter() - main_screen.Draw() - main_screen.SwapAndShow() + main_screen.Refresh() return false } @@ -221,7 +220,7 @@ func AutoRedraw(main_screen *UI.MainScreen) { for { if main_screen.TitleBar.InLowBackLight < 0 { - UI.SwapAndShow() + UI.DisplayFlip() } gotime.Sleep(650 * gotime.Millisecond) } @@ -324,10 +323,7 @@ func run() int { sound_patch.Parent = main_screen sound_patch.Init() - main_screen.Draw() - main_screen.SwapAndShow() - - UI.SwapAndShow() + main_screen.Refresh() //fmt.Println(main_screen) event.AllocEvents(5) diff --git a/skin/default/sysgo/gameshell/titlebar_icons/battery.png b/skin/default/sysgo/gameshell/titlebar_icons/battery.png new file mode 100644 index 0000000000000000000000000000000000000000..12cf126614395b57782b41e7bb02b0696ca875ab GIT binary patch literal 1274 zcmeAS@N?(olHy`uVBq!ia0vp^LJSOyVI0grR`5F8)j*0R-O<;Pfnj4m_n$;oAYUQb zBgmJ5p-PQ`p`nF=;TKS-;RORjsR0ASs{{rHs~HRo;stYd1=;`&Dh%)maRn;)|NsB` z_3Qs@YXM2h0nosq2!P(liXeWuef##jdGqGZo$KS{GhxDnl9H12^z`Y|r&m=~?b@{q z7=YKVUF+)V`u_d<*|TRqeE4wq@ZtOS?>~S3yu7^p)TvW*=F9;GEYK*R75mB_B?DPW zB|(0{Aj73jqCeBk-%K{>{K!`XGzDk~&^)l2KtnPQZ@Tz-G0+mm zByV>Y#{W#Z_kbMs5>H=O_UDWe%my5Lny()M3JD}9`jr7`VEO`MAjQDI8Xb2EsP&Jh zi(^Q{;kVbrgAX}~v^_j}uX_1SX%4eD3GP6qxl+@OsUKeV?tXmcou$%?2#+VbYxE{P zo$F)L;xfapyr`;b(PhpOHP3XWx!xtuWhx~rS$BPiW%|U<)TlkN#!*w^L*>D(2CVDz z4?JCZ+q%O2~9oI7N(WDd!ZqMc&Uf zngiWJPMvX@GM8D?oIkKG$Wc+@=^WP&QI&)oYHc@*S>t%<^fNQfziO`|8#$Tqzr) zZs&xpZdKl`v%UPprr0IdKVCVxVzP3y_}t!_x>u`i=}r(je(^GQwdJpXL*MFpLuC(y zW(OR4<>=zPVbx_*pA#LYXReTn4qcvIl5>Z(%6Gys&wxX|Cq%q%824tlJr13^{Z0@2 z-lu7@AI#64RgUrq>2*2vQhfRa{wO!j@G!x(D|fA`uD#2f;XKWpRoj*Tf-cO#k zT5a*(i`Tw=6I(F1pu&B@U4y%N?$tftOq_rBe6zH&SYj>k=mY2fciIlROV+J#h*vu; zDEs5L#O>2uliK$(+C2FjTpaq`Q1*xTw`|V;&R5^pJo%S-Rle?tNw}$=oaNcj-foNf zz^}{qGhK0t|G`zksQRX1My&L=gTUmVTH+c}l9E`GYL#4+3Zxi}42+C*4GeV+%tH(f utqcsUOpLV+46F 0 { time.BlockDelay(blocktime) - self.CurrentPage.Draw() - self.SwapAndShow() + self.Refresh() } } diff --git a/sysgo/UI/title_bar.go b/sysgo/UI/title_bar.go index 4ce9165..5694826 100644 --- a/sysgo/UI/title_bar.go +++ b/sysgo/UI/title_bar.go @@ -110,6 +110,8 @@ type TitleBar struct { TitleFont *ttf.Font TimeFont *ttf.Font + + updateScreen chan bool } func NewTitleBar() *TitleBar { @@ -136,13 +138,16 @@ func NewTitleBar() *TitleBar { t.TimeFont = Fonts["varela12"] t.InLowBackLight = -1 + + t.updateScreen = make(chan bool,1) + return t } func (self *TitleBar) Redraw() { self.UpdateDownloadStatus() - SwapAndShow() + DisplayFlip() } func (self *TitleBar) UpdateDownloadStatus() { @@ -176,7 +181,7 @@ func (self *TitleBar) RoundRobinCheck() { self.CheckBluetooth() self.UpdateWifiStrength() self.UpdateDownloadStatus() - SwapAndShow() + self.Refresh() } else if self.InLowBackLight >= 0 { self.InLowBackLight += 1 @@ -187,6 +192,7 @@ func (self *TitleBar) RoundRobinCheck() { self.UpdateWifiStrength() self.UpdateDownloadStatus() self.InLowBackLight = 0 // reset + self.Refresh() } } @@ -293,8 +299,6 @@ func (self *TitleBar) SetSoundVolume(vol int) { func (self *TitleBar) CheckBatteryStat() { bat_segs := [][]int{[]int{0, 6}, []int{7, 15}, []int{16, 20}, []int{21, 30}, []int{31, 50}, []int{51, 60}, []int{61, 80}, []int{81, 90}, []int{91, 100}} - self.Icons["battery"] = self.Icons["battery_unknown"] - if FileExists(sysgo.Battery) == false { return } @@ -337,14 +341,11 @@ func (self *TitleBar) CheckBatteryStat() { break } } - if val, ok := bat_uevent["POWER_SUPPLY_STATUS"]; ok { if val == "Charging" { - self.Icons["battery_charging"].SetIconIndex(cap_ge) - self.Icons["battery"] = self.Icons["battery_charging"] + self.Icons["battery"].SetIconIndex(1+cap_ge) } else { - self.Icons["battery_discharging"].SetIconIndex(cap_ge) - self.Icons["battery"] = self.Icons["battery_discharging"] + self.Icons["battery"].SetIconIndex(1+9+cap_ge) } } @@ -392,29 +393,13 @@ func (self *TitleBar) Init(main_screen *MainScreen) { self.Icons["wifistatus"] = icon_wifi_status - battery_charging := NewTitleBarIconItem() - battery_charging.MyType = ICON_TYPES["STAT"] - battery_charging.Parent = self - battery_charging.ImageName = self.icon_base_path + "withcharging.png" - battery_charging.Adjust(start_x+self.IconWidth+self.IconWidth+8, self.IconHeight/2+(self.BarHeight-self.IconHeight)/2, self.IconWidth, self.IconHeight, 0) - - self.Icons["battery_charging"] = battery_charging - - battery_discharging := NewTitleBarIconItem() - battery_discharging.MyType = ICON_TYPES["STAT"] - battery_discharging.Parent = self - battery_discharging.ImageName = self.icon_base_path + "without_charging.png" - battery_discharging.Adjust(start_x+self.IconWidth+self.IconWidth+8, self.IconHeight/2+(self.BarHeight-self.IconHeight)/2, self.IconWidth, self.IconHeight, 0) - - self.Icons["battery_discharging"] = battery_discharging - battery_unknown := NewTitleBarIconItem() battery_unknown.MyType = ICON_TYPES["STAT"] battery_unknown.Parent = self - battery_unknown.ImageName = self.icon_base_path + "battery_unknown.png" + battery_unknown.ImageName = self.icon_base_path + "battery.png" battery_unknown.Adjust(start_x+self.IconWidth+self.IconWidth+8, self.IconHeight/2+(self.BarHeight-self.IconHeight)/2, self.IconWidth, self.IconHeight, 0) - self.Icons["battery_unknown"] = battery_unknown + self.Icons["battery"] = battery_unknown self.CheckBatteryStat() @@ -493,6 +478,12 @@ func (self *TitleBar) ClearCanvas() { self.Icons["round_corners"].SetIconIndex(1) self.Icons["round_corners"].Draw() + go func() { + sdl.Do(func() { + self.RefreshLoop() + }) + }() + } func (self *TitleBar) UpdateTimeLocation() { @@ -576,3 +567,22 @@ func (self *TitleBar) Draw(title string) { title_text_surf.Free() time_text_surf.Free() } + +func (self *TitleBar) Refresh() { + self.updateScreen <- true +} + +func (self *TitleBar) RefreshLoop() { +L: + for { + select { + case v:= <- self.updateScreen: + if v == true { + DisplayFlip() + } + if v== false { + break L + } + } + } +} diff --git a/sysgo/UI/util_funcs.go b/sysgo/UI/util_funcs.go index 1c40e75..7158426 100644 --- a/sysgo/UI/util_funcs.go +++ b/sysgo/UI/util_funcs.go @@ -128,10 +128,15 @@ func ReplaceSuffix(orig_file_str string, new_ext string) string { return orig_file_str // failed just return back where it came } -func SwapAndShow() { +func DisplayFlip() { display.Flip() } +func AsyncDisplayFlip() { + display.ASync(func() { + display.Flip() + }) +} func ReadLines(path string) (lines []string, err error) { var ( file *os.File