mirror of
https://github.com/clockworkpi/launcher.git
synced 2025-12-12 17:58:50 +01:00
129 lines
3.7 KiB
Python
129 lines
3.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import pygame
|
|
|
|
## local UI import
|
|
from UI.page import Page
|
|
from UI.label import Label
|
|
from UI.icon_item import IconItem
|
|
from UI.multi_icon_item import MultiIconItem
|
|
from UI.icon_pool import MyIconPool
|
|
from UI.skin_manager import MySkinManager
|
|
|
|
|
|
class NetItemMultiIcon(MultiIconItem):
|
|
_CanvasHWND = None
|
|
_Parent = None
|
|
_Width = 18
|
|
_Height = 18
|
|
|
|
def Draw(self):
|
|
self._CanvasHWND.blit(self._ImgSurf,(self._PosX,self._PosY+(self._Parent._Height-self._Height)/2,self._Width,self._Height),
|
|
(0,self._IconIndex*self._IconHeight,self._IconWidth,self._IconHeight))
|
|
|
|
class NetItemIcon(IconItem):
|
|
|
|
_CanvasHWND = None
|
|
_Parent = None
|
|
_Width = 18
|
|
_Height = 18
|
|
|
|
def Draw(self):
|
|
self._CanvasHWND.blit(self._ImgSurf,(self._PosX,self._PosY+(self._Parent._Height-self._Height)/2,self._Width,self._Height))
|
|
|
|
|
|
class NetItem(object):
|
|
_PosX = 0
|
|
_PosY = 0
|
|
_Width = 0
|
|
_Height = 30
|
|
|
|
_Atts = {}
|
|
|
|
_Channel="" # '10'
|
|
_Stren = "" ## 19%
|
|
|
|
_Parent = None
|
|
_IsActive = False
|
|
|
|
_Icons = {} ## wifi strength and security icons
|
|
_Labels = {}
|
|
_FontObj = None
|
|
|
|
_RSSI = 0
|
|
_MacAddr=""
|
|
_Path = "" #/org/bluez/hci0/dev_34_88_5D_97_FF_26
|
|
|
|
def __init__(self):
|
|
self._Labels = {}
|
|
self._Icons = {}
|
|
|
|
def SetActive(self,act):
|
|
self._IsActive = act
|
|
|
|
def Init(self, path, object):
|
|
self._Path = path
|
|
self._Atts = object
|
|
|
|
is_active=False
|
|
if "Address" in object:
|
|
self._MacAddr = object["Address"]
|
|
|
|
if "Connected" in object:
|
|
if object["Connected"] == 1:
|
|
is_active=True
|
|
|
|
if is_active:
|
|
self.SetActive(is_active)
|
|
|
|
|
|
name_label = Label()
|
|
name_label._PosX = 12
|
|
name_label._CanvasHWND = self._Parent._CanvasHWND
|
|
|
|
mac_addr = self._MacAddr
|
|
|
|
if "Name" in object:
|
|
if len(object["Name"]) > 3:
|
|
mac_addr = object["Name"]
|
|
|
|
if "RSSI" in object:
|
|
print(object["RSSI"])
|
|
self._RSSI = int(object["RSSI"])
|
|
|
|
mac_addr = mac_addr[:34]
|
|
|
|
name_label.Init(mac_addr,self._FontObj)
|
|
|
|
self._Labels["mac_addr"] = name_label
|
|
|
|
done_icon = NetItemIcon()
|
|
done_icon._ImgSurf = MyIconPool._Icons["done"]
|
|
done_icon._CanvasHWND = self._Parent._CanvasHWND
|
|
done_icon._Parent = self
|
|
|
|
self._Icons["done"] = done_icon
|
|
## reuse the resource from TitleBar
|
|
#pp(theString)
|
|
|
|
|
|
def Connect(self,notworkentry=None):
|
|
""" Execute connection. """
|
|
#dev = dbus.Interface(bus.get_object("org.bluez", "/org/bluez/hci0/dev_"+"34_88_5D_97_FF_26"), "org.bluez.Device1")
|
|
proxy_obj = self._Parent._Dbus.get_object("org.bluez",self._Path)
|
|
dev = self._Parent._Dbus.Interface(proxy_obj, "org.bluez.Device1")
|
|
dev.Connect()
|
|
|
|
def Draw(self):
|
|
#pygame.draw.line(self._Parent._CanvasHWND,(169,169,169),(self._PosX,self._PosY),(self._PosX+self._Width,self._PosY),1)
|
|
for i in self._Labels:
|
|
self._Labels[i]._PosY = self._PosY + (self._Height - self._Labels[i]._Height)/2
|
|
self._Labels[i].Draw()
|
|
|
|
if self._IsActive:
|
|
self._Icons["done"].NewCoord(320-22,self._PosY)
|
|
self._Icons["done"].Draw()
|
|
|
|
pygame.draw.line(self._Parent._CanvasHWND,MySkinManager.GiveColor('Line'),
|
|
(self._PosX,self._PosY+self._Height-1),(self._PosX+self._Width,self._PosY+self._Height-1),1)
|