Audacity
3.2.0
src
tracks
playabletrack
wavetrack
ui
WaveTrackAffordanceHandle.cpp
Go to the documentation of this file.
1
/*!********************************************************************
2
*
3
Audacity: A Digital Audio Editor
4
5
@file WaveTrackAffordanceHandle.cpp
6
7
Vitaly Sverchinsky
8
9
**********************************************************************/
10
11
#include "
WaveTrackAffordanceHandle.h
"
12
#include "
WaveTrackAffordanceControls.h
"
13
#include "
WaveTrackView.h
"
14
#include "
ViewInfo.h
"
15
16
#include "
WaveClip.h
"
17
#include "../../../../RefreshCode.h"
18
#include "../../../../TrackPanelMouseEvent.h"
19
#include "
ProjectHistory.h
"
20
21
#include <wx/event.h>
22
23
WaveTrackAffordanceHandle::WaveTrackAffordanceHandle
(
const
std::shared_ptr<Track>& track,
const
std::shared_ptr<WaveClip>& target)
24
:
AffordanceHandle
(track), mTarget(target)
25
{ }
26
27
UIHandle::Result
WaveTrackAffordanceHandle::Click
(
const
TrackPanelMouseEvent
& event,
AudacityProject
* project)
28
{
29
Result
result =
RefreshCode::RefreshNone
;
30
if
(
WaveTrackView::ClipDetailsVisible
(*
mTarget
,
ViewInfo::Get
(*project), event.
rect
))
31
{
32
auto
affordanceControl = std::dynamic_pointer_cast<WaveTrackAffordanceControls>(event.
pCell
);
33
34
if
(affordanceControl)
35
{
36
result |= affordanceControl->OnAffordanceClick(event, project);
37
if
(!event.
event
.GetSkipped())
//event is "consumed"
38
return
result |
RefreshCode::Cancelled
;
39
event
.event.Skip(
false
);
40
}
41
}
42
return
result |
AffordanceHandle::Click
(event, project);
43
}
44
45
UIHandle::Result
WaveTrackAffordanceHandle::SelectAt
(
const
TrackPanelMouseEvent
& event,
AudacityProject
* project)
46
{
47
auto
& viewInfo =
ViewInfo::Get
(*project);
48
viewInfo.selectedRegion.setTimes(
mTarget
->GetPlayStartTime(),
mTarget
->GetPlayEndTime());
49
50
ProjectHistory::Get
(*project).
ModifyState
(
false
);
51
52
return
RefreshCode::RefreshAll
|
RefreshCode::Cancelled
;
53
}
ProjectHistory.h
ViewInfo.h
WaveClip.h
WaveTrackAffordanceControls.h
WaveTrackAffordanceHandle.h
WaveTrackView.h
AffordanceHandle
Definition:
AffordanceHandle.h:16
AffordanceHandle::Click
Result Click(const TrackPanelMouseEvent &evt, AudacityProject *pProject) override
Definition:
AffordanceHandle.cpp:63
AudacityProject
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
Definition:
Project.h:90
ProjectHistory::ModifyState
void ModifyState(bool bWantsAutoSave)
Definition:
ProjectHistory.cpp:92
ProjectHistory::Get
static ProjectHistory & Get(AudacityProject &project)
Definition:
ProjectHistory.cpp:22
UIHandle::Result
unsigned Result
Definition:
UIHandle.h:38
ViewInfo::Get
static ViewInfo & Get(AudacityProject &project)
Definition:
ViewInfo.cpp:235
WaveTrackAffordanceHandle::mTarget
std::shared_ptr< WaveClip > mTarget
Definition:
WaveTrackAffordanceHandle.h:20
WaveTrackAffordanceHandle::WaveTrackAffordanceHandle
WaveTrackAffordanceHandle(const std::shared_ptr< Track > &track, const std::shared_ptr< WaveClip > &target)
Definition:
WaveTrackAffordanceHandle.cpp:23
WaveTrackAffordanceHandle::Click
Result Click(const TrackPanelMouseEvent &event, AudacityProject *project) override
Definition:
WaveTrackAffordanceHandle.cpp:27
WaveTrackAffordanceHandle::SelectAt
UIHandle::Result SelectAt(const TrackPanelMouseEvent &event, AudacityProject *project) override
Definition:
WaveTrackAffordanceHandle.cpp:45
WaveTrackView::ClipDetailsVisible
static bool ClipDetailsVisible(const WaveClip &clip, const ZoomInfo &zoomInfo, const wxRect &viewRect)
Definition:
WaveTrackView.cpp:1408
RefreshCode::RefreshAll
@ RefreshAll
Definition:
RefreshCode.h:26
RefreshCode::RefreshNone
@ RefreshNone
Definition:
RefreshCode.h:21
RefreshCode::Cancelled
@ Cancelled
Definition:
RefreshCode.h:23
TrackPanelMouseEvent
Definition:
TrackPanelMouseEvent.h:46
TrackPanelMouseEvent::pCell
std::shared_ptr< TrackPanelCell > pCell
Definition:
TrackPanelMouseEvent.h:61
TrackPanelMouseEvent::rect
const wxRect & rect
Definition:
TrackPanelMouseEvent.h:59
TrackPanelMouseEvent::event
wxMouseEvent & event
Definition:
TrackPanelMouseEvent.h:58
Generated by
1.9.3