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"
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"
110 Command( wxT(
"NyqBench"),
XXO(
"&Nyquist Workbench..."),
156#if defined(__WXMAC__)
157 EVT_KEY_DOWN(NyqTextCtrl::OnKeyDown)
166 const wxString &value,
170: wxTextCtrl(parent,
id, value, pos,
size, style)
176 mOn.SetTextColour(*wxRED);
177 mOff.SetTextColour(*wxBLACK);
182#if defined(__WXMSW__)
185 wxWindowBase::SetFocusFromKbd();
187 wxTextCtrl::SetFocusFromKbd();
193 wxTextCtrl::MarkDirty();
203#if defined(__WXMSW__)
212#if defined(__WXMSW__)
218#if defined(__WXMAC__REMOVED_UNTIL_ITS_PROVEN_THAT_IT_IS_STILL_NEEDED)
219#include <wx/mac/uma.h>
224void NyqTextCtrl::OnKeyDown(wxKeyEvent & e)
227 if (UMAGetSystemVersion() >= 0x1050) {
228 if (e.GetKeyCode() == WXK_UP && e.GetModifiers() == 0) {
232 PositionToXY(GetInsertionPoint(), &x, &y);
233 if (x == 0 && y > 1) {
235 SetInsertionPoint(XYToPosition(x, y) - 1);
247 int pos = GetInsertionPoint();
248 int lpos = wxMax(0, pos - 1);
250 wxString text = GetRange(lpos, pos);
252 if (text[0] == wxT(
'(')) {
253 wxLongToLongHashMap::const_iterator left =
mLeftParens.find(lpos);
258 else if (text[0] == wxT(
')')) {
259 wxLongToLongHashMap::const_iterator right =
mRightParens.find(lpos);
268 int pos = GetInsertionPoint();
271 int lpos = wxMax(0, pos - 1);
273 wxString text = GetRange(lpos, pos);
274 if (text.Length() > 0) {
275 if (text[0] == wxT(
'(')) {
276 wxLongToLongHashMap::const_iterator left =
mLeftParens.find(lpos);
281 else if (text[0] == wxT(
')')) {
282 wxLongToLongHashMap::const_iterator right =
mRightParens.find(lpos);
300 wxLongToLongHashMap::const_iterator it;
306 if (
mLeftParen > it->first && mLeftParen < it->second) {
307 if (first == -1 || it->first < first) {
322 wxLongToLongHashMap::const_iterator it;
328 if (
mLeftParen > it->first && mLeftParen < it->second) {
329 if (first == -1 || it->first > first) {
344 wxLongToLongHashMap::const_iterator it;
350 if (it->first <
mLeftParen && it->first >= first) {
364 wxLongToLongHashMap::const_iterator it;
370 if (it->first >
mLeftParen && (first == -1 || it->first < first)) {
384 int pos = GetInsertionPoint();
385 int lpos = wxMax(0, pos - 1);
387 wxString text = GetRange(lpos, pos);
389 if (text[0] == wxT(
'(')) {
390 SetInsertionPoint(first + 1);
393 else if (text[0] == wxT(
')')) {
394 SetInsertionPoint(second + 1);
403#if defined(__WXMSW__)
412#if defined(__WXMSW__)
431 wxString text = GetValue();
432 bool inquotes =
false;
434 long len = (long) text.Length();
440 for (pos = 0; pos < len; pos++) {
441 wxChar c = text[pos];
445 inquotes = !inquotes;
450 pos = (long)text.find(wxT(
'\n'), pos);
451 if (pos == (
long)wxString::npos) {
460 if (ndx < len && text[(
int)ndx] == wxT(
'|')) {
466 while (n > 0 && ++pos < len) {
467 wxChar ch = text[(int)pos];
468 if (lastch ==
'|' && ch ==
'#') {
472 else if (lastch ==
'#' && ch ==
'|') {
490 if (stack.GetCount() > 0) {
491 int left = stack.Last();
492 stack.RemoveAt(stack.GetCount() - 1);
510 mOld = std::cout.rdbuf(
this);
516 std::cout.rdbuf(
mOld);
517 if (
s.length() > 0) {
534 mText->AppendText(wxString(
s.c_str(), wxConvISO8859_1));
655 wxDEFAULT_FRAME_STYLE |
667 mPath =
gPrefs->Read(wxT(
"NyqBench/Path"), wxEmptyString);
675 SetIcon(wxICON(AudacityLogo));
676 SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
679 wxMenuBar *bar =
new wxMenuBar();
681 wxMenu *menu =
new wxMenu();
682 menu->Append(wxID_NEW, wxT(
"&New\tCtrl+N"));
683 menu->Append(wxID_OPEN, wxT(
"&Open...\tCtrl+O"));
684 menu->Append(wxID_SAVE, wxT(
"&Save...\tCtrl+S"));
685 menu->Append(wxID_SAVEAS, wxT(
"Save &As...\tCtrl+Shift+S"));
686 menu->AppendSeparator();
687 menu->Append(wxID_REVERT_TO_SAVED, _T(
"&Revert to Saved"));
688 menu->AppendSeparator();
690 menu->AppendSeparator();
691 menu->Append(wxID_CLOSE, wxT(
"&Close Window\tCtrl+W"));
692 bar->Append(menu, wxT(
"&File"));
695 menu->Append(wxID_UNDO,
_(
"&Undo\tCtrl+Z"));
696 menu->Append(wxID_REDO,
_(
"&Redo\tCtrl+Y"));
697 menu->AppendSeparator();
698 menu->Append(wxID_CUT,
_(
"Cu&t\tCtrl+X"));
699 menu->Append(wxID_COPY,
_(
"&Copy\tCtrl+C"));
700 menu->Append(wxID_PASTE,
_(
"&Paste\tCtrl+V"));
701 menu->Append(wxID_CLEAR,
_(
"Cle&ar\tCtrl+L"));
702 menu->AppendSeparator();
703 menu->Append(wxID_SELECTALL,
_(
"Select A&ll\tCtrl+A"));
704 menu->AppendSeparator();
705 menu->Append(wxID_FIND,
_(
"&Find...\tCtrl+F"));
706 menu->AppendSeparator();
707 wxMenu *sub =
new wxMenu();
708 sub->Append(
ID_MATCH,
_(
"&Matching Paren\tF8"));
709 sub->Append(
ID_TOP,
_(
"&Top S-expr\tF9"));
710 sub->Append(
ID_UP,
_(
"&Higher S-expr\tF10"));
712 sub->Append(
ID_NEXT,
_(
"&Next S-expr\tF12"));
713 menu->AppendSubMenu(sub,
_(
"&Go to"));
714 menu->AppendSeparator();
716 bar->Append(menu, wxT(
"&Edit"));
719 menu->Append(
ID_FONT,
_(
"Select &Font..."));
720 menu->AppendSeparator();
721 menu->Append(
ID_SPLITV,
_(
"Split &Vertically"));
722 menu->Append(
ID_SPLITH,
_(
"Split &Horizontally"));
723 menu->AppendSeparator();
726 menu->AppendSeparator();
730 menu->AppendSubMenu(sub,
_(
"Toolbar"));
731 bar->Append(menu, wxT(
"&View"));
734 menu->Append(
ID_GO,
_(
"&Go\tF5"));
735 menu->Append(
ID_STOP,
_(
"&Stop\tF6"));
736 bar->Append(menu, wxT(
"&Run"));
738#if defined(__WXMAC__)
739 menu->Append(wxID_ABOUT,
_(
"&About"));
742 menu->Append(wxID_ABOUT,
_(
"&About"));
743 bar->Append(menu, wxT(
"Help"));
751 r.SetX(
gPrefs->Read(wxT(
"NyqBench/Window/X"), -1));
752 r.SetY(
gPrefs->Read(wxT(
"NyqBench/Window/Y"), -1));
753 r.SetWidth(
gPrefs->Read(wxT(
"NyqBench/Window/Width"), -1));
754 r.SetHeight(
gPrefs->Read(wxT(
"NyqBench/Window/Height"), -1));
755 if (r == wxRect(-1, -1, -1, -1)) {
762 bool maximized =
false;
763 gPrefs->Read(wxT(
"NyqBench/Window/Maximized"), maximized);
769 sashpos =
gPrefs->Read(wxT(
"NyqBench/SplitX"), 0l);
774 wxString dflt = wxSystemSettings::GetFont(wxSYS_SYSTEM_FONT).GetNativeFontInfoDesc();
778 desc =
gPrefs->Read(wxT(
"NyqBench/ScriptFont"), dflt);
780#if defined(__WXMSW__)
787 mScript->SetDefaultStyle(attr);
789 desc =
gPrefs->Read(wxT(
"NyqBench/OutputFont"), dflt);
791#if defined(__WXMSW__)
798 mOutput->SetDefaultStyle(attr);
813 gPrefs->Write(wxT(
"NyqBench/Window/Maximized"), IsMaximized());
814 if (!IsMaximized()) {
815 wxRect r = GetRect();
817#if !defined(__WXMAC__)
823 gPrefs->Write(wxT(
"NyqBench/Window/X"), r.GetX());
824 gPrefs->Write(wxT(
"NyqBench/Window/Y"), r.GetY());
825 gPrefs->Write(wxT(
"NyqBench/Window/Width"), r.GetWidth());
826 gPrefs->Write(wxT(
"NyqBench/Window/Height"), r.GetHeight());
837 gPrefs->Write(wxT(
"NyqBench/ShowOutput"),
mOutput->IsShown());
842 S.StartHorizontalLay(wxEXPAND,
true);
846 wxStaticBoxSizer *scripts;
847 wxStaticBoxSizer *outputs;
862 wxNO_FULL_REPAINT_ON_RESIZE |
864 bs =
new wxBoxSizer(wxVERTICAL);
865 scriptp->SetSizer(bs);
873 bs->Add(scripts,
true, wxEXPAND);
880 wxTE_RICH2 | wxTE_RICH |
881 (
mAutoWrap ? wxTE_BESTWRAP : wxTE_DONTWRAP) |
884 scripts->Add(
mScript,
true, wxEXPAND);
890 wxNO_FULL_REPAINT_ON_RESIZE |
892 bs =
new wxBoxSizer(wxVERTICAL);
893 outputp->SetSizer(bs);
900 bs->Add(outputs,
true, wxEXPAND);
908#
if !defined(__WXMAC__)
916 outputs->Add(
mOutput,
true, wxEXPAND);
920 case wxSPLIT_VERTICAL:
921 mSplitter->SplitVertically(scriptp, outputp, 300);
924 case wxSPLIT_HORIZONTAL:
925 mSplitter->SplitHorizontally(scriptp, outputp, 300);
942 S.EndHorizontalLay();
962 if (!IsIconized() && !IsMaximized()) {
970 if (!IsIconized() && !IsMaximized()) {
986 mPath.SetFullName(wxEmptyString);
1004 wxFileDialog dlog(
this,
1005 _(
"Load Nyquist script"),
1008 _(
"Nyquist scripts (*.ny)|*.ny|Lisp scripts (*.lsp)|*.lsp|All files|*"),
1009 wxFD_OPEN | wxRESIZE_BORDER);
1011 if (dlog.ShowModal() != wxID_OK) {
1015 mPath = dlog.GetPath();
1016 gPrefs->Write(wxT(
"NyqBench/Path"),
mPath.GetFullPath());
1025 if (
mScript->GetLastPosition() == 0) {
1029 if (
mPath.GetFullPath().IsEmpty()) {
1046 if (
mScript->GetLastPosition() == 0) {
1050 wxFileDialog dlog(
this,
1051 _(
"Save Nyquist script"),
1052 mPath.GetFullPath(),
1054 _(
"Nyquist scripts (*.ny)|*.ny|Lisp scripts (*.lsp)|*.lsp|All files|*"),
1055 wxFD_SAVE | wxFD_OVERWRITE_PROMPT | wxRESIZE_BORDER);
1057 if (dlog.ShowModal() != wxID_OK) {
1061 mPath = dlog.GetPath();
1062 gPrefs->Write(wxT(
"NyqBench/Path"),
mPath.GetFullPath());
1083 if (
mPath.GetFullPath().IsEmpty()) {
1142 flags |= (
gPrefs->Read(wxT(
"NyqBench/Find/Down"), 0L) ? wxFR_DOWN : 0);
1143 flags |= (
gPrefs->Read(wxT(
"NyqBench/Find/Word"), 0L) ? wxFR_WHOLEWORD : 0);
1144 flags |= (
gPrefs->Read(wxT(
"NyqBench/Find/Case"), 0L) ? wxFR_MATCHCASE : 0);
1148 mFindDlg =
new wxFindReplaceDialog(
this,
1186 wxWindow *parent =
mScript->GetParent();
1187 wxString text =
mScript->GetValue();
1188 bool focused = wxWindow::FindFocus() ==
mScript;
1189 long pos =
mScript->GetInsertionPoint();
1192 mScript->GetSelection(&from, &to);
1194 wxSizer *s =
mScript->GetContainingSizer();
1203 (
mAutoWrap ? wxTE_BESTWRAP : wxTE_DONTWRAP) |
1204 wxTE_NOHIDESEL | wxTE_RICH2 |
1210 mScript->SetInsertionPoint(pos);
1211 mScript->SetSelection(from, to);
1220 wxWindow *w = FindFocus();
1222 wxFontDialog dlg(
this, data);
1230 if (dlg.ShowModal() == wxID_OK) {
1231 wxFontData retData = dlg.GetFontData();
1232 wxFont font = retData.GetChosenFont();
1243 ((wxTextCtrl *)w)->SetDefaultStyle(attr);
1244 ((wxTextCtrl *)w)->SetStyle(0, ((wxTextCtrl *)w)->GetLastPosition(), attr);
1269 if (e.IsChecked()) {
1295 if (e.IsChecked()) {
1332 std::make_unique<NyquistEffect>(L
"Nyquist Effect Workbench");
1344 wxWindowDisabler disable(
this);
1369 wxAboutDialogInfo i;
1371 i.AddArtist(
_(
"Harvey Lubin (logo)"));
1372 i.AddArtist(
_(
"Tango Icon Gallery (toolbar icons)"));
1373 i.AddDeveloper(
_(
"Leland Lucius"));
1374 i.SetCopyright(
_(
"(C) 2009 by Leland Lucius"));
1375 i.SetDescription(
_(
"External Audacity module which provides a simple IDE for writing effects."));
1376 i.SetName(
_(
"Nyquist Effect Workbench"));
1377 i.SetVersion(__TDATE__);
1384 wxEventType type = e.GetEventType();
1386 if (type == wxEVT_COMMAND_FIND_CLOSE) {
1387 wxFindReplaceDialog *dlg = e.GetDialog();
1393 gPrefs->Write(wxT(
"NyqBench/Find/Down"), (flags & wxFR_DOWN) != 0);
1394 gPrefs->Write(wxT(
"NyqBench/Find/Word"), (flags & wxFR_WHOLEWORD) != 0);
1395 gPrefs->Write(wxT(
"NyqBench/Find/Case"), (flags & wxFR_MATCHCASE) != 0);
1405#if defined(__WXMSW__)
1416 size_t startpos =
mFindText->GetInsertionPoint();
1417 size_t len =
mFindText->GetLastPosition();
1420 wxString find = e.GetFindString();
1421 bool down = (e.GetFlags() & wxFR_DOWN) != 0;
1422 bool mixed = (e.GetFlags() & wxFR_MATCHCASE) != 0;
1430 pos = text.find(find, startpos);
1431 if (type == wxEVT_COMMAND_FIND_NEXT && pos == startpos && pos < len) {
1432 pos = text.find(find, startpos + 1);
1436 pos = text.rfind(find, startpos);
1437 if (type == wxEVT_COMMAND_FIND_NEXT && pos == startpos && pos > 0) {
1438 pos = text.rfind(find, startpos - 1);
1442 if (pos == wxString::npos) {
1444 XO(
"Nyquist Effect Workbench"),
1451 mFindText->SetInsertionPoint((
long)pos);
1453#if defined(__WXGTK__)
1458 mFindText->SetSelection((
long)(pos + find.Length()), (
long)pos);
1460 mFindText->SetSelection((
long)pos, (
long)(pos + find.Length()));
1463#if defined(__WXMAC__)
1476 ((
NyqTextCtrl *) e.GetEventObject())->MarkDirty();
1481 if (e.GetId() != wxID_REVERT_TO_SAVED) {
1482 e.Enable((
mScript->GetLastPosition() > 0) ||
mScript->IsModified());
1485 e.Enable(
mScript->IsModified());
1516 e.Enable(FindFocus() ==
mOutput ?
true :
false);
1521 wxMenuBar *bar = GetMenuBar();
1533 wxToolBar *tbar = GetToolBar();
1534 wxMenuBar *mbar = GetMenuBar();
1537 if (p && gAudioIO->IsBusy()) {
1538 mbar->Enable(
ID_GO,
false);
1541 tbar->EnableTool(
ID_GO,
false);
1542 tbar->EnableTool(
ID_STOP,
false);
1557 if (
label ==
_(
"Script")) {
1569 if (
label ==
_(
"Output")) {
1583 wxYES_NO | wxICON_QUESTION,
1595 wxString
name =
_(
"Untitled");
1597 if (!
mPath.GetFullPath().IsEmpty()) {
1601 SetTitle(
_(
"Nyquist Effect Workbench - ") +
name);
1608 wxToolBar *tb = GetToolBar();
1612 tb = CreateToolBar();
1617 tb->SetToolBitmapSize(wxSize(16, 16));
1618 mPics[0] = wxBitmap(document_new_small);
1619 mPics[1] = wxBitmap(document_open_small);
1620 mPics[2] = wxBitmap(document_save_as_small);
1621 mPics[3] = wxBitmap(document_save_small);
1622 mPics[4] = wxBitmap(edit_copy_small);
1623 mPics[5] = wxBitmap(edit_cut_small);
1624 mPics[6] = wxBitmap(edit_paste_small);
1625 mPics[7] = wxBitmap(edit_clear_small);
1626 mPics[8] = wxBitmap(edit_delete_small);
1627 mPics[9] = wxBitmap(edit_select_all_small);
1628 mPics[10] = wxBitmap(edit_undo_small);
1629 mPics[11] = wxBitmap(edit_redo_small);
1630 mPics[12] = wxBitmap(edit_find_small);
1631 mPics[13] = wxBitmap(system_search_small);
1632 mPics[14] = wxBitmap(go_top_small);
1633 mPics[15] = wxBitmap(go_up_small);
1634 mPics[16] = wxBitmap(go_previous_small);
1635 mPics[17] = wxBitmap(go_next_small);
1636 mPics[18] = wxBitmap(media_playback_start_small);
1637 mPics[19] = wxBitmap(media_playback_stop_small);
1640 tb->SetToolBitmapSize(wxSize(32, 32));
1641 mPics[0] = wxBitmap(document_new_large);
1642 mPics[1] = wxBitmap(document_open_large);
1643 mPics[2] = wxBitmap(document_save_as_large);
1644 mPics[3] = wxBitmap(document_save_large);
1645 mPics[4] = wxBitmap(edit_copy_large);
1646 mPics[5] = wxBitmap(edit_cut_large);
1647 mPics[6] = wxBitmap(edit_paste_large);
1648 mPics[7] = wxBitmap(edit_clear_large);
1649 mPics[8] = wxBitmap(edit_delete_large);
1650 mPics[9] = wxBitmap(edit_select_all_large);
1651 mPics[10] = wxBitmap(edit_undo_large);
1652 mPics[11] = wxBitmap(edit_redo_large);
1653 mPics[12] = wxBitmap(edit_find_large);
1654 mPics[13] = wxBitmap(system_search_large);
1655 mPics[14] = wxBitmap(go_top_large);
1656 mPics[15] = wxBitmap(go_up_large);
1657 mPics[16] = wxBitmap(go_previous_large);
1658 mPics[17] = wxBitmap(go_next_large);
1659 mPics[18] = wxBitmap(media_playback_start_large);
1660 mPics[19] = wxBitmap(media_playback_stop_large);
1663 tb->SetMargins(2, 2);
1665 tb->AddTool(wxID_NEW,
_(
"New"),
mPics[0],
_(
"New script"));
1666 tb->AddTool(wxID_OPEN,
_(
"Open"),
mPics[1],
_(
"Open script"));
1667 tb->AddTool(wxID_SAVE,
_(
"Save"),
mPics[2],
_(
"Save script"));
1668 tb->AddTool(wxID_SAVEAS,
_(
"Save As"),
mPics[3],
_(
"Save script as..."));
1670 tb->AddTool(wxID_COPY,
_(
"Copy"),
mPics[4],
_(
"Copy to clipboard"));
1671 tb->AddTool(wxID_CUT,
_(
"Cut"),
mPics[5],
_(
"Cut to clipboard"));
1672 tb->AddTool(wxID_PASTE,
_(
"Paste"),
mPics[6],
_(
"Paste from clipboard"));
1673 tb->AddTool(wxID_CLEAR,
_(
"Clear"),
mPics[7],
_(
"Clear selection"));
1674 tb->AddTool(wxID_SELECTALL,
_(
"Select All"),
mPics[9],
_(
"Select all text"));
1676 tb->AddTool(wxID_UNDO,
_(
"Undo"),
mPics[10],
_(
"Undo last change"));
1677 tb->AddTool(wxID_REDO,
_(
"Redo"),
mPics[11],
_(
"Redo previous change"));
1679 tb->AddTool(wxID_FIND,
_(
"Find"),
mPics[12],
_(
"Find text"));
1681 tb->AddTool(
ID_MATCH,
_(
"Match"),
mPics[13],
_(
"Go to matching paren"));
1682 tb->AddTool(
ID_TOP,
_(
"Top"),
mPics[14],
_(
"Go to top S-expr"));
1683 tb->AddTool(
ID_UP,
_(
"Up"),
mPics[15],
_(
"Go to higher S-expr"));
1685 tb->AddTool(
ID_NEXT,
_(
"Next"),
mPics[17],
_(
"Go to next S-expr"));
1687 tb->AddTool(
ID_GO,
_(
"Start"),
mPics[18],
_(
"Start script"));
1694 SetMinSize(GetSize());
1699 wxString path =
mPath.GetFullPath();
1701 if (path.IsEmpty()) {
1708 if (f.ReadAll(&t)) {
1710 t.Replace(wxT(
"\r\n"), wxT(
"\n"));
1711 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)
void(CommandHandlerObject::*)(const CommandContext &context) CommandFunctorPointer
wxEvtHandler CommandHandlerObject
const ReservedCommandFlag & AudioIONotBusyFlag()
const TranslatableString name
const TranslatableString desc
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.
AUDACITY_DLL_API bool DoEffect(const PluginID &ID, const CommandContext &context, unsigned flags)
'Repeat Last Effect'.
CommandHandlerObject & findme(AudacityProject &)