1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-04-30 23:59:41 +02:00

6964 Commits

Author SHA1 Message Date
Steve Daulton
333c0e3440 Fix for bug 1653 (Nyquist *Table* size limit)
as suggested by RBD in comment #1
2017-06-15 21:46:11 +01:00
Paul Licameli
1abd2b97df Fix WaveTrack menu (ID collision, item names, enabling) 2017-06-15 11:02:51 -04:00
Paul Licameli
c1612d6842 Fix WaveTrack menu (ID collision, item names, enabling) 2017-06-15 11:02:28 -04:00
Paul Licameli
6eac877de6 The great object-oriented rewrite of TrackPanel event handling! ...
... and some parts of drawing too (snap lines and zoom boxes)

Many new source files

No UI changes intended, except:

   small changes in drawing zoom boxes (hide narrow enough boxes)
   update display of selection as you drag the selected label (not just at
      mouse up)
   status bar preview messages for clicks on cutlines or clip boundaries
   ESC key is implemented for all drags -- including now those which would
      make new Undo items if they completed -- and in all cases, "should"
      restore the state of the project as it was at button-down, though some
      details are not yet right for restoring the set of selected tracks

A TrackPanelCell abstract class dispatches keystroke and mousewheel events;
subclasses for vertical rulers, track control panels, and tracks provide
overrides.

TrackPanelCell also has a hit test routine that returns a status message,
a preview cursor, and an object that inherits from abstract class UIHandle.

UIHandle in turn implements policies for click, drag, release, ESC key,
drawing of extra decorations during drag, and cursor and status message changes
during drag.

There are eighteen (immediate) subclasses of UIHandle, for:

   Note track channel buttons
   Other pushbuttons (close, menu, mute, solo, minimize)
   Sliders (pan, gain, velocity)
   Note track stretch
   Selections (new, extended with Shift, spectral)
   Envelope editing
   Sample editing
   Zoom tool
   Time shift
   Wave track vertical ruler clicks and drags
   Note track vertical ruler clicks and drags
   Clicking a cutline or clip boundary
   Dragging or stretching a label
   Clicking a label box and selecting text within it
   Other clicks on Label track
   Resizing a track or channels of a stereo track
   Clicking TCP to select and dragging to rearrange tracks
   Click on the empty area, to deselect all tracks

A few of these have effects at button-down; others not until button up, and
such have ESC key implemented.

Perhaps it would be better that all clicking actions are consistently delayed
until button up?
2017-06-15 08:55:00 -04:00
Paul Licameli
38854366a3 Update src/Makefile.in...
... just once for this branch.  Intermediate commits may not build on Linux
unless you regenerate src/Makefile.in for them.
2017-06-15 08:55:00 -04:00
Paul Licameli
770b3b52ef TrackPanel no longer implements the selection tool or MIDI stretch...
This one's big!

Also restores the effect of ctrl-click on label track.

Also adds ESC key handling for the Stretch.
2017-06-15 08:54:59 -04:00
Paul Licameli
efdb9889b1 TrackPanel no longer implements label keystrokes, drags, text selection...
... also implemented ESC key for those drags

... temporarily loses the special CTRL click handling
2017-06-15 08:54:58 -04:00
Paul Licameli
bbfa574790 Move track resizing code out of TrackPanel.cpp, though it still...
... cooperates more closely with TrackPanel than the other UIHandle subclasses
do.
2017-06-15 08:54:58 -04:00
Paul Licameli
703abe87bc TrackPanel no longer implements track selection click or rearrange drag...
... also implement ESC key for the drag
2017-06-15 08:54:57 -04:00
Paul Licameli
46b97084eb Move note track control panel click handling out of TrackPanel.cpp 2017-06-15 08:54:55 -04:00
Paul Licameli
e4627b1668 TrackPanel no longer implements other mouse wheel actions 2017-06-15 08:21:42 -04:00
Paul Licameli
8ef5f696d8 Define BackgoundCell, move some things into it 2017-06-15 08:21:41 -04:00
Paul Licameli
674ccc5e15 Clean up last bits of old popup menu code 2017-06-15 08:21:40 -04:00
Paul Licameli
91e6239eeb Move code for vertical ruler clicks, drags, popup menus, scroll wheel 2017-06-15 08:21:40 -04:00
Paul Licameli
a313bcdb11 Move code for Wave track menu items 2017-06-15 08:21:40 -04:00
Paul Licameli
ba5f6ce411 Move code for Note track menu items 2017-06-15 08:21:39 -04:00
Paul Licameli
01d5d30b7e Move code for Label track menu items 2017-06-15 08:21:38 -04:00
Paul Licameli
516d812f3a Move code for Time track menu items 2017-06-15 08:21:38 -04:00
Paul Licameli
0e5e7b1c05 Move code for common track menu items 2017-06-15 08:21:37 -04:00
Paul Licameli
bd0603b66a Remove the duplicate button-drawing functions that are now unused 2017-06-15 08:21:37 -04:00
Paul Licameli
1a317af2f5 Move code for handling the menu button out of TrackPanel, but...
... Still to do, move out the code for menu items.  They remain accessible
from Shift-M but not from the menu button.

And ESC key is now implemented.
2017-06-15 08:21:36 -04:00
Paul Licameli
c3f5fea5fc TrackPanel still draws Miminize and Close, but no longer handles...
clicks on them...

... also implemented ESC key for those drags
2017-06-15 08:21:36 -04:00
Paul Licameli
7cab380192 TrackPanel still draws Velocity, but no longer handles clicks on it...
... also implemented ESC key for that drag
2017-06-15 08:21:35 -04:00
Paul Licameli
a569476e79 TrackPanel still draws Gain and Pan, but no longer handles clicks on them...
... also implemented ESC key for those drags
2017-06-15 08:21:35 -04:00
Paul Licameli
5ee73f944d TrackPanel still draws Mute and Solo, but no longer handles clicks on them...
... also implemented ESC key for those drags
2017-06-15 08:21:34 -04:00
Paul Licameli
c6e7e5d99b Define a base class that will be useful for several track control sliders 2017-06-15 08:21:34 -04:00
Paul Licameli
d28b8f072b Define a base class that will be useful for several track control buttons 2017-06-15 08:21:33 -04:00
Paul Licameli
f89cbefc7b Temporary hack lets us defer encapsulation of track control panel drawing...
... while we can work on encapsulating the click-drag actions.
2017-06-15 08:21:33 -04:00
Paul Licameli
43968c4ac9 TrackPanel no longer implements clip joining or cutline expansion/deletion...
... also implement ESC key for these and added status bar message for
mouse-over
2017-06-15 08:21:30 -04:00
Paul Licameli
2496b0d7bc TrackPanel no longer implements the envelope tool...
... also implement ESC key for it
2017-06-15 08:21:02 -04:00
Paul Licameli
ef38af71dd Move more time-shifting functions out of TrackPanel.cpp 2017-06-15 08:21:01 -04:00
Paul Licameli
251976d93d TrackPanel no longer implements the time shift tool...
... also implement ESC key for it
2017-06-15 08:21:01 -04:00
Paul Licameli
f1f254f974 TrackPanel no longer implements the draw tool...
... also implement ESC key for it
2017-06-15 08:21:00 -04:00
Paul Licameli
85c03bb3b3 TrackPanel no longer implements the zoom tool...
... Also changed the behavior of drawing of dashed lines: make them
disappear when they approach close enough that right-up will zoom out,
not in.
2017-06-15 08:20:59 -04:00
Paul Licameli
cba51e1bf8 Define class PopupMenuTable to make it easy to attach and detach handlers...
... to the parent TrackPanel window
2017-06-15 08:20:59 -04:00
Paul Licameli
14d45eda33 Define and use the UIHandle and TrackPanelCell protocols, but...
...no actions reimplemented to them yet.

Later commits will move special cases one at a time from TrackPanel, preserving
all click and drag capabilities at each step.  With a few exceptions, but those
lost abilities are restored in yet later commits.  (Ctrl+Click on the Label
track being one.)
2017-06-15 08:20:56 -04:00
Paul Licameli
07b53b4e83 Bug1659: make selection change from pick on label box undo correctly 2017-06-15 08:08:41 -04:00
Paul Licameli
3e38f761f5 Adjust details of hit tests on tracks, labels, vrulers...
... ALWAYS exclude margins from the reported rectangles!  All three cases.

This fixes minor discrepancies between display and interaction in other hit
tests, such as for spectral selection, draw tool, and envelope.
2017-06-14 22:10:26 -04:00
Paul Licameli
fc2a371286 Compilable again without USE_MIDI 2017-06-14 21:16:27 -04:00
James Crook
7641d0886b Bigger + and - on zoom buttons in Hi-Contrast theme.
The magnifying glass got bigger too.
Also made the gray-goo stopwatch for sync-lock more distinct.
2017-06-14 17:30:06 +01:00
James Crook
3981a8c55c Banish gray goo from the TCP
The smudgy gray outline of a stop watch in the track control panel has now been replaced by a more distinct version, that has transparency and so the colour for the TCP shows through.
2017-06-14 17:28:37 +01:00
James Crook
f67cc7af25 Fix broken Windows build.
Was broken on MSVC 2013, due to a compiler bug.
2017-06-14 16:17:20 +01:00
Paul Licameli
55dc096896 Lowered check for scrubbing into GetMessageForTool...
... which is called only in one place
2017-06-14 09:22:37 -04:00
Paul Licameli
23e3aeba35 TCP layout tables include draw functions...
... There is some duplication with the older draw functions, but these are
soon to be removed.

The draw functions may even be called without a TrackPanel or Track object,
displaying default values.

This ability is not yet used.
2017-06-13 19:08:04 -04:00
Paul Licameli
5982dccd36 Redo layout tables as std::vector 2017-06-13 19:05:50 -04:00
Paul Licameli
063c6c236f Table includes draw functions for status items 2017-06-13 18:57:34 -04:00
Paul Licameli
ce77f176b5 Table includes draw functions for Mute and Solo 2017-06-13 18:53:26 -04:00
Paul Licameli
4df84f126e Table includes draw functions for sliders 2017-06-13 14:02:10 -04:00
Paul Licameli
329aa8393e Table includes draw function for Midi controls 2017-06-13 14:02:10 -04:00
Paul Licameli
86763341af Table includes draw function for Minimize and Sync-lock icon 2017-06-13 14:02:10 -04:00