Skip to content

Commit

Permalink
Reset color of over 0db/NaN peak on click
Browse files Browse the repository at this point in the history
  • Loading branch information
dsheeler committed Jun 20, 2020
1 parent 6ecd5ad commit 5a7f0e2
Showing 1 changed file with 22 additions and 4 deletions.
26 changes: 22 additions & 4 deletions abspeak.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,21 @@
from gi.repository import GObject
import math

css = b"""
.over_zero {
background-color: #cc4c00;
}
.is_nan {
background-color: #b20000;
}
"""
css_provider = Gtk.CssProvider()
css_provider.load_from_data(css)
context = Gtk.StyleContext()
screen = Gdk.Screen.get_default()
context.add_provider_for_screen(screen, css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)

class AbspeakWidget(Gtk.EventBox):
def __init__(self):
GObject.GObject.__init__(self)
Expand All @@ -35,7 +50,11 @@ def __init__(self):

def on_mouse(self, widget, event):
if event.type == Gdk.EventType.BUTTON_PRESS:
if event.button == 1:
if event.button == 1 or event.button == 2 or event.button == 3:
context = self.get_style_context()
context.remove_class('over_zero')
context.remove_class('is_nan')
if event.button == 1 or event.button == 3:
self.emit("reset")
elif event.button == 2:
adjust = -self.peak
Expand All @@ -45,16 +64,15 @@ def on_mouse(self, widget, event):
def set_peak(self, peak):
self.peak = peak
if math.isnan(peak):
self.modify_bg(Gtk.StateType.NORMAL, Gdk.Color(int(65535 * 0.7), 0, 0))
self.get_style_context().add_class('is_nan')
self.label.set_text("NaN")
else:
text = "%+.1f" % peak

if peak > 0:
self.modify_bg(Gtk.StateType.NORMAL, Gdk.Color(int(65535 * 0.8), int(65535 * 0.3), 0))
self.get_style_context().add_class('over_zero')
else:
pass
#self.modify_bg(Gtk.StateType.NORMAL, self.label.style.bg[Gtk.StateType.NORMAL])

self.label.set_text(text)

Expand Down

0 comments on commit 5a7f0e2

Please sign in to comment.