brightness_page.py 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. # -*- coding: utf-8 -*-
  2. import pygame
  3. #import math
  4. ## local UI import
  5. from UI.constants import Width,Height,ICON_TYPES
  6. from UI.page import Page,PageSelector
  7. from UI.label import Label
  8. from UI.icon_item import IconItem
  9. from UI.fonts import fonts
  10. from UI.util_funcs import midRect
  11. from UI.keys_def import CurKeys
  12. from UI.slider import Slider
  13. from UI.icon_pool import MyIconPool
  14. from UI.multi_icon_item import MultiIconItem
  15. from config import BackLight
  16. import myvars
  17. class BSlider(Slider):
  18. OnChangeCB = None
  19. _BGpng = None
  20. _BGwidth = 179
  21. _BGheight = 153
  22. _NeedleSurf = None
  23. _Scale = None
  24. _Parent = None
  25. _Icons = {}
  26. def __init__(self):
  27. Slider.__init__(self)
  28. self._Icons = {}
  29. def Init(self):
  30. self._Width = self._Parent._Width
  31. self._Height = self._Parent._Height
  32. bgpng = IconItem()
  33. bgpng._ImgSurf = MyIconPool._Icons["light"]
  34. bgpng._MyType = ICON_TYPES["STAT"]
  35. bgpng._Parent = self
  36. bgpng.Adjust(0,0,self._BGwidth,self._BGheight,0)
  37. self._Icons["bg"] = bgpng
  38. ##self._NeedleSurf = pygame.Surface( (38,12),pygame.SRCALPHA )
  39. scale = MultiIconItem()
  40. scale._MyType = ICON_TYPES["STAT"]
  41. scale._Parent = self
  42. scale._ImgSurf = MyIconPool._Icons["scale"]
  43. scale._IconWidth = 82
  44. scale._IconHeight = 63
  45. scale.Adjust(0,0,82,63,0)
  46. self._Icons["scale"] = scale
  47. def SetValue(self,brt):
  48. self._Value = brt
  49. def Further(self):
  50. self._Value+=1
  51. if self._Value > 9:
  52. self._Value = 9
  53. if self.OnChangeCB != None:
  54. if callable(self.OnChangeCB):
  55. self.OnChangeCB(self._Value)
  56. def StepBack(self):
  57. self._Value-=1
  58. if self._Value < 1:
  59. self._Value = 1
  60. if self.OnChangeCB != None:
  61. if callable(self.OnChangeCB):
  62. self.OnChangeCB(self._Value)
  63. def Draw(self):
  64. self._Icons["bg"].NewCoord(self._Width/2,self._Height/2 +11 )
  65. self._Icons["bg"].Draw()
  66. self._Icons["scale"].NewCoord(self._Width/2,self._Height/2 )
  67. icon_idx = self._Value - 1
  68. if icon_idx < 0:
  69. icon_idx = 0
  70. self._Icons["scale"]._IconIndex = icon_idx
  71. self._Icons["scale"].Draw()
  72. """
  73. pygame.draw.line(self._CanvasHWND,(255,0,0), (posx,self._PosY),(self._Width,self._PosY),3) ## range line
  74. pygame.draw.line(self._CanvasHWND,(0,0,255), (self._PosX,self._PosY),(posx,self._PosY),3) ## range line
  75. pygame.draw.circle(self._CanvasHWND,(255,255,255),( posx, self._PosY),7,0)
  76. pygame.draw.circle(self._CanvasHWND,(0,0,0) ,( posx, self._PosY),7,1)## outer border
  77. """
  78. class BrightnessPage(Page):
  79. _MySlider = None
  80. _FootMsg = ["Nav","","","Back","Enter"]
  81. def Init(self):
  82. self._CanvasHWND = self._Screen._CanvasHWND
  83. self._Width = self._Screen._Width
  84. self._Height = self._Screen._Height
  85. self._MySlider = BSlider()
  86. # self._MySlider._Width = Width - 20
  87. # self._MySlider._Height = 30
  88. # self._MySlider._PosX = (self._Width - self._MySlider._Width)/2
  89. # self._MySlider._PosY = 40
  90. self._MySlider._Parent = self
  91. self._MySlider.SetCanvasHWND(self._CanvasHWND)
  92. self._MySlider.OnChangeCB = self.WhenSliderDrag
  93. self._MySlider.Init()
  94. brt = self.ReadBackLight()
  95. self._MySlider.SetValue( brt)
  96. def ReadBackLight(self):
  97. try:
  98. f = open(BackLight)
  99. except IOError:
  100. return 0
  101. else:
  102. with f:
  103. content = f.readlines()
  104. content = [x.strip() for x in content]
  105. return int(content[0])
  106. return 0
  107. def OnLoadCb(self):
  108. brt = self.ReadBackLight()
  109. self._MySlider.SetValue( brt)
  110. def SetBackLight(self,newbrt):
  111. try:
  112. f = open(BackLight,'w')
  113. except IOError:
  114. print("Open write %s failed %d" % (BackLight,newbrt))
  115. return False
  116. else:
  117. with f:
  118. f.write(str(newbrt))
  119. return True
  120. def WhenSliderDrag(self,value): ##value
  121. self.SetBackLight(value)
  122. def KeyDown(self,event):
  123. if event.key == CurKeys["Menu"] or event.key == CurKeys["A"]:
  124. self.ReturnToUpLevelPage()
  125. self._Screen.Draw()
  126. self._Screen.SwapAndShow()
  127. if event.key == CurKeys["Right"]:
  128. self._MySlider.Further()
  129. self._Screen.Draw()
  130. self._Screen.SwapAndShow()
  131. if event.key == CurKeys["Left"]:
  132. self._MySlider.StepBack()
  133. self._Screen.Draw()
  134. self._Screen.SwapAndShow()
  135. def Draw(self):
  136. self.ClearCanvas()
  137. self._MySlider.Draw()