Audacity 3.2.0
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
WaveColorMenuTable Struct Reference
Inheritance diagram for WaveColorMenuTable:
[legend]
Collaboration diagram for WaveColorMenuTable:
[legend]

Public Member Functions

 WaveColorMenuTable ()
 
 DECLARE_POPUP_MENU (WaveColorMenuTable)
 
void InitUserData (void *pUserData) override
 Called before the menu items are appended. More...
 
int IdOfWaveColor (int WaveColor)
 Converts a WaveColor enumeration to a wxWidgets menu item Id. More...
 
void OnWaveColorChange (wxCommandEvent &event)
 
- Public Member Functions inherited from PopupMenuTable
 PopupMenuTable (const Identifier &id, const TranslatableString &caption={})
 
const IdentifierId () const
 
const TranslatableStringCaption () const
 
const Registry::GroupItemBaseGetRegistry () const
 
const std::shared_ptr< Registry::GroupItemBase > & Get (void *pUserData)
 
void Clear ()
 
- Public Member Functions inherited from PopupMenuHandler
 PopupMenuHandler ()=default
 
 PopupMenuHandler (const PopupMenuHandler &)=delete
 
PopupMenuHandleroperator= (const PopupMenuHandler &)=delete
 
virtual void InitUserData (void *pUserData)=0
 Called before the menu items are appended. More...
 

Static Public Member Functions

static WaveColorMenuTableInstance ()
 
- Static Public Member Functions inherited from PopupMenuTable
static std::unique_ptr< PopupMenuBuildMenu (PopupMenuTable *pTable, void *pUserData=NULL)
 
static void ExtendMenu (PopupMenu &menu, PopupMenuTable &otherTable)
 
template<typename Table >
static Registry::BaseItemPtr Computed (const std::function< Registry::BaseItemPtr(Table &) > &factory)
 

Public Attributes

PlayableTrackControls::InitMenuDatampData {}
 
int OnInstrument1ID
 
int OnInstrument2ID
 
int OnInstrument3ID
 
int OnInstrument4ID
 

Additional Inherited Members

- Public Types inherited from PopupMenuTable
using Entry = PopupMenuTableEntry
 
- Protected Member Functions inherited from PopupMenuTable
virtual void Populate ()=0
 
void Append (Registry::BaseItemPtr pItem)
 
void Append (const Identifier &stringId, PopupMenuTableEntry::Type type, int id, const TranslatableString &string, wxCommandEventFunction memFn, const PopupMenuTableEntry::InitFunction &init)
 
void AppendItem (const Identifier &stringId, int id, const TranslatableString &string, wxCommandEventFunction memFn, const PopupMenuTableEntry::InitFunction &init={})
 
void AppendRadioItem (const Identifier &stringId, int id, const TranslatableString &string, wxCommandEventFunction memFn, const PopupMenuTableEntry::InitFunction &init={})
 
void AppendCheckItem (const Identifier &stringId, int id, const TranslatableString &string, wxCommandEventFunction memFn, const PopupMenuTableEntry::InitFunction &init={})
 
void BeginSection (const Identifier &name)
 
void EndSection ()
 
- Static Protected Member Functions inherited from PopupMenuTable
static TranslatableString MakeLabel (const TranslatableString &label, bool useExtra, const TranslatableString &extra)
 
- Protected Attributes inherited from PopupMenuTable
std::shared_ptr< Registry::GroupItemBasemTop
 
std::vector< Registry::GroupItemBase * > mStack
 
Identifier mId
 
TranslatableString mCaption
 
std::unique_ptr< Registry::GroupItemBasemRegistry
 

Detailed Description

Definition at line 1094 of file WaveformView.cpp.

Constructor & Destructor Documentation

◆ WaveColorMenuTable()

WaveColorMenuTable::WaveColorMenuTable ( )
inline

Definition at line 1096 of file WaveformView.cpp.

1096: PopupMenuTable{ "WaveColor", XO("&Wave Color") } {}
XO("Cut/Copy/Paste")

Member Function Documentation

◆ DECLARE_POPUP_MENU()

WaveColorMenuTable::DECLARE_POPUP_MENU ( WaveColorMenuTable  )

◆ IdOfWaveColor()

int WaveColorMenuTable::IdOfWaveColor ( int  WaveColor)

Converts a WaveColor enumeration to a wxWidgets menu item Id.

Definition at line 1164 of file WaveformView.cpp.

1165{ return OnInstrument1ID + WaveColor;}

◆ InitUserData()

void WaveColorMenuTable::InitUserData ( void *  pUserData)
overridevirtual

Called before the menu items are appended.

Store context data, if needed. May be called more than once before the menu opens. Pointer remains valid for the duration of any callback, if PopupMenuTable::BuildMenu() is called and the result's Popup() is called before any other menus are built.

Implements PopupMenuHandler.

Definition at line 1117 of file WaveformView.cpp.

1118{
1119 mpData = static_cast<PlayableTrackControls::InitMenuData*>(pUserData);
1120}
PlayableTrackControls::InitMenuData * mpData

References mpData.

◆ Instance()

WaveColorMenuTable & WaveColorMenuTable::Instance ( )
static

Definition at line 1111 of file WaveformView.cpp.

1112{
1113 static WaveColorMenuTable instance;
1114 return instance;
1115}

◆ OnWaveColorChange()

void WaveColorMenuTable::OnWaveColorChange ( wxCommandEvent &  event)

Handles the selection from the WaveColor submenu of the track menu.

Definition at line 1169 of file WaveformView.cpp.

1170{
1171 int id = event.GetId();
1172 wxASSERT(id >= OnInstrument1ID && id <= OnInstrument4ID);
1173 const auto pTrack = static_cast<WaveTrack*>(mpData->pTrack);
1174
1175 int newWaveColor = id - OnInstrument1ID;
1176
1177 AudacityProject *const project = &mpData->project;
1178
1179 for (auto channel : TrackList::Channels(pTrack))
1180 channel->SetWaveColorIndex(newWaveColor);
1181
1182 ProjectHistory::Get( *project )
1183 .PushState(XO("Changed '%s' to %s")
1184 .Format( pTrack->GetName(), GetWaveColorStr(newWaveColor) ),
1185 XO("WaveColor Change"));
1186
1187 using namespace RefreshCode;
1189}
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
Definition: Project.h:90
Abstract base class used in importing a file.
void PushState(const TranslatableString &desc, const TranslatableString &shortDesc)
static ProjectHistory & Get(AudacityProject &project)
static auto Channels(TrackType *pTrack) -> TrackIterRange< TrackType >
Definition: Track.h:1406
A Track that contains audio waveform data.
Definition: WaveTrack.h:51
Namespace containing an enum 'what to do on a refresh?'.
Definition: RefreshCode.h:16
const TranslatableString GetWaveColorStr(int colorIndex)

References TrackList::Channels(), RefreshCode::FixScrollbars, ProjectHistory::Get(), anonymous_namespace{WaveformView.cpp}::GetWaveColorStr(), mpData, OnInstrument1ID, OnInstrument4ID, CommonTrackControls::InitMenuData::project, CommonTrackControls::InitMenuData::pTrack, ProjectHistory::PushState(), RefreshCode::RefreshAll, CommonTrackControls::InitMenuData::result, and XO().

Here is the call graph for this function:

Member Data Documentation

◆ mpData

PlayableTrackControls::InitMenuData* WaveColorMenuTable::mpData {}

Definition at line 1103 of file WaveformView.cpp.

Referenced by InitUserData(), and OnWaveColorChange().

◆ OnInstrument1ID

int WaveColorMenuTable::OnInstrument1ID

Definition at line 1108 of file WaveformView.cpp.

Referenced by OnWaveColorChange().

◆ OnInstrument2ID

int WaveColorMenuTable::OnInstrument2ID

Definition at line 1108 of file WaveformView.cpp.

◆ OnInstrument3ID

int WaveColorMenuTable::OnInstrument3ID

Definition at line 1108 of file WaveformView.cpp.

◆ OnInstrument4ID

int WaveColorMenuTable::OnInstrument4ID

Definition at line 1108 of file WaveformView.cpp.

Referenced by OnWaveColorChange().


The documentation for this struct was generated from the following file: