forked from Sneeds-Feed-and-Seed/sneedacity
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBatchProcessDialog.h
149 lines (117 loc) · 3.9 KB
/
BatchProcessDialog.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/**********************************************************************
Sneedacity: A Digital Audio Editor
BatchProcessDialog.h
Dominic Mazzoni
James Crook
**********************************************************************/
#ifndef __SNEEDACITY_MACROS_WINDOW__
#define __SNEEDACITY_MACROS_WINDOW__
#include <wx/defs.h>
#include "BatchCommands.h"
#include "Prefs.h"
class wxWindow;
class wxTextCtrl;
class wxListCtrl;
class wxListEvent;
class wxButton;
class wxTextCtrl;
class SneedacityProject;
class ShuttleGui;
class ApplyMacroDialog : public wxDialogWrapper {
public:
// constructors and destructors
ApplyMacroDialog(
wxWindow * parent, SneedacityProject &project, bool bInherited=false);
virtual ~ApplyMacroDialog();
public:
// Populate methods NOT virtual.
void Populate();
void PopulateOrExchange( ShuttleGui & S );
virtual void OnApplyToProject(wxCommandEvent & event);
virtual void OnApplyToFiles(wxCommandEvent & event);
virtual void OnCancel(wxCommandEvent & event);
virtual void OnHelp(wxCommandEvent & event);
virtual ManualPageID GetHelpPageName() {return "Apply_Macro";}
void PopulateMacros();
static CommandID MacroIdOfName( const wxString & MacroName );
void ApplyMacroToProject( int iMacro, bool bHasGui=true );
void ApplyMacroToProject( const CommandID & MacroID, bool bHasGui=true );
// These will be reused in the derived class...
wxListCtrl *mList;
wxListCtrl *mMacros;
MacroCommands mMacroCommands; /// Provides list of available commands.
wxButton *mResize;
wxButton *mOK;
wxButton *mCancel;
wxTextCtrl *mResults;
bool mAbort;
bool mbExpanded;
wxString mActiveMacro;
wxString mMacroBeingRenamed;
protected:
SneedacityProject &mProject;
const MacroCommandsCatalog mCatalog;
DECLARE_EVENT_TABLE()
};
class MacrosWindow final : public ApplyMacroDialog,
public PrefsListener
{
public:
MacrosWindow(
wxWindow * parent, SneedacityProject &project, bool bExpanded=true);
~MacrosWindow();
void UpdateDisplay( bool bExpanded );
private:
TranslatableString WindowTitle() const;
void Populate();
void PopulateOrExchange(ShuttleGui &S);
void OnApplyToProject(wxCommandEvent & event) override;
void OnApplyToFiles(wxCommandEvent & event) override;
void OnCancel(wxCommandEvent &event) override;
virtual ManualPageID GetHelpPageName() override {return
mbExpanded ? "Manage_Macros"
: "Apply_Macro";}
void PopulateList();
void AddItem(const CommandID &command, wxString const ¶ms);
bool ChangeOK();
void UpdateMenus();
void ShowActiveMacro();
void OnMacroSelected(wxListEvent &event);
void OnListSelected(wxListEvent &event);
void OnMacrosBeginEdit(wxListEvent &event);
void OnMacrosEndEdit(wxListEvent &event);
void OnAdd(wxCommandEvent &event);
void OnRemove(wxCommandEvent &event);
void OnRename(wxCommandEvent &event);
void OnRestore(wxCommandEvent &event);
void OnImport(wxCommandEvent &event);
void OnExport(wxCommandEvent &event);
void OnSave(wxCommandEvent &event);
void OnExpand(wxCommandEvent &event);
void OnShrink(wxCommandEvent &event);
void OnSize(wxSizeEvent &event);
void OnCommandActivated(wxListEvent &event);
void OnInsert(wxCommandEvent &event);
void OnEditCommandParams(wxCommandEvent &event);
void OnDelete(wxCommandEvent &event);
void OnUp(wxCommandEvent &event);
void OnDown(wxCommandEvent &event);
void OnOK(wxCommandEvent &event);
void OnKeyDown(wxKeyEvent &event);
void FitColumns();
void InsertCommandAt(int item);
bool SaveChanges();
// PrefsListener implementation
void UpdatePrefs() override;
SneedacityProject &mProject;
wxButton *mRemove;
wxButton *mRename;
wxButton *mRestore;
wxButton *mImport;
wxButton *mExport;
wxButton *mSave;
int mSelectedCommand;
bool mChanged;
DECLARE_EVENT_TABLE()
};
#endif