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::GroupItemGetRegistry () const
 
const std::shared_ptr< Registry::GroupItem > & 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::GroupItemmTop
 
std::vector< Registry::GroupItem * > mStack
 
Identifier mId
 
TranslatableString mCaption
 
std::unique_ptr< Registry::GroupItemmRegistry
 

Detailed Description

Definition at line 1088 of file WaveformView.cpp.

Constructor & Destructor Documentation

◆ WaveColorMenuTable()

WaveColorMenuTable::WaveColorMenuTable ( )
inline

Definition at line 1090 of file WaveformView.cpp.

1090: PopupMenuTable{ "WaveColor", XO("&Wave Color") } {}
#define XO(s)
Definition: Internat.h:31

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 1158 of file WaveformView.cpp.

1159{ 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 1111 of file WaveformView.cpp.

1112{
1113 mpData = static_cast<PlayableTrackControls::InitMenuData*>(pUserData);
1114}
PlayableTrackControls::InitMenuData * mpData

References mpData.

◆ Instance()

WaveColorMenuTable & WaveColorMenuTable::Instance ( )
static

Definition at line 1105 of file WaveformView.cpp.

1106{
1107 static WaveColorMenuTable instance;
1108 return instance;
1109}

◆ OnWaveColorChange()

void WaveColorMenuTable::OnWaveColorChange ( wxCommandEvent &  event)

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

Definition at line 1163 of file WaveformView.cpp.

1164{
1165 int id = event.GetId();
1166 wxASSERT(id >= OnInstrument1ID && id <= OnInstrument4ID);
1167 const auto pTrack = static_cast<WaveTrack*>(mpData->pTrack);
1168
1169 int newWaveColor = id - OnInstrument1ID;
1170
1171 AudacityProject *const project = &mpData->project;
1172
1173 for (auto channel : TrackList::Channels(pTrack))
1174 channel->SetWaveColorIndex(newWaveColor);
1175
1176 ProjectHistory::Get( *project )
1177 .PushState(XO("Changed '%s' to %s")
1178 .Format( pTrack->GetName(), GetWaveColorStr(newWaveColor) ),
1179 XO("WaveColor Change"));
1180
1181 using namespace RefreshCode;
1183}
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
Definition: Project.h:89
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:1539
A Track that contains audio waveform data.
Definition: WaveTrack.h:57
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 1097 of file WaveformView.cpp.

Referenced by InitUserData(), and OnWaveColorChange().

◆ OnInstrument1ID

int WaveColorMenuTable::OnInstrument1ID

Definition at line 1102 of file WaveformView.cpp.

Referenced by OnWaveColorChange().

◆ OnInstrument2ID

int WaveColorMenuTable::OnInstrument2ID

Definition at line 1102 of file WaveformView.cpp.

◆ OnInstrument3ID

int WaveColorMenuTable::OnInstrument3ID

Definition at line 1102 of file WaveformView.cpp.

◆ OnInstrument4ID

int WaveColorMenuTable::OnInstrument4ID

Definition at line 1102 of file WaveformView.cpp.

Referenced by OnWaveColorChange().


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