diff --git a/src/AppFrame.cpp b/src/AppFrame.cpp index a1c893c..d014144 100644 --- a/src/AppFrame.cpp +++ b/src/AppFrame.cpp @@ -141,7 +141,7 @@ AppFrame::AppFrame() : demodSignalMeter->setMin(DEMOD_SIGNAL_MIN); demodSignalMeter->setLevel(DEMOD_SIGNAL_MIN); demodSignalMeter->setInputValue(DEMOD_SIGNAL_MIN); - demodSignalMeter->setHelpTip("Current Signal Level. Click / Drag to set Squelch level."); + demodSignalMeter->setHelpTip("Current Signal Level. Click / Drag to set Squelch level. Right-Click to Auto-Zero Squelch"); demodSignalMeter->SetMinSize(wxSize(12,24)); demodTray->Add(demodSignalMeter, 1, wxEXPAND | wxALL, 0); diff --git a/src/visual/MeterCanvas.cpp b/src/visual/MeterCanvas.cpp index d5b6037..d0a8b4d 100644 --- a/src/visual/MeterCanvas.cpp +++ b/src/visual/MeterCanvas.cpp @@ -20,6 +20,8 @@ EVT_IDLE(MeterCanvas::OnIdle) EVT_MOTION(MeterCanvas::OnMouseMoved) EVT_LEFT_DOWN(MeterCanvas::OnMouseDown) EVT_LEFT_UP(MeterCanvas::OnMouseReleased) +EVT_RIGHT_DOWN(MeterCanvas::OnMouseRightDown) +EVT_RIGHT_UP(MeterCanvas::OnMouseRightReleased) EVT_LEAVE_WINDOW(MeterCanvas::OnMouseLeftWindow) EVT_ENTER_WINDOW(MeterCanvas::OnMouseEnterWindow) wxEND_EVENT_TABLE() @@ -126,17 +128,28 @@ void MeterCanvas::OnMouseDown(wxMouseEvent& event) { Refresh(); } -void MeterCanvas::OnMouseWheelMoved(wxMouseEvent& event) { - InteractiveCanvas::OnMouseWheelMoved(event); - Refresh(); -} - void MeterCanvas::OnMouseReleased(wxMouseEvent& event) { InteractiveCanvas::OnMouseReleased(event); userInputValue = mouseTracker.getMouseY() * (level_max-level_min) + level_min; Refresh(); } +void MeterCanvas::OnMouseRightDown(wxMouseEvent& event) { + InteractiveCanvas::OnMouseRightDown(event); + Refresh(); +} + +void MeterCanvas::OnMouseRightReleased(wxMouseEvent& event) { + InteractiveCanvas::OnMouseRightReleased(event); + userInputValue = level - level * 0.02; + Refresh(); +} + +void MeterCanvas::OnMouseWheelMoved(wxMouseEvent& event) { + InteractiveCanvas::OnMouseWheelMoved(event); + Refresh(); +} + void MeterCanvas::OnMouseLeftWindow(wxMouseEvent& event) { InteractiveCanvas::OnMouseLeftWindow(event); SetCursor(wxCURSOR_CROSS); diff --git a/src/visual/MeterCanvas.h b/src/visual/MeterCanvas.h index 7da390e..95a7b42 100644 --- a/src/visual/MeterCanvas.h +++ b/src/visual/MeterCanvas.h @@ -38,8 +38,10 @@ private: void OnMouseMoved(wxMouseEvent& event); void OnMouseDown(wxMouseEvent& event); - void OnMouseWheelMoved(wxMouseEvent& event); void OnMouseReleased(wxMouseEvent& event); + void OnMouseWheelMoved(wxMouseEvent& event); + void OnMouseRightDown(wxMouseEvent& event); + void OnMouseRightReleased(wxMouseEvent& event); void OnMouseEnterWindow(wxMouseEvent& event); void OnMouseLeftWindow(wxMouseEvent& event);