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

355 Commits

Author SHA1 Message Date
Paul Licameli
33c6a77f8c SelectHandle gets snap information in hit test 2017-07-13 12:11:13 -04:00
Paul Licameli
49b04208b3 ChooseBoundary takes separate x and y arguments 2017-07-13 12:11:13 -04:00
Paul Licameli
7903e20143 Rewrite SelectHandle snapping; selection really matches snapped start 2017-07-13 12:11:13 -04:00
Paul Licameli
67282cbb61 SnapManager::Snap returns its results in a struct 2017-07-13 12:11:13 -04:00
Paul Licameli
f24a704a5b Fix TAB key cycle with cutline in Select tool 2017-07-13 10:52:37 -04:00
Paul Licameli
14d0d8a051 fix build 2017-07-12 14:21:07 -04:00
Paul Licameli
050824f467 Remove some unnecessary #includes 2017-07-12 14:15:16 -04:00
Paul Licameli
d7738c403f Handles mark need for highlight in new Enter() method not ctor...
... So this can be called more than once in its lifetime, in response to
TAB key rotation.
2017-07-12 13:03:14 -04:00
Paul Licameli
308d89b0e6 Reuse SelectHandle object during movement, as with other handle types 2017-07-12 13:03:09 -04:00
Paul Licameli
d148c39c2d More use of override 2017-07-12 11:38:44 -04:00
Paul Licameli
fa010f643b Fix #include paths, and unnecessary redrawing 2017-07-11 14:17:06 -04:00
Paul Licameli
b11c3c8ccf Highlighting of Wave and Note track vertical rulers 2017-07-11 13:57:59 -04:00
Paul Licameli
ed4057ae1b Highlighting of cutlines and clip boundaries 2017-07-11 13:57:58 -04:00
Paul Licameli
a4d53b43da Highlighting of label text boxes 2017-07-11 13:57:58 -04:00
Paul Licameli
ecebf7656e Highlighting of samples 2017-07-11 13:57:50 -04:00
Paul Licameli
2d65cdc46a Highlighting of time-shift grips 2017-07-11 13:57:43 -04:00
Paul Licameli
7fb107e143 Highlighting of envelopes 2017-07-11 13:56:41 -04:00
Paul Licameli
f8d9c4217c Fix click without drag and double-click on Pan, Gain, Velocity sliders 2017-07-11 12:41:48 -04:00
Paul Licameli
4dcd10584f Fix crashes mousing over TCP 2017-07-10 23:18:33 -04:00
Paul Licameli
0fa0d480e4 build fix 2017-07-09 13:37:20 -04:00
Paul Licameli
1c281faf52 build fixes 2017-07-09 13:27:03 -04:00
Paul Licameli
65c098f85e Revert "More fixes for Windows build"
This reverts commit ef9745b93e.
2017-07-09 13:11:26 -04:00
Paul Licameli
ef9745b93e More fixes for Windows build 2017-07-09 13:06:11 -04:00
Paul Licameli
51e25cdfa0 Highlighting of Track Control Panel sliders 2017-07-09 12:34:46 -04:00
Paul Licameli
44d6d5f427 Highlight MIDI channel buttons 2017-07-09 12:34:46 -04:00
Paul Licameli
25641ae568 Highlight TCP buttons 2017-07-09 12:34:46 -04:00
Paul Licameli
f09a7be3dc TCP draw use hit target for button, slider state; remove hacky global 2017-07-09 12:34:27 -04:00
Paul Licameli
dc864f3782 Fix windows build, and simplify a little 2017-07-09 12:31:19 -04:00
Paul Licameli
8e44827980 TrackPanelCell hit tests can return multiple results...
.. though only the first is used yet
2017-07-09 08:17:40 -04:00
Paul Licameli
b3d62e2ab6 Simplify by removing class HitTestResult...
... Because all hit tests returned all fields blank, or else, returned a
UIHandle object whose Preview method gives the rest of the information; so
the other fields were redundant.
2017-07-09 07:57:34 -04:00
Paul Licameli
c079544667 Defaulting TrackPanel cursor, status message; simplifies other code 2017-07-09 07:57:33 -04:00
Paul Licameli
f5b0afc2fc Rename TrackPanel::HandleCursor as HandleMotion...
Call HitTest in just one place

Can now preserve repeatedly hit UIHandle objects during pre-click motion

Fields of HitTestResult besides the handle pointer are now unused

The need to repaint a track during mouse movement can be indicated when
constructing a UIHandle or when updating it for move; HitPreview no longer
does this

And the last allows simplifications of LabelTrack glyph highlighting

Also move the temporary state for label glyph dragging out of LabelTrack
2017-07-09 07:56:47 -04:00
Paul Licameli
2c1a16f593 Changed lifetime management of UIHandle objects, no singletons...
... Rather, construct them during hit tests (also capturing more state sooner
rather than at Click time, and adding some accessors for later use)

This also fixes bug 1677 by other means and avoids similar problems.

A cell may be implemented to re-use a previously hit handle object, not yet
clicked, in a later hit test, by remembering a weak pointer, but TrackPanel
holds the strong pointers that determine when the object is destroyed.

And the objects will surely be destroyed after drag-release, or ESC key.

For now they are also destroyed whenever not dragging, and hit-testing is
re-invoked; that will be changed later, so that the re-use mentioned above
becomes effective, but still they will be destroyed when the pointer moves
from one cell to another.
2017-07-09 07:23:28 -04:00
Paul Licameli
d2fbca83b2 All UIHandle::Preview() return same cursors, messages as HitTest...
... except TrackSelectHandle.  Cursor changes to a hand only after button-down.

HitTests give a UIHandle, whenever they also give any cursor or status, even
when it's unsafe to click and drag; Click override is reponsible for cancelling.

SelectHandle::Preview introduces much duplication, but the original in the hit
test will later be deleted.
2017-07-09 06:38:56 -04:00
Paul Licameli
3a8280c562 Distinguish TrackPanelMouseState from TrackPanelMouseEvent...
... Let cell hit tests, and handle preview, know states only, not transitions.

Cell hit tests are passed a mouse state that does not always match the current,
but anticipates the button click to come; usually left, but if the Control
[sic] key on Mac is down, then right.

Thus, pressing and releasing Mac Control in multi-tool switches in and out of
the magnifier cursor.
2017-07-09 06:38:55 -04:00
Paul Licameli
c1f667f170 Move some handle and cell classes into their own files 2017-07-09 06:38:54 -04:00
James Crook
d903845a6b Bug 1677 - Residual. Handle ESC during track rearrangement. 2017-07-04 21:21:24 +01:00
James Crook
9ab40113b7 Bug 1677 - Swap two tracks leads to crash on exit. 2017-07-04 11:56:06 +01:00
Pokechu22
b46abbec62 Keep the current note centered when holding control to zoom 2017-07-04 06:45:21 -04:00
Pokechu22
e7065d9e86 Fix note track status message
'verticaly' isn't a word; it's better to just completely reuse the wave track message.
2017-07-03 18:26:25 -04:00
Pokechu22
b7d6077af5 Implement Shift+Right-click for full extent on the note track VRuler 2017-07-03 18:25:13 -04:00
Pokechu22
0e21143cee Implement scrolling for the note track vertical ruler
Command zooms in/out, and shift moves up and down.
2017-07-03 14:23:13 -04:00
James Crook
aa8be0c413 Make it easier to start a new selection at a split line.
If you hover exactly above the split line, you now get a pointing hand icon and status message, allowing you to start a selection at the split line more easily.
2017-06-30 13:17:21 +01:00
Paul Licameli
8f50940b91 Restore turning-off highlighting label glyph when mouse leaves it...
But inelegantly!

It was broken at commit 828d9c3ccd

Nicer solutions in progres...
2017-06-30 00:14:41 -04:00
James Crook
dc1193a0af Split lines now only show over middle third of track height.
This allows selection and clicking on split lines to merge clips to act independently.  It also means we don't need a portmanteau explanation in the status line, and the action to select up to a split line is simpler and easier to explain.
2017-06-29 17:04:59 +01:00
Paul Licameli
f3e31eca8b Simplify SelectHandle ctor; make frequency snapping functions static 2017-06-28 21:44:19 -04:00
Gale Andrews
138c188fb4 Message now says merge to match with Undo History 2017-06-29 01:31:29 +01:00
James Crook
2f3530e1f8 Fix verbosity in status message. 2017-06-29 00:00:50 +01:00
Gale Andrews
17b705f2d8 Status bar help for selecting from a split line
Any ideas for shortening the new message welcome. Sometime, status bar messages want transforming to sentence case as intended.
2017-06-28 17:50:20 +01:00
David Bailes
d8930f00b5 Fix Windows build - simple fix 2017-06-28 09:57:00 +01:00