def Init(self): self._DskUsg = self.DiskUsage() self._CanvasHWND = self._Screen._CanvasHWND self._Width = self._Screen._Width self._Height = self._Screen._Height self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool._Icons["icon_sd"] self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.AddLabel( self._BGmsg % (self._DskUsg[1] - self._DskUsg[0], self._DskUsg[1]), fonts["varela15"]) self._BGpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0) self._BGlabel = Label() self._BGlabel.SetCanvasHWND(self._CanvasHWND) usage_percent = (self._DskUsg[0] / self._DskUsg[1]) * 100.0 self._BGlabel.Init("%d%%" % int(usage_percent), fonts["varela25"]) self._BGlabel.SetColor(self._HighColor) self._FreeLabel = Label() self._FreeLabel.SetCanvasHWND(self._CanvasHWND) self._FreeLabel.Init("Free", fonts["varela13"]) self._FreeLabel.SetColor(self._BGlabel._Color)
def Init(self): if self._Screen != None: if self._Screen._CanvasHWND != None and self._CanvasHWND == None: self._HWND = self._Screen._CanvasHWND self._CanvasHWND = pygame.Surface( (self._Screen._Width, self._BGheight)) self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width ## equal to screen width self._Height = self._Screen._Height done = IconItem() done._ImgSurf = MyIconPool.GiveIconSurface("done") done._MyType = ICON_TYPES["STAT"] done._Parent = self self._Icons["done"] = done ps = ListPageSelector() ps._Parent = self self._Ps = ps self._PsIndex = 0 self.GenList() self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = self._Width - 10 self._Scroller._PosY = 2 self._Scroller.Init() self._Scroller.SetCanvasHWND(self._HWND)
def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND ps = ListPageSelector() ps._Parent = self self._Ps = ps self._PsIndex = 0 self.SyncList() gobject.timeout_add(850, self.GObjectInterval) self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool._Icons["heart"] self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.AddLabel(MyLangManager.Tr("my favorite music"), MyLangManager.TrFont("varela18")) self._BGpng.SetLableColor(MySkinManager.GiveColor('Disabled')) self._BGpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0) self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = self._Width - 10 self._Scroller._PosY = 2 self._Scroller.Init()
def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND ps = ListPageSelector() ps._Parent = self self._Ps = ps self._PsIndex = 0 self.SyncList() gobject.timeout_add(850,self.GObjectInterval) self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool._Icons["heart"] self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.AddLabel("my favourites", fonts["varela18"]) self._BGpng.SetLableColor(pygame.Color(204,204,204)) self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0) self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = self._Width - 10 self._Scroller._PosY = 2 self._Scroller.Init()
def Init(self): self._dialog_index = 22 self._CanvasHWND = self._Screen._CanvasHWND self._Width = self._Screen._Width self._Height = self._Screen._Height self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool._Icons["cpiCalbg5"] self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._monyearlabel = Label() self._monyearlabel.SetCanvasHWND(self._CanvasHWND) self._monyear, self._callist = self.CurMonth() self._monyearlabel.Init(self._monyear,fonts["varela15"]) calnum = MultiIconItem() calnum._ImgSurf = MyIconPool._Icons["calnum"] calnum._MyType = ICON_TYPES["STAT"] calnum._Parent = self calnum._IconWidth = 35 calnum._IconHeight = 26 calnum.Adjust(0,0,134,372,0) self._Icons["calnum"] = calnum
def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND self._RollCanvas = pygame.Surface(( self._RollW,self._RollH)) """ self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool._Icons["sheep_bg"] self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0) self._SheepHead = IconItem() self._SheepHead._ImgSurf = MyIconPool._Icons["sheep_head"] self._SheepHead._MyType = ICON_TYPES["STAT"] self._SheepHead._Parent = self self._SheepHead.Adjust(0,0,self._SheepHeadW,self._SheepHeadH,0) self._SheepBody = IconItem() self._SheepBody._ImgSurf = MyIconPool._Icons["sheep_body"] self._SheepBody._MyType = ICON_TYPES["STAT"] self._SheepBody._Parent = self self._SheepBody.Adjust(0,0,self._SheepBodyW,self._SheepBodyH,0) """ self._cwp_png = IconItem() self._cwp_png._ImgSurf = MyIconPool._Icons["tape"] self._cwp_png._MyType = ICON_TYPES["STAT"] self._cwp_png._Parent = self self._cwp_png.Adjust(0,0,79,79,0) self._song_title = Label() self._song_title.SetCanvasHWND(self._RollCanvas) self._song_title.Init("Untitled",self._SongFont,MySkinManager.GiveColor('White')) self._title = Label() self._title.SetCanvasHWND(self._CanvasHWND) self._title.Init("Title:",self._ListFont,MySkinManager.GiveColor('White')) self._time = Label() self._time.SetCanvasHWND(self._CanvasHWND) self._time.Init("Time:",self._ListFont,MySkinManager.GiveColor('White')) self._time2 = Label() self._time2.SetCanvasHWND(self._CanvasHWND) self._time2.Init("00:00-00:00", self._ListFont, MySkinManager.GiveColor('White')) self.Start()
def Init(self): if self._Screen != None: if self._Screen._CanvasHWND != None and self._CanvasHWND == None: self._HWND = self._Screen._CanvasHWND self._CanvasHWND = pygame.Surface( (self._Screen._Width, self._BGheight)) self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width ## equal to screen width self._Height = self._Screen._Height done = IconItem() done._ImgSurf = MyIconPool.GiveIconSurface("done") done._MyType = ICON_TYPES["STAT"] done._Parent = self self._Icons["done"] = done ps = InfoPageSelector() ps._Parent = self self._Ps = ps self._PsIndex = 0 self.SyncList() self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = self._Width - 10 self._Scroller._PosY = 2 self._Scroller.Init() self._Scroller.SetCanvasHWND(self._CanvasHWND) self._remove_page = YesCancelConfirmPage() self._remove_page._Screen = self._Screen self._remove_page._StartOrA_Event = self.RemoveGame self._remove_page._Name = "Are you sure?" self._remove_page.Init() self._Keyboard = Keyboard() self._Keyboard._Name = "Enter warehouse addr" self._Keyboard._FootMsg = ["Nav.", "Add", "ABC", "Backspace", "Enter"] self._Keyboard._Screen = self._Screen self._Keyboard.Init() self._Keyboard.SetPassword("github.com/clockworkpi/warehouse") self._Keyboard._Caller = self self._PreviewPage = ImageDownloadProcessPage() self._PreviewPage._Screen = self._Screen self._PreviewPage._Name = "Preview" self._PreviewPage.Init() self._LoadHousePage = LoadHousePage() self._LoadHousePage._Screen = self._Screen self._LoadHousePage._Name = "Warehouse" self._LoadHousePage._Caller = self self._LoadHousePage.Init()
def Init(self, text): #self._Fonts["normal"] = fonts["veramono12"] self._CanvasHWND = self._Parent._CanvasHWND l = Label() l._PosX = 10 l.SetCanvasHWND(self._Parent._CanvasHWND) l.Init(text, self._Fonts["normal"]) self._Labels["Text"] = l done_icon = IconItem() done_icon._ImgSurf = MyIconPool._Icons["done"] done_icon._CanvasHWND = self._Parent._CanvasHWND done_icon._Parent = self self._Icons["done"] = done_icon
def Init(self): self._Width = self._Parent._Width self._Height = self._Parent._Height self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool.GiveIconSurface("vol") self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0) ##self._NeedleSurf = pygame.Surface( (38,12),pygame.SRCALPHA ) self._Scale = MultiIconItem() self._Scale._MyType = ICON_TYPES["STAT"] self._Scale._Parent = self self._Scale._ImgSurf = MyIconPool.GiveIconSurface("scale") self._Scale._IconWidth = 82 self._Scale._IconHeight = 63 self._Scale.Adjust(0,0,82,63,0)
def Init(self): if self._Screen != None: if self._Screen._CanvasHWND != None and self._CanvasHWND == None: self._HWND = self._Screen._CanvasHWND self._CanvasHWND = pygame.Surface( (self._Screen._Width,self._BGheight) ) self._PosX = self._Index*self._Screen._Width self._Width = self._Screen._Width ## equal to screen width self._Height = self._Screen._Height bgpng = IconItem() bgpng._ImgSurf = MyIconPool._Icons["about_bg"] bgpng._MyType = ICON_TYPES["STAT"] bgpng._Parent = self bgpng.Adjust(0,0,self._BGwidth,self._BGheight,0) self._Icons["bg"] = bgpng self.CpuInfo() self.MemInfo() self.CpuMhz() self.Uname() self.BatteryInfo() self.PortInfo1() self.PortInfo2() self.ThanksTimTam() self.GenList() self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = self._Width - 10 self._Scroller._PosY = 2 self._Scroller.Init() self._Scroller.SetCanvasHWND(self._HWND)
def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND ps = ListPageSelector() ps._Parent = self self._Ps = ps self._PsIndex = 0 self.SyncList(self._Emulator["ROM"]) self._MyStack._Emulator = self._Emulator icon_for_list = MultiIconItem() icon_for_list._ImgSurf = self._Parent._Icons["sys"] icon_for_list._MyType = ICON_TYPES["STAT"] icon_for_list._Parent = self icon_for_list.Adjust(0, 0, 18, 18, 0) self._Icons["sys"] = icon_for_list bgpng = IconItem() bgpng._ImgSurf = MyIconPool._Icons["star"] bgpng._MyType = ICON_TYPES["STAT"] bgpng._Parent = self bgpng.AddLabel(MyLangManager.Tr("MyFavGames"), MyLangManager.TrFont("varela18")) bgpng.SetLableColor(MySkinManager.GiveColor('Disabled')) bgpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0) self._Icons["bg"] = bgpng self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = self._Width - 10 self._Scroller._PosY = 2 self._Scroller.Init() rom_so_confirm_page = RomSoConfirmPage() rom_so_confirm_page._Screen = self._Screen rom_so_confirm_page._Name = "Download Confirm" rom_so_confirm_page._Parent = self rom_so_confirm_page.Init() self._RomSoConfirmDownloadPage = rom_so_confirm_page
def Init(self): Page.Init(self) if self._Screen != None: if self._Screen._CanvasHWND != None and self._CanvasHWND == None: self._HWND = self._Screen._CanvasHWND self._CanvasHWND = pygame.Surface( (self._Screen._Width, self._Screen._Height)) if os.path.isfile(self._GamePNG): self._GameIcon = IconItem() self._GameIcon._ImageName = self._GamePNG self._GameIcon._MyType = ICON_TYPES["STAT"] self._GameIcon._Parent = self self._GameIcon.Adjust(290, 70, 128, 128, 0) self.InitLabels() self.CheckDevilutionMPQ() self.CheckGameInstalled() self.UpdateFootMsg() self.UpdateLabel("content_git_rev", self.GitGetRevision(), 24) self.UpdateLabel("content_bin_rev", self.ExectuableGetRevision(), 24)
def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND ps = ListPageSelector() ps._Parent = self self._Ps = ps self._PsIndex = 0 self.SyncList("/usr/share/zoneinfo/posix") icon_for_list = MultiIconItem() icon_for_list._ImgSurf = MyIconPool._Icons["sys"] icon_for_list._MyType = ICON_TYPES["STAT"] icon_for_list._Parent = self icon_for_list.Adjust(0,0,18,18,0) self._Icons["sys"] = icon_for_list self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool._Icons["empty"] self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.AddLabel("No timezones found on system!", MyLangManager.TrFont("varela22")) self._BGpng.SetLableColor(MySkinManager.GiveColor('Disabled')) self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0) self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = self._Width - 10 self._Scroller._PosY = 2 self._Scroller.Init()
def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND ps = ListPageSelector() ps._Parent = self self._Ps = ps self._PsIndex = 0 self.SyncList("/") icon_for_list = MultiIconItem() icon_for_list._ImgSurf = MyIconPool._Icons["sys"] icon_for_list._MyType = ICON_TYPES["STAT"] icon_for_list._Parent = self icon_for_list.Adjust(0,0,18,18,0) self._Icons["sys"] = icon_for_list self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool._Icons["empty"] self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.AddLabel("Please upload data over Wi-Fi", fonts["varela22"]) self._BGpng.SetLableColor(SkinManager().GiveColor('Disabled')) self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0) self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = self._Width - 10 self._Scroller._PosY = 2 self._Scroller.Init()
def Init(self): self._Width = self._Parent._Width self._Height = self._Parent._Height bgpng = IconItem() bgpng._ImgSurf = MyIconPool.GiveIconSurface("light") bgpng._MyType = ICON_TYPES["STAT"] bgpng._Parent = self bgpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0) self._Icons["bg"] = bgpng ##self._NeedleSurf = pygame.Surface( (38,12),pygame.SRCALPHA ) scale = MultiIconItem() scale._MyType = ICON_TYPES["STAT"] scale._Parent = self scale._ImgSurf = MyIconPool.GiveIconSurface("scale") scale._IconWidth = 82 scale._IconHeight = 63 scale.Adjust(0, 0, 82, 63, 0) self._Icons["scale"] = scale
def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND bgpng = IconItem() bgpng._ImgSurf = MyIconPool.GiveIconSurface("rom_download") bgpng._MyType = ICON_TYPES["STAT"] bgpng._Parent = self bgpng.Adjust(0, 0, self._PngSize["bg"][0], self._PngSize["bg"][1], 0) self._Icons["bg"] = bgpng self._FileNameLabel = Label() self._FileNameLabel.SetCanvasHWND(self._CanvasHWND) self._FileNameLabel.Init("", MyLangManager.TrFont("varela12")) self._SizeLabel = Label() self._SizeLabel.SetCanvasHWND(self._CanvasHWND) self._SizeLabel.Init("0/0Kb", MyLangManager.TrFont("varela12")) self._SizeLabel.SetColor(self._URLColor)
def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND self._PngSize["bg"] = (48,79) self._PngSize["needwifi_bg"] = (253,132) bgpng = IconItem() bgpng._ImgSurf = MyIconPool._Icons["rom_download"] bgpng._MyType = ICON_TYPES["STAT"] bgpng._Parent = self bgpng.Adjust(0,0,self._PngSize["bg"][0],self._PngSize["bg"][1],0) self._Icons["bg"] = bgpng needwifi_bg = IconItem() needwifi_bg._ImgSurf = MyIconPool._Icons["needwifi_bg"] needwifi_bg._MyType = ICON_TYPES["STAT"] needwifi_bg._Parent = self needwifi_bg.Adjust(0,0,self._PngSize["needwifi_bg"][0],self._PngSize["needwifi_bg"][1],0) self._Icons["needwifi_bg"] = needwifi_bg self._FileNameLabel = Label() self._FileNameLabel.SetCanvasHWND(self._CanvasHWND) self._FileNameLabel.Init("", fonts["varela12"]) self._SizeLabel = Label() self._SizeLabel.SetCanvasHWND(self._CanvasHWND) self._SizeLabel.Init("0/0Kb",fonts["varela12"]) self._SizeLabel.SetColor( self._URLColor )
class SoundSlider(Slider): OnChangeCB = None _BGpng = None _BGwidth = 192 _BGheight = 173 _NeedleSurf = None _Scale = None _Parent = None snd_segs = [ [0,20],[21,40],[41,50],[51,60],[61,70],[71,85],[86,90],[91,95],[96,100] ] def __init__(self): Slider.__init__(self) def Init(self): self._Width = self._Parent._Width self._Height = self._Parent._Height self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool.GiveIconSurface("vol") self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0) ##self._NeedleSurf = pygame.Surface( (38,12),pygame.SRCALPHA ) self._Scale = MultiIconItem() self._Scale._MyType = ICON_TYPES["STAT"] self._Scale._Parent = self self._Scale._ImgSurf = MyIconPool.GiveIconSurface("scale") self._Scale._IconWidth = 82 self._Scale._IconHeight = 63 self._Scale.Adjust(0,0,82,63,0) def SetValue(self,vol):#pct 0-100 for i,v in enumerate(self.snd_segs): if vol >= v[0] and vol <= v[1]: self._Value = i # self._Value : 0 - 8 break def Further(self): self._Value+=1 if self._Value > len(self.snd_segs)-1: self._Value = len(self.snd_segs) -1 vol = self.snd_segs[self._Value][0] + (self.snd_segs[self._Value][1] - self.snd_segs[self._Value][0])/2 if self.OnChangeCB != None: if callable(self.OnChangeCB): self.OnChangeCB( vol ) def StepBack(self): self._Value-=1 if self._Value < 0: self._Value = 0 vol = self.snd_segs[self._Value][0] + (self.snd_segs[self._Value][1] - self.snd_segs[self._Value][0])/2 if self.OnChangeCB != None: if callable(self.OnChangeCB): self.OnChangeCB( vol ) def Draw(self): self._BGpng.NewCoord(self._Width/2,self._Height/2 ) self._BGpng.Draw() self._Scale.NewCoord(self._Width/2,self._Height/2) self._Scale._IconIndex = self._Value self._Scale.Draw()
def Init(self): if self._Screen != None: if self._Screen._CanvasHWND != None and self._CanvasHWND == None: self._HWND = self._Screen._CanvasHWND self._CanvasHWND = pygame.Surface( (self._Screen._Width, self._Screen._Height)) self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width ## equal to screen width self._Height = self._Screen._Height self._PngSize["bg"] = (253, 114) self._PngSize["online"] = (75, 122) bgpng = IconItem() bgpng._ImgSurf = MyIconPool._Icons["needwifi_bg"] bgpng._MyType = ICON_TYPES["STAT"] bgpng._Parent = self bgpng.Adjust(0, 0, self._PngSize["bg"][0], self._PngSize["bg"][1], 0) self._Icons["bg"] = bgpng onlinepng = IconItem() onlinepng._ImgSurf = MyIconPool._Icons["online"] onlinepng._MyType = ICON_TYPES["STAT"] onlinepng._Parent = self onlinepng.Adjust(0, 0, self._PngSize["online"][0], self._PngSize["online"][1], 0) self._Icons["online"] = onlinepng self.SetLabels()
def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool.GiveIconSurface(self._BG) self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self #print( MyIconPool.Width(self._BG),MyIconPool.Height(self._BG) ) self._BGpng.Adjust(0, 0, MyIconPool.Width(self._BG), MyIconPool.Height(self._BG), 0) self._Board = Textbulletinboard() self._Board._PosX = 4 self._Board._PosY = 100 self._Board._Width = self._Width - 4 * 2 self._Board._Height = 200 self._Board._CanvasHWND = self._CanvasHWND self._Board._Align = "Center" self._Board._RowPitch = 28 self._Board.Init() if self._Leader != None and self._Leader._ComPkgInfo != None: if "NotFoundMsg" in self._Leader._ComPkgInfo: d = [] for i, v in enumerate(self._Leader._ComPkgInfo["NotFoundMsg"]): Color = None Font = None Bold = False Und = False Txt = "" parts = v.split("|") if len(parts) > 0: Txt = parts[0] if len(parts) == 2: if parts[1] != "None": Color = MySkinManager.GiveColor(parts[1]) elif len(parts) == 3: if parts[1] != "None": Color = MySkinManager.GiveColor(parts[1]) if parts[2] != "None": Font = MyLangManager.TrFont(parts[2]) elif len(parts) == 4: if parts[1] != "None": Color = MySkinManager.GiveColor(parts[1]) if parts[2] != "None": Font = MyLangManager.TrFont(parts[2]) if parts[3] == "True": Bold = True elif len(parts) == 5: if parts[1] != "None": Color = MySkinManager.GiveColor(parts[1]) if parts[2] != "None": Font = MyLangManager.TrFont(parts[2]) if parts[3] == "True": Bold = True if parts[4] == "True": Und = True a = Text(Txt, Color, Font, Bold, Und) d = d + a.Words() self._Board.SetAndBlitText(d)
class NotFoundPage(Page): _FootMsg = ["Nav", "", "", "Back", ""] _BG = "pico8_notfound" _Leader = None _Padding = pygame.Rect(0, 12, 0, 6) def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool.GiveIconSurface(self._BG) self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self #print( MyIconPool.Width(self._BG),MyIconPool.Height(self._BG) ) self._BGpng.Adjust(0, 0, MyIconPool.Width(self._BG), MyIconPool.Height(self._BG), 0) self._Board = Textbulletinboard() self._Board._PosX = 4 self._Board._PosY = 100 self._Board._Width = self._Width - 4 * 2 self._Board._Height = 200 self._Board._CanvasHWND = self._CanvasHWND self._Board._Align = "Center" self._Board._RowPitch = 28 self._Board.Init() if self._Leader != None and self._Leader._ComPkgInfo != None: if "NotFoundMsg" in self._Leader._ComPkgInfo: d = [] for i, v in enumerate(self._Leader._ComPkgInfo["NotFoundMsg"]): Color = None Font = None Bold = False Und = False Txt = "" parts = v.split("|") if len(parts) > 0: Txt = parts[0] if len(parts) == 2: if parts[1] != "None": Color = MySkinManager.GiveColor(parts[1]) elif len(parts) == 3: if parts[1] != "None": Color = MySkinManager.GiveColor(parts[1]) if parts[2] != "None": Font = MyLangManager.TrFont(parts[2]) elif len(parts) == 4: if parts[1] != "None": Color = MySkinManager.GiveColor(parts[1]) if parts[2] != "None": Font = MyLangManager.TrFont(parts[2]) if parts[3] == "True": Bold = True elif len(parts) == 5: if parts[1] != "None": Color = MySkinManager.GiveColor(parts[1]) if parts[2] != "None": Font = MyLangManager.TrFont(parts[2]) if parts[3] == "True": Bold = True if parts[4] == "True": Und = True a = Text(Txt, Color, Font, Bold, Und) d = d + a.Words() self._Board.SetAndBlitText(d) def KeyDown(self, event): if event.key == CurKeys["A"] or event.key == CurKeys["Menu"]: self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() return def Draw(self): self.ClearCanvas() if self._BGpng != None: self._BGpng.NewCoord((self._Width - self._BGpng._Width) / 2, self._Padding.y) self._BGpng.DrawTopLeft() self._Board._PosY = self._BGpng._Height + self._Padding.y + self._Padding.h else: self._Board._PosY = self._Padding.y self._Board.Draw()
class HashErrPage(Page): _FootMsg = ["Nav", "", "", "Cancel", "Continue"] _BG = "pico8_md5_err" _Leader = None _Padding = pygame.Rect(0, 12, 0, 6) def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool.GiveIconSurface(self._BG) self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.Adjust(0, 0, MyIconPool.Width(self._BG), MyIconPool.Height(self._BG), 0) self._Board = Textbulletinboard() self._Board._PosX = 4 self._Board._PosY = self._Height / 2 - 30 self._Board._Width = self._Width - 4 * 2 self._Board._Height = 100 self._Board._CanvasHWND = self._CanvasHWND self._Board._RowPitch = 28 self._Board._Align = "Center" self._Board.Init() if self._Leader != None and self._Leader._ComPkgInfo != None: if "HashErrMsg" in self._Leader._ComPkgInfo: d = [] for i, v in enumerate(self._Leader._ComPkgInfo["HashErrMsg"]): Color = None Font = None Bold = False Und = False Txt = "" parts = v.split("|") if len(parts) > 0: Txt = parts[0] if len(parts) == 2: if parts[1] != "None": Color = MySkinManager.GiveColor(parts[1]) elif len(parts) == 3: if parts[1] != "None": Color = MySkinManager.GiveColor(parts[1]) if parts[2] != "None": Font = MyLangManager.TrFont(parts[2]) elif len(parts) == 4: if parts[1] != "None": Color = MySkinManager.GiveColor(parts[1]) if parts[2] != "None": Font = MyLangManager.TrFont(parts[2]) if parts[3] == "True": Bold = True elif len(parts) == 5: if parts[1] != "None": Color = MySkinManager.GiveColor(parts[1]) if parts[2] != "None": Font = MyLangManager.TrFont(parts[2]) if parts[3] == "True": Bold = True if parts[4] == "True": Und = True a = Text(Txt, Color, Font, Bold, Und) d = d + a.Words() self._Board.SetAndBlitText(d) else: a = Text("MD5 check Failed!\n", None, MyLangManager.TrFont("varela16")) b = Text("Do you want to continue?", None, MyLangManager.TrFont("varela16")) self._Board.SetAndBlitText(a.Words() + b.Words()) def KeyDown(self, event): if IsKeyMenuOrB(event.key): self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() return if IsKeyStartOrA(event.key): self._Leader.InstallPackage(self._Screen) return def OnLoadCb(self): pass def Draw(self): self.ClearCanvas() if self._BGpng != None: self._BGpng.NewCoord((self._Width - self._BGpng._Width) / 2, self._Padding.y) self._BGpng.DrawTopLeft() self._Board._PosY = self._BGpng._Height + self._Padding.y + self._Padding.h else: self._Board._PosY = self._Padding.y self._Board.Draw()
class PlayListPage(Page): _Icons = {} _Selector = None _FootMsg = ["Nav", "Remove", "RTA", "Back", "Play/Pause"] _MyList = [] _ListFont = MyLangManager.TrFont("notosanscjk15") _Scroller = None _CurSongTime = "0:0" _BGpng = None _BGwidth = 75 _BGheight = 70 _Scrolled = 0 _CurSongName = "" def __init__(self): self._Icons = {} Page.__init__(self) self._CanvasHWND = None self._MyList = [] def SyncList(self): self._MyList = [] start_x = 0 start_y = 0 if myvars.Poller == None: return play_list = myvars.Poller.playlist() for i, v in enumerate(play_list): li = ListItem() li._Parent = self li._PosX = start_x li._PosY = start_y + i * ListItem._Height li._Width = Width li._Fonts["normal"] = self._ListFont if "title" in v: if isinstance(v["title"], (list, )): li.Init(" | ".join(v["title"])) else: li.Init(v["title"]) if "file" in v: li._Path = v["file"] elif "file" in v: li.Init(os.path.basename(v["file"])) li._Path = v["file"] else: li.Init("NoName") li._Labels["Text"]._PosX = 7 self._MyList.append(li) self.SyncPlaying() def GObjectInterval(self): ## 250 ms self.SyncPlaying() if self._Screen.CurPage() == self: self._Screen.Draw() self._Screen.SwapAndShow() return True def SyncPlaying(self): if myvars.Poller == None: return current_song = myvars.Poller.poll() for i, v in enumerate(self._MyList): self._MyList[i]._Playing = False self._MyList[i]._PlayingProcess = 0 if current_song != None: if "song" in current_song: posid = int(current_song["song"]) if posid < len(self._MyList): # out of index self._CurSongName = self._MyList[posid]._Text if "state" in current_song: if current_song["state"] == "stop": self._MyList[posid]._Playing = False else: self._MyList[posid]._Playing = True if "time" in current_song: self._CurSongTime = current_song["time"] times_ = current_song["time"].split(":") if len(times_) > 1: cur = float(times_[0]) end = float(times_[1]) pros = int((cur / end) * 100.0) self._MyList[posid]._PlayingProcess = pros def InPlayList(self, path): for i, v in enumerate(self._MyList): if v._Path == path: return True def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND ps = ListPageSelector() ps._Parent = self self._Ps = ps self._PsIndex = 0 self.SyncList() gobject.timeout_add(850, self.GObjectInterval) self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool._Icons["heart"] self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.AddLabel(MyLangManager.Tr("my favorite music"), MyLangManager.TrFont("varela18")) self._BGpng.SetLableColor(MySkinManager.GiveColor('Disabled')) self._BGpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0) self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = self._Width - 10 self._Scroller._PosY = 2 self._Scroller.Init() def ScrollUp(self): if len(self._MyList) == 0: return self._PsIndex -= 1 if self._PsIndex < 0: self._PsIndex = 0 cur_li = self._MyList[self._PsIndex] if cur_li._PosY < 0: for i in range(0, len(self._MyList)): self._MyList[i]._PosY += self._MyList[i]._Height self._Scrolled += 1 def ScrollDown(self): if len(self._MyList) == 0: return self._PsIndex += 1 if self._PsIndex >= len(self._MyList): self._PsIndex = len(self._MyList) - 1 cur_li = self._MyList[self._PsIndex] if cur_li._PosY + cur_li._Height > self._Height: for i in range(0, len(self._MyList)): self._MyList[i]._PosY -= self._MyList[i]._Height self._Scrolled -= 1 def SyncScroll(self): # show where it left if self._Scrolled == 0: return if self._PsIndex < len(self._MyList): cur_li = self._MyList[self._PsIndex] if self._Scrolled > 0: if cur_li._PosY < 0: for i in range(0, len(self._MyList)): self._MyList[i]._PosY += self._Scrolled * self._MyList[ i]._Height elif self._Scrolled < 0: if cur_li._PosY + cur_li._Height > self._Height: for i in range(0, len(self._MyList)): self._MyList[i]._PosY += self._Scrolled * self._MyList[ i]._Height def Click(self): if len(self._MyList) == 0: return cur_li = self._MyList[self._PsIndex] play_pos_id = myvars.Poller.play(self._PsIndex) self.SyncPlaying() self._Screen.Draw() self._Screen.SwapAndShow() def OnReturnBackCb(self): # return from music_lib_list_page self.SyncList() self.SyncScroll() def KeyDown(self, event): if IsKeyMenuOrB(event.key): if myvars.Poller != None: myvars.Poller.stop() self._CurSongTime = "" self._CurSongName = "" self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if event.key == CurKeys["Up"]: self.ScrollUp() self._Screen.Draw() self._Screen.SwapAndShow() if event.key == CurKeys["Down"]: self.ScrollDown() self._Screen.Draw() self._Screen.SwapAndShow() if event.key == CurKeys["Right"]: #add self._Screen.PushCurPage() self._Screen.SetCurPage(myvars.MusicLibListPage) self._Screen.Draw() self._Screen.SwapAndShow() if event.key == CurKeys["Y"]: # del selected songs myvars.Poller.delete(self._PsIndex) self.SyncList() self._Screen.Draw() self._Screen.SwapAndShow() if IsKeyStartOrA(event.key): self.Click() if event.key == CurKeys["X"]: # start spectrum myvars.SpectrumPage._Neighbor = self self._Screen.PushPage(myvars.SpectrumPage) self._Screen.Draw() self._Screen.SwapAndShow() def Draw(self): self.ClearCanvas() if len(self._MyList) == 0: self._BGpng.NewCoord(self._Width / 2, self._Height / 2) self._BGpng.Draw() return else: if len(self._MyList) * ListItem._Height > self._Height: self._Ps._Width = self._Width - 11 self._Ps.Draw() for i in self._MyList: if i._PosY > self._Height + self._Height / 2: break if i._PosY < 0: continue i.Draw() self._Scroller.UpdateSize( len(self._MyList) * ListItem._Height, self._PsIndex * ListItem._Height) self._Scroller.Draw() else: self._Ps._Width = self._Width self._Ps.Draw() for i in self._MyList: if i._PosY > self._Height + self._Height / 2: break if i._PosY < 0: continue i.Draw()
class SoundSlider(Slider): OnChangeCB = None _BGpng = None _BGwidth = 192 _BGheight = 173 _NeedleSurf = None _Scale = None _Parent = None _Segs = [0, 15, 29, 45, 55, 65, 75, 90, 100] snd_segs = [[0, 20], [21, 40], [41, 50], [51, 60], [61, 70], [71, 85], [86, 90], [91, 95], [96, 100]] def __init__(self): Slider.__init__(self) def Init(self): self._Width = self._Parent._Width self._Height = self._Parent._Height self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool._Icons["vol"] self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0) ##self._NeedleSurf = pygame.Surface( (38,12),pygame.SRCALPHA ) self._Scale = MultiIconItem() self._Scale._MyType = ICON_TYPES["STAT"] self._Scale._Parent = self self._Scale._ImgSurf = MyIconPool._Icons["scale"] self._Scale._IconWidth = 82 self._Scale._IconHeight = 63 self._Scale.Adjust(0, 0, 82, 63, 0) def SetValue(self, pct): #pct 0-100 for i, v in enumerate(self.snd_segs): if pct >= v[0] and pct <= v[1]: self._Value = i def Further(self): self._Value += 1 if self._Value < len(self._Segs): if self.OnChangeCB != None: if callable(self.OnChangeCB): self.OnChangeCB(self._Segs[self._Value]) else: self._Value = len(self._Segs) - 1 def StepBack(self): self._Value -= 1 if self._Value < 0: self._Value = 0 if self.OnChangeCB != None: if callable(self.OnChangeCB): self.OnChangeCB(self._Segs[self._Value]) def Draw(self): self._BGpng.NewCoord(self._Width / 2, self._Height / 2) self._BGpng.Draw() self._Scale.NewCoord(self._Width / 2, self._Height / 2) self._Scale._IconIndex = self._Value self._Scale.Draw()
def Init(self): if self._Screen != None: if self._Screen._CanvasHWND != None and self._CanvasHWND == None: self._HWND = self._Screen._CanvasHWND self._CanvasHWND = pygame.Surface( (self._Screen._Width,self._BGheight) ) self._PosX = self._Index*self._Screen._Width self._Width = self._Screen._Width ## equal to screen width self._Height = self._Screen._Height airwire = IconItem() airwire._ImgSurf = MyIconPool._Icons["airwire"] airwire._MyType = ICON_TYPES["STAT"] airwire._Parent = self airwire.Adjust(0,0,5,43,0) self._Icons["airwire"] = airwire GS = IconItem() GS._ImgSurf = MyIconPool._Icons["GS"] GS._MyType = ICON_TYPES["STAT"] GS._Parent = self GS.Adjust(0,0,72,95,0) self._Icons["GS"] = GS DialogBoxs = MultiIconItem() DialogBoxs._ImgSurf = MyIconPool._Icons["DialogBoxs"] DialogBoxs._MyType = ICON_TYPES["STAT"] DialogBoxs._Parent = self DialogBoxs._IconWidth = 134 DialogBoxs._IconHeight = 93 DialogBoxs.Adjust(0,0,134,372,0) self._Icons["DialogBoxs"] = DialogBoxs """ bgpng = MultiIconItem() bgpng._ImgSurf = MyIconPool._Icons["about_bg"] bgpng._MyType = ICON_TYPES["STAT"] bgpng._Parent = self bgpng.Adjust(0,0,self._BGwidth,self._BGheight,0) self._Icons["bg"] = bgpng """ self.GenList() self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = self._Width - 10 self._Scroller._PosY = 2 self._Scroller.Init() self._Scroller.SetCanvasHWND(self._HWND) self.OnLoadCb()
class MPDSpectrumPage(Page): _Icons = {} _Selector = None _FootMsg = ["Nav", "", "", "Back", ""] _MyList = [] _ListFont = fonts["veramono12"] _SongFont = fonts["notosanscjk12"] _PIFI = None _FIFO = None _Color = pygame.Color(126, 206, 244) _GobjectIntervalId = -1 _Queue = None _KeepReading = True _ReadingThread = None _BGpng = None _BGwidth = 320 _BGheight = 200 _SheepHead = None _SheepHeadW = 69 _SheepHeadH = 66 _SheepBody = None _SheepBodyW = 105 _SheepBodyH = 81 _RollCanvas = None _RollW = 180 _RollH = 18 _freq_count = 0 _head_dir = 0 _Neighbor = None _bby = [] _bbs = [] _capYPositionArray = [] _frames = 0 read_retry = 0 _queue_data = [] _vis_values = [] def __init__(self): Page.__init__(self) self._Icons = {} self._CanvasHWND = None self._MyList = [] self._PIFI = PIFI() def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND self._RollCanvas = pygame.Surface((self._RollW, self._RollH)) """ self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool._Icons["sheep_bg"] self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0) self._SheepHead = IconItem() self._SheepHead._ImgSurf = MyIconPool._Icons["sheep_head"] self._SheepHead._MyType = ICON_TYPES["STAT"] self._SheepHead._Parent = self self._SheepHead.Adjust(0,0,self._SheepHeadW,self._SheepHeadH,0) self._SheepBody = IconItem() self._SheepBody._ImgSurf = MyIconPool._Icons["sheep_body"] self._SheepBody._MyType = ICON_TYPES["STAT"] self._SheepBody._Parent = self self._SheepBody.Adjust(0,0,self._SheepBodyW,self._SheepBodyH,0) """ self._cwp_png = IconItem() self._cwp_png._ImgSurf = MyIconPool._Icons["tape"] self._cwp_png._MyType = ICON_TYPES["STAT"] self._cwp_png._Parent = self self._cwp_png.Adjust(0, 0, 79, 79, 0) self._song_title = Label() self._song_title.SetCanvasHWND(self._RollCanvas) self._song_title.Init("Untitled", self._SongFont, (255, 255, 255)) self._title = Label() self._title.SetCanvasHWND(self._CanvasHWND) self._title.Init("Title:", self._ListFont, (255, 255, 255)) self._time = Label() self._time.SetCanvasHWND(self._CanvasHWND) self._time.Init("Time:", self._ListFont, (255, 255, 255)) self._time2 = Label() self._time2.SetCanvasHWND(self._CanvasHWND) self._time2.Init("00:00-00:00", self._ListFont, (255, 255, 255)) self.Start() def Start(self): if self._Screen.CurPage() != self: return try: self._FIFO = os.open(self._PIFI._MPD_FIFO, os.O_RDONLY | os.O_NONBLOCK) t = Thread(target=self.GetSpectrum) t.daemon = True # thread dies with the program t.start() self._ReadingThread = t except IOError: print("open %s failed" % self._PIFI._MPD_FIFO) self._FIFO = None return def GetSpectrum(self): while self._KeepReading and self._FIFO != None: raw_samples = self._PIFI.GetSpectrum(self._FIFO) if len(raw_samples) < 1: #print("sleeping... 0.01") time.sleep(0.01) self.read_retry += 1 if self.read_retry > 20: os.close(self._FIFO) self._FIFO = os.open(self._PIFI._MPD_FIFO, os.O_RDONLY | os.O_NONBLOCK) self.read_retry = 0 self.Playing() else: self.read_retry = 0 self._queue_data = raw_samples self.Playing() def Playing(self): self._Screen.Draw() self._Screen.SwapAndShow() def ClearCanvas(self): self._CanvasHWND.fill((0, 0, 0)) def SgsSmooth(self): passes = 1 points = 3 origs = self._bby[:] for p in range(0, passes): pivot = int(points / 2.0) for i in range(0, pivot): self._bby[i] = origs[i] self._bby[len(origs) - i - 1] = origs[len(origs) - i - 1] smooth_constant = 1.0 / (2.0 * pivot + 1.0) for i in range(pivot, len(origs) - pivot): _sum = 0.0 for j in range(0, (2 * pivot) + 1): _sum += (smooth_constant * origs[i + j - pivot]) + j - pivot self._bby[i] = _sum if p < (passes - 1): origs = self._bby[:] def OnLoadCb(self): if self._Neighbor != None: pass if self._KeepReading == False: self._KeepReading = True if self._FIFO == None: self.Start() def KeyDown(self, event): if event.key == CurKeys["Menu"] or event.key == CurKeys["A"]: try: os.close(self._FIFO) self._FIFO = None except Exception, e: print(e) self._KeepReading = False self._ReadingThread.join() self._ReadingThread = None self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if event.key == CurKeys["Start"]: self._Screen.Draw() self._Screen.SwapAndShow() if event.key == CurKeys["Enter"]: pass
class TimezoneListPage(Page): _Icons = {} _Selector = None _FootMsg = ["Nav", "", "", "Back", "Select"] _MyList = [] _SwapMyList = [] _ListFont = MyLangManager.TrFont("notosanscjk15") _MyStack = None _Scroller = None _BGpng = None _BGwidth = 56 _BGheight = 70 def __init__(self): Page.__init__(self) self._Icons = {} self._CanvasHWND = None self._MyList = [] self._SwapMyList = [] self._MyStack = TimeLibStack() def buildDirectoryList(self, path): elements = [{ 'name': f, 'file_path': os.path.join(path, f), 'is_file': os.path.isfile(os.path.join(path, f)) } for f in os.listdir(path)] return elements def SyncList(self, path): alist = self.buildDirectoryList(path) if not alist: print("buildDirectoryList empty") return self._MyList = [] self._SwapMyList = [] start_x = 0 start_y = 0 hasparent = 0 if self._MyStack.Length() > 0: hasparent = 1 li = ListItem() li._Parent = self li._PosX = start_x li._PosY = start_y li._Width = Width li._Fonts["normal"] = self._ListFont li._MyType = ICON_TYPES["DIR"] li.Init("[..]") self._MyList.append(li) for i, v in enumerate(sorted(alist)): li = ListItem() li._Parent = self li._PosX = start_x li._PosY = start_y + (i + hasparent) * ListItem._Height li._Width = Width li._Fonts["normal"] = self._ListFont li._MyType = ICON_TYPES["FILE"] if not v['is_file']: li._MyType = ICON_TYPES["DIR"] else: li._MyType = ICON_TYPES["FILE"] li.Init(v['name']) li._Path = v["file_path"] self._MyList.append(li) for i in self._MyList: self._SwapMyList.append(i) def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND ps = ListPageSelector() ps._Parent = self self._Ps = ps self._PsIndex = 0 self.SyncList("/usr/share/zoneinfo/posix") icon_for_list = MultiIconItem() icon_for_list._ImgSurf = MyIconPool.GiveIconSurface("sys") icon_for_list._MyType = ICON_TYPES["STAT"] icon_for_list._Parent = self icon_for_list.Adjust(0, 0, 18, 18, 0) self._Icons["sys"] = icon_for_list self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool.GiveIconSurface("empty") self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.AddLabel("No timezones found on system!", MyLangManager.TrFont("varela22")) self._BGpng.SetLableColor(MySkinManager.GiveColor('Disabled')) self._BGpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0) self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = self._Width - 10 self._Scroller._PosY = 2 self._Scroller.Init() def Click(self): if len(self._MyList) == 0: return cur_li = self._MyList[self._PsIndex] if cur_li._MyType == ICON_TYPES["DIR"]: if cur_li._Path == "[..]": self._MyStack.Pop() self.SyncList(self._MyStack.Last()) self._PsIndex = 0 else: self._MyStack.Push(self._MyList[self._PsIndex]._Path) self.SyncList(self._MyStack.Last()) self._PsIndex = 0 if cur_li._MyType == ICON_TYPES["FILE"]: ## set the current timezone subprocess.call(['sudo', 'cp', cur_li._Path, '/etc/localtime']) #copyfile(cur_li._Path, '/etc/localtime') print("add", cur_li._Path) self._Screen.Draw() self._Screen.SwapAndShow() def Rescan(self): self.SyncList("/usr/share/zoneinfo/posix") self._PsIndex = 0 def KeyDown(self, event): if IsKeyMenuOrB(event.key): self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if event.key == CurKeys["Up"]: self.ScrollUp() self._Screen.Draw() self._Screen.SwapAndShow() if event.key == CurKeys["Down"]: self.ScrollDown() self._Screen.Draw() self._Screen.SwapAndShow() if event.key == CurKeys["Right"]: self.FScrollDown(Step=5) self._Screen.Draw() self._Screen.SwapAndShow() if event.key == CurKeys["Left"]: self.FScrollUp(Step=5) self._Screen.Draw() self._Screen.SwapAndShow() if IsKeyStartOrA(event.key): self.Click() def Draw(self): self.ClearCanvas() if len(self._MyList) == 0: self._BGpng.NewCoord(self._Width / 2, self._Height / 2) self._BGpng.Draw() return else: if len(self._MyList) * ListItem._Height > self._Height: self._Ps._Width = self._Width - 11 self._Ps.Draw() for i in self._MyList: if False: i._Active = True else: i._Active = False if i._PosY > self._Height + self._Height / 2: break if i._PosY < 0: continue i.Draw() self._Scroller.UpdateSize( len(self._MyList) * ListItem._Height, self._PsIndex * ListItem._Height) self._Scroller.Draw() else: self._Ps._Width = self._Width self._Ps.Draw() for i in self._MyList: if False: i._Active = True else: i._Active = False if i._PosY > self._Height + self._Height / 2: break if i._PosY < 0: continue i.Draw()
class StoragePage(Page): _Icons = {} _BGpng = None _BGwidth = 96 _BGheight = 73 _BGlabel = None _FreeLabel = None _BGmsg = "%.1fGB of %.1fGB Used" _DskUsg = None _HighColor = MySkinManager.GiveColor('High') _FootMsg = ["Nav.", "", "", "Back", ""] def __init__(self): Page.__init__(self) self._Icons = {} def DiskUsage(self): statvfs = os.statvfs('/') total_space = (statvfs.f_frsize * statvfs.f_blocks) / 1024.0 / 1024.0 / 1024.0 avail_space = (statvfs.f_frsize * statvfs.f_bavail) / 1024.0 / 1024.0 / 1024.0 return avail_space, total_space def Init(self): self._DskUsg = self.DiskUsage() self._CanvasHWND = self._Screen._CanvasHWND self._Width = self._Screen._Width self._Height = self._Screen._Height self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool._Icons["icon_sd"] self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.AddLabel( self._BGmsg % (self._DskUsg[1] - self._DskUsg[0], self._DskUsg[1]), fonts["varela15"]) self._BGpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0) self._BGlabel = Label() self._BGlabel.SetCanvasHWND(self._CanvasHWND) usage_percent = (self._DskUsg[0] / self._DskUsg[1]) * 100.0 self._BGlabel.Init("%d%%" % int(usage_percent), fonts["varela25"]) self._BGlabel.SetColor(self._HighColor) self._FreeLabel = Label() self._FreeLabel.SetCanvasHWND(self._CanvasHWND) self._FreeLabel.Init("Free", fonts["varela13"]) self._FreeLabel.SetColor(self._BGlabel._Color) def OnLoadCb(self): pass def Draw(self): self.ClearCanvas() self._BGpng.NewCoord(self._Width / 2, self._Height / 2 - 10) self._BGpng.Draw() self._BGlabel.NewCoord(self._Width / 2 - 28, self._Height / 2 - 30) self._BGlabel.Draw() self._FreeLabel.NewCoord(self._BGlabel._PosX + 10, self._Height / 2) self._FreeLabel.Draw() #bgcolor = (238,238,238), fgcolor = (126,206,244) #aa_round_rect usage_percent = (self._DskUsg[0] / self._DskUsg[1]) if usage_percent < 0.1: usage_percent = 0.1 rect_ = midRect(self._Width / 2, self._Height - 30, 170, 17, Width, Height) aa_round_rect(self._CanvasHWND, rect_, MySkinManager.GiveColor('Line'), 5, 0, MySkinManager.GiveColor('Line')) rect2 = midRect(self._Width / 2, self._Height - 30, int(170 * (1.0 - usage_percent)), 17, Width, Height) rect2.left = rect_.left rect2.top = rect_.top aa_round_rect(self._CanvasHWND, rect2, MySkinManager.GiveColor('Front'), 5, 0, MySkinManager.GiveColor('Front'))
def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND ps = ListPageSelector() ps._Parent = self self._Ps = ps self._PsIndex = 0 self.SyncList(self._Emulator["ROM"]) ### will also mkdir of the ***ROM self try: os.makedirs(self._Emulator["ROM"] + "/.Trash") except OSError: if not os.path.isdir(self._Emulator["ROM"] + "/.Trash"): raise try: os.makedirs(self._Emulator["ROM"] + "/.Fav") except OSError: if not os.path.isdir(self._Emulator["ROM"] + "/.Fav"): raise self._MyStack._Emulator = self._Emulator icon_for_list = MultiIconItem() icon_for_list._ImgSurf = self._Parent._Icons["sys"] icon_for_list._MyType = ICON_TYPES["STAT"] icon_for_list._Parent = self icon_for_list.Adjust(0, 0, 18, 18, 0) self._Icons["sys"] = icon_for_list bgpng = IconItem() bgpng._ImgSurf = MyIconPool._Icons["empty"] bgpng._MyType = ICON_TYPES["STAT"] bgpng._Parent = self bgpng.AddLabel(MyLangManager.Tr("Please upload data over Wi-Fi"), MyLangManager.TrFont("varela22")) bgpng.SetLableColor(MySkinManager.GiveColor('Disabled')) bgpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0) self._Icons["bg"] = bgpng self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = self._Width - 10 self._Scroller._PosY = 2 self._Scroller.Init() rom_so_confirm_page = RomSoConfirmPage() rom_so_confirm_page._Screen = self._Screen rom_so_confirm_page._Name = "Download Confirm" rom_so_confirm_page._Parent = self rom_so_confirm_page.Init() self._RomSoConfirmDownloadPage = rom_so_confirm_page
class MusicLibListPage(Page): _Icons = {} _Selector = None _FootMsg = ["Nav", "", "Scan", "Back", "Add to Playlist"] _MyList = [] _SwapMyList = [] _ListFont = MyLangManager.TrFont("notosanscjk15") _MyStack = None _Scroller = None _BGpng = None _BGwidth = 56 _BGheight = 70 def __init__(self): Page.__init__(self) self._Icons = {} self._CanvasHWND = None self._MyList = [] self._SwapMyList = [] self._MyStack = MusicLibStack() def SyncList(self, path): if myvars.Poller == None: return alist = myvars.Poller.listfiles(path) if alist == False: print("listfiles return false") return self._MyList = [] self._SwapMyList = [] start_x = 0 start_y = 0 hasparent = 0 if self._MyStack.Length() > 0: hasparent = 1 li = ListItem() li._Parent = self li._PosX = start_x li._PosY = start_y li._Width = Width li._Fonts["normal"] = self._ListFont li._MyType = ICON_TYPES["DIR"] li._Parent = self li.Init("[..]") self._MyList.append(li) for i, v in enumerate(sorted(alist)): li = ListItem() li._Parent = self li._PosX = start_x li._PosY = start_y + (i + hasparent) * ListItem._Height li._Width = Width li._Fonts["normal"] = self._ListFont li._MyType = ICON_TYPES["FILE"] li._Parent = self if "directory" in v: li._MyType = ICON_TYPES["DIR"] dir_base_name = os.path.basename(v["directory"]) li.Init(dir_base_name) li._Path = v["directory"] elif "file" in v: bname = os.path.basename(v["file"]) li.Init(bname) li._Path = v["file"] else: li.Init("NoName") self._MyList.append(li) for i in self._MyList: self._SwapMyList.append(i) def Init(self): self._PosX = self._Index * self._Screen._Width self._Width = self._Screen._Width self._Height = self._Screen._Height self._CanvasHWND = self._Screen._CanvasHWND ps = ListPageSelector() ps._Parent = self self._Ps = ps self._PsIndex = 0 self.SyncList("/") icon_for_list = MultiIconItem() icon_for_list._ImgSurf = MyIconPool._Icons["sys"] icon_for_list._MyType = ICON_TYPES["STAT"] icon_for_list._Parent = self icon_for_list.Adjust(0, 0, 18, 18, 0) self._Icons["sys"] = icon_for_list self._BGpng = IconItem() self._BGpng._ImgSurf = MyIconPool._Icons["empty"] self._BGpng._MyType = ICON_TYPES["STAT"] self._BGpng._Parent = self self._BGpng.AddLabel(MyLangManager.Tr("Please upload data over Wi-Fi"), MyLangManager.TrFont("varela22")) self._BGpng.SetLableColor(MySkinManager.GiveColor('Disabled')) self._BGpng.Adjust(0, 0, self._BGwidth, self._BGheight, 0) self._Scroller = ListScroller() self._Scroller._Parent = self self._Scroller._PosX = self._Width - 10 self._Scroller._PosY = 2 self._Scroller.Init() def Click(self): if len(self._MyList) == 0: return cur_li = self._MyList[self._PsIndex] if cur_li._MyType == ICON_TYPES["DIR"]: if cur_li._Path == "[..]": self._MyStack.Pop() self.SyncList(self._MyStack.Last()) self._PsIndex = 0 else: self._MyStack.Push(self._MyList[self._PsIndex]._Path) self.SyncList(self._MyStack.Last()) self._PsIndex = 0 if cur_li._MyType == ICON_TYPES["FILE"]: ## add to playlist only myvars.Poller.addfile(cur_li._Path) myvars.PlayListPage.SyncList() print("add", cur_li._Path) self._Screen.Draw() self._Screen.SwapAndShow() def Rescan(self): self.SyncList("/") self._PsIndex = 0 def KeyDown(self, event): if IsKeyMenuOrB(event.key) or event.key == CurKeys["Left"]: self.ReturnToUpLevelPage() self._Screen.Draw() self._Screen.SwapAndShow() if event.key == CurKeys["Up"]: self.ScrollUp() self._Screen.Draw() self._Screen.SwapAndShow() if event.key == CurKeys["Down"]: self.ScrollDown() self._Screen.Draw() self._Screen.SwapAndShow() """ if event.key == CurKeys["Right"]: self.FScrollDown(Step=5) self._Screen.Draw() self._Screen.SwapAndShow() if event.key == CurKeys["Left"]: self.FScrollUp(Step=5) self._Screen.Draw() self._Screen.SwapAndShow() """ if event.key == CurKeys["X"]: self.Rescan() self._Screen.Draw() self._Screen.SwapAndShow() if IsKeyStartOrA(event.key): self.Click() def Draw(self): self.ClearCanvas() """ start_x = 0 start_y = 0 counter = 0 self._MyList = [] for i,v in enumerate(self._SwapMyList): if myvars.PlayListPage.InPlayList(v._Path): v._Active = True else: v._Active = False if v._Active == False: v.NewCoord(start_x, start_y+counter* ListItem._Height) counter+=1 self._MyList.append(v) """ if len(self._MyList) == 0: self._BGpng.NewCoord(self._Width / 2, self._Height / 2) self._BGpng.Draw() return else: if len(self._MyList) * ListItem._Height > self._Height: self._Ps._Width = self._Width - 11 self._Ps.Draw() for i in self._MyList: if myvars.PlayListPage.InPlayList(i._Path): i._Active = True else: i._Active = False if i._PosY > self._Height + self._Height / 2: break if i._PosY < 0: continue i.Draw() self._Scroller.UpdateSize( len(self._MyList) * ListItem._Height, self._PsIndex * ListItem._Height) self._Scroller.Draw() else: self._Ps._Width = self._Width self._Ps.Draw() for i in self._MyList: if myvars.PlayListPage.InPlayList(i._Path): i._Active = True else: i._Active = False if i._PosY > self._Height + self._Height / 2: break if i._PosY < 0: continue i.Draw()