__init__.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. # -*- coding: utf-8 -*-
  2. import pygame
  3. #UI lib
  4. from UI.constants import RUNSYS
  5. from UI.keys_def import CurKeys, IsKeyStartOrA, IsKeyMenuOrB
  6. from UI.confirm_page import ConfirmPage
  7. from UI.lang_manager import MyLangManager
  8. from UI.skin_manager import MySkinManager
  9. import config
  10. class PowerOffConfirmPage(ConfirmPage):
  11. _ConfirmText = MyLangManager.Tr("Confirm Power OFF?")
  12. def CheckBattery(self):
  13. try:
  14. f = open(config.Battery)
  15. except IOError:
  16. print( "PowerOFF open %s failed" % config.Battery)
  17. return 0
  18. else:
  19. with f:
  20. bat_uevent = {}
  21. content = f.readlines()
  22. content = [x.strip() for x in content]
  23. for i in content:
  24. pis = i.split("=")
  25. if len(pis) > 1:
  26. bat_uevent[pis[0]] = pis[1]
  27. if "POWER_SUPPLY_CAPACITY" in bat_uevent:
  28. cur_cap = int(bat_uevent["POWER_SUPPLY_CAPACITY"])
  29. else:
  30. cur_cap = 0
  31. return cur_cap
  32. return 0
  33. def KeyDown(self,event):
  34. if IsKeyMenuOrB(event.key):
  35. self.ReturnToUpLevelPage()
  36. self._Screen.Draw()
  37. self._Screen.SwapAndShow()
  38. if IsKeyStartOrA(event.key):
  39. if self.CheckBattery() < 20:
  40. cmdpath = "feh --bg-center %s;" % MySkinManager.GiveWallpaper("gameover.png")
  41. else:
  42. cmdpath = "feh --bg-center %s;" % MySkinManager.GiveWallpaper("seeyou.png")
  43. cmdpath += "sleep 3;"
  44. #cmdpath += "echo 'halt -p' > /tmp/halt_cmd"
  45. cmdpath += "sudo halt -p"
  46. pygame.event.post( pygame.event.Event(RUNSYS, message=cmdpath))
  47. class APIOBJ(object):
  48. _StoragePage = None
  49. def __init__(self):
  50. pass
  51. def Init(self,main_screen):
  52. self._Page = PowerOffConfirmPage()
  53. self._Page._Screen = main_screen
  54. self._Page._Name ="Power OFF"
  55. self._Page.Init()
  56. def API(self,main_screen):
  57. if main_screen !=None:
  58. main_screen.PushPage(self._Page)
  59. main_screen.Draw()
  60. main_screen.SwapAndShow()
  61. OBJ = APIOBJ()
  62. def Init(main_screen):
  63. OBJ.Init(main_screen)
  64. def API(main_screen):
  65. OBJ.API(main_screen)