mirror of
https://github.com/cookiengineer/audacity
synced 2025-11-14 17:14:07 +01:00
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.)
This commit is contained in:
committed by
Paul Licameli
parent
07b53b4e83
commit
14d45eda33
34
src/tracks/labeltrack/ui/LabelTrackControls.cpp
Normal file
34
src/tracks/labeltrack/ui/LabelTrackControls.cpp
Normal file
@@ -0,0 +1,34 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
LabelTrackControls.cpp
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "../../../Audacity.h"
|
||||
#include "LabelTrackControls.h"
|
||||
#include "../../../HitTestResult.h"
|
||||
|
||||
LabelTrackControls::LabelTrackControls()
|
||||
{
|
||||
}
|
||||
|
||||
LabelTrackControls &LabelTrackControls::Instance()
|
||||
{
|
||||
static LabelTrackControls instance;
|
||||
return instance;
|
||||
}
|
||||
|
||||
LabelTrackControls::~LabelTrackControls()
|
||||
{
|
||||
}
|
||||
|
||||
HitTestResult LabelTrackControls::HitTest
|
||||
(const TrackPanelMouseEvent & event,
|
||||
const AudacityProject *pProject)
|
||||
{
|
||||
return TrackControls::HitTest(event, pProject);
|
||||
}
|
||||
31
src/tracks/labeltrack/ui/LabelTrackControls.h
Normal file
31
src/tracks/labeltrack/ui/LabelTrackControls.h
Normal file
@@ -0,0 +1,31 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
LabelTrackControls.h
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __AUDACITY_LABEL_TRACK_CONTROLS__
|
||||
#define __AUDACITY_LABEL_TRACK_CONTROLS__
|
||||
|
||||
#include "../../ui/TrackControls.h"
|
||||
|
||||
class LabelTrackControls final : public TrackControls
|
||||
{
|
||||
LabelTrackControls();
|
||||
LabelTrackControls(const LabelTrackControls&) = delete;
|
||||
LabelTrackControls &operator=(const LabelTrackControls&) = delete;
|
||||
|
||||
public:
|
||||
static LabelTrackControls &Instance();
|
||||
~LabelTrackControls();
|
||||
|
||||
HitTestResult HitTest
|
||||
(const TrackPanelMouseEvent &event,
|
||||
const AudacityProject *pProject) override;
|
||||
};
|
||||
|
||||
#endif
|
||||
32
src/tracks/labeltrack/ui/LabelTrackUI.cpp
Normal file
32
src/tracks/labeltrack/ui/LabelTrackUI.cpp
Normal file
@@ -0,0 +1,32 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
LabelTrackUI.cpp
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "../../../LabelTrack.h"
|
||||
#include "LabelTrackControls.h"
|
||||
#include "LabelTrackVRulerControls.h"
|
||||
|
||||
#include "../../../HitTestResult.h"
|
||||
|
||||
HitTestResult LabelTrack::HitTest
|
||||
(const TrackPanelMouseEvent &event,
|
||||
const AudacityProject *pProject)
|
||||
{
|
||||
return Track::HitTest(event, pProject);
|
||||
}
|
||||
|
||||
TrackControls *LabelTrack::GetControls()
|
||||
{
|
||||
return &LabelTrackControls::Instance();
|
||||
}
|
||||
|
||||
TrackVRulerControls *LabelTrack::GetVRulerControls()
|
||||
{
|
||||
return &LabelTrackVRulerControls::Instance();
|
||||
}
|
||||
28
src/tracks/labeltrack/ui/LabelTrackVRulerControls.cpp
Normal file
28
src/tracks/labeltrack/ui/LabelTrackVRulerControls.cpp
Normal file
@@ -0,0 +1,28 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
LabelTrackVRulerControls.cpp
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "../../../Audacity.h"
|
||||
#include "LabelTrackVRulerControls.h"
|
||||
#include "../../../HitTestResult.h"
|
||||
|
||||
LabelTrackVRulerControls::LabelTrackVRulerControls()
|
||||
: TrackVRulerControls()
|
||||
{
|
||||
}
|
||||
|
||||
LabelTrackVRulerControls &LabelTrackVRulerControls::Instance()
|
||||
{
|
||||
static LabelTrackVRulerControls instance;
|
||||
return instance;
|
||||
}
|
||||
|
||||
LabelTrackVRulerControls::~LabelTrackVRulerControls()
|
||||
{
|
||||
}
|
||||
30
src/tracks/labeltrack/ui/LabelTrackVRulerControls.h
Normal file
30
src/tracks/labeltrack/ui/LabelTrackVRulerControls.h
Normal file
@@ -0,0 +1,30 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
LabelTrackVRulerControls.h
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __AUDACITY_LABEL_TRACK_VRULER_CONTROLS__
|
||||
#define __AUDACITY_LABEL_TRACK_VRULER_CONTROLS__
|
||||
|
||||
#include "../../ui/TrackVRulerControls.h"
|
||||
|
||||
// This class is here for completeness, by analogy with other track
|
||||
// types, but it does nothing.
|
||||
class LabelTrackVRulerControls final : public TrackVRulerControls
|
||||
{
|
||||
LabelTrackVRulerControls();
|
||||
LabelTrackVRulerControls(const LabelTrackVRulerControls&) = delete;
|
||||
LabelTrackVRulerControls &operator=(const LabelTrackVRulerControls&)
|
||||
= delete;
|
||||
|
||||
public:
|
||||
static LabelTrackVRulerControls &Instance();
|
||||
~LabelTrackVRulerControls();
|
||||
};
|
||||
|
||||
#endif
|
||||
39
src/tracks/playabletrack/notetrack/ui/NoteTrackControls.cpp
Normal file
39
src/tracks/playabletrack/notetrack/ui/NoteTrackControls.cpp
Normal file
@@ -0,0 +1,39 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
NoteTrackControls.cpp
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "../../../../Audacity.h"
|
||||
|
||||
#ifdef USE_MIDI
|
||||
|
||||
#include "NoteTrackControls.h"
|
||||
#include "../../../../HitTestResult.h"
|
||||
|
||||
NoteTrackControls::NoteTrackControls()
|
||||
{
|
||||
}
|
||||
|
||||
NoteTrackControls &NoteTrackControls::Instance()
|
||||
{
|
||||
static NoteTrackControls instance;
|
||||
return instance;
|
||||
}
|
||||
|
||||
NoteTrackControls::~NoteTrackControls()
|
||||
{
|
||||
}
|
||||
|
||||
HitTestResult NoteTrackControls::HitTest
|
||||
(const TrackPanelMouseEvent & event,
|
||||
const AudacityProject *pProject)
|
||||
{
|
||||
return TrackControls::HitTest(event, pProject);
|
||||
}
|
||||
|
||||
#endif
|
||||
31
src/tracks/playabletrack/notetrack/ui/NoteTrackControls.h
Normal file
31
src/tracks/playabletrack/notetrack/ui/NoteTrackControls.h
Normal file
@@ -0,0 +1,31 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
NoteTrackControls.h
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __AUDACITY_NOTE_TRACK_CONTROLS__
|
||||
#define __AUDACITY_NOTE_TRACK_CONTROLS__
|
||||
|
||||
#include "../../../ui/TrackControls.h"
|
||||
|
||||
class NoteTrackControls : public TrackControls
|
||||
{
|
||||
NoteTrackControls();
|
||||
NoteTrackControls(const NoteTrackControls&) = delete;
|
||||
NoteTrackControls &operator=(const NoteTrackControls&) = delete;
|
||||
|
||||
public:
|
||||
static NoteTrackControls &Instance();
|
||||
~NoteTrackControls();
|
||||
|
||||
HitTestResult HitTest
|
||||
(const TrackPanelMouseEvent &event,
|
||||
const AudacityProject *pProject) override;
|
||||
};
|
||||
|
||||
#endif
|
||||
37
src/tracks/playabletrack/notetrack/ui/NoteTrackUI.cpp
Normal file
37
src/tracks/playabletrack/notetrack/ui/NoteTrackUI.cpp
Normal file
@@ -0,0 +1,37 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
NoteTrackUI.cpp
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "../../../../Audacity.h"
|
||||
|
||||
#ifdef USE_MIDI
|
||||
|
||||
#include "../../../../NoteTrack.h"
|
||||
#include "NoteTrackControls.h"
|
||||
#include "NoteTrackVRulerControls.h"
|
||||
|
||||
#include "../../../../HitTestResult.h"
|
||||
|
||||
HitTestResult NoteTrack::HitTest
|
||||
(const TrackPanelMouseEvent &event,
|
||||
const AudacityProject *pProject)
|
||||
{
|
||||
return Track::HitTest(event, pProject);
|
||||
}
|
||||
|
||||
TrackControls *NoteTrack::GetControls()
|
||||
{
|
||||
return &NoteTrackControls::Instance();
|
||||
}
|
||||
|
||||
TrackVRulerControls *NoteTrack::GetVRulerControls()
|
||||
{
|
||||
return &NoteTrackVRulerControls::Instance();
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,40 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
NoteTrackVRulerControls.cpp
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "../../../../Audacity.h"
|
||||
|
||||
#ifdef USE_MIDI
|
||||
|
||||
#include "NoteTrackVRulerControls.h"
|
||||
#include "../../../../HitTestResult.h"
|
||||
|
||||
NoteTrackVRulerControls::NoteTrackVRulerControls()
|
||||
: TrackVRulerControls()
|
||||
{
|
||||
}
|
||||
|
||||
NoteTrackVRulerControls &NoteTrackVRulerControls::Instance()
|
||||
{
|
||||
static NoteTrackVRulerControls instance;
|
||||
return instance;
|
||||
}
|
||||
|
||||
NoteTrackVRulerControls::~NoteTrackVRulerControls()
|
||||
{
|
||||
}
|
||||
|
||||
HitTestResult NoteTrackVRulerControls::HitTest
|
||||
(const TrackPanelMouseEvent &,
|
||||
const AudacityProject *)
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,31 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
NoteTrackVRulerControls.h
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __AUDACITY_NOTE_TRACK_VRULER_CONTROLS__
|
||||
#define __AUDACITY_NOTE_TRACK_VRULER_CONTROLS__
|
||||
|
||||
#include "../../../ui/TrackVRulerControls.h"
|
||||
|
||||
class NoteTrackVRulerControls final : public TrackVRulerControls
|
||||
{
|
||||
NoteTrackVRulerControls();
|
||||
NoteTrackVRulerControls(const NoteTrackVRulerControls&) = delete;
|
||||
NoteTrackVRulerControls &operator=(const NoteTrackVRulerControls&) = delete;
|
||||
|
||||
public:
|
||||
static NoteTrackVRulerControls &Instance();
|
||||
~NoteTrackVRulerControls();
|
||||
|
||||
HitTestResult HitTest
|
||||
(const TrackPanelMouseEvent &event,
|
||||
const AudacityProject *pProject) override;
|
||||
};
|
||||
|
||||
#endif
|
||||
35
src/tracks/playabletrack/wavetrack/ui/WaveTrackControls.cpp
Normal file
35
src/tracks/playabletrack/wavetrack/ui/WaveTrackControls.cpp
Normal file
@@ -0,0 +1,35 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
WaveTrackControls.cpp
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "../../../../Audacity.h"
|
||||
#include "WaveTrackControls.h"
|
||||
#include "../../../../HitTestResult.h"
|
||||
|
||||
WaveTrackControls::WaveTrackControls()
|
||||
{
|
||||
}
|
||||
|
||||
WaveTrackControls &WaveTrackControls::Instance()
|
||||
{
|
||||
static WaveTrackControls instance;
|
||||
return instance;
|
||||
}
|
||||
|
||||
WaveTrackControls::~WaveTrackControls()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
HitTestResult WaveTrackControls::HitTest
|
||||
(const TrackPanelMouseEvent & event,
|
||||
const AudacityProject *pProject)
|
||||
{
|
||||
return TrackControls::HitTest(event, pProject);
|
||||
}
|
||||
31
src/tracks/playabletrack/wavetrack/ui/WaveTrackControls.h
Normal file
31
src/tracks/playabletrack/wavetrack/ui/WaveTrackControls.h
Normal file
@@ -0,0 +1,31 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
WavelTrackControls.h
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __AUDACITY_WAVE_TRACK_CONTROLS__
|
||||
#define __AUDACITY_WAVE_TRACK_CONTROLS__
|
||||
|
||||
#include "../../../ui/TrackControls.h"
|
||||
|
||||
class WaveTrackControls final : public TrackControls
|
||||
{
|
||||
WaveTrackControls();
|
||||
WaveTrackControls(const WaveTrackControls&) = delete;
|
||||
WaveTrackControls &operator=(const WaveTrackControls&) = delete;
|
||||
|
||||
public:
|
||||
static WaveTrackControls &Instance();
|
||||
~WaveTrackControls();
|
||||
|
||||
HitTestResult HitTest
|
||||
(const TrackPanelMouseEvent &event,
|
||||
const AudacityProject *pProject) override;
|
||||
};
|
||||
|
||||
#endif
|
||||
32
src/tracks/playabletrack/wavetrack/ui/WaveTrackUI.cpp
Normal file
32
src/tracks/playabletrack/wavetrack/ui/WaveTrackUI.cpp
Normal file
@@ -0,0 +1,32 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
WaveTrackUI.cpp
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "../../../../WaveTrack.h"
|
||||
#include "WaveTrackControls.h"
|
||||
#include "WaveTrackVRulerControls.h"
|
||||
|
||||
#include "../../../../HitTestResult.h"
|
||||
|
||||
HitTestResult WaveTrack::HitTest
|
||||
(const TrackPanelMouseEvent &event,
|
||||
const AudacityProject *pProject)
|
||||
{
|
||||
return Track::HitTest(event, pProject);
|
||||
}
|
||||
|
||||
TrackControls *WaveTrack::GetControls()
|
||||
{
|
||||
return &WaveTrackControls::Instance();
|
||||
}
|
||||
|
||||
TrackVRulerControls *WaveTrack::GetVRulerControls()
|
||||
{
|
||||
return &WaveTrackVRulerControls::Instance();
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
WaveTrackVRulerControls.cpp
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "../../../../Audacity.h"
|
||||
#include "WaveTrackVRulerControls.h"
|
||||
#include "../../../../HitTestResult.h"
|
||||
|
||||
WaveTrackVRulerControls::WaveTrackVRulerControls()
|
||||
: TrackVRulerControls()
|
||||
{
|
||||
}
|
||||
|
||||
WaveTrackVRulerControls &WaveTrackVRulerControls::Instance()
|
||||
{
|
||||
static WaveTrackVRulerControls instance;
|
||||
return instance;
|
||||
}
|
||||
|
||||
WaveTrackVRulerControls::~WaveTrackVRulerControls()
|
||||
{
|
||||
}
|
||||
|
||||
HitTestResult WaveTrackVRulerControls::HitTest
|
||||
(const TrackPanelMouseEvent &,
|
||||
const AudacityProject *)
|
||||
{
|
||||
return {};
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
WaveTrackVRulerControls.h
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __AUDACITY_WAVE_TRACK_VRULER_CONTROLS__
|
||||
#define __AUDACITY_WAVE_TRACK_VRULER_CONTROLS__
|
||||
|
||||
#include "../../../ui/TrackVRulerControls.h"
|
||||
|
||||
class WaveTrackVRulerControls final : public TrackVRulerControls
|
||||
{
|
||||
WaveTrackVRulerControls();
|
||||
WaveTrackVRulerControls(const WaveTrackVRulerControls&) = delete;
|
||||
WaveTrackVRulerControls &operator=(const WaveTrackVRulerControls&) = delete;
|
||||
|
||||
public:
|
||||
static WaveTrackVRulerControls &Instance();
|
||||
~WaveTrackVRulerControls();
|
||||
|
||||
HitTestResult HitTest
|
||||
(const TrackPanelMouseEvent &event,
|
||||
const AudacityProject *) override;
|
||||
};
|
||||
|
||||
#endif
|
||||
34
src/tracks/timetrack/ui/TimeTrackControls.cpp
Normal file
34
src/tracks/timetrack/ui/TimeTrackControls.cpp
Normal file
@@ -0,0 +1,34 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
TimeTrackControls.cpp
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "../../../Audacity.h"
|
||||
#include "TimeTrackControls.h"
|
||||
#include "../../../HitTestResult.h"
|
||||
|
||||
TimeTrackControls::TimeTrackControls()
|
||||
{
|
||||
}
|
||||
|
||||
TimeTrackControls &TimeTrackControls::Instance()
|
||||
{
|
||||
static TimeTrackControls instance;
|
||||
return instance;
|
||||
}
|
||||
|
||||
TimeTrackControls::~TimeTrackControls()
|
||||
{
|
||||
}
|
||||
|
||||
HitTestResult TimeTrackControls::HitTest
|
||||
(const TrackPanelMouseEvent & event,
|
||||
const AudacityProject *pProject)
|
||||
{
|
||||
return TrackControls::HitTest(event, pProject);
|
||||
}
|
||||
31
src/tracks/timetrack/ui/TimeTrackControls.h
Normal file
31
src/tracks/timetrack/ui/TimeTrackControls.h
Normal file
@@ -0,0 +1,31 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
TimeTrackControls.h
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __AUDACITY_TIME_TRACK_CONTROLS__
|
||||
#define __AUDACITY_TIME_TRACK_CONTROLS__
|
||||
|
||||
#include "../../ui/TrackControls.h"
|
||||
|
||||
class TimeTrackControls final : public TrackControls
|
||||
{
|
||||
TimeTrackControls();
|
||||
TimeTrackControls(const TimeTrackControls&) = delete;
|
||||
TimeTrackControls &operator=(const TimeTrackControls&) = delete;
|
||||
|
||||
public:
|
||||
static TimeTrackControls &Instance();
|
||||
~TimeTrackControls();
|
||||
|
||||
HitTestResult HitTest
|
||||
(const TrackPanelMouseEvent &event,
|
||||
const AudacityProject *pProject) override;
|
||||
};
|
||||
|
||||
#endif
|
||||
32
src/tracks/timetrack/ui/TimeTrackUI.cpp
Normal file
32
src/tracks/timetrack/ui/TimeTrackUI.cpp
Normal file
@@ -0,0 +1,32 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
TimeTrackUI.cpp
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "../../../TimeTrack.h"
|
||||
#include "TimeTrackControls.h"
|
||||
#include "TimeTrackVRulerControls.h"
|
||||
|
||||
#include "../../../HitTestResult.h"
|
||||
|
||||
HitTestResult TimeTrack::HitTest
|
||||
(const TrackPanelMouseEvent &event,
|
||||
const AudacityProject *pProject)
|
||||
{
|
||||
return Track::HitTest(event, pProject);
|
||||
}
|
||||
|
||||
TrackControls *TimeTrack::GetControls()
|
||||
{
|
||||
return &TimeTrackControls::Instance();
|
||||
}
|
||||
|
||||
TrackVRulerControls *TimeTrack::GetVRulerControls()
|
||||
{
|
||||
return &TimeTrackVRulerControls::Instance();
|
||||
}
|
||||
28
src/tracks/timetrack/ui/TimeTrackVRulerControls.cpp
Normal file
28
src/tracks/timetrack/ui/TimeTrackVRulerControls.cpp
Normal file
@@ -0,0 +1,28 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
TimeTrackVRulerControls.cpp
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "../../../Audacity.h"
|
||||
#include "TimeTrackVRulerControls.h"
|
||||
#include "../../../HitTestResult.h"
|
||||
|
||||
TimeTrackVRulerControls::TimeTrackVRulerControls()
|
||||
: TrackVRulerControls()
|
||||
{
|
||||
}
|
||||
|
||||
TimeTrackVRulerControls &TimeTrackVRulerControls::Instance()
|
||||
{
|
||||
static TimeTrackVRulerControls instance;
|
||||
return instance;
|
||||
}
|
||||
|
||||
TimeTrackVRulerControls::~TimeTrackVRulerControls()
|
||||
{
|
||||
}
|
||||
29
src/tracks/timetrack/ui/TimeTrackVRulerControls.h
Normal file
29
src/tracks/timetrack/ui/TimeTrackVRulerControls.h
Normal file
@@ -0,0 +1,29 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
TimeTrackVRulerControls.h
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __AUDACITY_TIME_TRACK_VRULER_CONTROLS__
|
||||
#define __AUDACITY_TIME_TRACK_VRULER_CONTROLS__
|
||||
|
||||
#include "../../ui/TrackVRulerControls.h"
|
||||
|
||||
// This class is here for completeness, by analogy with other track
|
||||
// types, but it does nothing.
|
||||
class TimeTrackVRulerControls final : public TrackVRulerControls
|
||||
{
|
||||
TimeTrackVRulerControls();
|
||||
TimeTrackVRulerControls(const TimeTrackVRulerControls&) = delete;
|
||||
TimeTrackVRulerControls &operator=(const TimeTrackVRulerControls&) = delete;
|
||||
|
||||
public:
|
||||
static TimeTrackVRulerControls &Instance();
|
||||
~TimeTrackVRulerControls();
|
||||
};
|
||||
|
||||
#endif
|
||||
17
src/tracks/ui/CommonTrackPanelCell.cpp
Normal file
17
src/tracks/ui/CommonTrackPanelCell.cpp
Normal file
@@ -0,0 +1,17 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
CommonTrackPanelCell.cpp
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "../../Audacity.h"
|
||||
#include "CommonTrackPanelCell.h"
|
||||
#include "../../HitTestResult.h"
|
||||
|
||||
CommonTrackPanelCell::~CommonTrackPanelCell()
|
||||
{
|
||||
}
|
||||
32
src/tracks/ui/CommonTrackPanelCell.h
Normal file
32
src/tracks/ui/CommonTrackPanelCell.h
Normal file
@@ -0,0 +1,32 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
CommonTrackPanelCell.h
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __AUDACITY_COMMON_TRACK_PANEL_CELL__
|
||||
#define __AUDACITY_COMMON_TRACK_PANEL_CELL__
|
||||
|
||||
#include "../../TrackPanelCell.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
class Track;
|
||||
|
||||
class AUDACITY_DLL_API CommonTrackPanelCell /* not final */
|
||||
: public TrackPanelCell
|
||||
{
|
||||
public:
|
||||
CommonTrackPanelCell() {}
|
||||
|
||||
virtual ~CommonTrackPanelCell() = 0;
|
||||
|
||||
virtual Track *FindTrack() = 0;
|
||||
|
||||
protected:
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -109,7 +109,7 @@ void EditCursorOverlay::Draw(OverlayPanel &panel, wxDC &dc)
|
||||
for (; begin != end; ++begin)
|
||||
{
|
||||
TrackPanelCellIterator::value_type data(*begin);
|
||||
Track *const pTrack = data.first;
|
||||
Track *const pTrack = dynamic_cast<Track*>(data.first);
|
||||
if (!pTrack)
|
||||
continue;
|
||||
if (pTrack->GetSelected() ||
|
||||
|
||||
@@ -76,7 +76,7 @@ void PlayIndicatorOverlayBase::Draw(OverlayPanel &panel, wxDC &dc)
|
||||
for (; begin != end; ++begin)
|
||||
{
|
||||
TrackPanelCellIterator::value_type data(*begin);
|
||||
Track *const pTrack = data.first;
|
||||
Track *const pTrack = dynamic_cast<Track*>(data.first);
|
||||
if (!pTrack)
|
||||
continue;
|
||||
|
||||
|
||||
29
src/tracks/ui/TrackControls.cpp
Normal file
29
src/tracks/ui/TrackControls.cpp
Normal file
@@ -0,0 +1,29 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
TrackControls.cpp
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "../../Audacity.h"
|
||||
#include "TrackControls.h"
|
||||
#include "../../HitTestResult.h"
|
||||
|
||||
TrackControls::~TrackControls()
|
||||
{
|
||||
}
|
||||
|
||||
HitTestResult TrackControls::HitTest
|
||||
(const TrackPanelMouseEvent &,
|
||||
const AudacityProject *)
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
Track *TrackControls::FindTrack()
|
||||
{
|
||||
return GetTrack();
|
||||
}
|
||||
40
src/tracks/ui/TrackControls.h
Normal file
40
src/tracks/ui/TrackControls.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
TrackControls.h
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __AUDACITY_TRACK_CONTROLS__
|
||||
#define __AUDACITY_TRACK_CONTROLS__
|
||||
|
||||
#include "CommonTrackPanelCell.h"
|
||||
|
||||
class Track;
|
||||
|
||||
class TrackControls /* not final */ : public CommonTrackPanelCell
|
||||
{
|
||||
public:
|
||||
TrackControls() : mpTrack(NULL) {}
|
||||
|
||||
virtual ~TrackControls() = 0;
|
||||
|
||||
Track *GetTrack() const { return mpTrack; }
|
||||
|
||||
protected:
|
||||
// An override is supplied for derived classes to call through but it is
|
||||
// still marked pure virtual
|
||||
virtual HitTestResult HitTest
|
||||
(const TrackPanelMouseEvent &event,
|
||||
const AudacityProject *) override = 0;
|
||||
|
||||
Track *FindTrack() override;
|
||||
|
||||
friend class Track;
|
||||
Track *mpTrack;
|
||||
};
|
||||
|
||||
#endif
|
||||
62
src/tracks/ui/TrackUI.cpp
Normal file
62
src/tracks/ui/TrackUI.cpp
Normal file
@@ -0,0 +1,62 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
TrackUI.cpp
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "../../Track.h"
|
||||
#include "TrackControls.h"
|
||||
#include "TrackVRulerControls.h"
|
||||
|
||||
#include "../../HitTestResult.h"
|
||||
#include "../../Project.h"
|
||||
#include "../../toolbars/ToolsToolBar.h"
|
||||
|
||||
HitTestResult Track::HitTest
|
||||
(const TrackPanelMouseEvent &,
|
||||
const AudacityProject *pProject)
|
||||
{
|
||||
const ToolsToolBar * pTtb = pProject->GetToolsToolBar();
|
||||
// Unless in Multimode keep using the current tool.
|
||||
const bool isMultiTool = pTtb->IsDown(multiTool);
|
||||
if (!isMultiTool) {
|
||||
switch (pTtb->GetCurrentTool()) {
|
||||
case selectTool:
|
||||
case envelopeTool:
|
||||
case drawTool:
|
||||
case zoomTool:
|
||||
case slideTool:
|
||||
default:
|
||||
// cases not yet implemented
|
||||
// fallthru
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
// Replicate some of the logic of TrackPanel::DetermineToolToUse
|
||||
HitTestResult result;
|
||||
|
||||
if (isMultiTool) {
|
||||
// To do: special hit tests
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
TrackPanelCell *Track::GetTrackControl()
|
||||
{
|
||||
TrackControls *const result = GetControls();
|
||||
result->mpTrack = this;
|
||||
return result;
|
||||
}
|
||||
|
||||
TrackPanelCell *Track::GetVRulerControl()
|
||||
{
|
||||
TrackVRulerControls *const result = GetVRulerControls();
|
||||
result->mpTrack = this;
|
||||
return result;
|
||||
}
|
||||
33
src/tracks/ui/TrackVRulerControls.cpp
Normal file
33
src/tracks/ui/TrackVRulerControls.cpp
Normal file
@@ -0,0 +1,33 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
TrackVRulerControls.cpp
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "../../Audacity.h"
|
||||
#include "../../HitTestResult.h"
|
||||
#include "TrackVRulerControls.h"
|
||||
|
||||
#include <wx/cursor.h>
|
||||
#include <wx/translation.h>
|
||||
|
||||
TrackVRulerControls::~TrackVRulerControls()
|
||||
{
|
||||
}
|
||||
|
||||
Track *TrackVRulerControls::FindTrack()
|
||||
{
|
||||
return GetTrack();
|
||||
}
|
||||
|
||||
HitTestResult TrackVRulerControls::HitTest
|
||||
(const TrackPanelMouseEvent &event, const AudacityProject *pProject)
|
||||
{
|
||||
// Use a space for the tip, otherwise we get the default message.
|
||||
static wxCursor arrowCursor{ wxCURSOR_ARROW };
|
||||
return { { _(" "), &arrowCursor }, nullptr };
|
||||
}
|
||||
40
src/tracks/ui/TrackVRulerControls.h
Normal file
40
src/tracks/ui/TrackVRulerControls.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/**********************************************************************
|
||||
|
||||
Audacity: A Digital Audio Editor
|
||||
|
||||
TrackVRulerControls.h
|
||||
|
||||
Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __AUDACITY_TRACK_VRULER_CONTROLS__
|
||||
#define __AUDACITY_TRACK_VRULER_CONTROLS__
|
||||
|
||||
#include "CommonTrackPanelCell.h"
|
||||
|
||||
class Track;
|
||||
|
||||
class TrackVRulerControls /* not final */ : public CommonTrackPanelCell
|
||||
{
|
||||
public:
|
||||
TrackVRulerControls() : mpTrack(NULL) {}
|
||||
|
||||
virtual ~TrackVRulerControls() = 0;
|
||||
|
||||
Track *GetTrack() const { return mpTrack; }
|
||||
|
||||
// Define a default hit test method, just for message and cursor
|
||||
HitTestResult HitTest
|
||||
(const TrackPanelMouseEvent &event,
|
||||
const AudacityProject *pProject) override;
|
||||
|
||||
protected:
|
||||
|
||||
Track *FindTrack() override;
|
||||
|
||||
friend class Track;
|
||||
Track *mpTrack;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user