Audacity 3.2.0
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
anonymous_namespace{SpectrumView.cpp}::SpectrogramSettingsHandler Struct Reference
Inheritance diagram for anonymous_namespace{SpectrumView.cpp}::SpectrogramSettingsHandler:
[legend]
Collaboration diagram for anonymous_namespace{SpectrumView.cpp}::SpectrogramSettingsHandler:
[legend]

Public Member Functions

void OnSpectrogramSettings (wxCommandEvent &)
 
void InitUserData (void *pUserData) override
 Called before the menu items are appended. More...
 
- 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 SpectrogramSettingsHandlerInstance ()
 

Public Attributes

PlayableTrackControls::InitMenuDatampData {}
 

Detailed Description

Definition at line 934 of file SpectrumView.cpp.

Member Function Documentation

◆ InitUserData()

void anonymous_namespace{SpectrumView.cpp}::SpectrogramSettingsHandler::InitUserData ( void *  pUserData)
inlineoverridevirtual

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 945 of file SpectrumView.cpp.

◆ Instance()

static SpectrogramSettingsHandler & anonymous_namespace{SpectrumView.cpp}::SpectrogramSettingsHandler::Instance ( )
inlinestatic

Definition at line 937 of file SpectrumView.cpp.

938 {
939 static SpectrogramSettingsHandler instance;
940 return instance;
941 }

◆ OnSpectrogramSettings()

void anonymous_namespace{SpectrumView.cpp}::SpectrogramSettingsHandler::OnSpectrogramSettings ( wxCommandEvent &  )

Definition at line 951 of file SpectrumView.cpp.

952{
953 class ViewSettingsDialog final : public PrefsDialog
954 {
955 public:
956 ViewSettingsDialog(wxWindow *parent, AudacityProject &project,
958 int page)
959 : PrefsDialog(parent, &project, title, factories)
960 , mPage(page)
961 {
962 }
963
964 long GetPreferredPage() override
965 {
966 return mPage;
967 }
968
969 void SavePreferredPage() override
970 {
971 }
972
973 private:
974 const int mPage;
975 };
976
977 auto gAudioIO = AudioIOBase::Get();
978 if (gAudioIO->IsBusy()){
980 XO(
981"To change Spectrogram Settings, stop any\n playing or recording first."),
982 XO("Stop the Audio First"),
983 wxOK | wxICON_EXCLAMATION | wxCENTRE);
984 return;
985 }
986
987 WaveTrack *const pTrack = static_cast<WaveTrack*>(mpData->pTrack);
988
989 PrefsPanel::Factories factories;
990 // factories.push_back(WaveformPrefsFactory( pTrack ));
991 factories.push_back(SpectrumPrefsFactory( pTrack ));
992 const int page =
993 // (pTrack->GetDisplay() == WaveTrackViewConstants::Spectrum) ? 1 :
994 0;
995
996 auto title = XO("%s:").Format( pTrack->GetName() );
997 ViewSettingsDialog dialog(
998 mpData->pParent, mpData->project, title, factories, page);
999
1000 if (0 != dialog.ShowModal()) {
1001 // Redraw
1002 AudacityProject *const project = &mpData->project;
1003 ProjectHistory::Get( *project ).ModifyState(true);
1004 //Bug 1725 Toolbar was left greyed out.
1005 //This solution is overkill, but does fix the problem and is what the
1006 //prefs dialog normally does.
1009 }
1010}
int AudacityMessageBox(const TranslatableString &message, const TranslatableString &caption, long style, wxWindow *parent, int x, int y)
XO("Cut/Copy/Paste")
static const auto title
PrefsPanel::Factory SpectrumPrefsFactory(WaveTrack *wt)
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
Definition: Project.h:90
static AudioIOBase * Get()
Definition: AudioIOBase.cpp:91
static void RebuildAllMenuBars()
Definition: Menus.cpp:621
Dialog that shows the current PrefsPanel in a tabbed divider.
Definition: PrefsDialog.h:29
std::vector< PrefsPanel::PrefsNode > Factories
Definition: PrefsPanel.h:72
void ModifyState(bool bWantsAutoSave)
static ProjectHistory & Get(AudacityProject &project)
wxString GetName() const
Definition: Track.h:467
Holds a msgid for the translation catalog; may also bind format arguments.
A Track that contains audio waveform data.
Definition: WaveTrack.h:51

References AudacityMessageBox(), AudioIOBase::Get(), ProjectHistory::Get(), Track::GetName(), PrefsDialog::GetPreferredPage(), ProjectHistory::ModifyState(), PrefsDialog::PrefsDialog(), MenuCreator::RebuildAllMenuBars(), RefreshCode::RefreshAll, PrefsDialog::SavePreferredPage(), SpectrumPrefsFactory(), title, and XO().

Here is the call graph for this function:

Member Data Documentation

◆ mpData

PlayableTrackControls::InitMenuData* anonymous_namespace{SpectrumView.cpp}::SpectrogramSettingsHandler::mpData {}

Definition at line 936 of file SpectrumView.cpp.


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