Paul Licameli
03e67b9bcd
Bug2026: drawing channel separator on Windows...
...
... This shouldn't make a difference, but it does. I suspect MSVC 2017
compiler bugs still remain in implementing braced initialization.
2018-11-06 20:17:14 -05:00
Paul Licameli
50cf2e9a1f
Give TrackArtist a back-pointer to TrackPanel
2018-11-05 10:54:58 -05:00
Paul Licameli
4ebfbd9c50
Split class TrackArtist from namespace TrackArt...
...
... The first is just extended drawing context info, and the second has
functions that retrieve TrackArtist from TrackPanelDrawingContext as needed.
2018-11-05 09:16:50 -05:00
Paul Licameli
99106e3ed3
Carry more information in TrackPanelDrawingContext; fewer arguments
2018-11-05 09:12:45 -05:00
Paul Licameli
c4994ae9c2
kTrackInfoWidth was misleadingly named...
...
... keep the name, but change the value to be what it really says:
the proper width of the track control panel, agreeing with the hit-test
area, NOT including the left margin
And change places where the constant was used, adding the margin back again.
2018-11-04 18:23:29 -05:00
Paul Licameli
38005054f4
Make TrackInfo a namespace, not a class...
...
... Its functions take a pointer to TrackPanel when necessary, just to do the
reparenting of the global slider instances
2018-11-04 10:51:00 -05:00
James Crook
b5d4a828d1
More doxygen
2018-11-04 14:21:00 +00:00
Paul Licameli
55774fbb29
When drawing, treat track plus separator BELOW as the natural grouping...
...
... and treat the top margin of the first track specially.
2018-11-02 23:16:05 -04:00
Paul Licameli
3589aacd7c
Rewrite iteration over tracks in DrawEverythingElse
2018-11-02 23:00:28 -04:00
Paul Licameli
10bc061b00
Pass rectangles to drawing routines excluding left & right margins...
...
... not insets.
This makes them agree with the horizontal extents of the hit-test areas of
event handling code.
Some routines may draw outside of the box passed in to them, as when drawing
the border around a track.
In some of the routines, fewer pixels are painted than before, but these are
always either cleared already when painting left and right margins, or are
overpainted later, as with the right endpoints of sash borders overpainted by
the border around the track.
2018-11-02 22:45:22 -04:00
Paul Licameli
a2e392433a
Paint left and right margins of the whole TrackPanel first
2018-11-02 22:38:11 -04:00
Paul Licameli
d0d88118cc
Rectangle passed VRuler draw function agrees with hit test rectangle...
...
... that is, it is one wider than before. But the drawing routine compensates
to make the picture no different.
2018-11-02 22:36:47 -04:00
Paul Licameli
e70b240338
The ruler and sash draw functions treat their own backgrounds
2018-11-02 21:10:30 -04:00
Paul Licameli
951e7d27da
The vruler and sash draw functions treat their own left boundaries
2018-11-02 21:07:48 -04:00
Paul Licameli
0f17b309bc
Fuse the two sash-drawing functions, pass a rectangle not a track...
...
... and be consistent about substituting the track before finding Y and height
2018-11-02 21:07:45 -04:00
Paul Licameli
8d02134d6a
Simplify the track rectangle calculations in TrackArtist
2018-11-02 16:51:08 -04:00
Paul Licameli
49dd6002d3
Simplify HighlightFocusedTrack
2018-11-02 16:51:08 -04:00
Paul Licameli
e31669f555
comment out unused function
2018-11-02 16:51:07 -04:00
Paul Licameli
c1b729822c
Remove unused arguments of some drawing functions
2018-11-02 16:51:07 -04:00
Paul Licameli
c63dcbd3ca
Oops, forgot the vertical rulers in the subdivision of TrackPanel !
2018-11-02 10:30:56 -04:00
Paul Licameli
39fc20c5ee
TrackPanelCellIterator is no longer needed
2018-11-01 18:25:02 -04:00
Paul Licameli
01551913f0
nonvirtual reimplementation of CellularPanel::FindRect using nodes
2018-11-01 18:25:02 -04:00
Paul Licameli
cfa7afcb24
nonvirtual reimplementation of CellularPanel::FindCell using nodes
2018-11-01 18:25:02 -04:00
Paul Licameli
128ba93ae7
Implement TrackPanel::Root()
2018-11-01 18:25:01 -04:00
Paul Licameli
4fe97acbc9
Define CellularPanel::Root
2018-11-01 17:37:22 -04:00
Paul Licameli
30d55f476e
Define abstract classes TrackPanelNode and TrackPanelGroup
2018-11-01 17:33:15 -04:00
Paul Licameli
5b01f57919
Update comments about TrackPanel and TrackArtist...
...
... Remove mention of obsolete plans for TrackPanel refactor, superseded by a
different refactor now accomplished.
Remove detailed mention of names of functions and data members that implement
drawing.
Move most of Roger's comments about drawing into Overlay.h which is now the
more relevant place.
Commented more correctly what TrackPanelListener is.
2018-10-31 08:06:18 -04:00
Paul Licameli
912b24f211
Revert "Small widening of the click-to-deselect area below the tracks..."
...
This reverts commit c101cf3b32 .
2018-10-30 21:56:22 -04:00
Paul Licameli
c101cf3b32
Small widening of the click-to-deselect area below the tracks...
...
... this should make the division of the TrackPanel area defined in
TrackPanelCellIterator::UpdateRect exhaustive.
2018-10-30 13:03:47 -04:00
Paul Licameli
2741d58880
TrackList emits more events for certain changes of state of tracks...
...
... Also rewrote some of the existing event handling so all events from
TrackList are of the same, custom event class, and distinguishing addition
from resizing events, though this distinction is not yet used
2018-10-27 11:31:42 -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
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
0a55b27d2d
Bug1994: Crashes in append-record...
...
... The crash happened in drawing code. The recently submitted but long
developed rewriting of track and channel iterations wasn't all reconciled
with the early 2.3.0 development relating to temporary track objects for
display purposes, which was for fixing the interactions of recording and undo.
2018-10-03 13:21:15 -04:00
Paul Licameli
b5f52e7c1c
Remove old style track iterator classes
2018-10-01 13:42:34 -04:00
Paul Licameli
a68184f81d
Remove GetLink(ed) in track panel drawing and refresh
2018-10-01 13:42:30 -04:00
Paul Licameli
669054b4f4
Remove many uses of GetLink in TrackPanel
2018-10-01 13:42:24 -04:00
Paul Licameli
0c0c2c0d1e
Rewrite iteration over visible tracks in TrackArtist...
...
... also eliminating AudacityProject::GetFirstVisible.
2018-10-01 13:41:51 -04:00
Paul Licameli
23a85893a1
Rewrite some iterations over tracks and channels in TrackPanel
2018-10-01 11:24:25 -04:00
Paul Licameli
b94e8fec96
Remove VisibleTrackIterator
2018-10-01 11:20:52 -04:00
Paul Licameli
fd10ed26cd
Use TypeSwitch and track_cast in TrackPanel
2018-10-01 10:58:33 -04:00
Paul Licameli
5d174b2126
Minor corrections to TrackPanel drawing...
...
... Use correct symbolic constants in three places (no effect);
use proper theme color for the two pixels per track that are left of and
above the shadow (small effect when not Classic theme)
2018-09-15 16:52:39 -04:00
Paul Licameli
34cc1ff577
Rename, rewrite, and simplify use of FindPendingChangedTrack
2018-09-13 13:56:47 -04:00
Paul Licameli
a5c50a112a
more const in drawing functions
2018-09-13 13:53:58 -04:00
Paul Licameli
328aa58966
Bug1933: commit 2c28af05e8 needs null checks
2018-08-12 15:44:08 -04:00
James Crook
bf6b47dbb4
Bug 1918 - Left to right (LTR) language selection reverses elements that should not be reversed
...
This does not entirely fix LTR language support, but dramatically ameliorates the problems originally reported in bug 1918.
2018-08-08 16:33:00 +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
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
ff98ca5a32
CellularPanel saves and restores focus for each click-drag-release...
...
... while the project makes note of which window has temporarily given up the
focus; and TrackPanel can detect that, so that the yellow border of the focused
track is still drawn while the panel "lends" the focus.
Why do all this? So that, when the ruler is another CellularPanel, ESC key
will work to abort drags in the ruler, but TrackPanel appearance won't change
during the drags.
2018-08-05 14:51:58 -04:00
Paul Licameli
f6609e5ffb
Move class CellularPanel into its own files
2018-08-05 14:02:55 -04:00
Paul Licameli
7f84e71324
Context menu handling is also in CellularPanel
2018-08-05 14:02:55 -04:00