From 11362ede0afadb27b3b827500066121e36bc1f8e Mon Sep 17 00:00:00 2001 From: elukjanovica Date: Sat, 2 Mar 2024 09:29:22 +0200 Subject: [PATCH] --- main.py | 80 +++++++++++++++++++++++++++++++-------------------------- 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/main.py b/main.py index 4e4d164..43135df 100644 --- a/main.py +++ b/main.py @@ -190,41 +190,6 @@ class Image: screen.blit(self.img, self.rect) -class Slider: - def __init__(self, white_line, blue_line, slider_button, position, value_range): - self.white_line = white_line - self.blue_line = blue_line - self.slider_button = slider_button - self.position = position - self.value_range = value_range - self.value = value_range[0] - self.dragging = False - - def update_position(self, position): - self.position = position - self.white_line.position = position - self.blue_line.position = position - self.slider_button.window_position = (position[0], position[1] + (self.slider_button.size[1] - self.white_line.rect.height) // 2) - - def blit(self, screen): - screen.blit(self.white_line.img, self.white_line.rect) - screen.blit(self.blue_line.img, self.blue_line.rect) - self.slider_button.draw(screen) - - def handle_event(self, event): - if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1: - if self.slider_button.rect.collidepoint(event.pos): - self.dragging = True - elif event.type == pygame.MOUSEBUTTONUP and event.button == 1: - self.dragging = False - elif event.type == pygame.MOUSEMOTION and self.dragging: - mouse_x = max(self.white_line.rect.x, min(event.pos[0], self.white_line.rect.x + self.white_line.rect.width)) - value = ((mouse_x - self.white_line.rect.x) / (self.white_line.rect.width - self.slider_button.rect.width)) * 360 - self.white_line.update_value(value) - self.blue_line.update_value(value) - self.slider_button.rect.x = mouse_x - self.slider_button.rect.width // 2 - - class Button: def __init__(self, sprite_position, window_position, size): self.sprite_sheet = sprite_sheet @@ -266,6 +231,46 @@ class Button: else: screen.blit(self.img, self.rect) + +class Slider: + def __init__(self, position, value_range, aspect): + self.second_x= 80*aspect + self.slider_pos = self.handle_event() + self.first_line = Image((135, 38), position, (80, 12)) + self.second_line = Image((135, 53), position, (self.second_x, 12)) + self.slider_button = Button((218, 38), self.slider_pos, (10, 16)) + self.position = position + self.value_range = value_range + self.value = value_range[0] + self.dragging = False + + def handle_event(self): + self.second_x + self.slider_pos[0] = self.position[0] #not really, 1. it takes value_range and current value, 2. it has to be movable only in slider x rect + self.slider_pos[1] = self.position[1]+2 + + self.dragging = True + + mouse_x = max(self.white_line.rect.x, min(event.pos[0], self.white_line.rect.x + self.white_line.rect.width)) + value = ((mouse_x - self.white_line.rect.x) / (self.white_line.rect.width - self.slider_button.rect.width)) * 360 + self.white_line.update_value(value) + self.blue_line.update_value(value) + self.slider_button.rect.x = mouse_x - self.slider_button.rect.width // 2 + + return self.slider_pos + + def update_position(self, position): + self.position = position + self.white_line.position = position + self.blue_line.position = position + self.slider_button.window_position = (position[0], position[1] + (self.slider_button.size[1] - self.white_line.rect.height) // 2) + + def blit(self, screen): + screen.blit(self.white_line.img, self.white_line.rect) + screen.blit(self.blue_line.img, self.blue_line.rect) + self.slider_button.draw(screen) + + # Ability to move window def move_win(coordinates): hwnd = pygame.display.get_wm_info()["window"] @@ -642,7 +647,8 @@ def set_hue(): elif settings_data["style"] == STYLE_CHOICES[2]: x = 1 - hue_value = settings_data["gui color"][x] + gui = "gui color" + hue_value = settings_data[gui][x] keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: hue_value = (hue_value - 1) % 360 @@ -653,7 +659,7 @@ def set_hue(): pygame.image.save(sprite_sheet.sheet, MAIN_PATH + SIZE_PATH + str(INT) + STYLE_PATH + "spritesheet.png") - settings_data["gui color"][x] = hue_value + settings_data[gui][x] = hue_value with open(SETTINGS_FILE, "w") as settings_file: json.dump(settings_data, settings_file)