30 lines
1.0 KiB
Python
30 lines
1.0 KiB
Python
|
|
import pygame
|
||
|
|
from fonts import *
|
||
|
|
from colors import *
|
||
|
|
|
||
|
|
class BinaryButton:
|
||
|
|
|
||
|
|
def __init__(self, screen, position, size, label, state):
|
||
|
|
self.screen = screen
|
||
|
|
self.position = position
|
||
|
|
self.size = size
|
||
|
|
self.label = label
|
||
|
|
self.state = state
|
||
|
|
|
||
|
|
def check_click(self, pos):
|
||
|
|
if pos[0] >= self.position[0] and pos[1] >= self.position[1] and pos[0] <= self.position[0] + self.size[0] and pos[1] <= self.position[1] + self.size[1]:
|
||
|
|
self.state = not self.state
|
||
|
|
|
||
|
|
def display(self):
|
||
|
|
if self.state:
|
||
|
|
w = 0
|
||
|
|
text_color = "black"
|
||
|
|
else:
|
||
|
|
w = 2
|
||
|
|
text_color = color_primary
|
||
|
|
|
||
|
|
pygame.draw.rect(self.screen, color_primary, (self.position, self.size), w)
|
||
|
|
|
||
|
|
label = font_helvetica16.render(self.label, False, text_color)
|
||
|
|
self.screen.blit(label, (self.position[0] + (self.size[0] - label.get_width())/2,
|
||
|
|
self.position[1] + (self.size[1] - label.get_height())/2))
|