the focus of the knobs is removed, when the fx_mode is changed
This commit is contained in:
6
knob.py
6
knob.py
@ -23,7 +23,6 @@ class Knob:
|
||||
if focused:
|
||||
self.focused = True
|
||||
self.color = color_primary_light
|
||||
self.group.deactivate_knobs_except(self)
|
||||
else:
|
||||
self.focused = False
|
||||
self.color = color_primary
|
||||
@ -32,7 +31,8 @@ class Knob:
|
||||
return self.position
|
||||
|
||||
def __eq__(self, other):
|
||||
return self.position == other.get_position()
|
||||
if other is None: return False
|
||||
return self.name == other.name
|
||||
|
||||
def get_pointer_position(self):
|
||||
angle = (self.value * 0.8 * 2 + 0.7) * math.pi
|
||||
@ -45,7 +45,7 @@ class Knob:
|
||||
if m1:
|
||||
pos = pygame.mouse.get_pos()
|
||||
if math.sqrt(math.pow(pos[0]-self.position[0],2) + math.pow(pos[1]-self.position[1],2)) < self.radius:
|
||||
self.set_focused(True)
|
||||
self.group.set_focused(self)
|
||||
|
||||
pygame.draw.circle(screen, self.color, self.position, self.radius)
|
||||
pygame.draw.line(screen, "black", self.position, self.get_pointer_position(), 4)
|
||||
|
||||
4
knobs.py
4
knobs.py
@ -78,9 +78,9 @@ class Knobs:
|
||||
for i in range(len(line_points)-1):
|
||||
pygame.draw.line(self.gui.screen, color_primary_dark, line_points[i], line_points[i+1], 2)
|
||||
|
||||
def deactivate_knobs_except(self, knob):
|
||||
def set_focused(self, knob):
|
||||
for k in self.knobs:
|
||||
if k != knob: k.set_focused(False)
|
||||
k.set_focused(k == knob)
|
||||
|
||||
def display(self):
|
||||
for knob in self.knobs:
|
||||
|
||||
5
main.py
5
main.py
@ -35,18 +35,19 @@ class GuiMain:
|
||||
r_y = (self.screenH-20) / 16
|
||||
self.fx_mode_buttons.append(LozengeButton(self, self.fx_mode_labels[i], (x,y), r_x, r_y))
|
||||
|
||||
self.set_fx_mode(self.fx_mode_labels[self.fx_mode])
|
||||
|
||||
self.knobs = []
|
||||
for i in range(len(self.fx_mode_labels)):
|
||||
self.knobs.append(Knobs(self))
|
||||
|
||||
self.set_fx_mode(self.fx_mode_labels[self.fx_mode])
|
||||
|
||||
self.clock = pygame.time.Clock()
|
||||
self.running = True
|
||||
self.run()
|
||||
|
||||
def set_fx_mode(self, mode):
|
||||
self.fx_mode = self.fx_mode_labels.index(mode)
|
||||
self.knobs[self.fx_mode].set_focused(None)
|
||||
for b in self.fx_mode_buttons:
|
||||
b.focused = (b.name == mode)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user