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:
|
if focused:
|
||||||
self.focused = True
|
self.focused = True
|
||||||
self.color = color_primary_light
|
self.color = color_primary_light
|
||||||
self.group.deactivate_knobs_except(self)
|
|
||||||
else:
|
else:
|
||||||
self.focused = False
|
self.focused = False
|
||||||
self.color = color_primary
|
self.color = color_primary
|
||||||
@ -32,7 +31,8 @@ class Knob:
|
|||||||
return self.position
|
return self.position
|
||||||
|
|
||||||
def __eq__(self, other):
|
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):
|
def get_pointer_position(self):
|
||||||
angle = (self.value * 0.8 * 2 + 0.7) * math.pi
|
angle = (self.value * 0.8 * 2 + 0.7) * math.pi
|
||||||
@ -45,7 +45,7 @@ class Knob:
|
|||||||
if m1:
|
if m1:
|
||||||
pos = pygame.mouse.get_pos()
|
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:
|
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.circle(screen, self.color, self.position, self.radius)
|
||||||
pygame.draw.line(screen, "black", self.position, self.get_pointer_position(), 4)
|
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):
|
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)
|
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:
|
for k in self.knobs:
|
||||||
if k != knob: k.set_focused(False)
|
k.set_focused(k == knob)
|
||||||
|
|
||||||
def display(self):
|
def display(self):
|
||||||
for knob in self.knobs:
|
for knob in self.knobs:
|
||||||
|
|||||||
5
main.py
5
main.py
@ -35,18 +35,19 @@ class GuiMain:
|
|||||||
r_y = (self.screenH-20) / 16
|
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.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 = []
|
self.knobs = []
|
||||||
for i in range(len(self.fx_mode_labels)):
|
for i in range(len(self.fx_mode_labels)):
|
||||||
self.knobs.append(Knobs(self))
|
self.knobs.append(Knobs(self))
|
||||||
|
|
||||||
|
self.set_fx_mode(self.fx_mode_labels[self.fx_mode])
|
||||||
|
|
||||||
self.clock = pygame.time.Clock()
|
self.clock = pygame.time.Clock()
|
||||||
self.running = True
|
self.running = True
|
||||||
self.run()
|
self.run()
|
||||||
|
|
||||||
def set_fx_mode(self, mode):
|
def set_fx_mode(self, mode):
|
||||||
self.fx_mode = self.fx_mode_labels.index(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:
|
for b in self.fx_mode_buttons:
|
||||||
b.focused = (b.name == mode)
|
b.focused = (b.name == mode)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user