Added update() function to text button.
This commit is contained in:
parent
808b613273
commit
e6006e5264
1 changed files with 47 additions and 23 deletions
70
pg.py
70
pg.py
|
@ -82,9 +82,10 @@ class Button:
|
|||
|
||||
|
||||
class TextButton:
|
||||
def __init__(self, text: str, pos: tuple, function=None, key: int=0, text_color: tuple=white, bg_color: tuple=gray, font: pygame.font.Font=default_font, padding: int=8):
|
||||
def __init__(self, text: str, pos: tuple, surface: pygame.Surface, function=None, key: int=0, text_color: tuple=white, bg_color: tuple=gray, font: pygame.font.Font=default_font, padding: int=8):
|
||||
self.text = text
|
||||
self.pos = pos
|
||||
self.surface = surface
|
||||
self.function = function
|
||||
self.text_color = text_color
|
||||
self.bg_color = bg_color
|
||||
|
@ -107,31 +108,54 @@ class TextButton:
|
|||
|
||||
return pygame.Rect(self.pos, (w, h))
|
||||
|
||||
# def update(self, new_text: str=None, new_pos: tuple = None, new_func=None, new_key: int=None, new_text_color: tuple=None, new_bg_color: tuple=None, new_font: pygame.font.Font=None): # coming soon
|
||||
# if new_text is None:
|
||||
# new_text = self.text
|
||||
#
|
||||
# if new_pos is None:
|
||||
# new_pos = self.pos
|
||||
#
|
||||
# if new_func is None:
|
||||
# new_func = self.function
|
||||
#
|
||||
# if new_key is None:
|
||||
# new_key = self.button.key
|
||||
#
|
||||
# if new_text_color is None:
|
||||
# new_text_color = self.text_color
|
||||
#
|
||||
# if new_bg_color is None:
|
||||
# bg_color = self.bg_color
|
||||
#
|
||||
# if new_font is None:
|
||||
# new_font = self.font
|
||||
def update(self, new_text: str=None, new_pos: tuple=None, new_surface: pygame.Surface=None, new_func=None, new_key: int=None, new_text_color: tuple=None, new_bg_color: tuple=None, new_font: pygame.font.Font=None, new_padding: int=None):
|
||||
if new_text is None:
|
||||
new_text = self.text
|
||||
|
||||
def blit(self, surface: pygame.Surface):
|
||||
if new_pos is None:
|
||||
new_pos = self.pos
|
||||
|
||||
if new_surface is None:
|
||||
new_surface = self.surface
|
||||
|
||||
if new_func is None:
|
||||
new_func = self.function
|
||||
|
||||
if new_key is None:
|
||||
new_key = self.button.key
|
||||
|
||||
if new_text_color is None:
|
||||
new_text_color = self.text_color
|
||||
|
||||
if new_bg_color is None:
|
||||
new_bg_color = self.bg_color
|
||||
|
||||
if new_font is None:
|
||||
new_font = self.font
|
||||
|
||||
if new_padding is None:
|
||||
new_padding = self.padding
|
||||
|
||||
self.text = new_text
|
||||
self.pos = new_pos
|
||||
self.surface = new_surface
|
||||
self.function = new_func
|
||||
self.text_color = new_text_color
|
||||
self.bg_color = new_bg_color
|
||||
self.font = new_font
|
||||
self.padding = new_padding
|
||||
|
||||
self.button = Button(new_func, new_bg_color, key=new_key)
|
||||
|
||||
self.generate_text(new_text)
|
||||
self.generate_background()
|
||||
|
||||
def blit(self, surface: pygame.Surface=None):
|
||||
x, y = self.pos
|
||||
|
||||
if surface is None:
|
||||
surface = self.surface
|
||||
|
||||
pygame.draw.rect(surface, self.bg_color, self.background)
|
||||
surface.blit(self.text_object, (x + self.padding, y + self.padding))
|
||||
|
||||
|
|
Loading…
Reference in a new issue