123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- # -*- coding: utf-8 -*-
- import pygame
- import os
- ## local UI import
- from UI.page import Page
- from UI.skin_manager import MySkinManager
- from UI.constants import ICON_TYPES,Width,Height
- from UI.icon_item import IconItem
- from UI.icon_pool import MyIconPool
- from UI.label import Label
- from UI.util_funcs import midRect
- class StoragePage(Page):
- _Icons = {}
- _BGpng = None
- _BGwidth = 96
- _BGheight = 73
- _BGlabel = None
- _FreeLabel = None
-
- _GBmsg = "%.1fGB of %.1fGB Used"
- _DskUsg = None
- _TextColor = MySkinManager.GiveColor('Text')
- _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._GBLabel = Label()
- self._GBLabel.SetCanvasHWND(self._CanvasHWND)
- self._GBLabel.Init(self._GBmsg % (self._DskUsg[1]-self._DskUsg[0], self._DskUsg[1]),MySkinManager.GiveFont("varela11") )
- self._GBLabel.SetColor(self._TextColor)
-
- self._PctLabel = Label()
- self._PctLabel.SetCanvasHWND(self._CanvasHWND)
- usage_percent = (self._DskUsg[0]/self._DskUsg[1] )*100.0
-
-
- self._PctLabel.Init("%d%%"% int(usage_percent),MySkinManager.GiveFont("EurostileBold30"))
- self._PctLabel.SetColor( self._TextColor )
-
- self._FreeLabel = Label()
- self._FreeLabel.SetCanvasHWND(self._CanvasHWND)
- self._FreeLabel.Init("FREE",MySkinManager.GiveFont("varela12"))
- self._FreeLabel.SetColor(self._PctLabel._Color)
-
- def OnLoadCb(self):
- pass
-
- def Draw(self):
- self.ClearCanvas()
-
- self._PctLabel.NewCoord(32,102- 33)
- self._PctLabel.Draw()
- self._FreeLabel.NewCoord(33 ,130-25)
- self._FreeLabel.Draw()
- self._GBLabel.NewCoord(145,103-29)
- self._GBLabel.Draw()
-
- #bgcolor = (238,238,238), fgcolor = (126,206,244)
- usage_percent = (self._DskUsg[0]/self._DskUsg[1] )
- if usage_percent < 0.1:
- usage_percent = 0.1
- rect_ = pygame.Rect(144,118-25, 283-144,139-117)
- pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Text'), rect_, 1)
-
- rect2 = pygame.Rect(144,118-25,int((283-144)*(1.0-usage_percent)),139-117)
- rect2.left = rect_.left
- rect2.top = rect_.top
-
- pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Text'),rect2, 0)
-
- sep_rect = pygame.Rect(129,99-25,2,42)
-
- pygame.draw.rect(self._CanvasHWND,MySkinManager.GiveColor('Inactive'),sep_rect, 0)
-
- ##4 cross
- self.DrawCross(10,10)
- self.DrawCross(self._Screen._Width-20,10)
- self.DrawCross(10,self._Screen._Height-20)
- self.DrawCross(self._Screen._Width-20,self._Screen._Height-20)
-
-
- class APIOBJ(object):
- _StoragePage = None
- def __init__(self):
- pass
- def Init(self,main_screen):
- self._StoragePage = StoragePage()
- self._StoragePage._Screen = main_screen
- self._StoragePage._Name ="Storage"
- self._StoragePage.Init()
-
-
- def API(self,main_screen):
- if main_screen !=None:
- main_screen.PushPage(self._StoragePage)
- main_screen.Draw()
- main_screen.SwapAndShow()
-
- OBJ = APIOBJ()
- def Init(main_screen):
- OBJ.Init(main_screen)
- def API(main_screen):
- OBJ.API(main_screen)
-
-
|