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 90 of file BatchProcessDialog.cpp.

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

◆ ~ApplyMacroDialog()

ApplyMacroDialog::~ApplyMacroDialog ( )
virtual

Definition at line 109 of file BatchProcessDialog.cpp.

110{
111}

Member Function Documentation

◆ ApplyMacroToProject() [1/2]

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

Definition at line 252 of file BatchProcessDialog.cpp.

253{
254 for( int i=0;i<mMacros->GetItemCount();i++){
255 wxString name = mMacros->GetItemText(i);
256 if( MacroIdOfName( name ) == MacroID ){
257 ApplyMacroToProject( i, bHasGui );
258 return;
259 }
260 }
261}
const TranslatableString name
Definition: Distortion.cpp:74
wxString MacroID
Definition: Menus.h:32
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 264 of file BatchProcessDialog.cpp.

265{
266 wxString name = mMacros->GetItemText(iMacro);
267 if( name.empty() )
268 return;
269
270#ifdef OPTIONAL_ACTIVITY_WINDOW
271 wxDialogWrapper activityWin( this, wxID_ANY, GetTitle());
272 activityWin.SetName();
273 ShuttleGui S(&activityWin, eIsCreating);
274
275 S.StartHorizontalLay(wxCENTER, false);
276 {
277 S.StartStatic( {}, false); // deliberately not translated (!)
278 {
279 S.SetBorder(20);
280 S.AddFixedText(XO("Applying '%s' to current project")
281 .Format( name ) );
282 }
283 S.EndStatic();
284 }
285 S.EndHorizontalLay();
286
287 activityWin.Layout();
288 activityWin.Fit();
289 activityWin.CenterOnScreen();
290 // Avoid overlap with progress.
291 int x,y;
292 activityWin.GetPosition( &x, &y );
293 activityWin.Move(wxMax(0,x-300), 0);
294 activityWin.Show();
295
296 // Without this the newly created dialog may not show completely.
297 wxYield();
298#endif
299
300 //Since we intend to keep this dialog open, there is no reason to hide it
301 //and then show it again.
302 //if( bHasGui )
303 // Hide();
304
305 gPrefs->Write(wxT("/Batch/ActiveMacro"), name);
306 gPrefs->Flush();
307
309
310 // The disabler must get deleted before the EndModal() call. Otherwise,
311 // the menus on OSX will remain disabled.
312 bool success;
313 {
314#ifdef OPTIONAL_ACTIVITY_WINDOW
315 wxWindowDisabler wd(&activityWin);
316#endif
317 success = GuardedCall< bool >(
318 [this]{ return mMacroCommands.ApplyMacro(mCatalog); } );
319 }
320
321 if( !bHasGui )
322 return;
323
324 Show();
325 Raise();
326}
wxT("CloseDown"))
XO("Cut/Copy/Paste")
FileConfig * gPrefs
Definition: Prefs.cpp:70
@ 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(), wxT(), and XO().

Referenced by ApplyMacroToProject(), anonymous_namespace{BatchProcessDialog.cpp}::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 242 of file BatchProcessDialog.cpp.

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

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

Here is the caller graph for this function:

◆ OnApplyToFiles()

void ApplyMacroDialog::OnApplyToFiles ( wxCommandEvent &  event)
virtual

Reimplemented in MacrosWindow.

Definition at line 328 of file BatchProcessDialog.cpp.

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

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, scope, Importer::SelectDefaultOpenType(), FileDialog::SetFilterIndex(), wxDialogWrapper::SetName(), FileDialog::ShowModal(), Verbatim(), wxT(), 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 229 of file BatchProcessDialog.cpp.

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

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 493 of file BatchProcessDialog.cpp.

494{
495 Hide();
496}

◆ OnHelp()

void ApplyMacroDialog::OnHelp ( wxCommandEvent &  event)
virtual

Definition at line 223 of file BatchProcessDialog.cpp.

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

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

Here is the call graph for this function:

◆ Populate()

void ApplyMacroDialog::Populate ( )

Definition at line 113 of file BatchProcessDialog.cpp.

114{
115 //------------------------- Main section --------------------
116 ShuttleGui S(this, eIsCreating);
118 // ----------------------- End of main section --------------
119 // Get and validate the currently active macro
120 mActiveMacro = gPrefs->Read(wxT("/Batch/ActiveMacro"), wxT(""));
121 // Go populate the macros list.
123
124 Layout();
125 Fit();
126 wxSize sz = GetSize();
127 SetSizeHints( sz );
128
129 // Size and place window
130 SetSize(std::min(wxSystemSettings::GetMetric(wxSYS_SCREEN_X) * 3 / 4, sz.GetWidth()),
131 std::min(wxSystemSettings::GetMetric(wxSYS_SCREEN_Y) * 4 / 5, 400));
132
133 Center();
134
135 // Set the column size for the macros list.
136 sz = mMacros->GetClientSize();
137 mMacros->SetColumnWidth(0, sz.x);
138}
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(), S, and wxT().

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 189 of file BatchProcessDialog.cpp.

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

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