134 lines
4.4 KiB
Python
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
|