Pick freq/drag in waterfall, show demod bandwidth

This commit is contained in:
Charles J. Cliffe
2014-11-25 22:51:14 -05:00
parent f6966b1824
commit f441546023
11 changed files with 230 additions and 63 deletions
+54 -9
View File
@@ -1,14 +1,20 @@
#include "MouseTracker.h"
#include <iostream>
void MouseTracker::OnMouseMoved(wxMouseEvent& event) {
if (target == NULL) {
return;
}
const wxSize ClientSize = target->GetClientSize();
mouseX = (float) event.m_x / (float) ClientSize.x;
mouseY = (float) event.m_y / (float) ClientSize.y;
deltaMouseX = mouseX - lastMouseX;
deltaMouseY = mouseY - lastMouseY;
if (isMouseDown) {
const wxSize ClientSize = target->GetClientSize();
float mouseX = (float) event.m_x / (float) ClientSize.x;
float mouseY = (float) event.m_y / (float) ClientSize.y;
deltaMouseX = mouseX - lastMouseX;
deltaMouseY = mouseY - lastMouseY;
lastMouseX = mouseX;
if (vertDragLock && mouseY != lastMouseY) {
@@ -16,14 +22,24 @@ void MouseTracker::OnMouseMoved(wxMouseEvent& event) {
} else {
lastMouseY = mouseY;
}
} else {
lastMouseY = mouseY;
lastMouseX = mouseX;
}
}
void MouseTracker::OnMouseDown(wxMouseEvent& event) {
if (target == NULL) {
return;
}
const wxSize ClientSize = target->GetClientSize();
lastMouseX = (float) event.m_x / (float) ClientSize.x;
lastMouseY = (float) event.m_y / (float) ClientSize.y;
mouseX = lastMouseX = (float) event.m_x / (float) ClientSize.x;
mouseY = lastMouseY = (float) event.m_y / (float) ClientSize.y;
originMouseX = mouseX;
originMouseY = mouseY;
isMouseDown = true;
}
@@ -36,8 +52,29 @@ void MouseTracker::OnMouseReleased(wxMouseEvent& event) {
isMouseDown = false;
}
void MouseTracker::OnMouseEnterWindow(wxMouseEvent& event) {
isMouseInView = true;
}
void MouseTracker::OnMouseLeftWindow(wxMouseEvent& event) {
isMouseDown = false;
isMouseInView = false;
}
float MouseTracker::getOriginMouseX() {
return originMouseX;
}
float MouseTracker::getOriginMouseY() {
return originMouseY;
}
float MouseTracker::getOriginDeltaMouseX() {
return mouseX - originMouseX;
}
float MouseTracker::getOriginDeltaMouseY() {
return mouseY - originMouseY;
}
float MouseTracker::getDeltaMouseX() {
@@ -71,3 +108,11 @@ void MouseTracker::setVertDragLock(bool dragLock) {
bool MouseTracker::mouseDown() {
return isMouseDown;
}
bool MouseTracker::mouseInView() {
return isMouseInView;
}
void MouseTracker::setTarget(wxWindow *target_in) {
target = target_in;
}
+18 -2
View File
@@ -5,7 +5,14 @@
class MouseTracker {
public:
MouseTracker(wxWindow *target) :
target(target), mouseX(0), mouseY(0), lastMouseX(0), lastMouseY(0), deltaMouseX(0), deltaMouseY(0), isMouseDown(false), vertDragLock(false) {
target(target), mouseX(0), mouseY(0), lastMouseX(0), lastMouseY(0), originMouseX(0), originMouseY(0), deltaMouseX(0), deltaMouseY(0), isMouseDown(
false), vertDragLock(false), isMouseInView(false) {
}
MouseTracker() :
target(NULL), mouseX(0), mouseY(0), lastMouseX(0), lastMouseY(0), originMouseX(0), originMouseY(0), deltaMouseX(0), deltaMouseY(0), isMouseDown(
false), vertDragLock(false), isMouseInView(false) {
}
@@ -13,8 +20,13 @@ public:
void OnMouseDown(wxMouseEvent& event);
void OnMouseWheelMoved(wxMouseEvent& event);
void OnMouseReleased(wxMouseEvent& event);
void OnMouseEnterWindow(wxMouseEvent& event);
void OnMouseLeftWindow(wxMouseEvent& event);
float getOriginMouseX();
float getOriginMouseY();
float getOriginDeltaMouseX();
float getOriginDeltaMouseY();
float getDeltaMouseX();
float getDeltaMouseY();
float getLastMouseX();
@@ -24,12 +36,16 @@ public:
void setVertDragLock(bool dragLock);
bool mouseDown();
bool mouseInView();
void setTarget(wxWindow *target_in);
private:
float mouseX, mouseY;
float lastMouseX, lastMouseY;
float deltaMouseX, deltaMouseY;
bool isMouseDown;
float originMouseX, originMouseY;
bool isMouseDown, isMouseInView;
bool vertDragLock;
wxWindow *target;
};