mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2026-08-26 13:45:33 -04:00
Pick freq/drag in waterfall, show demod bandwidth
This commit is contained in:
@@ -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
@@ -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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user