Update of /cvsroot/audacity/audacity-src/src
In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv14002
Modified Files:
TrackPanel.cpp TrackPanel.h
Log Message:
Prevent zooming if track display is set to Pitch and vertical ruler is clicked.
Restrict vertical zoom lines to visible track display.
Index: TrackPanel.cpp
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/TrackPanel.cpp,v
retrieving revision 1.352
retrieving revision 1.353
diff -u -d -r1.352 -r1.353
--- TrackPanel.cpp 19 May 2007 18:56:43 -0000 1.352
+++ TrackPanel.cpp 19 May 2007 23:11:58 -0000 1.353
@@ -2383,24 +2383,28 @@
if (event.ButtonDown() || event.ButtonDClick(1)) {
HandleZoomClick(event);
}
- else if (event.Dragging()) {
- HandleZoomDrag(event);
- }
- else if (event.ButtonUp()) {
- HandleZoomButtonUp(event);
+ else if (mMouseCapture == IsZooming) {
+ if (event.Dragging()) {
+ HandleZoomDrag(event);
+ }
+ else if (event.ButtonUp()) {
+ HandleZoomButtonUp(event);
+ }
}
}
/// Zoom button down, record the position.
void TrackPanel::HandleZoomClick(wxMouseEvent & event)
{
- Track *t;
- wxRect r;
- int num;
+ if (mCapturedTrack)
+ return;
- t = FindTrack(event.m_x, event.m_y, false, false, &r, &num);
+ mCapturedTrack = FindTrack(event.m_x, event.m_y, false, false,
+ &mCapturedRect, &mCapturedNum);
+ if (!mCapturedTrack)
+ return;
- SetCapturedTrack(t, IsZooming);
+ SetCapturedTrack(mCapturedTrack, IsZooming);
mZoomStart = event.m_x;
mZoomEnd = event.m_x;
@@ -2450,6 +2454,12 @@
Refresh(false);
}
+/// Determines if drag zooming is active
+bool TrackPanel::IsDragZooming()
+{
+ return (abs(mZoomEnd - mZoomStart) > DragThreshold);
+}
+
/// This actually sets the Zoom value when you're done doing
/// a drag zoom.
void TrackPanel::DragZoom(wxMouseEvent & event, int trackLeftEdge)
@@ -4523,8 +4533,10 @@
i++;
}
- if (IsDragZooming() && (mMouseCapture != IsAdjustingLabel))
+ if ((mMouseCapture == IsZooming || mMouseCapture == IsVZooming) &&
+ IsDragZooming()) {
DrawZooming(dc, clip);
+ }
// Paint over the part below the tracks
GetSize(&trackRect.width, &trackRect.height);
@@ -4618,16 +4630,18 @@
/// zooming.
void TrackPanel::DrawZooming(wxDC * dc, const wxRect clip)
{
-
wxRect r;
dc->SetBrush(*wxTRANSPARENT_BRUSH);
dc->SetPen(*wxBLACK_DASHED_PEN);
if (mMouseCapture==IsVZooming) {
+ int width, height;
+ GetTracksUsableArea(&width, &height);
+
r.y = mZoomStart;
r.x = GetVRulerOffset();
- r.width = 10000;
+ r.width = width + GetVRulerWidth() + 1; //+1 extends into border rect
r.height = mZoomEnd - mZoomStart;
}
else {
Index: TrackPanel.h
===================================================================
RCS file: /cvsroot/audacity/audacity-src/src/TrackPanel.h,v
retrieving revision 1.116
retrieving revision 1.117
diff -u -d -r1.116 -r1.117
--- TrackPanel.h 19 May 2007 18:56:43 -0000 1.116
+++ TrackPanel.h 19 May 2007 23:11:58 -0000 1.117
@@ -271,6 +271,7 @@
void HandleZoomDrag(wxMouseEvent & event);
void HandleZoomButtonUp(wxMouseEvent & event);
+ bool IsDragZooming();
void DragZoom(wxMouseEvent &event, int x);
void DoZoomInOut(wxMouseEvent &event, int x);
@@ -531,8 +532,6 @@
// coordinate should the dragging track move up or down?
int mMoveUpThreshold;
int mMoveDownThreshold;
-
- bool IsDragZooming() const { return abs(mZoomEnd - mZoomStart) >
DragThreshold;}
wxCursor *mArrowCursor;
wxCursor *mPencilCursor;
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Audacity-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/audacity-cvs