13#include <wx/aboutdlg.h>
14#include <wx/filedlg.h>
16#include <wx/fontdlg.h>
19#include <wx/settings.h>
21#include <wx/splitter.h>
22#include <wx/statbox.h>
23#include <wx/textctrl.h>
24#include <wx/toolbar.h>
36#include "../images/AudacityLogo.xpm"
37#include "../../src/commands/CommandContext.h"
38#include "../../src/commands/CommandManager.h"
39#include "widgets/AudacityMessageBox.h"
51#include "images/document-new-small.xpm"
52#include "images/document-open-small.xpm"
53#include "images/document-save-as-small.xpm"
54#include "images/document-save-small.xpm"
55#include "images/edit-clear-small.xpm"
56#include "images/edit-copy-small.xpm"
57#include "images/edit-cut-small.xpm"
58#include "images/edit-delete-small.xpm"
59#include "images/edit-find-small.xpm"
60#include "images/edit-paste-small.xpm"
61#include "images/edit-redo-small.xpm"
62#include "images/edit-select-all-small.xpm"
63#include "images/edit-undo-small.xpm"
64#include "images/go-top-small.xpm"
65#include "images/go-up-small.xpm"
66#include "images/go-previous-small.xpm"
67#include "images/go-next-small.xpm"
68#include "images/system-search-small.xpm"
69#include "images/media-playback-start-small.xpm"
70#include "images/media-playback-stop-small.xpm"
72#include "images/document-new-large.xpm"
73#include "images/document-open-large.xpm"
74#include "images/document-save-as-large.xpm"
75#include "images/document-save-large.xpm"
76#include "images/edit-clear-large.xpm"
77#include "images/edit-copy-large.xpm"
78#include "images/edit-cut-large.xpm"
79#include "images/edit-delete-large.xpm"
80#include "images/edit-find-large.xpm"
81#include "images/edit-paste-large.xpm"
82#include "images/edit-redo-large.xpm"
83#include "images/edit-select-all-large.xpm"
84#include "images/edit-undo-large.xpm"
85#include "images/go-top-large.xpm"
86#include "images/go-up-large.xpm"
87#include "images/go-previous-large.xpm"
88#include "images/go-next-large.xpm"
89#include "images/system-search-large.xpm"
90#include "images/media-playback-start-large.xpm"
91#include "images/media-playback-stop-large.xpm"
155#if defined(__WXMAC__)
156 EVT_KEY_DOWN(NyqTextCtrl::OnKeyDown)
165 const wxString &value,
169: wxTextCtrl(parent,
id, value, pos,
size, style)
175 mOn.SetTextColour(*wxRED);
176 mOff.SetTextColour(*wxBLACK);
181#if defined(__WXMSW__)
184 wxWindowBase::SetFocusFromKbd();
186 wxTextCtrl::SetFocusFromKbd();
192 wxTextCtrl::MarkDirty();
202#if defined(__WXMSW__)
211#if defined(__WXMSW__)
217#if defined(__WXMAC__REMOVED_UNTIL_ITS_PROVEN_THAT_IT_IS_STILL_NEEDED)
218#include <wx/mac/uma.h>
223void NyqTextCtrl::OnKeyDown(wxKeyEvent & e)
226 if (UMAGetSystemVersion() >= 0x1050) {
227 if (e.GetKeyCode() == WXK_UP && e.GetModifiers() == 0) {
231 PositionToXY(GetInsertionPoint(), &x, &y);
232 if (x == 0 && y > 1) {
234 SetInsertionPoint(XYToPosition(x, y) - 1);
246 int pos = GetInsertionPoint();
247 int lpos = wxMax(0, pos - 1);
249 wxString text = GetRange(lpos, pos);
251 if (text[0] ==
wxT(
'(')) {
252 wxLongToLongHashMap::const_iterator left =
mLeftParens.find(lpos);
257 else if (text[0] ==
wxT(
')')) {
258 wxLongToLongHashMap::const_iterator right =
mRightParens.find(lpos);
267 int pos = GetInsertionPoint();
270 int lpos = wxMax(0, pos - 1);
272 wxString text = GetRange(lpos, pos);
273 if (text.Length() > 0) {
274 if (text[0] ==
wxT(
'(')) {
275 wxLongToLongHashMap::const_iterator left =
mLeftParens.find(lpos);
280 else if (text[0] ==
wxT(
')')) {
281 wxLongToLongHashMap::const_iterator right =
mRightParens.find(lpos);
299 wxLongToLongHashMap::const_iterator it;
305 if (
mLeftParen > it->first && mLeftParen < it->second) {
306 if (first == -1 || it->first < first) {
321 wxLongToLongHashMap::const_iterator it;
327 if (
mLeftParen > it->first && mLeftParen < it->second) {
328 if (first == -1 || it->first > first) {
343 wxLongToLongHashMap::const_iterator it;
349 if (it->first <
mLeftParen && it->first >= first) {
363 wxLongToLongHashMap::const_iterator it;
369 if (it->first >
mLeftParen && (first == -1 || it->first < first)) {
383 int pos = GetInsertionPoint();
384 int lpos = wxMax(0, pos - 1);
386 wxString text = GetRange(lpos, pos);
388 if (text[0] ==
wxT(
'(')) {
389 SetInsertionPoint(first + 1);
392 else if (text[0] ==
wxT(
')')) {
393 SetInsertionPoint(second + 1);
402#if defined(__WXMSW__)
411#if defined(__WXMSW__)
430 wxString text = GetValue();
431 bool inquotes =
false;
433 long len = (long) text.Length();
439 for (pos = 0; pos < len; pos++) {
440 wxChar c = text[pos];
444 inquotes = !inquotes;
449 pos = (long)text.find(
wxT(
'\n'), pos);
450 if (pos == (
long)wxString::npos) {
459 if (ndx < len && text[(
int)ndx] ==
wxT(
'|')) {
465 while (n > 0 && ++pos < len) {
466 wxChar ch = text[(int)pos];
467 if (lastch ==
'|' && ch ==
'#') {
471 else if (lastch ==
'#' && ch ==
'|') {
489 if (stack.GetCount() > 0) {
490 int left = stack.Last();
491 stack.RemoveAt(stack.GetCount() - 1);
509 mOld = std::cout.rdbuf(
this);
515 std::cout.rdbuf(
mOld);
516 if (
s.length() > 0) {
533 mText->AppendText(wxString(
s.c_str(), wxConvISO8859_1));
654 wxDEFAULT_FRAME_STYLE |
674 SetIcon(wxICON(AudacityLogo));
675 SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
678 wxMenuBar *bar =
new wxMenuBar();
680 wxMenu *menu =
new wxMenu();
681 menu->Append(wxID_NEW,
wxT(
"&New\tCtrl+N"));
682 menu->Append(wxID_OPEN,
wxT(
"&Open...\tCtrl+O"));
683 menu->Append(wxID_SAVE,
wxT(
"&Save...\tCtrl+S"));
684 menu->Append(wxID_SAVEAS,
wxT(
"Save &As...\tCtrl+Shift+S"));
685 menu->AppendSeparator();
686 menu->Append(wxID_REVERT_TO_SAVED, _T(
"&Revert to Saved"));
687 menu->AppendSeparator();
689 menu->AppendSeparator();
690 menu->Append(wxID_CLOSE,
wxT(
"&Close Window\tCtrl+W"));
691 bar->Append(menu,
wxT(
"&File"));
694 menu->Append(wxID_UNDO,
_(
"&Undo\tCtrl+Z"));
695 menu->Append(wxID_REDO,
_(
"&Redo\tCtrl+Y"));
696 menu->AppendSeparator();
697 menu->Append(wxID_CUT,
_(
"Cu&t\tCtrl+X"));
698 menu->Append(wxID_COPY,
_(
"&Copy\tCtrl+C"));
699 menu->Append(wxID_PASTE,
_(
"&Paste\tCtrl+V"));
700 menu->Append(wxID_CLEAR,
_(
"Cle&ar\tCtrl+L"));
701 menu->AppendSeparator();
702 menu->Append(wxID_SELECTALL,
_(
"Select A&ll\tCtrl+A"));
703 menu->AppendSeparator();
704 menu->Append(wxID_FIND,
_(
"&Find...\tCtrl+F"));
705 menu->AppendSeparator();
706 wxMenu *sub =
new wxMenu();
707 sub->Append(
ID_MATCH,
_(
"&Matching Paren\tF8"));
708 sub->Append(
ID_TOP,
_(
"&Top S-expr\tF9"));
709 sub->Append(
ID_UP,
_(
"&Higher S-expr\tF10"));
711 sub->Append(
ID_NEXT,
_(
"&Next S-expr\tF12"));
712 menu->AppendSubMenu(sub,
_(
"&Go to"));
713 menu->AppendSeparator();
715 bar->Append(menu,
wxT(
"&Edit"));
718 menu->Append(
ID_FONT,
_(
"Select &Font..."));
719 menu->AppendSeparator();
720 menu->Append(
ID_SPLITV,
_(
"Split &Vertically"));
721 menu->Append(
ID_SPLITH,
_(
"Split &Horizontally"));
722 menu->AppendSeparator();
725 menu->AppendSeparator();
729 menu->AppendSubMenu(sub,
_(
"Toolbar"));
730 bar->Append(menu,
wxT(
"&View"));
733 menu->Append(
ID_GO,
_(
"&Go\tF5"));
734 menu->Append(
ID_STOP,
_(
"&Stop\tF6"));
735 bar->Append(menu,
wxT(
"&Run"));
737#if defined(__WXMAC__)
738 menu->Append(wxID_ABOUT,
_(
"&About"));
741 menu->Append(wxID_ABOUT,
_(
"&About"));
742 bar->Append(menu,
wxT(
"Help"));
750 r.SetX(
gPrefs->Read(
wxT(
"NyqBench/Window/X"), -1));
751 r.SetY(
gPrefs->Read(
wxT(
"NyqBench/Window/Y"), -1));
752 r.SetWidth(
gPrefs->Read(
wxT(
"NyqBench/Window/Width"), -1));
753 r.SetHeight(
gPrefs->Read(
wxT(
"NyqBench/Window/Height"), -1));
754 if (r == wxRect(-1, -1, -1, -1)) {
761 bool maximized =
false;
762 gPrefs->Read(
wxT(
"NyqBench/Window/Maximized"), maximized);
768 sashpos =
gPrefs->Read(
wxT(
"NyqBench/SplitX"), 0l);
773 wxString dflt = wxSystemSettings::GetFont(wxSYS_SYSTEM_FONT).GetNativeFontInfoDesc();
779#if defined(__WXMSW__)
786 mScript->SetDefaultStyle(attr);
790#if defined(__WXMSW__)
797 mOutput->SetDefaultStyle(attr);
812 gPrefs->Write(
wxT(
"NyqBench/Window/Maximized"), IsMaximized());
813 if (!IsMaximized()) {
814 wxRect r = GetRect();
816#if !defined(__WXMAC__)
822 gPrefs->Write(
wxT(
"NyqBench/Window/X"), r.GetX());
823 gPrefs->Write(
wxT(
"NyqBench/Window/Y"), r.GetY());
824 gPrefs->Write(
wxT(
"NyqBench/Window/Width"), r.GetWidth());
825 gPrefs->Write(
wxT(
"NyqBench/Window/Height"), r.GetHeight());
841 S.StartHorizontalLay(wxEXPAND,
true);
845 wxStaticBoxSizer *scripts;
846 wxStaticBoxSizer *outputs;
861 wxNO_FULL_REPAINT_ON_RESIZE |
863 bs =
new wxBoxSizer(wxVERTICAL);
864 scriptp->SetSizer(bs);
872 bs->Add(scripts,
true, wxEXPAND);
879 wxTE_RICH2 | wxTE_RICH |
880 (
mAutoWrap ? wxTE_BESTWRAP : wxTE_DONTWRAP) |
883 scripts->Add(
mScript,
true, wxEXPAND);
889 wxNO_FULL_REPAINT_ON_RESIZE |
891 bs =
new wxBoxSizer(wxVERTICAL);
892 outputp->SetSizer(bs);
899 bs->Add(outputs,
true, wxEXPAND);
907#
if !defined(__WXMAC__)
915 outputs->Add(
mOutput,
true, wxEXPAND);
919 case wxSPLIT_VERTICAL:
920 mSplitter->SplitVertically(scriptp, outputp, 300);
923 case wxSPLIT_HORIZONTAL:
924 mSplitter->SplitHorizontally(scriptp, outputp, 300);
941 S.EndHorizontalLay();
961 if (!IsIconized() && !IsMaximized()) {
969 if (!IsIconized() && !IsMaximized()) {
985 mPath.SetFullName(wxEmptyString);
1003 wxFileDialog dlog(
this,
1004 _(
"Load Nyquist script"),
1007 _(
"Nyquist scripts (*.ny)|*.ny|Lisp scripts (*.lsp)|*.lsp|All files|*"),
1008 wxFD_OPEN | wxRESIZE_BORDER);
1010 if (dlog.ShowModal() != wxID_OK) {
1014 mPath = dlog.GetPath();
1024 if (
mScript->GetLastPosition() == 0) {
1028 if (
mPath.GetFullPath().IsEmpty()) {
1045 if (
mScript->GetLastPosition() == 0) {
1049 wxFileDialog dlog(
this,
1050 _(
"Save Nyquist script"),
1051 mPath.GetFullPath(),
1053 _(
"Nyquist scripts (*.ny)|*.ny|Lisp scripts (*.lsp)|*.lsp|All files|*"),
1054 wxFD_SAVE | wxFD_OVERWRITE_PROMPT | wxRESIZE_BORDER);
1056 if (dlog.ShowModal() != wxID_OK) {
1060 mPath = dlog.GetPath();
1082 if (
mPath.GetFullPath().IsEmpty()) {
1141 flags |= (
gPrefs->Read(
wxT(
"NyqBench/Find/Down"), 0L) ? wxFR_DOWN : 0);
1142 flags |= (
gPrefs->Read(
wxT(
"NyqBench/Find/Word"), 0L) ? wxFR_WHOLEWORD : 0);
1143 flags |= (
gPrefs->Read(
wxT(
"NyqBench/Find/Case"), 0L) ? wxFR_MATCHCASE : 0);
1147 mFindDlg =
new wxFindReplaceDialog(
this,
1185 wxWindow *parent =
mScript->GetParent();
1186 wxString text =
mScript->GetValue();
1188 long pos =
mScript->GetInsertionPoint();
1191 mScript->GetSelection(&from, &to);
1193 wxSizer *s =
mScript->GetContainingSizer();
1202 (
mAutoWrap ? wxTE_BESTWRAP : wxTE_DONTWRAP) |
1203 wxTE_NOHIDESEL | wxTE_RICH2 |
1209 mScript->SetInsertionPoint(pos);
1210 mScript->SetSelection(from, to);
1221 wxFontDialog dlg(
this, data);
1229 if (dlg.ShowModal() == wxID_OK) {
1230 wxFontData retData = dlg.GetFontData();
1231 wxFont font = retData.GetChosenFont();
1242 ((wxTextCtrl *)w)->SetDefaultStyle(attr);
1243 ((wxTextCtrl *)w)->SetStyle(0, ((wxTextCtrl *)w)->GetLastPosition(), attr);
1268 if (e.IsChecked()) {
1294 if (e.IsChecked()) {
1331 std::make_unique<NyquistEffect>(L
"Nyquist Effect Workbench");
1343 wxWindowDisabler disable(
this);
1368 wxAboutDialogInfo i;
1370 i.AddArtist(
_(
"Harvey Lubin (logo)"));
1371 i.AddArtist(
_(
"Tango Icon Gallery (toolbar icons)"));
1372 i.AddDeveloper(
_(
"Leland Lucius"));
1373 i.SetCopyright(
_(
"(C) 2009 by Leland Lucius"));
1374 i.SetDescription(
_(
"External Audacity module which provides a simple IDE for writing effects."));
1375 i.SetName(
_(
"Nyquist Effect Workbench"));
1376 i.SetVersion(__TDATE__);
1383 wxEventType type = e.GetEventType();
1385 if (type == wxEVT_COMMAND_FIND_CLOSE) {
1386 wxFindReplaceDialog *dlg = e.GetDialog();
1392 gPrefs->Write(
wxT(
"NyqBench/Find/Down"), (flags & wxFR_DOWN) != 0);
1393 gPrefs->Write(
wxT(
"NyqBench/Find/Word"), (flags & wxFR_WHOLEWORD) != 0);
1394 gPrefs->Write(
wxT(
"NyqBench/Find/Case"), (flags & wxFR_MATCHCASE) != 0);
1404#if defined(__WXMSW__)
1415 size_t startpos =
mFindText->GetInsertionPoint();
1416 size_t len =
mFindText->GetLastPosition();
1419 wxString find = e.GetFindString();
1420 bool down = (e.GetFlags() & wxFR_DOWN) != 0;
1421 bool mixed = (e.GetFlags() & wxFR_MATCHCASE) != 0;
1429 pos = text.find(find, startpos);
1430 if (type == wxEVT_COMMAND_FIND_NEXT && pos == startpos && pos < len) {
1431 pos = text.find(find, startpos + 1);
1435 pos = text.rfind(find, startpos);
1436 if (type == wxEVT_COMMAND_FIND_NEXT && pos == startpos && pos > 0) {
1437 pos = text.rfind(find, startpos - 1);
1441 if (pos == wxString::npos) {
1443 XO(
"Nyquist Effect Workbench"),
1450 mFindText->SetInsertionPoint((
long)pos);
1452#if defined(__WXGTK__)
1457 mFindText->SetSelection((
long)(pos + find.Length()), (
long)pos);
1459 mFindText->SetSelection((
long)pos, (
long)(pos + find.Length()));
1462#if defined(__WXMAC__)
1475 ((
NyqTextCtrl *) e.GetEventObject())->MarkDirty();
1480 if (e.GetId() != wxID_REVERT_TO_SAVED) {
1481 e.Enable((
mScript->GetLastPosition() > 0) ||
mScript->IsModified());
1484 e.Enable(
mScript->IsModified());
1520 wxMenuBar *bar = GetMenuBar();
1532 wxToolBar *tbar = GetToolBar();
1533 wxMenuBar *mbar = GetMenuBar();
1536 if (p && gAudioIO->IsBusy()) {
1537 mbar->Enable(
ID_GO,
false);
1540 tbar->EnableTool(
ID_GO,
false);
1541 tbar->EnableTool(
ID_STOP,
false);
1556 if (
label ==
_(
"Script")) {
1568 if (
label ==
_(
"Output")) {
1582 wxYES_NO | wxICON_QUESTION,
1594 wxString
name =
_(
"Untitled");
1596 if (!
mPath.GetFullPath().IsEmpty()) {
1600 SetTitle(
_(
"Nyquist Effect Workbench - ") +
name);
1607 wxToolBar *tb = GetToolBar();
1611 tb = CreateToolBar();
1616 tb->SetToolBitmapSize(wxSize(16, 16));
1617 mPics[0] = wxBitmap(document_new_small);
1618 mPics[1] = wxBitmap(document_open_small);
1619 mPics[2] = wxBitmap(document_save_as_small);
1620 mPics[3] = wxBitmap(document_save_small);
1621 mPics[4] = wxBitmap(edit_copy_small);
1622 mPics[5] = wxBitmap(edit_cut_small);
1623 mPics[6] = wxBitmap(edit_paste_small);
1624 mPics[7] = wxBitmap(edit_clear_small);
1625 mPics[8] = wxBitmap(edit_delete_small);
1626 mPics[9] = wxBitmap(edit_select_all_small);
1627 mPics[10] = wxBitmap(edit_undo_small);
1628 mPics[11] = wxBitmap(edit_redo_small);
1629 mPics[12] = wxBitmap(edit_find_small);
1630 mPics[13] = wxBitmap(system_search_small);
1631 mPics[14] = wxBitmap(go_top_small);
1632 mPics[15] = wxBitmap(go_up_small);
1633 mPics[16] = wxBitmap(go_previous_small);
1634 mPics[17] = wxBitmap(go_next_small);
1635 mPics[18] = wxBitmap(media_playback_start_small);
1636 mPics[19] = wxBitmap(media_playback_stop_small);
1639 tb->SetToolBitmapSize(wxSize(32, 32));
1640 mPics[0] = wxBitmap(document_new_large);
1641 mPics[1] = wxBitmap(document_open_large);
1642 mPics[2] = wxBitmap(document_save_as_large);
1643 mPics[3] = wxBitmap(document_save_large);
1644 mPics[4] = wxBitmap(edit_copy_large);
1645 mPics[5] = wxBitmap(edit_cut_large);
1646 mPics[6] = wxBitmap(edit_paste_large);
1647 mPics[7] = wxBitmap(edit_clear_large);
1648 mPics[8] = wxBitmap(edit_delete_large);
1649 mPics[9] = wxBitmap(edit_select_all_large);
1650 mPics[10] = wxBitmap(edit_undo_large);
1651 mPics[11] = wxBitmap(edit_redo_large);
1652 mPics[12] = wxBitmap(edit_find_large);
1653 mPics[13] = wxBitmap(system_search_large);
1654 mPics[14] = wxBitmap(go_top_large);
1655 mPics[15] = wxBitmap(go_up_large);
1656 mPics[16] = wxBitmap(go_previous_large);
1657 mPics[17] = wxBitmap(go_next_large);
1658 mPics[18] = wxBitmap(media_playback_start_large);
1659 mPics[19] = wxBitmap(media_playback_stop_large);
1662 tb->SetMargins(2, 2);
1664 tb->AddTool(wxID_NEW,
_(
"New"),
mPics[0],
_(
"New script"));
1665 tb->AddTool(wxID_OPEN,
_(
"Open"),
mPics[1],
_(
"Open script"));
1666 tb->AddTool(wxID_SAVE,
_(
"Save"),
mPics[2],
_(
"Save script"));
1667 tb->AddTool(wxID_SAVEAS,
_(
"Save As"),
mPics[3],
_(
"Save script as..."));
1669 tb->AddTool(wxID_COPY,
_(
"Copy"),
mPics[4],
_(
"Copy to clipboard"));
1670 tb->AddTool(wxID_CUT,
_(
"Cut"),
mPics[5],
_(
"Cut to clipboard"));
1671 tb->AddTool(wxID_PASTE,
_(
"Paste"),
mPics[6],
_(
"Paste from clipboard"));
1672 tb->AddTool(wxID_CLEAR,
_(
"Clear"),
mPics[7],
_(
"Clear selection"));
1673 tb->AddTool(wxID_SELECTALL,
_(
"Select All"),
mPics[9],
_(
"Select all text"));
1675 tb->AddTool(wxID_UNDO,
_(
"Undo"),
mPics[10],
_(
"Undo last change"));
1676 tb->AddTool(wxID_REDO,
_(
"Redo"),
mPics[11],
_(
"Redo previous change"));
1678 tb->AddTool(wxID_FIND,
_(
"Find"),
mPics[12],
_(
"Find text"));
1680 tb->AddTool(
ID_MATCH,
_(
"Match"),
mPics[13],
_(
"Go to matching paren"));
1681 tb->AddTool(
ID_TOP,
_(
"Top"),
mPics[14],
_(
"Go to top S-expr"));
1682 tb->AddTool(
ID_UP,
_(
"Up"),
mPics[15],
_(
"Go to higher S-expr"));
1684 tb->AddTool(
ID_NEXT,
_(
"Next"),
mPics[17],
_(
"Go to next S-expr"));
1686 tb->AddTool(
ID_GO,
_(
"Start"),
mPics[18],
_(
"Start script"));
1693 SetMinSize(GetSize());
1698 wxString path =
mPath.GetFullPath();
1700 if (path.IsEmpty()) {
1707 if (f.ReadAll(&t)) {
1709 t.Replace(
wxT(
"\r\n"),
wxT(
"\n"));
1710 t.Replace(
wxT(
"\r"),
wxT(
"\n"));
AUDACITY_DLL_API std::weak_ptr< AudacityProject > GetActiveProject()
Handle changing of active project and keep global project pointer.
EVT_MENU(OnSetPlayRegionToSelectionID, AdornedRulerPanel::OnSetPlayRegionToSelection) EVT_COMMAND(OnTogglePinnedStateID
int AudacityMessageBox(const TranslatableString &message, const TranslatableString &caption, long style, wxWindow *parent, int x, int y)
wxEvtHandler CommandHandlerObject
const ReservedCommandFlag & AudioIONotBusyFlag()
const TranslatableString name
const TranslatableString desc
XXO("&Cut/Copy/Paste Toolbar")
int DLL_API ModuleDispatch(ModuleDispatchTypes type)
static DEFINE_VERSION_CHECK NyqBench * gBench
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
static AudioIOBase * Get()
CommandContext provides additional information to an 'Apply()' command. It provides the project,...
static EffectManager & Get()
const PluginID & RegisterEffect(std::unique_ptr< EffectPlugin > uEffect)
Here solely for the purpose of Nyquist Workbench until a better solution is devised.
void UnregisterEffect(const PluginID &ID)
Used only by Nyquist Workbench module.
void OnScriptUpdate(wxUpdateUIEvent &e)
void OnGoPrev(wxCommandEvent &e)
void OnPasteUpdate(wxUpdateUIEvent &e)
void OnMenuUpdate(wxUpdateUIEvent &e)
void OnCopy(wxCommandEvent &e)
void OnCloseWindow(wxCommandEvent &e)
static NyqBench * GetBench()
void OnClearUpdate(wxUpdateUIEvent &e)
void OnOpen(wxCommandEvent &e)
wxFindReplaceData mFindData
void OnSmallIcons(wxCommandEvent &e)
void OnAbout(wxCommandEvent &e)
void OnAutoWrap(wxCommandEvent &e)
void OnFind(wxCommandEvent &e)
void OnToggleOutput(wxCommandEvent &e)
void OnCutUpdate(wxUpdateUIEvent &e)
void OnFont(wxCommandEvent &e)
void OnClose(wxCloseEvent &e)
void OnSplitH(wxCommandEvent &e)
void OnFindDialog(wxFindDialogEvent &e)
void OnRedoUpdate(wxUpdateUIEvent &e)
void OnSaveAs(wxCommandEvent &e)
void OnRedo(wxCommandEvent &e)
void OnMove(wxMoveEvent &e)
void OnCopyUpdate(wxUpdateUIEvent &e)
wxSplitterWindow * mSplitter
void OnLargeIcons(wxCommandEvent &e)
void OnAutoLoad(wxCommandEvent &e)
void OnUndo(wxCommandEvent &e)
void OnRunUpdate(wxUpdateUIEvent &e)
void OnOutputUpdate(wxUpdateUIEvent &e)
void OnUndoUpdate(wxUpdateUIEvent &e)
void OnSplitV(wxCommandEvent &e)
void OnRevert(wxCommandEvent &e)
void OnToggleCode(wxCommandEvent &e)
void OnNew(wxCommandEvent &e)
void OnCut(wxCommandEvent &e)
void OnSelectAll(wxCommandEvent &e)
void OnViewUpdate(wxUpdateUIEvent &e)
void OnGoMatch(wxCommandEvent &e)
void RecreateToolbar(bool large=false)
void OnClear(wxCommandEvent &e)
void ShowNyqBench(const CommandContext &)
NyqBench(wxWindow *parent)
void OnGoUp(wxCommandEvent &e)
wxFindReplaceDialog * mFindDlg
void OnGoNext(wxCommandEvent &e)
void OnGo(wxCommandEvent &e)
void OnStop(wxCommandEvent &e)
void OnPaste(wxCommandEvent &e)
void OnSave(wxCommandEvent &e)
void OnTextUpdate(wxCommandEvent &e)
void PopulateOrExchange(ShuttleGui &S)
void OnGoTop(wxCommandEvent &e)
void OnSize(wxSizeEvent &e)
NyqRedirector(NyqTextCtrl *text)
wxLongToLongHashMap mLeftParens
wxLongToLongHashMap mRightParens
void OnKeyUp(wxKeyEvent &e)
void MoveCursor(long first, long second)
void Colorize(long left, long right)
void OnChar(wxKeyEvent &e)
void OnUpdate(wxUpdateUIEvent &e)
void SetCommand(const wxString &cmd)
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI.
std::unique_ptr< WindowPlacement > FindFocus()
Find the window that is accepting keyboard input, if any.
AUDACITY_DLL_API bool DoEffect(const PluginID &ID, const CommandContext &context, unsigned flags)
'Repeat Last Effect'.
CommandHandlerObject & findme(AudacityProject &)