From a750ddcd6b65b7fd9e0eda52f8e2a114d3096c02 Mon Sep 17 00:00:00 2001 From: nickedyer Date: Mon, 20 Feb 2023 00:32:03 -0500 Subject: [PATCH] added setting percent display --- thermopi/main.py | 1 - thermopi/surfaces/dial.py | 16 +++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/thermopi/main.py b/thermopi/main.py index d0805ce..8036986 100644 --- a/thermopi/main.py +++ b/thermopi/main.py @@ -9,7 +9,6 @@ PI = 3.14159265 VALID_SURFACES = [ 'dial' ] -SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) def main(windowed_mode=False): diff --git a/thermopi/surfaces/dial.py b/thermopi/surfaces/dial.py index 04cd869..24de9fa 100644 --- a/thermopi/surfaces/dial.py +++ b/thermopi/surfaces/dial.py @@ -1,9 +1,9 @@ import math - import pygame +import os DIAL_SCALING = 0.9 - +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) class Dial(pygame.Surface): def __init__(self, dial_size): @@ -33,13 +33,13 @@ class Dial(pygame.Surface): def move_dial(self, movement_amount): self.setting = max(0, min(self.setting + movement_amount, 1)) + class MouseHandler: def __init__(self): self.prev_mouse_pos = pygame.mouse.get_pos() self.mouse_pos = pygame.mouse.get_pos() self.active = False - def update(self): self.prev_mouse_pos = self.mouse_pos self.mouse_pos = pygame.mouse.get_pos() @@ -52,6 +52,7 @@ class MouseHandler: speed_coeff = math.cos((mouse_angle - (0.5 * math.pi)) - diff_angle) return movement_speed * speed_coeff + class Surface(pygame.Surface): def __init__(self, window_size): super().__init__(window_size, pygame.SRCALPHA) @@ -64,10 +65,10 @@ class Surface(pygame.Surface): self.dial.rect.center = (window_size[0] / 2, window_size[1] / 2) self.mouse_handler = MouseHandler() + self.font = pygame.font.Font(SCRIPT_DIR + '/resources/tuffy.ttf', 128) pygame.mouse.set_visible(False) - def update(self): self.fill((32, 32, 32)) self.mouse_handler.update() @@ -83,7 +84,6 @@ class Surface(pygame.Surface): if event.type == pygame.MOUSEBUTTONDOWN: self.mouse_handler.active = True self.mouse_handler.prev_mouse_pos = self.mouse_handler.mouse_pos - print('yug') if event.type == pygame.MOUSEBUTTONUP: self.mouse_handler.active = False @@ -91,4 +91,10 @@ class Surface(pygame.Surface): self.dial.move_dial(self.mouse_handler.get_circular_speed(self.dial.center) / -3000.0) self.blit(self.dial, self.dial.rect) + + text = self.font.render('{0}%'.format(round(self.dial.setting * 100)), True, (255, 255, 255)) + text_rect = text.get_rect() + text_rect.center = self.dial.rect.center + self.blit(text, text_rect) + self.dial.update()