Audacity 3.2.0
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Attributes | List of all members
ApplyMacroDialog Class Reference

Shows progress in executing commands in MacroCommands. More...

#include <BatchProcessDialog.h>

Inheritance diagram for ApplyMacroDialog:
[legend]
Collaboration diagram for ApplyMacroDialog:
[legend]

Public Member Functions

 ApplyMacroDialog (wxWindow *parent, AudacityProject &project, bool bInherited=false)
 
virtual ~ApplyMacroDialog ()
 
void Populate ()
 
void PopulateOrExchange (ShuttleGui &S)
 Defines the dialog and does data exchange with it. More...
 
virtual void OnApplyToProject (wxCommandEvent &event)
 
virtual void OnApplyToFiles (wxCommandEvent &event)
 
virtual void OnCancel (wxCommandEvent &event)
 
virtual void OnHelp (wxCommandEvent &event)
 
virtual ManualPageID GetHelpPageName ()
 
void PopulateMacros ()
 
void ApplyMacroToProject (int iMacro, bool bHasGui=true)
 
void ApplyMacroToProject (const CommandID &MacroID, bool bHasGui=true)
 
- Public Member Functions inherited from wxDialogWrapper
 wxDialogWrapper ()
 
 wxDialogWrapper (wxWindow *parent, wxWindowID id, const TranslatableString &title, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE, const TranslatableString &name=XO("Dialog"))
 
bool Create (wxWindow *parent, wxWindowID id, const TranslatableString &title, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE, const TranslatableString &name=XO("Dialog"))
 
void SetTitle (const TranslatableString &title)
 
void SetLabel (const TranslatableString &title)
 
void SetName (const TranslatableString &title)
 
void SetName ()
 
- Public Member Functions inherited from wxTabTraversalWrapper< wxDialog >
 wxTabTraversalWrapper (Args &&... args)
 
 wxTabTraversalWrapper (const wxTabTraversalWrapper &)=delete
 
 wxTabTraversalWrapper (wxTabTraversalWrapper &&)=delete
 
wxTabTraversalWrapperoperator= (const wxTabTraversalWrapper &)=delete
 
wxTabTraversalWrapperoperator= (wxTabTraversalWrapper &&)=delete
 

Static Public Member Functions

static CommandID MacroIdOfName (const wxString &MacroName)
 

Public Attributes

wxListCtrl * mList
 
wxListCtrl * mMacros
 
MacroCommands mMacroCommands
 
wxButton * mResize
 Provides list of available commands. More...
 
wxButton * mOK
 
wxButton * mCancel
 
wxTextCtrl * mResults
 
bool mAbort
 
bool mbExpanded
 
wxString mActiveMacro
 
wxString mMacroBeingRenamed
 

Protected Attributes

AudacityProjectmProject
 
const MacroCommandsCatalog mCatalog
 

Detailed Description

Shows progress in executing commands in MacroCommands.

Definition at line 29 of file BatchProcessDialog.h.

Constructor & Destructor Documentation

◆ ApplyMacroDialog()

ApplyMacroDialog::ApplyMacroDialog ( wxWindow *  parent,
AudacityProject project,
bool  bInherited = false 
)

Definition at line 92 of file BatchProcessDialog.cpp.

93 :
94 wxDialogWrapper(parent, wxID_ANY, MacrosPaletteTitle,
95 wxDefaultPosition, wxDefaultSize,
96 wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
97 , mMacroCommands{ project }
98 , mProject{ project }
99 , mCatalog( &project )
100{
101 mAbort = false;
102 mbExpanded = false;
103 if( bInherited )
104 return;
105 SetLabel(MacrosPaletteTitle); // Provide visual label
106 SetName(MacrosPaletteTitle); // Provide audible label
107 Populate();
108
109}
#define MacrosPaletteTitle
MacroCommands mMacroCommands
AudacityProject & mProject
const MacroCommandsCatalog mCatalog
void SetLabel(const TranslatableString &title)

◆ ~ApplyMacroDialog()

ApplyMacroDialog::~ApplyMacroDialog ( )
virtual

Definition at line 111 of file BatchProcessDialog.cpp.

112{
113}

Member Function Documentation

◆ ApplyMacroToProject() [1/2]

void ApplyMacroDialog::ApplyMacroToProject ( const CommandID MacroID,
bool  bHasGui = true 
)

Definition at line 254 of file BatchProcessDialog.cpp.

255{
256 for( int i=0;i<mMacros->GetItemCount();i++){
257 wxString name = mMacros->GetItemText(i);
258 if( MacroIdOfName( name ) == MacroID ){
259 ApplyMacroToProject( i, bHasGui );
260 return;
261 }
262 }
263}
const TranslatableString name
Definition: Distortion.cpp:82
wxString MacroID
Definition: Menus.h:33
wxListCtrl * mMacros
void ApplyMacroToProject(int iMacro, bool bHasGui=true)
static CommandID MacroIdOfName(const wxString &MacroName)

References ApplyMacroToProject(), MacroIdOfName(), mMacros, and name.

Here is the call graph for this function:

◆ ApplyMacroToProject() [2/2]

void ApplyMacroDialog::ApplyMacroToProject ( int  iMacro,
bool  bHasGui = true 
)

Definition at line 266 of file BatchProcessDialog.cpp.

267{
268 wxString name = mMacros->GetItemText(iMacro);
269 if( name.empty() )
270 return;
271
272#ifdef OPTIONAL_ACTIVITY_WINDOW
273 wxDialogWrapper activityWin( this, wxID_ANY, GetTitle());
274 activityWin.SetName();
275 ShuttleGui S(&activityWin, eIsCreating);
276
277 S.StartHorizontalLay(wxCENTER, false);
278 {
279 S.StartStatic( {}, false); // deliberately not translated (!)
280 {
281 S.SetBorder(20);
282 S.AddFixedText(XO("Applying '%s' to current project")
283 .Format( name ) );
284 }
285 S.EndStatic();
286 }
287 S.EndHorizontalLay();
288
289 activityWin.Layout();
290 activityWin.Fit();
291 activityWin.CenterOnScreen();
292 // Avoid overlap with progress.
293 int x,y;
294 activityWin.GetPosition( &x, &y );
295 activityWin.Move(wxMax(0,x-300), 0);
296 activityWin.Show();
297
298 // Without this the newly created dialog may not show completely.
299 wxYield();
300#endif
301
302 //Since we intend to keep this dialog open, there is no reason to hide it
303 //and then show it again.
304 //if( bHasGui )
305 // Hide();
306
307 gPrefs->Write(wxT("/Batch/ActiveMacro"), name);
308 gPrefs->Flush();
309
311
312 // The disabler must get deleted before the EndModal() call. Otherwise,
313 // the menus on OSX will remain disabled.
314 bool success;
315 {
316#ifdef OPTIONAL_ACTIVITY_WINDOW
317 wxWindowDisabler wd(&activityWin);
318#endif
319 success = GuardedCall< bool >(
320 [this]{ return mMacroCommands.ApplyMacro(mCatalog); } );
321 }
322
323 if( !bHasGui )
324 return;
325
326 Show();
327 Raise();
328}
#define XO(s)
Definition: Internat.h:31
FileConfig * gPrefs
Definition: Prefs.cpp:71
@ eIsCreating
Definition: ShuttleGui.h:39
#define S(N)
Definition: ToChars.cpp:64
virtual bool Flush(bool bCurrentOnly=false) wxOVERRIDE
Definition: FileConfig.cpp:143
Abstract base class used in importing a file.
bool ApplyMacro(const MacroCommandsCatalog &catalog, const wxString &filename={})
wxString ReadMacro(const wxString &macro, wxWindow *parent=nullptr)
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI.
Definition: ShuttleGui.h:628

References MacroCommands::ApplyMacro(), eIsCreating, TranslatableString::empty(), FileConfig::Flush(), gPrefs, mCatalog, mMacroCommands, mMacros, name, MacroCommands::ReadMacro(), S, wxDialogWrapper::SetName(), and XO.

Referenced by ApplyMacroToProject(), PluginActions::Handler::OnApplyMacroDirectlyByName(), and OnApplyToProject().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetHelpPageName()

virtual ManualPageID ApplyMacroDialog::GetHelpPageName ( )
inlinevirtual

Reimplemented in MacrosWindow.

Definition at line 44 of file BatchProcessDialog.h.

44{return "Apply_Macro";}

Referenced by OnHelp().

Here is the caller graph for this function:

◆ MacroIdOfName()

CommandID ApplyMacroDialog::MacroIdOfName ( const wxString &  MacroName)
static

Definition at line 244 of file BatchProcessDialog.cpp.

245{
246 wxString Temp = MacroName;
247 Temp.Replace(" ","");
248 Temp = wxString( "Macro_" ) + Temp;
249 return Temp;
250}

Referenced by ApplyMacroToProject(), and anonymous_namespace{PluginMenus.cpp}::PopulateMacrosMenu().

Here is the caller graph for this function:

◆ OnApplyToFiles()

void ApplyMacroDialog::OnApplyToFiles ( wxCommandEvent &  event)
virtual

Reimplemented in MacrosWindow.

Definition at line 330 of file BatchProcessDialog.cpp.

331{
332 long item = mMacros->GetNextItem(-1,
333 wxLIST_NEXT_ALL,
334 wxLIST_STATE_SELECTED);
335 if (item == -1) {
336 AudacityMessageBox( XO("No macro selected") );
337 return;
338 }
339
340 wxString name = mMacros->GetItemText(item);
341 gPrefs->Write(wxT("/Batch/ActiveMacro"), name);
342 gPrefs->Flush();
343
344 AudacityProject *project = &mProject;
345 if (!TrackList::Get( *project ).empty()) {
347 XO("Please save and close the current project first.") );
348 return;
349 }
350
351 // This insures that we start with an empty and temporary project
354
355 auto prompt = XO("Select file(s) for batch processing...");
356
357 const auto fileTypes = Importer::Get().GetFileTypes();
358
359 auto path = FileNames::FindDefaultPath(FileNames::Operation::Open);
360 FileDialogWrapper dlog(this,
361 prompt,
362 path,
363 wxT(""),
364 fileTypes,
365 wxFD_OPEN | wxFD_MULTIPLE | wxRESIZE_BORDER);
366
367 dlog.SetFilterIndex( Importer::SelectDefaultOpenType( fileTypes ) );
368 if (dlog.ShowModal() != wxID_OK) {
369 Raise();
370 return;
371 }
372 Raise();
373
374 wxArrayString files;
375 dlog.GetPaths(files);
376
377 files.Sort();
378
379 wxDialogWrapper activityWin(this, wxID_ANY, Verbatim( GetTitle() ),
380 wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER
381 );
382 activityWin.SetName();
383 ShuttleGui S(&activityWin, eIsCreating);
384
385 wxListCtrl * fileList = NULL;
386
387 S.StartVerticalLay(1);
388 {
389 S.StartStatic(XO("Applying..."), 1);
390 {
391 auto imageList = std::make_unique<wxImageList>(9, 16);
392 imageList->Add(wxIcon(empty9x16_xpm));
393 imageList->Add(wxIcon(arrow_xpm));
394
395 fileList = S.Id(CommandsListID)
396 .Style(wxSUNKEN_BORDER | wxLC_REPORT | wxLC_HRULES | wxLC_VRULES |
397 wxLC_SINGLE_SEL)
398 .AddListControlReportMode( { XO("File") } );
399 // AssignImageList takes ownership
400 fileList->AssignImageList(imageList.release(), wxIMAGE_LIST_SMALL);
401 }
402 S.EndStatic();
403
404 S.StartHorizontalLay(wxCENTER, 0);
405 {
406 S.Id(wxID_CANCEL).AddButton(XXO("&Cancel"));
407 }
408 S.EndHorizontalLay();
409 }
410 S.EndVerticalLay();
411
412 int i;
413 for (i = 0; i < (int)files.size(); i++ ) {
414 fileList->InsertItem(i, files[i], i == 0);
415 }
416
417 // Set the column size for the files list.
418 fileList->SetColumnWidth(0, wxLIST_AUTOSIZE);
419
420 int width = wxMin( fileList->GetColumnWidth(0), 1000);
421 wxSize sz = fileList->GetClientSize();
422 if (sz.GetWidth() < width ) {
423 sz.SetWidth(width);
424 if (sz.GetHeight() < width *0.7)
425 sz.SetHeight(width * 0.7);
426 fileList->SetInitialSize(sz);
427 }
428
429 activityWin.Layout();
430 activityWin.Fit();
431 activityWin.CenterOnScreen();
432 // Avoid overlap with progress.
433 int x,y;
434 activityWin.GetPosition( &x, &y );
435 activityWin.Move(wxMax(0,x-300), 0);
436 activityWin.Show();
437
438 // Without this the newly created dialog may not show completely.
439 wxYield();
440 // We could avoid hiding, but there are many dialogs on screen,
441 // and hiding this one temporarily has some advantages.
442 Hide();
443
445 {
446 // Move global clipboard contents aside temporarily
447 Clipboard tempClipboard;
448 auto &globalClipboard = Clipboard::Get();
449
450 // DV: Macro invocation on file will reset the project to the
451 // initial state. There is a possibility, that clipboard will contain
452 // references to the data removed
453 if (globalClipboard.Project().lock().get() == project)
454 globalClipboard.Clear();
455
456 globalClipboard.Swap(tempClipboard);
457 auto cleanup = finally([&]{
458 globalClipboard.Swap(tempClipboard);
459 });
460
461 wxWindowDisabler wd(&activityWin);
462 for (i = 0; i < (int)files.size(); i++) {
463 if (i > 0) {
464 //Clear the arrow in previous item.
465 fileList->SetItemImage(i - 1, 0, 0);
466 }
467 fileList->SetItemImage(i, 1, 1);
468 fileList->EnsureVisible(i);
469
470 auto success = GuardedCall< bool >([&] {
471 ProjectFileManager::Get(*project).Import(files[i]);
472 ProjectWindow::Get(*project).ZoomAfterImport(nullptr);
475 return false;
476
477 if (!activityWin.IsShown() || mAbort)
478 return false;
479
480 return true;
481 });
482
483 // Ensure project is completely reset
485 // Bug2567:
486 // Must also destroy the clipboard, to be sure sample blocks are
487 // all freed and their ids can be reused safely in the next pass
488 globalClipboard.Clear();
489
490 if (!success)
491 break;
492 }
493 }
494
495 Show();
496 Raise();
497}
int AudacityMessageBox(const TranslatableString &message, const TranslatableString &caption, long style, wxWindow *parent, int x, int y)
#define CommandsListID
#define XXO(s)
Definition: Internat.h:44
TranslatableString Verbatim(wxString str)
Require calls to the one-argument constructor to go through this distinct global function name.
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
Definition: Project.h:89
static Clipboard & Get()
Definition: Clipboard.cpp:29
static Importer & Get()
Definition: Import.cpp:71
FileNames::FileTypes GetFileTypes(const FileNames::FileType &extraType={})
Definition: Import.cpp:179
static size_t SelectDefaultOpenType(const FileNames::FileTypes &fileTypes)
Definition: Import.cpp:244
bool Import(const FilePath &fileName, bool addToHistory=true)
static ProjectFileManager & Get(AudacityProject &project)
static ProjectManager & Get(AudacityProject &project)
void ResetProjectToEmpty()
void ZoomAfterImport(Track *pTrack)
static ProjectWindow & Get(AudacityProject &project)
bool empty() const
Definition: Track.cpp:1005
static TrackList & Get(AudacityProject &project)
Definition: Track.cpp:486
FILES_API FilePath FindDefaultPath(Operation op)
void DoSelectAll(AudacityProject &project)

References MacroCommands::ApplyMacro(), AudacityMessageBox(), ProjectFileManager::CloseProject(), CommandsListID, SelectUtilities::DoSelectAll(), eIsCreating, TrackList::empty(), FileNames::FindDefaultPath(), FileConfig::Flush(), Clipboard::Get(), Importer::Get(), TrackList::Get(), ProjectFileManager::Get(), ProjectManager::Get(), ProjectWindow::Get(), Importer::GetFileTypes(), FileDialog::GetPaths(), gPrefs, ProjectFileManager::Import(), mAbort, mCatalog, mMacroCommands, mMacros, mProject, name, ProjectFileManager::OpenProject(), MacroCommands::ReadMacro(), ProjectManager::ResetProjectToEmpty(), S, Importer::SelectDefaultOpenType(), FileDialog::SetFilterIndex(), wxDialogWrapper::SetName(), FileDialog::ShowModal(), Verbatim(), XO, XXO, and ProjectWindow::ZoomAfterImport().

Referenced by MacrosWindow::OnApplyToFiles().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OnApplyToProject()

void ApplyMacroDialog::OnApplyToProject ( wxCommandEvent &  event)
virtual

Reimplemented in MacrosWindow.

Definition at line 231 of file BatchProcessDialog.cpp.

232{
233 long item = mMacros->GetNextItem(-1,
234 wxLIST_NEXT_ALL,
235 wxLIST_STATE_SELECTED);
236
237 if (item == -1) {
238 AudacityMessageBox(XO("No macro selected"));
239 return;
240 }
241 ApplyMacroToProject( item );
242}

References ApplyMacroToProject(), AudacityMessageBox(), mMacros, and XO.

Referenced by MacrosWindow::OnApplyToProject().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ OnCancel()

void ApplyMacroDialog::OnCancel ( wxCommandEvent &  event)
virtual

Reimplemented in MacrosWindow.

Definition at line 499 of file BatchProcessDialog.cpp.

500{
501 Hide();
502}

◆ OnHelp()

void ApplyMacroDialog::OnHelp ( wxCommandEvent &  event)
virtual

Definition at line 225 of file BatchProcessDialog.cpp.

226{
227 const auto &page = GetHelpPageName();
228 HelpSystem::ShowHelp(this, page, true);
229}
virtual ManualPageID GetHelpPageName()
static void ShowHelp(wxWindow *parent, const FilePath &localFileName, const URLString &remoteURL, bool bModal=false, bool alwaysDefaultBrowser=false)
Definition: HelpSystem.cpp:237

References GetHelpPageName(), and HelpSystem::ShowHelp().

Here is the call graph for this function:

◆ Populate()

void ApplyMacroDialog::Populate ( )

Definition at line 115 of file BatchProcessDialog.cpp.

116{
117 //------------------------- Main section --------------------
118 ShuttleGui S(this, eIsCreating);
120 // ----------------------- End of main section --------------
121 // Get and validate the currently active macro
122 mActiveMacro = gPrefs->Read(wxT("/Batch/ActiveMacro"), wxT(""));
123 // Go populate the macros list.
125
126 Layout();
127 Fit();
128 wxSize sz = GetSize();
129 SetSizeHints( sz );
130
131 // Size and place window
132 SetSize(std::min(wxSystemSettings::GetMetric(wxSYS_SCREEN_X) * 3 / 4, sz.GetWidth()),
133 std::min(wxSystemSettings::GetMetric(wxSYS_SCREEN_Y) * 4 / 5, 400));
134
135 Center();
136
137 // Set the column size for the macros list.
138 sz = mMacros->GetClientSize();
139 mMacros->SetColumnWidth(0, sz.x);
140}
int min(int a, int b)
void PopulateOrExchange(ShuttleGui &S)
Defines the dialog and does data exchange with it.

References eIsCreating, gPrefs, mActiveMacro, min(), mMacros, PopulateMacros(), PopulateOrExchange(), and S.

Referenced by MacrosWindow::MacrosWindow(), and MacrosWindow::UpdateDisplay().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PopulateMacros()

void ApplyMacroDialog::PopulateMacros ( )

This clears and updates the contents of mMacros, the list of macros. It has cut-and-paste code from PopulateList, and both should call a shared function.

Definition at line 191 of file BatchProcessDialog.cpp.

192{
194 int i;
195
196 int topItem = mMacros->GetTopItem();
197 mMacros->DeleteAllItems();
198 for (i = 0; i < (int)names.size(); i++) {
199 mMacros->InsertItem(i, names[i]);
200 }
201
202 int item = mMacros->FindItem(-1, mActiveMacro);
203 bool bFound = item >=0;
204 if (item == -1) {
205 item = 0;
206 mActiveMacro = mMacros->GetItemText(0);
207 }
208
209 // Select the name in the list...this will fire an event.
210 mMacros->SetItemState(item, wxLIST_STATE_SELECTED | wxLIST_STATE_FOCUSED,
211 wxLIST_STATE_SELECTED | wxLIST_STATE_FOCUSED);
212
213 if( 0 <= topItem && topItem < (int)mMacros->GetItemCount())
214 {
215 // Workaround for scrolling being windows only.
216 // Try to scroll back to where we once were...
217 mMacros->EnsureVisible( (int)mMacros->GetItemCount() -1 );
218 mMacros->EnsureVisible( topItem );
219 // And then make sure whatever is selected is still visible...
220 if( bFound )
221 mMacros->EnsureVisible( item );
222 }
223}
static TranslatableStrings names
Definition: TagsEditor.cpp:151
static wxArrayString GetNames()

References MacroCommands::GetNames(), mActiveMacro, mMacroCommands, mMacros, and names.

Referenced by MacrosWindow::OnAdd(), MacrosWindow::OnImport(), MacrosWindow::OnMacrosEndEdit(), MacrosWindow::OnRemove(), Populate(), and MacrosWindow::Populate().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PopulateOrExchange()

void ApplyMacroDialog::PopulateOrExchange ( ShuttleGui S)

Defines the dialog and does data exchange with it.

Definition at line 143 of file BatchProcessDialog.cpp.

144{
145 /*i18n-hint: A macro is a sequence of commands that can be applied
146 * to one or more audio files.*/
147 S.StartStatic(XO("Select Macro"), 1);
148 {
149 mMacros = S.Id(MacrosListID).Prop(1)
150 .Style(wxSUNKEN_BORDER | wxLC_REPORT | wxLC_HRULES | wxLC_VRULES |
151 wxLC_SINGLE_SEL)
152 // i18n-hint: This is the heading for a column in the edit macros dialog
153 .AddListControlReportMode( { XO("Macro") } );
154 }
155 S.EndStatic();
156
157 S.StartHorizontalLay(wxEXPAND, 0);
158 {
159 S.AddPrompt( XXO("Apply Macro to:") );
160 wxButton* btn = S.Id(ApplyToProjectID)
161 .Name(XO("Apply macro to project"))
162 .AddButton(XXO("&Project"));
163#if wxUSE_ACCESSIBILITY
164 // so that name can be set on a standard control
165 btn->SetAccessible(safenew WindowAccessible(btn));
166#endif
167
168 btn = S.Id(ApplyToFilesID)
169 .Name(XO("Apply macro to files..."))
170 .AddButton(XXO("&Files..."));
171#if wxUSE_ACCESSIBILITY
172 // so that name can be set on a standard control
173 btn->SetAccessible(safenew WindowAccessible(btn));
174#endif
175 }
176 S.EndHorizontalLay();
177
178 S.StartHorizontalLay(wxEXPAND, 0);
179 {
180 /* i18n-hint: The Expand button makes the dialog bigger, with more in it */
181 mResize = S.Id(ExpandID).AddButton(XXO("&Expand"));
182 S.AddSpace( 10,10,1 );
183 S.AddStandardButtons( eCloseButton | eHelpButton);
184 }
185 S.EndHorizontalLay();
186}
#define ApplyToFilesID
#define MacrosListID
#define ApplyToProjectID
#define ExpandID
#define safenew
Definition: MemoryX.h:10
@ eCloseButton
Definition: ShuttleGui.h:607
@ eHelpButton
Definition: ShuttleGui.h:601
wxButton * mResize
Provides list of available commands.
An alternative to using wxWindowAccessible, which in wxWidgets 3.1.1 contained GetParent() which was ...

References ApplyToFilesID, ApplyToProjectID, eCloseButton, eHelpButton, ExpandID, MacrosListID, mMacros, mResize, S, safenew, XO, and XXO.

Referenced by Populate().

Here is the caller graph for this function:

Member Data Documentation

◆ mAbort

bool ApplyMacroDialog::mAbort

Definition at line 60 of file BatchProcessDialog.h.

Referenced by OnApplyToFiles().

◆ mActiveMacro

wxString ApplyMacroDialog::mActiveMacro

◆ mbExpanded

bool ApplyMacroDialog::mbExpanded

◆ mCancel

wxButton* ApplyMacroDialog::mCancel

Definition at line 58 of file BatchProcessDialog.h.

◆ mCatalog

const MacroCommandsCatalog ApplyMacroDialog::mCatalog
protected

Definition at line 67 of file BatchProcessDialog.h.

Referenced by MacrosWindow::AddItem(), ApplyMacroToProject(), and OnApplyToFiles().

◆ mList

wxListCtrl* ApplyMacroDialog::mList

◆ mMacroBeingRenamed

wxString ApplyMacroDialog::mMacroBeingRenamed

◆ mMacroCommands

MacroCommands ApplyMacroDialog::mMacroCommands

◆ mMacros

wxListCtrl* ApplyMacroDialog::mMacros

◆ mOK

wxButton* ApplyMacroDialog::mOK

Definition at line 57 of file BatchProcessDialog.h.

◆ mProject

AudacityProject& ApplyMacroDialog::mProject
protected

Definition at line 66 of file BatchProcessDialog.h.

Referenced by OnApplyToFiles().

◆ mResize

wxButton* ApplyMacroDialog::mResize

Provides list of available commands.

Definition at line 56 of file BatchProcessDialog.h.

Referenced by PopulateOrExchange(), MacrosWindow::PopulateOrExchange(), and MacrosWindow::UpdateDisplay().

◆ mResults

wxTextCtrl* ApplyMacroDialog::mResults

Definition at line 59 of file BatchProcessDialog.h.


The documentation for this class was generated from the following files: