Audacity  2.2.2
Public Member Functions | Public Attributes | List of all members
BatchProcessDialog Class Reference

Shows progress in executing commands in BatchCommands. More...

#include <BatchProcessDialog.h>

Inheritance diagram for BatchProcessDialog:
wxDialogWrapper wxTabTraversalWrapper< wxDialog > EditChainsDialog

Public Member Functions

 BatchProcessDialog (wxWindow *parent, bool bInherited=false)
 
virtual ~BatchProcessDialog ()
 
virtual void Populate ()
 
virtual 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)
 
- Public Member Functions inherited from wxDialogWrapper
 wxDialogWrapper ()
 
 wxDialogWrapper (wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE, const wxString &name=_("Dialog"))
 
bool Create (wxWindow *parent, wxWindowID id, const wxString &title, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE, const wxString &name=_("Dialog"))
 
- Public Member Functions inherited from wxTabTraversalWrapper< wxDialog >
 wxTabTraversalWrapper (Args &&...args)
 

Public Attributes

wxListCtrl * mList
 
wxListCtrl * mChains
 
BatchCommands mBatchCommands
 
wxButton * mOK
 Provides list of available commands. More...
 
wxButton * mCancel
 
wxTextCtrl * mResults
 
bool mAbort
 

Detailed Description

Shows progress in executing commands in BatchCommands.

Definition at line 42 of file BatchProcessDialog.h.

Constructor & Destructor Documentation

BatchProcessDialog::BatchProcessDialog ( wxWindow *  parent,
bool  bInherited = false 
)

Definition at line 68 of file BatchProcessDialog.cpp.

References _().

68  :
69  wxDialogWrapper(parent, wxID_ANY, _("Apply Chain"),
70  wxDefaultPosition, wxDefaultSize,
71  wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
72 {
73  //AudacityProject * p = GetActiveProject();
74  mAbort = false;
75  if( bInherited )
76  return;
77  SetLabel(_("Apply Chain")); // Provide visual label
78  SetName(_("Apply Chain")); // Provide audible label
79  Populate();
80 
81 }
_("Move Track &Down")+wxT("\t")+(GetActiveProject() -> GetCommandManager() ->GetKeyFromName(wxT("TrackMoveDown")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveTopID, _("Move Track to &Top")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveTop")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveBottomID, _("Move Track to &Bottom")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveBottom")).Raw()), OnMoveTrack) void TrackMenuTable::OnSetName(wxCommandEvent &)
BatchProcessDialog::~BatchProcessDialog ( )
virtual

Definition at line 83 of file BatchProcessDialog.cpp.

84 {
85 }

Member Function Documentation

void BatchProcessDialog::OnApplyToFiles ( wxCommandEvent &  event)
virtual

Reimplemented in EditChainsDialog.

Definition at line 225 of file BatchProcessDialog.cpp.

References _(), ShuttleGuiBase::AddButton(), ShuttleGuiBase::AddListControlReportMode(), BatchCommands::ApplyChain(), AudacityMessageBox(), UndoManager::ClearStates(), CommandsListID, eIsCreating, ShuttleGuiBase::EndHorizontalLay(), ShuttleGuiBase::EndStatic(), ShuttleGuiBase::EndVerticalLay(), FileNames::FindDefaultPath(), format, Format::formatExtensions, Format::formatName, Importer::Get(), GetActiveProject(), AudacityProject::GetIsEmpty(), FileDialog::GetPaths(), Importer::GetSupportedImportFormats(), AudacityProject::GetUndoManager(), gPrefs, ShuttleGui::Id(), AudacityProject::Import(), mAbort, mBatchCommands, mChains, mList, name, AudacityProject::OnRemoveTracks(), AudacityProject::OnSelectAll(), FileNames::Open, BatchCommands::ReadChain(), safenew, FileDialog::SetFilterIndex(), ShuttleGuiBase::SetStyle(), FileDialog::ShowModal(), ShuttleGuiBase::StartHorizontalLay(), ShuttleGuiBase::StartStatic(), ShuttleGuiBase::StartVerticalLay(), wxDialogWrapper::wxDialogWrapper(), and AudacityProject::ZoomAfterImport().

Referenced by EditChainsDialog::OnApplyToFiles().

226 {
227  long item = mChains->GetNextItem(-1,
228  wxLIST_NEXT_ALL,
229  wxLIST_STATE_SELECTED);
230  if (item == -1) {
231  AudacityMessageBox(_("No chain selected"));
232  return;
233  }
234 
235  wxString name = mChains->GetItemText(item);
236  gPrefs->Write(wxT("/Batch/ActiveChain"), name);
237  gPrefs->Flush();
238 
239  AudacityProject *project = GetActiveProject();
240  if (!project->GetIsEmpty()) {
241  AudacityMessageBox(_("Please save and close the current project first."));
242  return;
243  }
244 
245  wxString prompt = _("Select file(s) for batch processing...");
246 
247  FormatList l;
248  wxString filter;
249  wxString all;
250 
252  for (const auto &format : l) {
253  const Format *f = &format;
254 
255  wxString newfilter = f->formatName + wxT("|");
256  for (size_t i = 0; i < f->formatExtensions.size(); i++) {
257  if (!newfilter.Contains(wxT("*.") + f->formatExtensions[i] + wxT(";")))
258  newfilter += wxT("*.") + f->formatExtensions[i] + wxT(";");
259  if (!all.Contains(wxT("*.") + f->formatExtensions[i] + wxT(";")))
260  all += wxT("*.") + f->formatExtensions[i] + wxT(";");
261  }
262  newfilter.RemoveLast(1);
263  filter += newfilter;
264  filter += wxT("|");
265  }
266  all.RemoveLast(1);
267  filter.RemoveLast(1);
268 
269  wxString mask = _("All files|*|All supported files|") +
270  all + wxT("|") +
271  filter;
272 
273  wxString type = gPrefs->Read(wxT("/DefaultOpenType"),mask.BeforeFirst(wxT('|')));
274  // Convert the type to the filter index
275  int index = mask.First(type + wxT("|"));
276  if (index == wxNOT_FOUND) {
277  index = 0;
278  }
279  else {
280  index = mask.Left(index).Freq(wxT('|')) / 2;
281  if (index < 0) {
282  index = 0;
283  }
284  }
285 
287  FileDialogWrapper dlog(this,
288  prompt,
289  path,
290  wxT(""),
291  mask,
292  wxFD_OPEN | wxFD_MULTIPLE | wxRESIZE_BORDER);
293 
294  dlog.SetFilterIndex(index);
295  if (dlog.ShowModal() != wxID_OK) {
296  return;
297  }
298 
299  wxArrayString files;
300  dlog.GetPaths(files);
301 
302  files.Sort();
303 
304  wxDialog * pD = safenew wxDialogWrapper(this, wxID_ANY, GetTitle());
305  pD->SetName(pD->GetTitle());
306  ShuttleGui S(pD, eIsCreating);
307 
308  S.StartVerticalLay(false);
309  {
310  S.StartStatic(_("Applying..."), 1);
311  {
312  auto imageList = std::make_unique<wxImageList>(9, 16);
313  imageList->Add(wxIcon(empty9x16_xpm));
314  imageList->Add(wxIcon(arrow_xpm));
315 
316  S.SetStyle(wxSUNKEN_BORDER | wxLC_REPORT | wxLC_HRULES | wxLC_VRULES |
317  wxLC_SINGLE_SEL);
318  mList = S.Id(CommandsListID).AddListControlReportMode();
319  // AssignImageList takes ownership
320  mList->AssignImageList(imageList.release(), wxIMAGE_LIST_SMALL);
321  mList->InsertColumn(0, _("File"), wxLIST_FORMAT_LEFT);
322  }
323  S.EndStatic();
324 
325  S.StartHorizontalLay(wxCENTER, false);
326  {
327  S.Id(wxID_CANCEL).AddButton(_("&Cancel"));
328  }
329  S.EndHorizontalLay();
330  }
331  S.EndVerticalLay();
332 
333  int i;
334  for (i = 0; i < (int)files.GetCount(); i++ ) {
335  mList->InsertItem(i, files[i], i == 0);
336  }
337 
338  // Set the column size for the files list.
339  mList->SetColumnWidth(0, wxLIST_AUTOSIZE);
340 
341  int width = mList->GetColumnWidth(0);
342  wxSize sz = mList->GetClientSize();
343  if (width > sz.GetWidth() && width < 500) {
344  sz.SetWidth(width);
345  mList->SetInitialSize(sz);
346  }
347 
348  pD->Layout();
349  pD->Fit();
350  pD->SetSizeHints(pD->GetSize());
351  pD->CenterOnScreen();
352  pD->Move(-1, 0);
353  pD->Show();
354  Hide();
355 
357  for (i = 0; i < (int)files.GetCount(); i++) {
358  wxWindowDisabler wd(pD);
359  if (i > 0) {
360  //Clear the arrow in previous item.
361  mList->SetItemImage(i - 1, 0, 0);
362  }
363  mList->SetItemImage(i, 1, 1);
364  mList->EnsureVisible(i);
365 
366  auto success = GuardedCall< bool >( [&] {
367  project->Import(files[i]);
368  project->ZoomAfterImport(nullptr);
369  project->OnSelectAll(*project);
370  if (!mBatchCommands.ApplyChain())
371  return false;
372 
373  if (!pD->IsShown() || mAbort)
374  return false;
375 
376  return true;
377  } );
378 
379  if (!success)
380  break;
381 
382  UndoManager *um = project->GetUndoManager();
383  um->ClearStates();
384  project->OnSelectAll(*project);
385  project->OnRemoveTracks(*project);
386  }
387  project->OnRemoveTracks(*project);
388 
389  // Under Linux an EndModal() here crashes (Bug #1221).
390  // But sending a close message instead is OK.
391 #if !defined(__WXMAC__)
392  wxCloseEvent Evt;
393  Evt.SetId( wxID_OK );
394  Evt.SetEventObject( this);
395  ProcessWindowEvent( Evt );
396 #else
397  EndModal(wxID_OK);
398 #endif
399 
400  // Raise myself again, and the parent window with me
401  Show();
402 }
bool ReadChain(const wxString &chain)
static wxString FindDefaultPath(Operation op)
Definition: FileNames.cpp:384
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI...
Definition: ShuttleGui.h:371
Abstract base class used in importing a file.
Definition: Import.h:32
#define CommandsListID
int AudacityMessageBox(const wxString &message, const wxString &caption=AudacityMessageBoxCaptionStr(), long style=wxOK|wxCENTRE, wxWindow *parent=NULL, int x=wxDefaultCoord, int y=wxDefaultCoord)
Definition: ErrorDialog.h:92
void ClearStates()
void OnSelectAll(const CommandContext &context)
Definition: Menus.cpp:6149
#define safenew
Definition: Audacity.h:223
void GetSupportedImportFormats(FormatList *formatList)
Definition: Import.cpp:123
AudacityProject provides the main window, with tools and tracks contained within it.
Definition: Project.h:174
bool GetIsEmpty()
Definition: Project.cpp:1477
wxFileConfig * gPrefs
Definition: Prefs.cpp:72
void ZoomAfterImport(Track *pTrack)
Definition: Project.cpp:4235
int format
Definition: ExportPCM.cpp:56
bool Import(const wxString &fileName, WaveTrackArray *pTrackArray=NULL)
Definition: Project.cpp:4247
BatchCommands mBatchCommands
bool ApplyChain(const wxString &filename=wxT(""))
const wxChar * name
Definition: Distortion.cpp:94
UndoManager * GetUndoManager()
Definition: Project.h:193
AUDACITY_DLL_API AudacityProject * GetActiveProject()
Definition: Project.cpp:300
wxArrayString formatExtensions
Definition: Import.h:35
_("Move Track &Down")+wxT("\t")+(GetActiveProject() -> GetCommandManager() ->GetKeyFromName(wxT("TrackMoveDown")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveTopID, _("Move Track to &Top")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveTop")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveBottomID, _("Move Track to &Bottom")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveBottom")).Raw()), OnMoveTrack) void TrackMenuTable::OnSetName(wxCommandEvent &)
Works with HistoryWindow to provide the Undo functionality.
Definition: UndoManager.h:93
static Importer & Get()
Definition: Import.cpp:71
void OnRemoveTracks(const CommandContext &context)
Definition: Menus.cpp:8445
std::vector< Format > FormatList
Definition: Import.h:46
wxString formatName
Definition: Import.h:34
void BatchProcessDialog::OnApplyToProject ( wxCommandEvent &  event)
virtual

Reimplemented in EditChainsDialog.

Definition at line 151 of file BatchProcessDialog.cpp.

References _(), ShuttleGuiBase::AddFixedText(), BatchCommands::ApplyChain(), AudacityMessageBox(), eIsCreating, ShuttleGuiBase::EndHorizontalLay(), ShuttleGuiBase::EndStatic(), gPrefs, mBatchCommands, mChains, name, BatchCommands::ReadChain(), safenew, ShuttleGuiBase::SetBorder(), ShuttleGuiBase::StartHorizontalLay(), ShuttleGuiBase::StartStatic(), and wxDialogWrapper::wxDialogWrapper().

Referenced by EditChainsDialog::OnApplyToProject().

152 {
153  long item = mChains->GetNextItem(-1,
154  wxLIST_NEXT_ALL,
155  wxLIST_STATE_SELECTED);
156  if (item == -1) {
157  AudacityMessageBox(_("No chain selected"));
158  return;
159  }
160  wxString name = mChains->GetItemText(item);
161 
162  wxDialog * pD = safenew wxDialogWrapper(this, wxID_ANY, GetTitle());
163  pD->SetName(pD->GetTitle());
164  ShuttleGui S(pD, eIsCreating);
165 
166  S.StartHorizontalLay(wxCENTER, false);
167  {
168  S.StartStatic( {}, false); // deliberately not translated (!)
169  {
170  S.SetBorder(20);
171  S.AddFixedText(wxString::Format(_("Applying '%s' to current project"),
172  name));
173  }
174  S.EndStatic();
175  }
176  S.EndHorizontalLay();
177 
178  pD->Layout();
179  pD->Fit();
180  pD->CenterOnScreen();
181  pD->Move(-1, 0);
182  pD->Show();
183 
184  // The Hide() on the next line seems to tickle a bug in wx3,
185  // giving rise to our Bug #1221. The problem is that on Linux
186  // the 'Hide' converts us from a Modal into a regular dialog,
187  // as far as closing is concerned. On Linux we can't close with
188  // EndModal() anymore after this.
189  Hide();
190 
191  gPrefs->Write(wxT("/Batch/ActiveChain"), name);
192  gPrefs->Flush();
193 
195 
196  // The disabler must get deleted before the EndModal() call. Otherwise,
197  // the menus on OSX will remain disabled.
198  bool success;
199  {
200  wxWindowDisabler wd(pD);
201  success = GuardedCall< bool >(
202  [this]{ return mBatchCommands.ApplyChain(); } );
203  }
204 
205  if (!success) {
206  Show();
207  return;
208  }
209 
210 #if !defined(__WXMAC__)
211  // Under Linux an EndModal() here crashes (Bug #1221).
212  // But sending a close message instead is OK.
213  wxCloseEvent Evt;
214  Evt.SetId( wxID_OK );
215  Evt.SetEventObject( this);
216  ProcessWindowEvent( Evt );
217 #else
218  EndModal(wxID_OK);
219 #endif
220 
221  // Raise myself again, and the parent window with me
222  Show();
223 }
bool ReadChain(const wxString &chain)
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI...
Definition: ShuttleGui.h:371
int AudacityMessageBox(const wxString &message, const wxString &caption=AudacityMessageBoxCaptionStr(), long style=wxOK|wxCENTRE, wxWindow *parent=NULL, int x=wxDefaultCoord, int y=wxDefaultCoord)
Definition: ErrorDialog.h:92
#define safenew
Definition: Audacity.h:223
wxFileConfig * gPrefs
Definition: Prefs.cpp:72
BatchCommands mBatchCommands
bool ApplyChain(const wxString &filename=wxT(""))
const wxChar * name
Definition: Distortion.cpp:94
_("Move Track &Down")+wxT("\t")+(GetActiveProject() -> GetCommandManager() ->GetKeyFromName(wxT("TrackMoveDown")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveTopID, _("Move Track to &Top")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveTop")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveBottomID, _("Move Track to &Bottom")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveBottom")).Raw()), OnMoveTrack) void TrackMenuTable::OnSetName(wxCommandEvent &)
void BatchProcessDialog::OnCancel ( wxCommandEvent &  event)
virtual

Reimplemented in EditChainsDialog.

Definition at line 404 of file BatchProcessDialog.cpp.

Referenced by EditChainsDialog::OnCancel().

405 {
406 #if !defined(__WXMAC__)
407  // It is possible that we could just do EndModal()
408  // here even on Linux. However, we know the alternative way of
409  // closing works, if we are hidden, so we hide and then do that.
410  Hide();
411  // Under Linux an EndModal() here potentially crashes (Bug #1221).
412  // But sending a close message instead is OK.
413  wxCloseEvent Evt;
414  Evt.SetId( wxID_CANCEL );
415  Evt.SetEventObject( this);
416  ProcessWindowEvent( Evt );
417 #else
418  EndModal(wxID_CANCEL);
419 #endif
420 }
void BatchProcessDialog::Populate ( )
virtual

Reimplemented in EditChainsDialog.

Definition at line 87 of file BatchProcessDialog.cpp.

References eIsCreating, and PopulateOrExchange().

88 {
89  //------------------------- Main section --------------------
90  ShuttleGui S(this, eIsCreating);
92  // ----------------------- End of main section --------------
93 }
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI...
Definition: ShuttleGui.h:371
virtual void PopulateOrExchange(ShuttleGui &S)
Defines the dialog and does data exchange with it.
void BatchProcessDialog::PopulateOrExchange ( ShuttleGui S)
virtual

Defines the dialog and does data exchange with it.

Reimplemented in EditChainsDialog.

Definition at line 96 of file BatchProcessDialog.cpp.

References _(), ShuttleGuiBase::AddButton(), ShuttleGuiBase::AddListControlReportMode(), ShuttleGuiBase::AddPrompt(), ShuttleGui::AddSpace(), ApplyToFilesID, ApplyToProjectID, ChainsListID, ShuttleGuiBase::EndHorizontalLay(), ShuttleGuiBase::EndStatic(), ShuttleGuiBase::EndVerticalLay(), BatchCommands::GetNames(), gPrefs, ShuttleGui::Id(), mBatchCommands, mChains, name, names(), ShuttleGuiBase::SetBorder(), ShuttleGuiBase::SetStyle(), ShuttleGuiBase::StartHorizontalLay(), ShuttleGuiBase::StartStatic(), and ShuttleGuiBase::StartVerticalLay().

Referenced by Populate().

97 {
98  S.StartVerticalLay(true);
99  {
100  /*i18n-hint: A chain is a sequence of commands that can be applied
101  * to one or more audio files.*/
102  S.StartStatic(_("&Select Chain"), true);
103  {
104  S.SetStyle(wxSUNKEN_BORDER | wxLC_REPORT | wxLC_HRULES | wxLC_VRULES |
105  wxLC_SINGLE_SEL);
107  mChains->InsertColumn(0, _("Chain"), wxLIST_FORMAT_LEFT);
108  }
109  S.EndStatic();
110 
111  S.StartHorizontalLay(wxALIGN_RIGHT, false);
112  {
113  S.SetBorder(10);
114  S.AddPrompt( _("Apply Chain to:") );
115  S.Id(ApplyToProjectID).AddButton(_("&Project"));
116  S.Id(ApplyToFilesID).AddButton(_("&Files..."));
117  S.AddSpace( 40 );
118  S.Id(wxID_CANCEL).AddButton(_("&Cancel"));
119  }
120  S.EndHorizontalLay();
121  }
122  S.EndVerticalLay();
123 
124  wxArrayString names = mBatchCommands.GetNames();
125  for (int i = 0; i < (int)names.GetCount(); i++) {
126  mChains->InsertItem(i, names[i]);
127  }
128 
129  // Get and validate the currently active chain
130  wxString name = gPrefs->Read(wxT("/Batch/ActiveChain"), wxT(""));
131 
132  int item = mChains->FindItem(-1, name);
133  if (item == -1) {
134  item = 0;
135  name = mChains->GetItemText(0);
136  }
137 
138  // Select the name in the list...this will fire an event.
139  mChains->SetItemState(item, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
140 
141  Layout();
142  Fit();
143  SetSizeHints(GetSize());
144  Center();
145 
146  // Set the column size for the chains list.
147  wxSize sz = mChains->GetClientSize();
148  mChains->SetColumnWidth(0, sz.x);
149 }
static wxArrayString names()
Definition: Tags.cpp:697
#define ChainsListID
void EndHorizontalLay()
Definition: ShuttleGui.cpp:980
void AddPrompt(const wxString &Prompt)
Right aligned text string.
Definition: ShuttleGui.cpp:220
void EndVerticalLay()
Definition: ShuttleGui.cpp:996
#define ApplyToFilesID
wxFileConfig * gPrefs
Definition: Prefs.cpp:72
static wxArrayString GetNames()
void StartHorizontalLay(int PositionFlags=wxALIGN_CENTRE, int iProp=1)
Definition: ShuttleGui.cpp:971
wxListCtrl * AddListControlReportMode()
Definition: ShuttleGui.cpp:632
BatchCommands mBatchCommands
ShuttleGui & Id(int id)
void SetStyle(int Style)
Definition: ShuttleGui.h:257
#define ApplyToProjectID
const wxChar * name
Definition: Distortion.cpp:94
wxStaticBox * StartStatic(const wxString &Str, int iProp=0)
Definition: ShuttleGui.cpp:706
_("Move Track &Down")+wxT("\t")+(GetActiveProject() -> GetCommandManager() ->GetKeyFromName(wxT("TrackMoveDown")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveTopID, _("Move Track to &Top")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveTop")).Raw()), OnMoveTrack) POPUP_MENU_ITEM(OnMoveBottomID, _("Move Track to &Bottom")+wxT("\t")+(GetActiveProject() ->GetCommandManager() ->GetKeyFromName(wxT("TrackMoveBottom")).Raw()), OnMoveTrack) void TrackMenuTable::OnSetName(wxCommandEvent &)
wxSizerItem * AddSpace(int width, int height)
void SetBorder(int Border)
Definition: ShuttleGui.h:256
wxButton * AddButton(const wxString &Text, int PositionFlags=wxALIGN_CENTRE)
Definition: ShuttleGui.cpp:306
void StartVerticalLay(int iProp=1)
Definition: ShuttleGui.cpp:987

Member Data Documentation

bool BatchProcessDialog::mAbort

Definition at line 62 of file BatchProcessDialog.h.

Referenced by OnApplyToFiles().

BatchCommands BatchProcessDialog::mBatchCommands
wxButton* BatchProcessDialog::mCancel

Definition at line 60 of file BatchProcessDialog.h.

wxListCtrl* BatchProcessDialog::mChains
wxListCtrl* BatchProcessDialog::mList
wxButton* BatchProcessDialog::mOK

Provides list of available commands.

Definition at line 59 of file BatchProcessDialog.h.

wxTextCtrl* BatchProcessDialog::mResults

Definition at line 61 of file BatchProcessDialog.h.


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