net_item.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. # -*- coding: utf-8 -*-
  2. import pygame
  3. ## local UI import
  4. from UI.page import Page
  5. from UI.label import Label
  6. from UI.fonts import fonts
  7. from UI.icon_item import IconItem
  8. from UI.multi_icon_item import MultiIconItem
  9. from UI.icon_pool import MyIconPool
  10. from UI.skin_manager import SkinManager
  11. class NetItemMultiIcon(MultiIconItem):
  12. _CanvasHWND = None
  13. _Parent = None
  14. _Width = 18
  15. _Height = 18
  16. def Draw(self):
  17. self._CanvasHWND.blit(self._ImgSurf,(self._PosX,self._PosY+(self._Parent._Height-self._Height)/2,self._Width,self._Height),
  18. (0,self._IconIndex*self._IconHeight,self._IconWidth,self._IconHeight))
  19. class NetItemIcon(IconItem):
  20. _CanvasHWND = None
  21. _Parent = None
  22. _Width = 18
  23. _Height = 18
  24. def Draw(self):
  25. self._CanvasHWND.blit(self._ImgSurf,(self._PosX,self._PosY+(self._Parent._Height-self._Height)/2,self._Width,self._Height))
  26. class NetItem(object):
  27. _PosX = 0
  28. _PosY = 0
  29. _Width = 0
  30. _Height = 30
  31. _Atts = {}
  32. _Channel="" # '10'
  33. _Stren = "" ## 19%
  34. _Parent = None
  35. _IsActive = False
  36. _Icons = {} ## wifi strength and security icons
  37. _Labels = {}
  38. _FontObj = None
  39. _RSSI = 0
  40. _MacAddr=""
  41. _Path = "" #/org/bluez/hci0/dev_34_88_5D_97_FF_26
  42. def __init__(self):
  43. self._Labels = {}
  44. self._Icons = {}
  45. def SetActive(self,act):
  46. self._IsActive = act
  47. def Init(self, path, object):
  48. self._Path = path
  49. self._Atts = object
  50. is_active=False
  51. if "Address" in object:
  52. self._MacAddr = object["Address"]
  53. if "Connected" in object:
  54. if object["Connected"] == 1:
  55. is_active=True
  56. if is_active:
  57. theString = ">> "+theString[1:]
  58. self.SetActive(is_active)
  59. name_label = Label()
  60. name_label._PosX = 12
  61. name_label._CanvasHWND = self._Parent._CanvasHWND
  62. mac_addr = self._MacAddr
  63. if "Name" in object:
  64. if len(object["Name"]) > 3:
  65. mac_addr = object["Name"]
  66. if "RSSI" in object:
  67. print(object["RSSI"])
  68. self._RSSI = int(object["RSSI"])
  69. name_label.Init(mac_addr,self._FontObj)
  70. self._Labels["mac_addr"] = name_label
  71. done_icon = NetItemIcon()
  72. done_icon._ImgSurf = MyIconPool._Icons["done"]
  73. done_icon._CanvasHWND = self._Parent._CanvasHWND
  74. done_icon._Parent = self
  75. self._Icons["done"] = done_icon
  76. ## reuse the resource from TitleBar
  77. #pp(theString)
  78. def Connect(self,notworkentry=None):
  79. """ Execute connection. """
  80. #dev = dbus.Interface(bus.get_object("org.bluez", "/org/bluez/hci0/dev_"+"34_88_5D_97_FF_26"), "org.bluez.Device1")
  81. proxy_obj = self._Parent._Dbus.get_object("org.bluez",self._Path)
  82. dev = self._Parent._Dbus.Interface(proxy_obj, "org.bluez.Device1")
  83. dev.Connect()
  84. def Draw(self):
  85. #pygame.draw.line(self._Parent._CanvasHWND,(169,169,169),(self._PosX,self._PosY),(self._PosX+self._Width,self._PosY),1)
  86. for i in self._Labels:
  87. self._Labels[i]._PosY = self._PosY + (self._Height - self._Labels[i]._Height)/2
  88. self._Labels[i].Draw()
  89. if self._IsActive:
  90. self._Icons["done"].NewCoord(320-14,self._PosY)
  91. self._Icons["done"].Draw()
  92. pygame.draw.line(self._Parent._CanvasHWND,SkinManager().GiveColor('Line'),
  93. (self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1)