1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-23 09:20:16 +01:00
Commit Graph

885 Commits

Author SHA1 Message Date
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