From 7b9f42ac2ea4c8a47a549cda3087833049938bc5 Mon Sep 17 00:00:00 2001 From: cuu Date: Sat, 24 Nov 2018 00:09:30 +0800 Subject: [PATCH] continue wifi_list --- Menu/GameShell/10_Settings/Settings.go | 41 ++- Menu/GameShell/10_Settings/Wifi/wifi.go | 403 ++++++++++++++++++++++++ sysgo/UI/confirm_page.go | 2 +- sysgo/UI/info_page_list_item.go | 73 +++++ sysgo/UI/info_page_selector.go | 51 +++ sysgo/UI/skin_manager.go | 3 +- 6 files changed, 569 insertions(+), 4 deletions(-) create mode 100644 sysgo/UI/info_page_list_item.go create mode 100644 sysgo/UI/info_page_selector.go diff --git a/Menu/GameShell/10_Settings/Settings.go b/Menu/GameShell/10_Settings/Settings.go index 1bb8af7..f0f1e53 100644 --- a/Menu/GameShell/10_Settings/Settings.go +++ b/Menu/GameShell/10_Settings/Settings.go @@ -133,12 +133,49 @@ func (self *SettingsPage) Init() { } func (self *SettingsPage) ScrollUp() { - + if len(self.MyList) == 0 { + return + } + + self.PsIndex -= 1 + + if self.PsIndex < 0 { + self.PsIndex = 0 + } + cur_li := self.MyList[self.PsIndex] + x,y := cur_li.Coord() + if x < 0 { + for i:=0;i= len(self.MyList) { + self.PsIndex = len(self.MyList) - 1 + } + + cur_li := self.MyList[self.PsIndex] + x,y := cur_li.Coord() + _,h := cur_li.Size() + + if y + h > self.Height { + for i:=0;i 0 { + self.AList["ip"]["value"]=ip + } + } + var bssid string + self.Wireless.Get( self.Wireless.Method("GetWirelessProperty",self.NetworkId,"bssid"),&bssid) + + self.AList["bssid"]["value"] = bssid + } + + start_x := 0 + start_y := 0 + i := 0 + for k,_ := range self.AList { + li := UI.NewInfoPageListItem() + li.Parent = self + li.PosX = start_x + li.PosY = start_y + i * li.Height//default is 30 + li.Width = UI.Width + li.Fonts["normal"] = self.ListFontObj + li.Fonts["small"] = UI.Fonts["varela12"] + + if self.AList[k]["label"] != "" { + li.Init(self.AList[k]["label"]) + }else { + li.Init(self.AList[k]["key"]) + } + + li.Flag = self.AList[k]["key"] + + li.SetSmallText(self.AList[k]["value"]) + self.MyList = append(self.MyList,li) + i+=1 + } + +} + +func (self *WifiInfoPage) Init() { + if self.Screen != nil { + if self.Screen.CanvasHWND != nil && self.CanvasHWND == nil { + self.CanvasHWND = self.Screen.CanvasHWND + } + + self.PosX = self.Index * self.Screen.Width + self.Width = self.Screen.Width + self.Height = self.Screen.Height + + ps := UI.NewInfoPageSelector() + ps.Parent = self + ps.PosX = 2 + self.Ps = ps + self.PsIndex = 0 + + ip := make(map[string]string) // ip = {} + ip["key"] = "ip" + ip["label"] = "IP" + ip["value"] = "Not Connected" + + bssid := make(map[string]string) // bssid = {} + bssid["key"] = "bssid" + bssid["label"] = "BSSID" + bssid["value"] = "" + + self.AList["ip"] = ip + self.AList["bssid"] = bssid + + self.GenList() + + self.DisconnectConfirmPage = NewWifiDisconnectConfirmPage() + self.DisconnectConfirmPage.Screen = self.Screen + self.DisconnectConfirmPage.Name = "Confirm Disconnect" + self.DisconnectConfirmPage.Parent = self + + self.DisconnectConfirmPage.Init() +} + +func (self *WifiInfoPage) ScrollUp() { + if len(self.MyList) == 0 { + return + } + + self.PsIndex -= 1 + + if self.PsIndex < 0 { + self.PsIndex = 0 + } + cur_li := self.MyList[self.PsIndex] + x,y := cur_li.Coord() + if x < 0 { + for i:=0;i= len(self.MyList) { + self.PsIndex = len(self.MyList) - 1 + } + + cur_li := self.MyList[self.PsIndex] + x,y := cur_li.Coord() + _,h := cur_li.Size() + + if y + h > self.Height { + for i:=0;i 1 { + self.Screen.PushPage(self.DisconnectConfirmPage) + self.Screen.Draw() + self.SwapAndShow() + }else { + return + } +} + +func (self *WifiInfoPage) OnLoadCb() { + var iwconfig string + var cur_network_id int + var ip string + self.Wireless.Get( self.Wireless.Method("GetIwconfig"), &iwconfig) + self.Wireless.Get( self.Wireless.Method("GetCurrentNetworkID",iwconfig), &cur_network_id) + self.Wireless.Get( self.Wireless.Method("GetWirelessIP",''), &ip) + + if cur_network_id == self.NetworkId && len(ip) > 1 { + self.FootMsg[1]="Disconnect" + }else { + self.FootMsg[1] = "" + } + self.GenList() +} + + +func (self *WifiInfoPage) OnReturnBackCb() { + + self.ReturnToUpLevelPage() + self.Screen.Draw() + self.Screen.SwapAndShow() + +} + +func (self *WifiInfoPage) KeyDown(ev *event.Event ) { + + if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { + self.ReturnToUpLevelPage() + self.Screen.Draw() + self.Screen.SwapAndShow() + } + + if ev.Data["Key"] == UI.CurKeys["Up"] { + self.ScrollUp() + self.Screen.Draw() + self.Screen.SwapAndShow() + } + + if ev.Data["Key"] == UI.CurKeys["Down"] { + self.ScrollDown() + self.Screen.Draw() + self.Screen.SwapAndShow() + } + + if ev.Data["Key"] == UI.CurKeys["Enter"] { + self.Click() + } + + if ev.Data["Key"] == UI.CurKeys["X"] { + self.TryDisconnect() + } +} + +func (self *WifiInfoPage) Draw() { + self.ClearCanvas() + self.Ps.Draw() + + for i:=0;i