1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-12-15 17:11:20 +01:00
Commit Graph

294 Commits

Author SHA1 Message Date
Paul Licameli
a84391b4a2 Eliminate some members from Ruler...
... Move some fields used only during formatting into a temporary structure.

(And fixing a minor problem with uninitialized variables in case of logarithmic
scale, which made it unpredictable how Plot Spectrum with logarithmic
frequencely axis formatted numbers.)
2020-01-21 12:53:33 -05:00
Paul Licameli
9cd7a5eaf3 Bug2277 partial: in dB ruler, always draw midline value if in range...
... and also draw the zeroes if in range, taking precedence over the extreme
values (which might be positive dB values when zoomed out or scrolled).

See comments 10 and 11 in the bug report.
2020-01-20 12:29:28 -05:00
Paul Licameli
6e14d2e56c RulerPanel uses TranslatableString for units string...
... also fixing missed translation of "k" in spectrum vertical ruler
2019-12-28 23:49:18 -05:00
James Crook
5a3e9cd063 Fix dialog naming
For nicer Doxygen results, we need consistency in naming of classes.
Dialag classes are now called SomethingDialog.
2019-12-06 10:39:07 +00:00
Paul Licameli
46bf5a82fc Don't pass whole TimeTrack to Ruler or Mixer...
... they need only the information in a (Bounded)Envelope.
2019-06-10 20:48:38 -04:00
Paul Licameli
ac04a34d42 Move #include of Experimental.h upward in two files 2019-06-02 14:03:32 -04:00
Paul Licameli
6c57948d8f Remove unnecessary #include-s from .cpp files...
... Unnecessary because transitively included.

But each .cpp file still includes its own .h file near the top to ensure
that it compiles indenendently, even if it is reincluded transitively later.
2019-05-16 17:21:00 -04:00
Paul Licameli
51f0362e9f Remove wx/wx.h from headers 2019-03-26 11:17:41 -04:00
Paul Licameli
906e55f047 Experimental.h in all .h or .cpp files that directly use EXPERIMENTALs...
... except Audacity.h; and in no others.

Do so even if Experimental.h gets multiply included, as in both the .h and
.cpp files.

This makes it easier to do a text scan to be sure there are no unintended quiet
changes of meaning because of omission of Experimental.h when the flag is
an enabled one.

Also move inclusions of Experimental.h earlier.

Also don't require Experimental.h to be preceded by Audacity.h to define
EXPERIMENTAL_MIDI_OUT correctly.
2019-03-17 22:54:00 -04:00
Paul Licameli
e6324e86ac Fix cross-platform one-pixel differences in line drawing...
... Make all line drawing go through our AColor which wraps the wxDC
line-drawing functions.

Despite what wxWidgets documentation says, the functions still don't
consistently include the first point and omit the last point of a line.  I
observed inclusion of both on Mac, while on Windows, omission sometimes of the
first point instead of the last.

Discrepancies could be observed in 2.3.0 between Windows and Mac, using the
Window magnifier or command+alt+ +, zooming in closely on the ends of the
shadow lines below and right of tracks, or at the bottom-right corners of the
bevels drawn around vertical rulers.

So where there is an observable one-pixel difference of drawing between
platforms, there is the question, which was the intent when the drawing code
was written?  Should the coordinates be corrected by one or not?

I reviewed each case and used my judgment.

Most of the calls are in drawing rulers.  Major tick lines were drawn five
pixels long, and minor, three, on Mac.  I keep this behavior, but you might
argue for making them four and two.

On the other hand the drawing of ruler grid lines, which you can see in
the equalization and frequency analysis windows, did need a one-pixel correction
to avoid straying out of bounds.
2019-03-16 07:51:28 -04:00
Paul Licameli
06b3b42794 Remove unnecessary initializers for empty wxString 2019-03-15 15:18:11 -04:00
Paul Licameli
50074f2cfe Replace comparisons against "" with empty() 2019-03-14 13:23:41 -04:00
Paul Licameli
2db49dc1f0 Use standard library style members of wxArrayString (and wxString) ...
... which will make it easier to change the types of those containers to
std::vectors of other string-like classes

for wxString,

IsEmpty => empty
Clear => clear
Alloc => reserve

for wxArrayString,

Count => size
GetCount => size
IsEmpty => empty
Add => push_back
Clear => clear
Empty => clear
Sort => std::sort (only with default comparator)
SetCount => resize
Last => back
Item => operator []
Alloc => reserve
2019-03-10 14:43:57 -04:00
Paul Licameli
303553ae4e Take class AdornedRulerPanel out of src/widgets...
... It's not a utility widget like RulerPanel.  It has a lot of application
specific logic in it.
2018-10-24 15:04:41 -04:00
Paul Licameli
903b42f84a Transport Menus 2018-10-24 12:16:35 -04:00
Paul Licameli
ce9f2e2538 Include Menus.h directly, only where needed, not via Project.h 2018-10-16 16:45:26 -04:00
scootergrisen
b4f7946e9b Remove some double space 2018-10-14 10:42:01 +01:00
James Crook
657159d542 Fix C4189 and C4100 Warnings
C4189 is 'Local variable initialised but not used'
C4100 is 'Unreferenced parameter'

Fixed some other warnings, e.g. about empty if, too.
2018-10-10 19:46:24 +01:00
Paul Licameli
9481587fa8 Move menu handling functions out of class AudacityProject 2018-09-29 12:10:27 -04:00
James Crook
e724ef0793 Bug 1970 - Missing tick marks in Timeline 2018-09-09 12:33:10 +01:00
Paul Licameli
af276ac4f9 Now implement scrubbing default to unpinned, see commit ac1017e...
... This was motivated by punch and roll recording:  it appears most convenient
to pin the head for recording purposes, and drag it near the right, but when
stopping and finding the splice point for the correction, it is better to
scrub unpinned.
2018-08-31 10:46:08 -04:00
Paul-Licameli
932734c89a Windows: don't crash if double-clicking on ruler during playback 2018-08-12 14:43:45 -04:00
Paul Licameli
04a69f0a4c Bug1931 -- Dbl-click ruler in Windows shouldn't violate assertion...
... This change isn't needed for Mac, but is harmless there.
2018-08-12 14:16:16 -04:00
Paul Licameli
3f1d9ab8c1 P & R recording: change color of pin button, as for play indicator 2018-08-11 00:26:34 -04:00
Paul Licameli
c95532012a Correctly update hot zones for quick-play cursor at button up 2018-08-10 12:05:25 -04:00
James Crook
0fe2659a7b Bug 1916 - Play at Speed - scrub widget appears unnecessarily 2018-08-08 17:59:18 +01:00
Paul Licameli
22f85f244b Bug1917: TrackPanel should keep focus after click or drag...
... though ruler won't, and if you start to drag in TrackPanel but abort it
with the ESC key, that too returns focus
2018-08-07 10:42:38 -04:00
Paul Licameli
27dc8ffead Draggable pinned play head, double click to re-center 2018-08-06 21:58:42 -04:00
Paul Licameli
2c28af05e8 Don't hit any TrackPanel or Ruler cells when mouse is out of window 2018-08-06 21:52:46 -04:00
Paul Licameli
7cfda551dd Move scrub click handling into a UIHandle, eliminate OnMouseEvents...
... And the one-shot hack can be simplified away.
2018-08-05 17:18:25 -04:00
Paul Licameli
153eb63b3e Rest of quick play mouse handling is invoked from UIHandle...
... and ESC key aborts the drag of play region
2018-08-05 17:18:25 -04:00
Paul Licameli
9491605cfc CellularPanel handles save/restore of focus for clicks in ruler...
... This lets the ESC key really work to abort drags
2018-08-05 17:18:25 -04:00
Paul Licameli
c85d2cdfa0 UIHandle objects now implement the context menus for the Ruler 2018-08-05 17:18:25 -04:00
Paul Licameli
0ae7f55fea Manage showing and hiding of quick play guide in CellularPanel base 2018-08-05 17:18:25 -04:00
Paul Licameli
af17e1ff95 Quick-play handle object manages lifetime of SnapManager 2018-08-05 17:18:24 -04:00
Paul Licameli
a70e2284b0 Manage ruler status messages and tooltips in CellularPanel base class 2018-08-05 17:18:24 -04:00
Paul Licameli
ba4ae4f7bd Manage ruler cursor changes in CellularPanel base class 2018-08-05 17:18:24 -04:00
Paul Licameli
ce48ac6307 Enable hit tests; let base class manage capture & release of mouse...
... also make popup menus at right up, not down, for consistency with other
popup menus in TrackPanel

Base class also does the event propagation "hack" for ScrubPoller
2018-08-05 17:18:24 -04:00
Paul Licameli
a853b7a3b4 Skeletal hit test and handle objects for quick play and scrubbing 2018-08-05 17:18:23 -04:00
Paul Licameli
bccb135e30 AdornedRulerPanel inherits from CellularPanel -- hit testing, still to do 2018-08-05 17:18:23 -04:00
Paul Licameli
aeece118e8 Rewrite the handling of quick play indicators...
... All updates of position are done in DoGetRectangle().  Ruler need only
expose one function, DrawOverlays().

Don't redraw indicators twice when dragging (hiding and showing again), making
some flicker.  Just do one update.
2018-08-04 15:35:36 -04:00
Paul Licameli
5f27ae905c Changed misleading terminology in scrubber...
... It was confusing that HasStartedScrubbing() could be true
while also not IsScrubbing()
2018-07-29 14:20:11 -04:00
Paul Licameli
b33d3516f0 Rename a function in AdornedRulerPanel...
... Avoid confustion of "capture" meaning recording, with "capture" of the
mouse during drag
2018-07-29 14:18:08 -04:00
Paul Licameli
70f27d41d3 Rewrite AdornedRulerPanel with one less friend 2018-07-06 21:11:48 -04:00
James Crook
356fdeba40 Show Pin/Unpin button in red, if recording. 2018-06-29 17:00:25 +01:00
James Crook
35d24bbed5 Tweak spacing in vertical rulers.
This is most relevant in MixerBoard.
2018-04-15 11:48:51 +01:00
James Crook
5120a9dfc6 Fine tune spacing between minor ticks in rulers.
The main point of this is not to ask for overcrowded rulers.

We already handle overcrowded rulers well, by not showing the minor ticks.
This change means that we are more likely to ask for a spacing that works.
In turn that means that we are less likely to have anomalies where numbers disappear due to overcrowding and reappear again as you resize the ruler.
2018-04-14 15:44:56 +01:00
James Crook
8344a2bae9 Bug 1867 - Jumping numbers on meter resizing
They jumped because of overcrowding.  Now when overcrowded, don't show
any minor numbers.
2018-04-13 19:26:56 +01:00
James Crook
8ce8e7bcce Bug 521 - Lower half of Waveform (dB) vertical scale does not show dB level.
Added a DbMirrorValue for two sided dB scale on Waveform VRuler when in dB view mode.
2018-03-24 20:35:08 +00:00
James Crook
a47df37ea4 Bug 1533 - Selection in label track offset from selection in audio Track
The problem was actually more general, and involves misalignment between selections
in clips and selections in the background and in the ruler - so could be seen with just
audio tracks and no label tracks.
2018-03-17 19:17:53 +00:00