diff --git a/Menu/GameShell/10_Settings/About/about.so b/Menu/GameShell/10_Settings/About/about.so index 146b4a0..fbe9c5c 100644 Binary files a/Menu/GameShell/10_Settings/About/about.so and b/Menu/GameShell/10_Settings/About/about.so differ diff --git a/Menu/GameShell/10_Settings/Settings.go b/Menu/GameShell/10_Settings/Settings.go index f0f1e53..a764d88 100644 --- a/Menu/GameShell/10_Settings/Settings.go +++ b/Menu/GameShell/10_Settings/Settings.go @@ -93,6 +93,7 @@ func (self *SettingsPage) Init() { alist := [][]string{ // "so file", "folder name", "label text" {"about.so","About","About"}, + {"wifi.so","Wifi","Wi-Fi"}, } diff --git a/Menu/GameShell/10_Settings/Settings.so b/Menu/GameShell/10_Settings/Settings.so index e551da2..a9c10dd 100644 Binary files a/Menu/GameShell/10_Settings/Settings.so and b/Menu/GameShell/10_Settings/Settings.so differ diff --git a/Menu/GameShell/10_Settings/Wifi/net_item.go b/Menu/GameShell/10_Settings/Wifi/net_item.go index c806b34..0dc26a2 100644 --- a/Menu/GameShell/10_Settings/Wifi/net_item.go +++ b/Menu/GameShell/10_Settings/Wifi/net_item.go @@ -1,13 +1,19 @@ package main import ( + "fmt" + "strconv" + "strings" + "github.com/veandco/go-sdl2/sdl" "github.com/veandco/go-sdl2/ttf" - + "github.com/cuu/gogame/color" + "github.com/cuu/gogame/draw" "github.com/cuu/gogame/rect" "github.com/cuu/gogame/surface" - "github.com/veandco/go-sdl2/sdl" "github.com/cuu/LauncherGo/sysgo/UI" + + "github.com/cuu/LauncherGo/sysgo/DBUS" ) var NetItemDefaultHeight = 30 @@ -47,7 +53,7 @@ func NewNetItemIcon() *NetItemIcon { } func (self *NetItemIcon) Draw() { - _,h_ := self.Parent.SIze() + _,h_ := self.Parent.Size() dest_rect := rect.Rect(self.PosX,self.PosY+(h_-self.Height)/2,self.Width,self.Height) @@ -82,7 +88,7 @@ type NetItem struct { Stren string // 19% NetId int Mode string // Master or AdHoc - Parent UI.PageInterface + Parent *WifiList IsActive bool Labels map[string]UI.LabelInterface @@ -90,6 +96,9 @@ type NetItem struct { Fonts map[string]*ttf.Font FontObj *ttf.Font + Wireless *DBUS.DbusInterface + Daemon *DBUS.DbusInterface + } func NewNetItem() *NetItem { @@ -112,10 +121,9 @@ func (self *NetItem) SetActive( act bool) { } func (self *NetItem) UpdateStrenLabel( strenstr string) { // ## strenstr should be 'number',eg:'90' - the_main_screen := self.Parent.GetScreen() - dbus := the_main_screen.DBusManager - dbus.Daemon.Get( self.Daemon.Method("FormatSignalForPrinting",strenstr), &strenstr) + + self.Daemon.Get( self.Daemon.Method("FormatSignalForPrinting",strenstr), &strenstr) self.Stren = strenstr @@ -129,11 +137,13 @@ func (self *NetItem) Init(i int,is_active bool) { var sig_display_type int strenstr := "quality" gap := 4 - - the_main_screen := self.Parent.GetScreen() - dbus := the_main_screen.DBusManager - - dbus.Daemon.Get( dbus.Daemon.Method("GetSignalDisplayType"), &sig_display_type ) + + the_main_screen := self.Parent.GetScreen() + + self.Wireless = self.Parent.Wireless + self.Daemon = self.Parent.Daemon + + self.Daemon.Get( self.Daemon.Method("GetSignalDisplayType"), &sig_display_type ) if sig_display_type == 0 { strenstr = "quality" @@ -146,36 +156,38 @@ func (self *NetItem) Init(i int,is_active bool) { self.NetId = i tmp :="" - dbus.Wireless.Get(dbus.Wireless.Method("GetWirelessProperty",self.NetId, strenstr),&tmp) - dbus.Daemon.Get( self.Daemon.Method("FormatSignalForPrinting",tmp), &tmp) + self.Wireless.Get(self.Wireless.Method("GetWirelessProperty",self.NetId, strenstr),&tmp) + self.Daemon.Get( self.Daemon.Method("FormatSignalForPrinting",tmp), &tmp) self.Stren = tmp - dbus.Wireless.Get( dbus.Wireless.Method("GetWirelessProperty",self.NetId,"essid"),&self.Essid) - dbus.Wireless.Get( dbus.Wireless.Method("GetWirelessProperty",self.NetId,"bssid"),&self.Bssid) + self.Wireless.Get( self.Wireless.Method("GetWirelessProperty",self.NetId,"essid"),&self.Essid) + self.Wireless.Get( self.Wireless.Method("GetWirelessProperty",self.NetId,"bssid"),&self.Bssid) check_enc := false - dbus.Wireless.Get( dbus.Wireless.Method("GetWirelessProperty",self.NetId,"encryption"),&check_enc) + self.Wireless.Get( self.Wireless.Method("GetWirelessProperty",self.NetId,"encryption"),&check_enc) if check_enc == true { - dbus.Wireless.Get( dbus.Wireless.Method("GetWirelessProperty",self.NetId,"encryption_method"),&self.Encrypt) + self.Wireless.Get( self.Wireless.Method("GetWirelessProperty",self.NetId,"encryption_method"),&self.Encrypt) }else { self.Encrypt = "Unsecured" } - dbus.Wireless.Get( dbus.Wireless.Method("GetWirelessProperty",self.NetId,"mode"),&self.Mode) + self.Wireless.Get( self.Wireless.Method("GetWirelessProperty",self.NetId,"mode"),&self.Mode) - dbus.Wireless.Get( dbus.Wireless.Method("GetWirelessProperty",self.NetId,"channel"),&self.Channel) + self.Wireless.Get( self.Wireless.Method("GetWirelessProperty",self.NetId,"channel"),&self.Channel) theString := fmt.Sprintf(" %-*s %25s %9s %17s %6s %4s",gap,self.Stren,self.Essid,self.Encrypt,self.Bssid,self.Mode, self.Channel) - + + if is_active { theString = ">> " + theString[1:] self.SetActive(is_active) } - + fmt.Println(theString) + essid_label := UI.NewLabel() essid_label.PosY = 36 essid_label.CanvasHWND = self.Parent.GetCanvasHWND() @@ -187,7 +199,7 @@ func (self *NetItem) Init(i int,is_active bool) { }else { essid_ = self.Essid } - + fmt.Println(essid_) essid_label.Init(essid_, self.FontObj,nil) self.Labels["essid"] = essid_label @@ -195,7 +207,7 @@ func (self *NetItem) Init(i int,is_active bool) { stren_label := UI.NewLabel() stren_label.CanvasHWND = self.Parent.GetCanvasHWND() - stren_label.Init(self.Stren, self.FontObj) + stren_label.Init(self.Stren, self.FontObj,nil) stren_label.PosX = self.Width - 23 - stren_label.Width-2 self.Labels["stren"] = stren_label @@ -214,7 +226,7 @@ func (self *NetItem) Init(i int,is_active bool) { self.Icons["done"] = done_icon nimt := NewNetItemMultiIcon() - nimt.ImgSurf = the_main_screen.TitleBar.Icons["wifistatus"].ImgSurf + nimt.ImgSurf = the_main_screen.TitleBar.Icons["wifistatus"].GetImgSurf() nimt.CanvasHWND = self.Parent.GetCanvasHWND() nimt.Parent = self // WidgetInterface @@ -226,10 +238,8 @@ func (self *NetItem) Init(i int,is_active bool) { func (self *NetItem) Connect() { - the_main_screen := self.Parent.GetScreen() - dbus := the_main_screen.DBusManager - dbus.Wireless.Method("ConnectWireless",self.NetId) + self.Wireless.Method("ConnectWireless",self.NetId) } @@ -252,9 +262,10 @@ func (self *NetItem) Draw() { self.Icons["lock"].Draw() } - stren_int,err := strconv.ParseInt(strings.Replace(self.Stren,"%",""),10,64) + stren_int,err := strconv.ParseInt(strings.Replace(self.Stren,"%","",-1),10,64) if err == nil { - ge := the_main_screen.TitleBar.GetWifiStrength(stren_int) + the_main_screen := self.Parent.GetScreen() + ge := the_main_screen.TitleBar.GetWifiStrength(int(stren_int)) if ge > 0 { self.Icons["wifistatus"].SetIconIndex(ge) self.Icons["wifistatus"].NewCoord(self.Width-23,self.PosY) @@ -266,7 +277,7 @@ func (self *NetItem) Draw() { } } - draw.Line(self.ParseInt.GetCanvasHWND(), + draw.Line(self.Parent.GetCanvasHWND(), &color.Color{169,169,169,255}, self.PosX,self.PosY+self.Height-1, self.PosX+self.Width,self.PosY+self.Height-1, diff --git a/Menu/GameShell/10_Settings/Wifi/plugin_init.go b/Menu/GameShell/10_Settings/Wifi/plugin_init.go index 1ed416f..85fbc61 100644 --- a/Menu/GameShell/10_Settings/Wifi/plugin_init.go +++ b/Menu/GameShell/10_Settings/Wifi/plugin_init.go @@ -10,7 +10,7 @@ import ( "github.com/cuu/gogame/color" */ "github.com/cuu/LauncherGo/sysgo/UI" - + "github.com/cuu/LauncherGo/sysgo/DBUS" ) /******************************************************************************/ @@ -28,6 +28,13 @@ func (self *WifiPlugin) Init( main_screen *UI.MainScreen ) { self.PasswordPage.Init() self.ScanPage = NewWifiList() + self.ScanPage.Name = "Scan wifi" + self.ScanPage.Wireless = DBUS.DBusHandler.Wifi + self.ScanPage.Daemon = DBUS.DBusHandler.Daemon + + self.ScanPage.Screen = main_screen + + self.ScanPage.Init() } diff --git a/Menu/GameShell/10_Settings/Wifi/wifi.go b/Menu/GameShell/10_Settings/Wifi/wifi.go index c95817a..c18d482 100644 --- a/Menu/GameShell/10_Settings/Wifi/wifi.go +++ b/Menu/GameShell/10_Settings/Wifi/wifi.go @@ -2,17 +2,25 @@ package main //wifi_list.py import ( + "fmt" + "strconv" "strings" gotime "time" + + "github.com/veandco/go-sdl2/ttf" + "github.com/cuu/gogame/surface" "github.com/cuu/gogame/font" "github.com/cuu/gogame/color" "github.com/cuu/gogame/event" "github.com/cuu/gogame/time" + "github.com/cuu/gogame/rect" + "github.com/cuu/gogame/draw" "github.com/cuu/LauncherGo/sysgo/UI" "github.com/cuu/LauncherGo/sysgo/DBUS" - "github.com/cuu/LaucherGo/sysgo/wicd/misc" + + "github.com/cuu/LauncherGo/sysgo/wicd/misc" ) @@ -23,6 +31,9 @@ type WifiDisconnectConfirmPage struct { func NewWifiDisconnectConfirmPage() *WifiDisconnectConfirmPage { p := &WifiDisconnectConfirmPage{} + p.ListFont = UI.Fonts["veramono20"] + p.FootMsg = [5]string{"Nav","","","Cancel","Yes"} + p.ConfirmText ="Confirm Disconnect?" return p } @@ -40,7 +51,7 @@ func (self *WifiDisconnectConfirmPage) KeyDown(ev *event.Event ) { self.Screen.Draw() self.Screen.SwapAndShow() - self.Parent.Daemon.Disconnect() + DBUS.DBusHandler.Daemon.Method("Disconnect") time.BlockDelay(400) @@ -60,7 +71,7 @@ type WifiInfoPage struct { AList map[string]map[string]string NetworkId int - MyList []*UI.ListItemInterface + MyList []UI.ListItemInterface DisconnectConfirmPage *WifiDisconnectConfirmPage //child page } @@ -82,7 +93,7 @@ func (self *WifiInfoPage) GenList() { var iwconfig string var cur_network_id int self.MyList = nil - self.MyList = make([]*UI.ListItemInterface,0) + self.MyList = make([]UI.ListItemInterface,0) cur_network_id = -2 @@ -92,7 +103,7 @@ func (self *WifiInfoPage) GenList() { self.Wireless.Get( self.Wireless.Method("GetCurrentNetworkID",iwconfig), &cur_network_id) if cur_network_id == self.NetworkId { var ip string - self.Wireless.Get( self.Wireless.Method("GetWirelessIP",''), &ip) + self.Wireless.Get( self.Wireless.Method("GetWirelessIP",""), &ip) if len(ip) > 0 { self.AList["ip"]["value"]=ip @@ -136,7 +147,7 @@ func (self *WifiInfoPage) Init() { 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 @@ -168,6 +179,7 @@ func (self *WifiInfoPage) Init() { self.DisconnectConfirmPage.Parent = self self.DisconnectConfirmPage.Init() + } func (self *WifiInfoPage) ScrollUp() { @@ -227,12 +239,12 @@ func (self *WifiInfoPage) TryDisconnect() { 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) + self.Wireless.Get( self.Wireless.Method("GetWirelessIP",""), &ip) if cur_network_id == self.NetworkId && len(ip) > 1 { self.Screen.PushPage(self.DisconnectConfirmPage) self.Screen.Draw() - self.SwapAndShow() + self.Screen.SwapAndShow() }else { return } @@ -244,7 +256,7 @@ func (self *WifiInfoPage) OnLoadCb() { 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) + self.Wireless.Get( self.Wireless.Method("GetWirelessIP",""), &ip) if cur_network_id == self.NetworkId && len(ip) > 1 { self.FootMsg[1]="Disconnect" @@ -318,10 +330,10 @@ func NewWifiListSelector() *WifiListSelector { func (self *WifiListSelector) Draw() { idx := self.Parent.PsIndex - if idx < len(self.Parent.WirelessList) { - x := self.Parent.WirelessList[idx].PosX + 11 - y := self.Parent.WirelessList[idx].PosY + 1 - h := self.Parent.WirelessList[idx].Height - 3 + if idx < len(self.Parent.MyList) { + x := self.Parent.MyList[idx].PosX + 11 + y := self.Parent.MyList[idx].PosY + 1 + h := self.Parent.MyList[idx].Height - 3 self.PosX = x self.PosY = y @@ -345,7 +357,7 @@ func NewWifiListMessageBox() *WifiListMessageBox{ func (self *WifiListMessageBox) Draw() { - my_text := font.Render(self.FontObj,self.Text,true,self.Color) + my_text := font.Render(self.FontObj,self.Text,true,self.Color,nil) w := surface.GetWidth(my_text) h := surface.GetHeight(my_text) @@ -402,6 +414,8 @@ type WifiList struct{ func NewWifiList() *WifiList { p:= &WifiList{} p.PrevWicdState = -1 + p.ListFontObj = UI.Fonts["notosanscjk15"] + p.FootMsg = [5]string{"Nav.","Scan","Info","Back","Enter"} return p } @@ -436,7 +450,7 @@ func (self *WifiList) GenNetworkList() { var is_active bool - self.Wireless.Method("GetNumberOfNetworks"),&num_of_networks) + self.Wireless.Get(self.Wireless.Method("GetNumberOfNetworks"),&num_of_networks) for network_id:=0;network_id< num_of_networks;network_id++ { is_active = false @@ -497,14 +511,18 @@ func (self *WifiList) UpdateNetList(state int,info []string ,force_check bool,fi if self.Daemon == nil { return } + + type status struct { + State int + Trash []string + } - var state_ int - var trash []string + var mystatus status if state == -1 { - self.Daemon.Get(self.Daemon.Method("GetConnectionStatus"),&state_,&trash) - fmt.Println("state ",state_) - fmt.Println("Trash ",trash) + self.Daemon.Get(self.Daemon.Method("GetConnectionStatus"),&mystatus) + fmt.Println("state ",mystatus.State) + fmt.Println("Trash ",mystatus.Trash) } if force_check == true || self.PrevWicdState != state { @@ -550,7 +568,7 @@ func (self *WifiList) SetConnectingStatus(fast bool) bool { // default fast == f return false } - status_msg := fmt.Sprintf("%s: %s", essid,stat) + status_msg = fmt.Sprintf("%s: %s", essid,stat) if self.LastStatusMsg != status_msg { fmt.Printf("%s: %s\n",essid,stat) @@ -606,7 +624,7 @@ func (self *WifiList) UpdateStatus() bool { iwconfig = "" } - self.Wireless.Get( self.Wireless.Method("GetWirelessIP",''), &ip) + self.Wireless.Get( self.Wireless.Method("GetWirelessIP",""), &ip) if self.CheckForWireless(iwconfig,ip,"") == true { // self.CheckForWireless(iwconfig,self._Wireless.GetWirelessIP(''),None) return true @@ -829,7 +847,7 @@ func (self *WifiList) KeyDown( ev *event.Event ) { self.Wireless.Get(self.Wireless.Method("CheckIfWirelessConnecting"),&wireless_connecting) if wireless_connecting == true { - self.Shutdownconnecting() + self.ShutDownConnecting() self.ShowBox("ShutDownConnecting...") self.BlockingUI = true self.BlockCb = self.AbortedAndReturnToUpLevel @@ -874,7 +892,7 @@ func (self *WifiList) KeyDown( ev *event.Event ) { self.Screen.SetCurPage(APIOBJ.PasswordPage) thepass := "" - for i,v := range wicd_wireless_encrypt_pwd { //[]map[string]string + for _,v := range wicd_wireless_encrypt_pwd { //[]map[string]string if _, ok := v["preshared_key"]; ok { if len(v["preshared_key"]) > 0 { thepass = v["preshared_key"] @@ -926,12 +944,12 @@ func (self *WifiList) Init() { msgbox := NewWifiListMessageBox() msgbox.CanvasHWND = self.CanvasHWND - msgbox.Init(" ",UI.Fonts["veramono12"]) + msgbox.Init(" ",UI.Fonts["veramono12"],nil) msgbox.Parent = self self.MsgBox = msgbox - self.EncMethods = misc.LoadEncryptionMethods() //# load predefined templates from /etc/wicd/... + self.EncMethods = misc.LoadEncryptionMethods(false) //# load predefined templates from /etc/wicd/... /* { 'fields': [], @@ -947,7 +965,7 @@ func (self *WifiList) Init() { }, */ - self.UpdateNetList(true,true) // self.UpdateNetList(force_check=True,firstrun=True) + self.UpdateNetList(-1,[]string{}, true,true) // self.UpdateNetList(force_check=True,firstrun=True) self.Scroller = UI.NewListScroller() self.Scroller.Parent = self diff --git a/Menu/GameShell/10_Settings/Wifi/wifi.so b/Menu/GameShell/10_Settings/Wifi/wifi.so new file mode 100644 index 0000000..46e069b Binary files /dev/null and b/Menu/GameShell/10_Settings/Wifi/wifi.so differ diff --git a/Menu/GameShell/HelloWorld/HelloWorld.so b/Menu/GameShell/HelloWorld/HelloWorld.so index 406c9a2..5796c55 100644 Binary files a/Menu/GameShell/HelloWorld/HelloWorld.so and b/Menu/GameShell/HelloWorld/HelloWorld.so differ diff --git a/build.sh b/build.sh index bfddeca..d95139f 100755 --- a/build.sh +++ b/build.sh @@ -16,4 +16,7 @@ cd Menu/GameShell/10_Settings/About go build -o about.so -buildmode=plugin cd - +cd Menu/GameShell/10_Settings/Wifi +go build -o wifi.so -buildmode=plugin +cd - diff --git a/sysgo/DBUS/dbus.go b/sysgo/DBUS/dbus.go index fdc3970..567a910 100644 --- a/sysgo/DBUS/dbus.go +++ b/sysgo/DBUS/dbus.go @@ -48,12 +48,11 @@ func (self *DbusInterface) Get( thecall *dbus.Call, retvalues ...interface{}) er } err:= thecall.Store(retvalues...) - return err - /* if err != nil { - panic(fmt.Sprintf("Failed: %s",err)) + panic(fmt.Sprintf("Failed: %s,%s",err,thecall.Method)) } - */ + + return err } type DBusInterface interface { @@ -170,3 +169,10 @@ func (self *DBus) ListenSignal() { } } +var DBusHandler *DBus //global + +func init() { + DBusHandler = NewDBus() + DBusHandler.Init() + fmt.Println("dbus inited") +} diff --git a/sysgo/UI/label.go b/sysgo/UI/label.go index 94745c8..743aa6e 100644 --- a/sysgo/UI/label.go +++ b/sysgo/UI/label.go @@ -1,6 +1,7 @@ package UI import ( + //"fmt" "github.com/veandco/go-sdl2/sdl" "github.com/veandco/go-sdl2/ttf" @@ -88,6 +89,7 @@ func (self *Label) SetText(text string) { func (self *Label) Draw() { font.SetBold(self.FontObj,false) // avoing same font tangling set_bold to others + my_text := font.Render(self.FontObj,self.Text, true, self.Color, nil) rect_ := rect.Rect(self.PosX,self.PosY,self.Width,self.Height) diff --git a/sysgo/UI/main_screen.go b/sysgo/UI/main_screen.go index 8030e35..cfba860 100644 --- a/sysgo/UI/main_screen.go +++ b/sysgo/UI/main_screen.go @@ -197,8 +197,9 @@ func (self *MainScreen) Init() { self.SkinManager = NewSkinManager() self.SkinManager.Init() - self.DBusManager = DBUS.NewDBus() - self.DBusManager.Init() + //self.DBusManager = DBUS.NewDBus() + self.DBusManager = DBUS.DBusHandler + //self.DBusManager.Init() } func (self *MainScreen) FartherPages() { // right after ReadTheDirIntoPages