start_ui.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import os
  4. import sys
  5. import pygame
  6. if not pygame.display.get_init():
  7. pygame.display.init()
  8. if not pygame.font.get_init():
  9. pygame.font.init()
  10. # noinspection PyPep8
  11. import config_manager as config
  12. import plugins
  13. import skin_manager as SkinManager
  14. import GdUI as UI
  15. from interface import main_screen
  16. plugins = plugins.LoadPlugins()
  17. fonts = UI.FontManager
  18. myscriptname = os.path.basename(os.path.realpath(__file__))
  19. SkinManager.load_skin("cpi_default")
  20. def process_event(event, ui_root: UI.Widget):
  21. if event is not None:
  22. if event.type == pygame.QUIT:
  23. sys.exit()
  24. elif event.type == pygame.KEYDOWN:
  25. if event.key == pygame.K_q:
  26. sys.exit()
  27. else:
  28. ui_root.handle_event(event)
  29. def main_loop():
  30. screen_width = config.get("screen_width")
  31. screen_height = config.get("screen_height")
  32. screen = UI.Screen(fps=30, width=screen_width, height=screen_height)
  33. main = main_screen.MainScreen(screen_width, screen_height)
  34. screen.add_child(main)
  35. while True:
  36. for event in pygame.event.get():
  37. process_event(event, screen)
  38. screen.Draw()
  39. def init():
  40. os.environ['SDL_VIDEO_CENTERED'] = '1'
  41. os.chdir(os.path.dirname(os.path.realpath(__file__)))
  42. if not pygame.image.get_extended():
  43. print("This pygame does not support PNG")
  44. sys.exit()
  45. main_loop()
  46. init()