RTA: add impliciy freeze on mouse-down

This commit is contained in:
Robin Gareus
2025-04-14 23:45:51 +02:00
parent a46f2cefb4
commit ba86a634e5
12 changed files with 37 additions and 2 deletions

View File

@@ -42,7 +42,7 @@ using namespace ARDOUR;
RTAWindow::RTAWindow ()
: ArdourWindow (_("Realtime Perceptual Analyzer"))
, _pause (_("Freeze"), ArdourWidgets::ArdourButton::led_default_elements, true)
, _pause (_("Freeze"), ArdourWidgets::ArdourButton::default_elements, true)
, _visible (false)
, _margin (20)
, _min_dB (-60)
@@ -53,6 +53,7 @@ RTAWindow::RTAWindow ()
, _cursor_y (-1)
{
_pause.signal_clicked.connect (mem_fun (*this, &RTAWindow::pause_toggled));
_pause.set_name ("rta freeze button");
_darea.add_events (Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK | Gdk::POINTER_MOTION_MASK | Gdk::LEAVE_NOTIFY_MASK);
_darea.signal_size_request ().connect (sigc::mem_fun (*this, &RTAWindow::darea_size_request));
@@ -279,9 +280,16 @@ freq_at_x (const int x, const int width)
bool
RTAWindow::darea_button_press_event (GdkEventButton* ev)
{
if (ev->button != 1 || !_hovering_dB || ev->type != GDK_BUTTON_PRESS) {
if (ev->button != 1 || ev->type != GDK_BUTTON_PRESS) {
return false;
}
if (!_hovering_dB) {
if (!_pause.get_active ()) {
_pause.set_active_state (Gtkmm2ext::ImplicitActive);
pause_toggled ();
}
return true;
}
assert (_dragging_dB == DragNone);
@@ -323,6 +331,11 @@ RTAWindow::darea_button_release_event (GdkEventButton* ev)
return false;
}
if (_pause.active_state () == Gtkmm2ext::ImplicitActive) {
_pause.set_active_state (Gtkmm2ext::Off);
pause_toggled ();
}
bool changed = false;
if (_dragging_dB != DragNone) {

View File

@@ -388,6 +388,8 @@
<ColorAlias name="route button: fill active" alias="theme:bg2"/>
<ColorAlias name="route button: led active" alias="alert:green"/>
<ColorAlias name="route rec button: led active" alias="alert:red"/>
<ColorAlias name="rta freeze button: fill" alias="widget:bg"/>
<ColorAlias name="rta freeze button: fill active" alias="alert:yellow"/>
<ColorAlias name="rubber band rect" alias="neutral:foreground2"/>
<ColorAlias name="rude audition: fill" alias="widget:bg"/>
<ColorAlias name="rude audition: fill active" alias="alert:ruddy"/>

View File

@@ -378,6 +378,8 @@
<ColorAlias name="route button: fill active" alias="theme:bg2"/>
<ColorAlias name="route button: led active" alias="alert:green"/>
<ColorAlias name="route rec button: led active" alias="alert:red"/>
<ColorAlias name="rta freeze button: fill" alias="widget:bg"/>
<ColorAlias name="rta freeze button: fill active" alias="alert:yellow"/>
<ColorAlias name="rubber band rect" alias="neutral:foreground2"/>
<ColorAlias name="rude audition: fill" alias="widget:bg"/>
<ColorAlias name="rude audition: fill active" alias="alert:ruddy"/>

View File

@@ -379,6 +379,8 @@
<ColorAlias name="route button: fill active" alias="theme:bg2"/>
<ColorAlias name="route button: led active" alias="alert:green"/>
<ColorAlias name="route rec button: led active" alias="alert:red"/>
<ColorAlias name="rta freeze button: fill" alias="widget:bg"/>
<ColorAlias name="rta freeze button: fill active" alias="alert:yellow"/>
<ColorAlias name="rubber band rect" alias="neutral:foreground2"/>
<ColorAlias name="rude audition: fill" alias="widget:bg"/>
<ColorAlias name="rude audition: fill active" alias="alert:ruddy"/>

View File

@@ -385,6 +385,8 @@
<ColorAlias name="route button: fill active" alias="theme:bg2"/>
<ColorAlias name="route button: led active" alias="alert:green"/>
<ColorAlias name="route rec button: led active" alias="alert:red"/>
<ColorAlias name="rta freeze button: fill" alias="widget:bg"/>
<ColorAlias name="rta freeze button: fill active" alias="alert:yellow"/>
<ColorAlias name="rubber band rect" alias="neutral:foreground2"/>
<ColorAlias name="rude audition: fill" alias="widget:bg"/>
<ColorAlias name="rude audition: fill active" alias="alert:ruddy"/>

View File

@@ -379,6 +379,8 @@
<ColorAlias name="route button: fill active" alias="theme:bg2"/>
<ColorAlias name="route button: led active" alias="alert:green"/>
<ColorAlias name="route rec button: led active" alias="alert:red"/>
<ColorAlias name="rta freeze button: fill" alias="widget:bg"/>
<ColorAlias name="rta freeze button: fill active" alias="alert:yellow"/>
<ColorAlias name="rubber band rect" alias="neutral:foreground2"/>
<ColorAlias name="rude audition: fill" alias="widget:bg"/>
<ColorAlias name="rude audition: fill active" alias="alert:ruddy"/>

View File

@@ -379,6 +379,8 @@
<ColorAlias name="route button: fill active" alias="theme:bg2"/>
<ColorAlias name="route button: led active" alias="alert:green"/>
<ColorAlias name="route rec button: led active" alias="alert:red"/>
<ColorAlias name="rta freeze button: fill" alias="widget:bg"/>
<ColorAlias name="rta freeze button: fill active" alias="alert:yellow"/>
<ColorAlias name="rubber band rect" alias="neutral:foreground2"/>
<ColorAlias name="rude audition: fill" alias="widget:bg"/>
<ColorAlias name="rude audition: fill active" alias="alert:ruddy"/>

View File

@@ -385,6 +385,8 @@
<ColorAlias name="route button: fill active" alias="theme:bg2"/>
<ColorAlias name="route button: led active" alias="alert:green"/>
<ColorAlias name="route rec button: led active" alias="alert:red"/>
<ColorAlias name="rta freeze button: fill" alias="widget:bg"/>
<ColorAlias name="rta freeze button: fill active" alias="alert:yellow"/>
<ColorAlias name="rubber band rect" alias="neutral:foreground2"/>
<ColorAlias name="rude audition: fill" alias="widget:bg"/>
<ColorAlias name="rude audition: fill active" alias="alert:ruddy"/>

View File

@@ -381,6 +381,8 @@
<ColorAlias name="route button: fill active" alias="theme:bg2"/>
<ColorAlias name="route button: led active" alias="alert:green"/>
<ColorAlias name="route rec button: led active" alias="alert:red"/>
<ColorAlias name="rta freeze button: fill" alias="widget:bg"/>
<ColorAlias name="rta freeze button: fill active" alias="alert:yellow"/>
<ColorAlias name="rubber band rect" alias="neutral:foreground2"/>
<ColorAlias name="rude audition: fill" alias="widget:bg"/>
<ColorAlias name="rude audition: fill active" alias="alert:ruddy"/>

View File

@@ -380,6 +380,8 @@
<ColorAlias name="route button: fill active" alias="theme:bg2"/>
<ColorAlias name="route button: led active" alias="alert:green"/>
<ColorAlias name="route rec button: led active" alias="alert:red"/>
<ColorAlias name="rta freeze button: fill" alias="widget:bg"/>
<ColorAlias name="rta freeze button: fill active" alias="alert:yellow"/>
<ColorAlias name="rubber band rect" alias="neutral:foreground2"/>
<ColorAlias name="rude audition: fill" alias="widget:bg"/>
<ColorAlias name="rude audition: fill active" alias="alert:ruddy"/>

View File

@@ -378,6 +378,8 @@
<ColorAlias name="route button: fill active" alias="theme:bg2"/>
<ColorAlias name="route button: led active" alias="alert:blue"/>
<ColorAlias name="route rec button: led active" alias="alert:red"/>
<ColorAlias name="rta freeze button: fill" alias="widget:bg"/>
<ColorAlias name="rta freeze button: fill active" alias="alert:orange"/>
<ColorAlias name="rubber band rect" alias="neutral:foreground2"/>
<ColorAlias name="rude audition: fill" alias="widget:bg"/>
<ColorAlias name="rude audition: fill active" alias="alert:ruddy"/>

View File

@@ -379,6 +379,8 @@
<ColorAlias name="route button: fill active" alias="theme:bg2"/>
<ColorAlias name="route button: led active" alias="alert:green"/>
<ColorAlias name="route rec button: led active" alias="alert:red"/>
<ColorAlias name="rta freeze button: fill" alias="widget:bg"/>
<ColorAlias name="rta freeze button: fill active" alias="alert:yellow"/>
<ColorAlias name="rubber band rect" alias="neutral:foreground2"/>
<ColorAlias name="rude audition: fill" alias="widget:bg"/>
<ColorAlias name="rude audition: fill active" alias="alert:ruddy"/>