2018-12-14 15:18:42 +08:00

204 lines
3.7 KiB
Go

package Bluetooth
type BleForgetConfirmPage struct {
UI.ConfirmPage
}
func NewBleForgetConfirmPage() *BleForgetConfirmPage {
p := &BleForgetConfirmPage{}
p.ConfirmText = "Confirm Forget?"
p.UI.ConfirmPage.ConfirmText = p.ConfirmText
return p
}
func (self *BleForgetConfirmPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == CurKeys["A"] || ev.Data["Key"] == CurKeys["Menu"] {
self.ReturnToUpLevelPage()
self.Screen.Draw()
self.Screen.SwapAndShow()
}
if ev.Data["Key"] == CurKeys["B"] {
self.SnapMsg("Deleting")
self.Screen.Draw()
self.Screen.SwapAndShow()
time.BlockDelay(400)
self.ReturnToUpLevelPage()
self.Screen.Draw()
self.Screen.SwapAndShow()
}
}
func (self *BleForgetConfirmPage) Draw() {
self.DrawBG()
for _,v := range self.MyList{
v.Draw()
}
}
type BleInfoPageSelector struct {
UI.InfoPageSelector
}
func NewBleInfoPageSelector() *BleInfoPageSelector{
p := &BleInfoPageSelector{}
return p
}
func (self *BleInfoPageSelector) Draw() {
idx := self.Parent.GetPsIndex()
mylist := self.Parent.GetMyList()
if idx < len(mylist) {
_,y := mylist[idx].Coord()
_,h := mylist[idx].Size()
x := self.PosX+2
self.PosY = y+1
self.Height = h-3
canvas_ := self.Parent.GetCanvasHWND()
rect_ := rect.Rect(x,self.PosY,self.Width-4, self.Height)
draw.AARoundRect(canvas_,&rect_,self.BackgroundColor,4,0,self.BackgroundColor)
}
}
type BleInfoPage struct {
UI.Page
ListFontObj *ttf.Font
ListSmFontObj *ttf.Font
ListSm2FontObj *ttf.Font
MyList []UI.ListItemInterface
ConfirmPage1 *BleForgetConfirmPage
}
func NewBleInfoPage() *BleInfoPage {
p :=&BleInfoPage{}
p.FootMsg = [5]string{"Nav","Disconnect","Forget","Back","" }
p.ListFontObj = UI.Fonts["varela15"]
p.ListSmFontObj = UI.Fonts["varela12"]
p.ListSm2FontObj = UI.Fonts["varela11"]
return p
}
func (self *BleInfoPage) 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 // equals to screen width
self.Height = self.Screen.Height
ps := NewBleInfoPageSelector()
ps.Parent = self
self.Ps = ps
self.PsIndex = 0
self.GenList()
self.Scroller = UI.NewListScroller()
self.Scroller.Parent = self
self.Scroller.PosX = 2
self.Scroller.PosY = 2
self.Scroller.Init()
self.ConfirmPage1 = BleForgetConfirmPage()
self.ConfirmPage1.Screen = self.Screen
self.ConfirmPage1.Name = "Confirm Forget"
self.ConfirmPage1.Parent = self
self.ConfirmPage1.Init()
}
func (self *BleInfoPage) GenList() {
if len(self.AList) == 0 {
return
}
self.MyList = nil
self.PsIndex = 0
start_x := 0
start_y := 0
i := 0
for k,v := range self.AList {
li := UI.NewInfoPageListItem()
li.Parent = self
li.PosX = start_x
li.PosY = start_y +i*NetItemDefaultHeight
li.Width = UI.Width
li.Fonts["normal"] = self.ListFontObj
if k =="UUIDs" {
li.Fonts["small"] = self.ListSm2FontObj
}else{
li.Fonts["small"] = self.ListSmFontObj
}
li.Init(k)
li.Flag = k
}
}
func (self *BleInfoPage) 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 y < 0 {
for i,v := range self.MyList {
x,y = v.Coord()
_,h := v.Size()
self.MyList[i].NewCoord(x,y+h)
}
}
}
func (self *BleInfoPage) ScrollDown() {
}