__init__.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. # -*- coding: utf-8 -*-
  2. import pygame
  3. import os
  4. ## local UI import
  5. from UI.page import Page
  6. from UI.skin_manager import SkinManager
  7. from UI.constants import ICON_TYPES,Width,Height
  8. from UI.icon_item import IconItem
  9. from UI.icon_pool import MyIconPool
  10. from UI.label import Label
  11. from UI.fonts import fonts
  12. from UI.util_funcs import midRect
  13. from libs.roundrects import aa_round_rect
  14. class StoragePage(Page):
  15. _Icons = {}
  16. _BGpng = None
  17. _BGwidth = 96
  18. _BGheight = 73
  19. _BGlabel = None
  20. _FreeLabel = None
  21. _BGmsg = "%.1fGB of %.1fGB Used"
  22. _DskUsg = None
  23. _HighColor = SkinManager().GiveColor('High')
  24. _FootMsg = ["Nav.","","","Back",""]
  25. def __init__(self):
  26. Page.__init__(self)
  27. self._Icons = {}
  28. def DiskUsage(self):
  29. statvfs = os.statvfs('/')
  30. total_space = (statvfs.f_frsize * statvfs.f_blocks)/1024.0/1024.0/1024.0
  31. avail_space = ( statvfs.f_frsize * statvfs.f_bavail) / 1024.0 / 1024.0/ 1024.0
  32. return avail_space,total_space
  33. def Init(self):
  34. self._DskUsg = self.DiskUsage()
  35. self._CanvasHWND = self._Screen._CanvasHWND
  36. self._Width = self._Screen._Width
  37. self._Height = self._Screen._Height
  38. self._BGpng = IconItem()
  39. self._BGpng._ImgSurf = MyIconPool._Icons["icon_sd"]
  40. self._BGpng._MyType = ICON_TYPES["STAT"]
  41. self._BGpng._Parent = self
  42. self._BGpng.AddLabel(self._BGmsg % (self._DskUsg[1]-self._DskUsg[0], self._DskUsg[1]), fonts["varela15"])
  43. self._BGpng.Adjust(0,0,self._BGwidth,self._BGheight,0)
  44. self._BGlabel = Label()
  45. self._BGlabel.SetCanvasHWND(self._CanvasHWND)
  46. usage_percent = (self._DskUsg[0]/self._DskUsg[1] )*100.0
  47. self._BGlabel.Init("%d%%"% int(usage_percent),fonts["varela25"])
  48. self._BGlabel.SetColor( self._HighColor )
  49. self._FreeLabel = Label()
  50. self._FreeLabel.SetCanvasHWND(self._CanvasHWND)
  51. self._FreeLabel.Init("Free",fonts["varela13"])
  52. self._FreeLabel.SetColor(self._BGlabel._Color)
  53. def OnLoadCb(self):
  54. pass
  55. def Draw(self):
  56. self.ClearCanvas()
  57. self._BGpng.NewCoord(self._Width/2,self._Height/2-10)
  58. self._BGpng.Draw()
  59. self._BGlabel.NewCoord(self._Width/2-28,self._Height/2-30)
  60. self._BGlabel.Draw()
  61. self._FreeLabel.NewCoord(self._BGlabel._PosX+10 ,self._Height/2)
  62. self._FreeLabel.Draw()
  63. #bgcolor = (238,238,238), fgcolor = (126,206,244)
  64. #aa_round_rect
  65. usage_percent = (self._DskUsg[0]/self._DskUsg[1] )
  66. if usage_percent < 0.1:
  67. usage_percent = 0.1
  68. rect_ = midRect(self._Width/2,self._Height-30,170,17, Width,Height)
  69. aa_round_rect(self._CanvasHWND, rect_, SkinManager().GiveColor('Line'), 5, 0, SkinManager().GiveColor('Line'))
  70. rect2 = midRect(self._Width/2,self._Height-30,int(170*(1.0-usage_percent)),17, Width,Height)
  71. rect2.left = rect_.left
  72. rect2.top = rect_.top
  73. aa_round_rect(self._CanvasHWND,rect2, SkinManager().GiveColor('Front'),5,0,SkinManager().GiveColor('Front'))
  74. class APIOBJ(object):
  75. _StoragePage = None
  76. def __init__(self):
  77. pass
  78. def Init(self,main_screen):
  79. self._StoragePage = StoragePage()
  80. self._StoragePage._Screen = main_screen
  81. self._StoragePage._Name ="Storage"
  82. self._StoragePage.Init()
  83. def API(self,main_screen):
  84. if main_screen !=None:
  85. main_screen.PushPage(self._StoragePage)
  86. main_screen.Draw()
  87. main_screen.SwapAndShow()
  88. OBJ = APIOBJ()
  89. def Init(main_screen):
  90. OBJ.Init(main_screen)
  91. def API(main_screen):
  92. OBJ.API(main_screen)