2018-09-11 09:59:36 +02:00

134 lines
4.4 KiB
Python

import os, time, sys, pygame
import photoboite
class Capture:
def __init__(self, main, sleep):
self.main = main
self.sleep = sleep
self.buttons = []
button_size = int(self.main.screen.get_height() / 4)
topleft = (self.main.screen.get_width() - button_size) / 2, self.main.screen.get_height() - button_size - 10
self.capture_button = photoboite.buttons.CaptureButton(button_size, topleft, self)
self.buttons.append(self.capture_button)
self.buttons.append(photoboite.buttons.PowerButton(pygame.Rect(self.main.screen.get_width() - 50, 0, 50, 50)))
self.buttons.append(photoboite.buttons.InfoButton(pygame.Rect(0, 0, 50, 50), self.main))
self.buttons.append(photoboite.buttons.ConfigButton(pygame.Rect(0, self.main.screen.get_height() - 50, 50, 50), self.main.config))
camera_rect = pygame.Rect(0, 0, 800, 480)
self.camera = photoboite.Camera(camera_rect)
def draw(self):
self.camera.draw_on(self.main.screen)
for button in self.buttons:
button.draw_on(self.main.screen)
def event(self):
for event in pygame.event.get():
self.sleep.move()
if event.type == pygame.QUIT or event.type == pygame.KEYDOWN and event.unicode == 'q':
self.main.quit()
elif event.type == pygame.MOUSEBUTTONDOWN:
for button in self.buttons:
if button.is_pressed(event.pos):
button.press()
elif event.type == pygame.MOUSEBUTTONUP:
for button in self.buttons:
if button.is_pressed(event.pos):
button.unpress()
def screen(self):
return self.main.screen
def quit(self):
self.camera.close()
def run(self):
self.event()
self.draw()
self.sleep.sleep()
pygame.display.flip()
class Config:
def __init__(self, main):
self.main = main
self.enabled = False
self.drawn = False
self.buttons = []
self.buttons.append(photoboite.buttons.config.Close(pygame.Rect(self.main.screen.get_width() - 50, 0, 50, 50), self))
def activate(self):
self.enabled = True
self.drawn = False
def deactivate(self):
self.enabled = False
def draw(self):
if not self.drawn:
self.main.screen.fill((255,255,255))
pygame.display.flip()
self.drawn = True
def event(self):
for event in pygame.event.get():
if event.type == pygame.QUIT or event.type == pygame.KEYDOWN and event.unicode == 'q':
self.main.quit()
elif event.type == pygame.MOUSEBUTTONDOWN:
for button in self.buttons:
if button.is_pressed(event.pos):
button.press()
elif event.type == pygame.MOUSEBUTTONUP:
for button in self.buttons:
if button.is_pressed(event.pos):
button.unpress()
def run(self):
self.event()
self.draw()
class Sleep:
def __init__(self, seconds, main):
self.enabled = True
self.drawn = False
self.seconds = seconds
self.main = main
self.clicker = pygame.image.load(os.path.dirname(os.path.realpath(__file__)) + '/../../images/clicker.png').convert_alpha()
self.clicker_rect = self.clicker.get_rect()
self.clicker_rect.topleft = ((self.main.screen.get_width() - self.clicker_rect.width) / 2, (self.main.screen.get_height() - self.clicker_rect.height) / 2)
def move(self):
self.last_action = time.time()
def event(self):
for event in pygame.event.get():
if event.type == pygame.QUIT or event.type == pygame.KEYDOWN and event.unicode == 'q':
self.main.quit()
elif event.type == pygame.MOUSEBUTTONUP or event.type == pygame.KEYUP:
self.move()
self.enabled = False
def draw(self):
if not self.drawn:
self.main.screen.fill((255,255,255))
self.main.screen.blit(self.clicker, self.clicker_rect)
pygame.display.flip()
self.drawn = True
def run(self):
self.event()
self.draw()
def sleep(self):
if time.time() - self.last_action > self.seconds:
self.enabled = True
self.drawn = False