Audacity
3.2.0
src
menus
TimelineMenus.cpp
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later */
2
/*!********************************************************************
3
4
Audacity: A Digital Audio Editor
5
6
TimelineMenus.cpp
7
8
Dmitry Vedenko
9
10
*/
11
#include "../AdornedRulerPanel.h"
12
13
#include "
Project.h
"
14
15
#include "../commands/CommandManager.h"
16
#include "../commands/CommandContext.h"
17
18
namespace
19
{
20
void
SetTimeDisplayMode
(
const
CommandContext
& context,
TimeDisplayMode
type)
21
{
22
auto
&
project
= context.
project
;
23
24
auto
&
ruler
=
AdornedRulerPanel::Get
(
project
);
25
ruler
.SetTimeDisplayMode(type);
26
27
CommandManager::Get
(
project
).
UpdateCheckmarks
(
project
);
28
}
29
30
void
OnSetMinutesSeconds
(
const
CommandContext
& context)
31
{
32
SetTimeDisplayMode
(context,
TimeDisplayMode::MinutesAndSeconds
);
33
}
34
35
void
OnSetBeatsAndMeasures
(
const
CommandContext
& context)
36
{
37
SetTimeDisplayMode
(context,
TimeDisplayMode::BeatsAndMeasures
);
38
}
39
40
TimeDisplayMode
GetTimeDisplayMode
(
const
AudacityProject
&
project
)
41
{
42
auto
& panel =
AdornedRulerPanel::Get
(
project
);
43
return
panel.GetTimeDisplayMode();
44
}
45
46
using namespace
MenuTable
;
47
48
BaseItemSharedPtr
ExtraSelectionMenu
()
49
{
50
using
Options
=
CommandManager::Options
;
51
static
BaseItemSharedPtr
menu {
Menu
(
52
wxT
(
"Timeline"
),
XXO
(
"&Timeline"
),
53
Command
(
54
wxT
(
"MinutesAndSeconds"
),
XXO
(
"Minutes and Seconds"
),
55
OnSetMinutesSeconds
,
AlwaysEnabledFlag
,
56
CommandManager::Options
{}.
CheckTest
(
57
[](
const
AudacityProject
&
project
) {
58
return
GetTimeDisplayMode
(
project
) ==
59
TimeDisplayMode::MinutesAndSeconds
;
60
})),
61
Command
(
62
wxT
(
"BeatsAndMeasures"
),
XXO
(
"Beats and Measures"
),
63
OnSetBeatsAndMeasures
,
AlwaysEnabledFlag
,
64
CommandManager::Options
{}.
CheckTest
(
65
[](
const
AudacityProject
&
project
) {
66
return
GetTimeDisplayMode
(
project
) ==
67
TimeDisplayMode::BeatsAndMeasures
;
68
}))) };
69
return
menu;
70
}
71
72
AttachedItem
sAttachment2
{
wxT
(
"Optional/Extra/Part1"
),
73
Indirect
(
ExtraSelectionMenu
()) };
74
75
}
// namespace
wxT
wxT("CloseDown"))
sAttachment2
AttachedItem sAttachment2
Definition:
BatchProcessDialog.cpp:1590
AlwaysEnabledFlag
constexpr CommandFlag AlwaysEnabledFlag
Definition:
CommandFlag.h:34
XXO
XXO("&Cut/Copy/Paste Toolbar")
Project.h
project
const auto project
Definition:
TestWaveTrackMaker.cpp:18
TimeDisplayMode
TimeDisplayMode
Definition:
TimeDisplayMode.h:19
TimeDisplayMode::BeatsAndMeasures
@ BeatsAndMeasures
TimeDisplayMode::MinutesAndSeconds
@ MinutesAndSeconds
AdornedRulerPanel::Get
static AdornedRulerPanel & Get(AudacityProject &project)
Definition:
AdornedRulerPanel.cpp:1263
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
CommandContext
CommandContext provides additional information to an 'Apply()' command. It provides the project,...
Definition:
CommandContext.h:34
CommandContext::project
AudacityProject & project
Definition:
CommandContext.h:64
CommandManager::UpdateCheckmarks
void UpdateCheckmarks(AudacityProject &project)
Definition:
CommandManager.cpp:520
CommandManager::Get
static CommandManager & Get(AudacityProject &project)
Definition:
CommandManager.cpp:206
MenuTable
Definition:
CommandManager.h:423
MenuTable::Menu
constexpr auto Menu
Items will appear in a main toolbar menu or in a sub-menu.
Definition:
CommandManager.h:667
MenuTable::Command
constexpr auto Command
Definition:
CommandManager.h:678
Registry::Indirect
std::unique_ptr< detail::IndirectItem< Item > > Indirect(const std::shared_ptr< Item > &ptr)
A convenience function.
Definition:
Registry.h:113
Registry::BaseItemSharedPtr
std::shared_ptr< BaseItem > BaseItemSharedPtr
Definition:
Registry.h:78
anonymous_namespace{AdornedRulerPanel.cpp}::Options
CommandManager::Options Options
Definition:
AdornedRulerPanel.cpp:2919
anonymous_namespace{TimeTrackVRulerControls.cpp}::ruler
Ruler & ruler()
Definition:
TimeTrackVRulerControls.cpp:38
anonymous_namespace{TimelineMenus.cpp}::ExtraSelectionMenu
BaseItemSharedPtr ExtraSelectionMenu()
Definition:
TimelineMenus.cpp:48
anonymous_namespace{TimelineMenus.cpp}::OnSetBeatsAndMeasures
void OnSetBeatsAndMeasures(const CommandContext &context)
Definition:
TimelineMenus.cpp:35
anonymous_namespace{TimelineMenus.cpp}::GetTimeDisplayMode
TimeDisplayMode GetTimeDisplayMode(const AudacityProject &project)
Definition:
TimelineMenus.cpp:40
anonymous_namespace{TimelineMenus.cpp}::SetTimeDisplayMode
void SetTimeDisplayMode(const CommandContext &context, TimeDisplayMode type)
Definition:
TimelineMenus.cpp:20
anonymous_namespace{TimelineMenus.cpp}::OnSetMinutesSeconds
void OnSetMinutesSeconds(const CommandContext &context)
Definition:
TimelineMenus.cpp:30
CommandManager::Options
Definition:
CommandManager.h:101
CommandManager::Options::CheckTest
Options && CheckTest(const CheckFn &fn) &&
Definition:
CommandManager.h:138
MenuTable::AttachedItem
Definition:
CommandManager.h:696
Generated by
1.9.3