1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-04 22:29:27 +02:00

New files for TrackInfo

This commit is contained in:
Paul Licameli 2019-06-11 22:41:45 -04:00
parent f534d7b8d7
commit 015e3abfe5
8 changed files with 200 additions and 16 deletions

View File

@ -242,6 +242,8 @@ src/Track.cpp
src/Track.h
src/TrackArtist.cpp
src/TrackArtist.h
src/TrackInfo.cpp
src/TrackInfo.h
src/TrackPanel.cpp
src/TrackPanel.h
src/TrackPanelAx.cpp

View File

@ -1312,6 +1312,7 @@
5EF3E662203FE73C006C6882 /* DragCommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5EF3E660203FE73C006C6882 /* DragCommand.cpp */; };
5EF5706B22AAAEDA00C4702C /* ProjectFileManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5EF5706922AAAEDA00C4702C /* ProjectFileManager.cpp */; };
5EF958851DEB121800191280 /* InconsistencyException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5EF958831DEB121800191280 /* InconsistencyException.cpp */; };
5EFCC3B322B09CEC0015E2F1 /* TrackInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5EFCC3B122B09CEC0015E2F1 /* TrackInfo.cpp */; };
5EFEAD9E22723E390077DFF6 /* Clipboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5EFEAD9C22723E390077DFF6 /* Clipboard.cpp */; };
5EFEADA02273382D0077DFF6 /* AudacityApp.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5EFEAD9F2273382D0077DFF6 /* AudacityApp.mm */; };
5EFEADA322733DD30077DFF6 /* CrashReport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5EFEADA122733DD30077DFF6 /* CrashReport.cpp */; };
@ -3387,6 +3388,8 @@
5EF5706A22AAAEDA00C4702C /* ProjectFileManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProjectFileManager.h; sourceTree = "<group>"; };
5EF958831DEB121800191280 /* InconsistencyException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InconsistencyException.cpp; sourceTree = "<group>"; };
5EF958841DEB121800191280 /* InconsistencyException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InconsistencyException.h; sourceTree = "<group>"; };
5EFCC3B122B09CEC0015E2F1 /* TrackInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TrackInfo.cpp; sourceTree = "<group>"; };
5EFCC3B222B09CEC0015E2F1 /* TrackInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TrackInfo.h; sourceTree = "<group>"; };
5EFEAD9C22723E390077DFF6 /* Clipboard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Clipboard.cpp; sourceTree = "<group>"; };
5EFEAD9D22723E390077DFF6 /* Clipboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Clipboard.h; sourceTree = "<group>"; };
5EFEAD9F2273382D0077DFF6 /* AudacityApp.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AudacityApp.mm; sourceTree = "<group>"; };
@ -4446,6 +4449,7 @@
1790B0E209883BFD008A330A /* TimeTrack.cpp */,
1790B0E809883BFD008A330A /* Track.cpp */,
1790B0EA09883BFD008A330A /* TrackArtist.cpp */,
5EFCC3B122B09CEC0015E2F1 /* TrackInfo.cpp */,
1790B0EC09883BFD008A330A /* TrackPanel.cpp */,
1790B0EE09883BFD008A330A /* TrackPanelAx.cpp */,
5E7396601DAFDB1E00BA0A4D /* TrackPanelResizeHandle.cpp */,
@ -4579,6 +4583,7 @@
1790B0E309883BFD008A330A /* TimeTrack.h */,
1790B0E909883BFD008A330A /* Track.h */,
1790B0EB09883BFD008A330A /* TrackArtist.h */,
5EFCC3B222B09CEC0015E2F1 /* TrackInfo.h */,
1790B0ED09883BFD008A330A /* TrackPanel.h */,
1790B0EF09883BFD008A330A /* TrackPanelAx.h */,
5E74D2D91CC4427B00D88B0B /* TrackPanelCell.h */,
@ -8493,6 +8498,7 @@
174D9031098C78AF00D5909F /* CommandManager.cpp in Sources */,
174D9033098C78AF00D5909F /* Keyboard.cpp in Sources */,
283A11AA0A2C0E15004372C4 /* ShuttleGui.cpp in Sources */,
5EFCC3B322B09CEC0015E2F1 /* TrackInfo.cpp in Sources */,
283A11AB0A2C0E15004372C4 /* Theme.cpp in Sources */,
28456AC20A2C180E00C23C1E /* ThemePrefs.cpp in Sources */,
5E1512701DB0010C00702E29 /* TrackVRulerControls.cpp in Sources */,

View File

@ -288,6 +288,8 @@ audacity_SOURCES = \
Track.h \
TrackArtist.cpp \
TrackArtist.h \
TrackInfo.cpp \
TrackInfo.h \
TrackPanel.cpp \
TrackPanel.h \
TrackPanelAx.cpp \

View File

@ -341,13 +341,13 @@ am__audacity_SOURCES_DIST = BlockFile.cpp BlockFile.h DirManager.cpp \
ThemeAsCeeCode.h TimeDialog.cpp TimeDialog.h \
TimerRecordDialog.cpp TimerRecordDialog.h TimeTrack.cpp \
TimeTrack.h Track.cpp Track.h TrackArtist.cpp TrackArtist.h \
TrackPanel.cpp TrackPanel.h TrackPanelAx.cpp TrackPanelAx.h \
TrackPanelCell.h TrackPanelDrawingContext.h \
TrackPanelListener.h TrackPanelMouseEvent.h \
TrackPanelResizeHandle.cpp TrackPanelResizeHandle.h \
TrackPanelResizerCell.cpp TrackPanelResizerCell.h \
TranslatableStringArray.h UIHandle.h UIHandle.cpp \
UndoManager.cpp UndoManager.h UserException.cpp \
TrackInfo.cpp TrackInfo.h TrackPanel.cpp TrackPanel.h \
TrackPanelAx.cpp TrackPanelAx.h TrackPanelCell.h \
TrackPanelDrawingContext.h TrackPanelListener.h \
TrackPanelMouseEvent.h TrackPanelResizeHandle.cpp \
TrackPanelResizeHandle.h TrackPanelResizerCell.cpp \
TrackPanelResizerCell.h TranslatableStringArray.h UIHandle.h \
UIHandle.cpp UndoManager.cpp UndoManager.h UserException.cpp \
UserException.h ViewInfo.cpp ViewInfo.h VoiceKey.cpp \
VoiceKey.h WaveClip.cpp WaveClip.h WaveTrack.cpp WaveTrack.h \
WaveTrackLocation.h WrappedType.cpp WrappedType.h ZoomInfo.cpp \
@ -700,8 +700,8 @@ am_audacity_OBJECTS = $(am__objects_1) audacity-AboutDialog.$(OBJEXT) \
audacity-Theme.$(OBJEXT) audacity-TimeDialog.$(OBJEXT) \
audacity-TimerRecordDialog.$(OBJEXT) \
audacity-TimeTrack.$(OBJEXT) audacity-Track.$(OBJEXT) \
audacity-TrackArtist.$(OBJEXT) audacity-TrackPanel.$(OBJEXT) \
audacity-TrackPanelAx.$(OBJEXT) \
audacity-TrackArtist.$(OBJEXT) audacity-TrackInfo.$(OBJEXT) \
audacity-TrackPanel.$(OBJEXT) audacity-TrackPanelAx.$(OBJEXT) \
audacity-TrackPanelResizeHandle.$(OBJEXT) \
audacity-TrackPanelResizerCell.$(OBJEXT) \
audacity-UIHandle.$(OBJEXT) audacity-UndoManager.$(OBJEXT) \
@ -1431,13 +1431,13 @@ audacity_SOURCES = $(libaudacity_la_SOURCES) AboutDialog.cpp \
ThemeAsCeeCode.h TimeDialog.cpp TimeDialog.h \
TimerRecordDialog.cpp TimerRecordDialog.h TimeTrack.cpp \
TimeTrack.h Track.cpp Track.h TrackArtist.cpp TrackArtist.h \
TrackPanel.cpp TrackPanel.h TrackPanelAx.cpp TrackPanelAx.h \
TrackPanelCell.h TrackPanelDrawingContext.h \
TrackPanelListener.h TrackPanelMouseEvent.h \
TrackPanelResizeHandle.cpp TrackPanelResizeHandle.h \
TrackPanelResizerCell.cpp TrackPanelResizerCell.h \
TranslatableStringArray.h UIHandle.h UIHandle.cpp \
UndoManager.cpp UndoManager.h UserException.cpp \
TrackInfo.cpp TrackInfo.h TrackPanel.cpp TrackPanel.h \
TrackPanelAx.cpp TrackPanelAx.h TrackPanelCell.h \
TrackPanelDrawingContext.h TrackPanelListener.h \
TrackPanelMouseEvent.h TrackPanelResizeHandle.cpp \
TrackPanelResizeHandle.h TrackPanelResizerCell.cpp \
TrackPanelResizerCell.h TranslatableStringArray.h UIHandle.h \
UIHandle.cpp UndoManager.cpp UndoManager.h UserException.cpp \
UserException.h ViewInfo.cpp ViewInfo.h VoiceKey.cpp \
VoiceKey.h WaveClip.cpp WaveClip.h WaveTrack.cpp WaveTrack.h \
WaveTrackLocation.h WrappedType.cpp WrappedType.h ZoomInfo.cpp \
@ -2642,6 +2642,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TimerRecordDialog.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-Track.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackArtist.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackInfo.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackPanel.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackPanelAx.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audacity-TrackPanelResizeHandle.Po@am__quote@
@ -4554,6 +4555,20 @@ audacity-TrackArtist.obj: TrackArtist.cpp
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o audacity-TrackArtist.obj `if test -f 'TrackArtist.cpp'; then $(CYGPATH_W) 'TrackArtist.cpp'; else $(CYGPATH_W) '$(srcdir)/TrackArtist.cpp'; fi`
audacity-TrackInfo.o: TrackInfo.cpp
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT audacity-TrackInfo.o -MD -MP -MF $(DEPDIR)/audacity-TrackInfo.Tpo -c -o audacity-TrackInfo.o `test -f 'TrackInfo.cpp' || echo '$(srcdir)/'`TrackInfo.cpp
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audacity-TrackInfo.Tpo $(DEPDIR)/audacity-TrackInfo.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TrackInfo.cpp' object='audacity-TrackInfo.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o audacity-TrackInfo.o `test -f 'TrackInfo.cpp' || echo '$(srcdir)/'`TrackInfo.cpp
audacity-TrackInfo.obj: TrackInfo.cpp
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT audacity-TrackInfo.obj -MD -MP -MF $(DEPDIR)/audacity-TrackInfo.Tpo -c -o audacity-TrackInfo.obj `if test -f 'TrackInfo.cpp'; then $(CYGPATH_W) 'TrackInfo.cpp'; else $(CYGPATH_W) '$(srcdir)/TrackInfo.cpp'; fi`
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audacity-TrackInfo.Tpo $(DEPDIR)/audacity-TrackInfo.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='TrackInfo.cpp' object='audacity-TrackInfo.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o audacity-TrackInfo.obj `if test -f 'TrackInfo.cpp'; then $(CYGPATH_W) 'TrackInfo.cpp'; else $(CYGPATH_W) '$(srcdir)/TrackInfo.cpp'; fi`
audacity-TrackPanel.o: TrackPanel.cpp
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT audacity-TrackPanel.o -MD -MP -MF $(DEPDIR)/audacity-TrackPanel.Tpo -c -o audacity-TrackPanel.o `test -f 'TrackPanel.cpp' || echo '$(srcdir)/'`TrackPanel.cpp
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audacity-TrackPanel.Tpo $(DEPDIR)/audacity-TrackPanel.Po

0
src/TrackInfo.cpp Normal file
View File

151
src/TrackInfo.h Normal file
View File

@ -0,0 +1,151 @@
/**********************************************************************
Audacity: A Digital Audio Editor
TrackInfo.h
Paul Licameli split from TrackPanel.cpp
**********************************************************************/
#ifndef __AUDACITY_TRACK_INFO__
#define __AUDACITY_TRACK_INFO__
#include "Audacity.h"
#include "Experimental.h"
#include <vector>
class wxDC;
class wxPoint;
class wxRect;
class wxString;
class wxWindow;
class LWSlider;
class NoteTrack;
class Track;
struct TrackPanelDrawingContext;
class WaveTrack;
namespace TrackInfo
{
void ReCreateSliders();
unsigned MinimumTrackHeight();
struct TCPLine {
enum : unsigned {
// The sequence is not significant, just keep bits distinct
kItemBarButtons = 1 << 0,
kItemStatusInfo1 = 1 << 1,
kItemMute = 1 << 2,
kItemSolo = 1 << 3,
kItemGain = 1 << 4,
kItemPan = 1 << 5,
kItemVelocity = 1 << 6,
kItemMidiControlsRect = 1 << 7,
kItemMinimize = 1 << 8,
kItemSyncLock = 1 << 9,
kItemStatusInfo2 = 1 << 10,
kHighestBottomItem = kItemMinimize,
};
using DrawFunction = void (*)(
TrackPanelDrawingContext &context,
const wxRect &rect,
const Track *maybeNULL
);
unsigned items; // a bitwise OR of values of the enum above
int height;
int extraSpace;
DrawFunction drawFunction;
};
using TCPLines = std::vector< TCPLine >;
// return y value and height
std::pair< int, int > CalcItemY( const TCPLines &lines, unsigned iItem );
unsigned DefaultTrackHeight( const TCPLines &topLines );
void DrawItems
( TrackPanelDrawingContext &context,
const wxRect &rect, const Track &track );
void DrawItems
( TrackPanelDrawingContext &context,
const wxRect &rect, const Track *pTrack,
const std::vector<TCPLine> &topLines,
const std::vector<TCPLine> &bottomLines );
void CloseTitleDrawFunction
( TrackPanelDrawingContext &context,
const wxRect &rect, const Track *pTrack );
void MinimizeSyncLockDrawFunction
( TrackPanelDrawingContext &context,
const wxRect &rect, const Track *pTrack );
void MuteOrSoloDrawFunction
( wxDC *dc, const wxRect &rect, const Track *pTrack, bool down,
bool captured, bool solo, bool hit );
void WideMuteDrawFunction
( TrackPanelDrawingContext &context,
const wxRect &rect, const Track *pTrack );
void WideSoloDrawFunction
( TrackPanelDrawingContext &context,
const wxRect &rect, const Track *pTrack );
void MuteAndSoloDrawFunction
( TrackPanelDrawingContext &context,
const wxRect &rect, const Track *pTrack );
void SetTrackInfoFont(wxDC *dc);
void DrawBackground(
wxDC * dc, const wxRect & rect, bool bSelected, const int vrul );
// void DrawBordersWithin(
// wxDC * dc, const wxRect & rect, const Track &track ) const;
void GetCloseBoxHorizontalBounds( const wxRect & rect, wxRect &dest );
void GetCloseBoxRect(const wxRect & rect, wxRect &dest);
void GetTitleBarHorizontalBounds( const wxRect & rect, wxRect &dest );
void GetTitleBarRect(const wxRect & rect, wxRect &dest);
void GetNarrowMuteHorizontalBounds
( const wxRect & rect, wxRect &dest );
void GetNarrowSoloHorizontalBounds
( const wxRect & rect, wxRect &dest );
void GetWideMuteSoloHorizontalBounds
( const wxRect & rect, wxRect &dest );
void GetMuteSoloRect
(const wxRect & rect, wxRect &dest, bool solo, bool bHasSoloButton,
const Track *pTrack);
void GetSliderHorizontalBounds( const wxPoint &topleft, wxRect &dest );
void GetMinimizeHorizontalBounds( const wxRect &rect, wxRect &dest );
void GetMinimizeRect(const wxRect & rect, wxRect &dest);
void GetSelectButtonHorizontalBounds( const wxRect &rect, wxRect &dest );
void GetSelectButtonRect(const wxRect & rect, wxRect &dest);
void GetSyncLockHorizontalBounds( const wxRect &rect, wxRect &dest );
void GetSyncLockIconRect(const wxRect & rect, wxRect &dest);
bool HideTopItem( const wxRect &rect, const wxRect &subRect,
int allowance = 0 );
// Non-member, namespace function relying on TrackPanel to invoke it
// when it handles preference update events
void UpdatePrefs( wxWindow *pParent );
};
#endif

View File

@ -268,6 +268,7 @@
<ClCompile Include="..\..\..\src\toolbars\SpectralSelectionBar.cpp" />
<ClCompile Include="..\..\..\src\Track.cpp" />
<ClCompile Include="..\..\..\src\TrackArtist.cpp" />
<ClCompile Include="..\..\..\src\TrackInfo.cpp" />
<ClCompile Include="..\..\..\src\TrackPanel.cpp" />
<ClCompile Include="..\..\..\src\TrackPanelAx.cpp" />
<ClCompile Include="..\..\..\src\TrackPanelResizeHandle.cpp" />
@ -707,6 +708,7 @@
<ClInclude Include="..\..\..\src\TimeTrack.h" />
<ClInclude Include="..\..\..\src\Track.h" />
<ClInclude Include="..\..\..\src\TrackArtist.h" />
<ClInclude Include="..\..\..\src\TrackInfo.h" />
<ClInclude Include="..\..\..\src\TrackPanel.h" />
<ClInclude Include="..\..\..\src\TrackPanelAx.h" />
<ClInclude Include="..\..\..\src\UndoManager.h" />

View File

@ -365,6 +365,9 @@
<ClCompile Include="..\..\..\src\TrackArtist.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\TrackInfo.cpp">
<Filter>src</Filter>
</ClCompile>
<ClCompile Include="..\..\..\src\TrackPanelAx.cpp">
<Filter>src</Filter>
</ClCompile>
@ -1474,6 +1477,9 @@
<ClInclude Include="..\..\..\src\TrackArtist.h">
<Filter>src</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\TrackInfo.h">
<Filter>src</Filter>
</ClInclude>
<ClInclude Include="..\..\..\src\TrackPanel.h">
<Filter>src</Filter>
</ClInclude>