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 30 of file BatchProcessDialog.h.

Constructor & Destructor Documentation

◆ ApplyMacroDialog()

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

Definition at line 93 of file BatchProcessDialog.cpp.

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

References project.

◆ ~ApplyMacroDialog()

ApplyMacroDialog::~ApplyMacroDialog ( )
virtual

Definition at line 112 of file BatchProcessDialog.cpp.

113{
114}

Member Function Documentation

◆ ApplyMacroToProject() [1/2]

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

Definition at line 255 of file BatchProcessDialog.cpp.

256{
257 for( int i=0;i<mMacros->GetItemCount();i++){
258 wxString name = mMacros->GetItemText(i);
259 if( MacroIdOfName( name ) == MacroID ){
260 ApplyMacroToProject( i, bHasGui );
261 return;
262 }
263 }
264}
wxString name
Definition: TagsEditor.cpp:166
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 267 of file BatchProcessDialog.cpp.

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

References MacroCommands::ApplyMacro(), eIsCreating, audacity::BasicSettings::Flush(), gPrefs, mCatalog, mMacroCommands, mMacros, name, MacroCommands::ReadMacro(), S, wxDialogWrapper::SetName(), ExportProgressUI::Show(), audacity::BasicSettings::Write(), 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 45 of file BatchProcessDialog.h.

45{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 245 of file BatchProcessDialog.cpp.

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

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

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

References MacroCommands::ApplyMacro(), AudacityMessageBox(), ProjectFileManager::CloseProject(), CommandsListID, SelectUtilities::DoSelectAll(), eIsCreating, TrackList::empty(), FileNames::FindDefaultPath(), audacity::BasicSettings::Flush(), Importer::Get(), Clipboard::Get(), TrackList::Get(), Viewport::Get(), ProjectFileManager::Get(), ProjectManager::Get(), Importer::GetFileTypes(), FileDialog::GetPaths(), gPrefs, ProjectFileManager::Import(), mAbort, mCatalog, mMacroCommands, mMacros, mProject, name, ProjectFileManager::OpenProject(), project, MacroCommands::ReadMacro(), ProjectManager::ResetProjectToEmpty(), S, anonymous_namespace{wxCommandTargets.cpp}::scope, Importer::SelectDefaultOpenType(), FileDialog::SetFilterIndex(), wxDialogWrapper::SetName(), ExportProgressUI::Show(), FileDialog::ShowModal(), Verbatim(), audacity::BasicSettings::Write(), wxT(), XO(), XXO(), and Viewport::ZoomFitHorizontallyAndShowTrack().

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

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

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

497{
498 Hide();
499}

◆ OnHelp()

void ApplyMacroDialog::OnHelp ( wxCommandEvent &  event)
virtual

Definition at line 226 of file BatchProcessDialog.cpp.

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

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

Here is the call graph for this function:

◆ Populate()

void ApplyMacroDialog::Populate ( )

Definition at line 116 of file BatchProcessDialog.cpp.

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

References eIsCreating, gPrefs, mActiveMacro, min(), mMacros, PopulateMacros(), PopulateOrExchange(), audacity::BasicSettings::Read(), 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 192 of file BatchProcessDialog.cpp.

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

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

Referenced by OnApplyToFiles().

◆ mActiveMacro

wxString ApplyMacroDialog::mActiveMacro

◆ mbExpanded

bool ApplyMacroDialog::mbExpanded

◆ mCancel

wxButton* ApplyMacroDialog::mCancel

Definition at line 59 of file BatchProcessDialog.h.

◆ mCatalog

const MacroCommandsCatalog ApplyMacroDialog::mCatalog
protected

◆ mList

wxListCtrl* ApplyMacroDialog::mList

◆ mMacroBeingRenamed

wxString ApplyMacroDialog::mMacroBeingRenamed

◆ mMacroCommands

MacroCommands ApplyMacroDialog::mMacroCommands

◆ mMacros

wxListCtrl* ApplyMacroDialog::mMacros

◆ mOK

wxButton* ApplyMacroDialog::mOK

Definition at line 58 of file BatchProcessDialog.h.

◆ mProject

AudacityProject& ApplyMacroDialog::mProject
protected

Definition at line 67 of file BatchProcessDialog.h.

Referenced by OnApplyToFiles().

◆ mResize

wxButton* ApplyMacroDialog::mResize

Provides list of available commands.

Definition at line 57 of file BatchProcessDialog.h.

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

◆ mResults

wxTextCtrl* ApplyMacroDialog::mResults

Definition at line 60 of file BatchProcessDialog.h.


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