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"
50#include "images/document-new-small.xpm"
51#include "images/document-open-small.xpm"
52#include "images/document-save-as-small.xpm"
53#include "images/document-save-small.xpm"
54#include "images/edit-clear-small.xpm"
55#include "images/edit-copy-small.xpm"
56#include "images/edit-cut-small.xpm"
57#include "images/edit-delete-small.xpm"
58#include "images/edit-find-small.xpm"
59#include "images/edit-paste-small.xpm"
60#include "images/edit-redo-small.xpm"
61#include "images/edit-select-all-small.xpm"
62#include "images/edit-undo-small.xpm"
63#include "images/go-top-small.xpm"
64#include "images/go-up-small.xpm"
65#include "images/go-previous-small.xpm"
66#include "images/go-next-small.xpm"
67#include "images/system-search-small.xpm"
68#include "images/media-playback-start-small.xpm"
69#include "images/media-playback-stop-small.xpm"
71#include "images/document-new-large.xpm"
72#include "images/document-open-large.xpm"
73#include "images/document-save-as-large.xpm"
74#include "images/document-save-large.xpm"
75#include "images/edit-clear-large.xpm"
76#include "images/edit-copy-large.xpm"
77#include "images/edit-cut-large.xpm"
78#include "images/edit-delete-large.xpm"
79#include "images/edit-find-large.xpm"
80#include "images/edit-paste-large.xpm"
81#include "images/edit-redo-large.xpm"
82#include "images/edit-select-all-large.xpm"
83#include "images/edit-undo-large.xpm"
84#include "images/go-top-large.xpm"
85#include "images/go-up-large.xpm"
86#include "images/go-previous-large.xpm"
87#include "images/go-next-large.xpm"
88#include "images/system-search-large.xpm"
89#include "images/media-playback-start-large.xpm"
90#include "images/media-playback-stop-large.xpm"
154#if defined(__WXMAC__)
155 EVT_KEY_DOWN(NyqTextCtrl::OnKeyDown)
164 const wxString &value,
168: wxTextCtrl(parent,
id, value, pos,
size,
style)
174 mOn.SetTextColour(*wxRED);
175 mOff.SetTextColour(*wxBLACK);
180#if defined(__WXMSW__)
183 wxWindowBase::SetFocusFromKbd();
185 wxTextCtrl::SetFocusFromKbd();
191 wxTextCtrl::MarkDirty();
201#if defined(__WXMSW__)
210#if defined(__WXMSW__)
216#if defined(__WXMAC__REMOVED_UNTIL_ITS_PROVEN_THAT_IT_IS_STILL_NEEDED)
217#include <wx/mac/uma.h>
222void NyqTextCtrl::OnKeyDown(wxKeyEvent & e)
225 if (UMAGetSystemVersion() >= 0x1050) {
226 if (e.GetKeyCode() == WXK_UP && e.GetModifiers() == 0) {
230 PositionToXY(GetInsertionPoint(), &x, &y);
231 if (x == 0 && y > 1) {
233 SetInsertionPoint(XYToPosition(x, y) - 1);
245 int pos = GetInsertionPoint();
246 int lpos = wxMax(0, pos - 1);
248 wxString text = GetRange(lpos, pos);
250 if (text[0] ==
wxT(
'(')) {
251 wxLongToLongHashMap::const_iterator left =
mLeftParens.find(lpos);
256 else if (text[0] ==
wxT(
')')) {
257 wxLongToLongHashMap::const_iterator right =
mRightParens.find(lpos);
266 int pos = GetInsertionPoint();
269 int lpos = wxMax(0, pos - 1);
271 wxString text = GetRange(lpos, pos);
272 if (text.Length() > 0) {
273 if (text[0] ==
wxT(
'(')) {
274 wxLongToLongHashMap::const_iterator left =
mLeftParens.find(lpos);
279 else if (text[0] ==
wxT(
')')) {
280 wxLongToLongHashMap::const_iterator right =
mRightParens.find(lpos);
298 wxLongToLongHashMap::const_iterator it;
304 if (
mLeftParen > it->first && mLeftParen < it->second) {
305 if (first == -1 || it->first < first) {
320 wxLongToLongHashMap::const_iterator it;
326 if (
mLeftParen > it->first && mLeftParen < it->second) {
327 if (first == -1 || it->first > first) {
342 wxLongToLongHashMap::const_iterator it;
348 if (it->first <
mLeftParen && it->first >= first) {
362 wxLongToLongHashMap::const_iterator it;
368 if (it->first >
mLeftParen && (first == -1 || it->first < first)) {
382 int pos = GetInsertionPoint();
383 int lpos = wxMax(0, pos - 1);
385 wxString text = GetRange(lpos, pos);
387 if (text[0] ==
wxT(
'(')) {
388 SetInsertionPoint(first + 1);
391 else if (text[0] ==
wxT(
')')) {
392 SetInsertionPoint(second + 1);
401#if defined(__WXMSW__)
410#if defined(__WXMSW__)
429 wxString text = GetValue();
430 bool inquotes =
false;
432 long len = (long) text.Length();
438 for (pos = 0; pos < len; pos++) {
439 wxChar c = text[pos];
443 inquotes = !inquotes;
448 pos = (long)text.find(
wxT(
'\n'), pos);
458 if (ndx < len && text[(
int)ndx] ==
wxT(
'|')) {
464 while (n > 0 && ++pos < len) {
465 wxChar ch = text[(int)pos];
466 if (lastch ==
'|' && ch ==
'#') {
470 else if (lastch ==
'#' && ch ==
'|') {
488 if (stack.GetCount() > 0) {
489 int left = stack.Last();
490 stack.RemoveAt(stack.GetCount() - 1);
508 mOld = std::cout.rdbuf(
this);
514 std::cout.rdbuf(
mOld);
515 if (
s.length() > 0) {
532 mText->AppendText(wxString(
s.c_str(), wxConvISO8859_1));
653 wxDEFAULT_FRAME_STYLE |
673 SetIcon(wxICON(AudacityLogo));
674 SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
677 wxMenuBar *bar =
new wxMenuBar();
679 wxMenu *menu =
new wxMenu();
680 menu->Append(wxID_NEW,
wxT(
"&New\tCtrl+N"));
681 menu->Append(wxID_OPEN,
wxT(
"&Open...\tCtrl+O"));
682 menu->Append(wxID_SAVE,
wxT(
"&Save...\tCtrl+S"));
683 menu->Append(wxID_SAVEAS,
wxT(
"Save &As...\tCtrl+Shift+S"));
684 menu->AppendSeparator();
685 menu->Append(wxID_REVERT_TO_SAVED, _T(
"&Revert to Saved"));
686 menu->AppendSeparator();
688 menu->AppendSeparator();
689 menu->Append(wxID_CLOSE,
wxT(
"&Close Window\tCtrl+W"));
690 bar->Append(menu,
wxT(
"&File"));
693 menu->Append(wxID_UNDO,
_(
"&Undo\tCtrl+Z"));
694 menu->Append(wxID_REDO,
_(
"&Redo\tCtrl+Y"));
695 menu->AppendSeparator();
696 menu->Append(wxID_CUT,
_(
"Cu&t\tCtrl+X"));
697 menu->Append(wxID_COPY,
_(
"&Copy\tCtrl+C"));
698 menu->Append(wxID_PASTE,
_(
"&Paste\tCtrl+V"));
699 menu->Append(wxID_CLEAR,
_(
"Cle&ar\tCtrl+L"));
700 menu->AppendSeparator();
701 menu->Append(wxID_SELECTALL,
_(
"Select A&ll\tCtrl+A"));
702 menu->AppendSeparator();
703 menu->Append(wxID_FIND,
_(
"&Find...\tCtrl+F"));
704 menu->AppendSeparator();
705 wxMenu *sub =
new wxMenu();
706 sub->Append(
ID_MATCH,
_(
"&Matching Paren\tF8"));
707 sub->Append(
ID_TOP,
_(
"&Top S-expr\tF9"));
708 sub->Append(
ID_UP,
_(
"&Higher S-expr\tF10"));
710 sub->Append(
ID_NEXT,
_(
"&Next S-expr\tF12"));
711 menu->AppendSubMenu(sub,
_(
"&Go to"));
712 menu->AppendSeparator();
714 bar->Append(menu,
wxT(
"&Edit"));
717 menu->Append(
ID_FONT,
_(
"Select &Font..."));
718 menu->AppendSeparator();
719 menu->Append(
ID_SPLITV,
_(
"Split &Vertically"));
720 menu->Append(
ID_SPLITH,
_(
"Split &Horizontally"));
721 menu->AppendSeparator();
724 menu->AppendSeparator();
728 menu->AppendSubMenu(sub,
_(
"Toolbar"));
729 bar->Append(menu,
wxT(
"&View"));
732 menu->Append(
ID_GO,
_(
"&Go\tF5"));
733 menu->Append(
ID_STOP,
_(
"&Stop\tF6"));
734 bar->Append(menu,
wxT(
"&Run"));
736#if defined(__WXMAC__)
737 menu->Append(wxID_ABOUT,
_(
"&About"));
740 menu->Append(wxID_ABOUT,
_(
"&About"));
741 bar->Append(menu,
wxT(
"Help"));
752 r.SetHeight(
gPrefs->
Read(
wxT(
"NyqBench/Window/Height"), -1));
753 if (r == wxRect(-1, -1, -1, -1)) {
760 bool maximized =
false;
772 wxString dflt = wxSystemSettings::GetFont(wxSYS_SYSTEM_FONT).GetNativeFontInfoDesc();
778#if defined(__WXMSW__)
785 mScript->SetDefaultStyle(attr);
789#if defined(__WXMSW__)
796 mOutput->SetDefaultStyle(attr);
812 if (!IsMaximized()) {
813 wxRect r = GetRect();
815#if !defined(__WXMAC__)
840 S.StartHorizontalLay(wxEXPAND,
true);
844 wxStaticBoxSizer *scripts;
845 wxStaticBoxSizer *outputs;
860 wxNO_FULL_REPAINT_ON_RESIZE |
862 bs =
new wxBoxSizer(wxVERTICAL);
863 scriptp->SetSizer(bs);
871 bs->Add(scripts,
true, wxEXPAND);
878 wxTE_RICH2 | wxTE_RICH |
879 (
mAutoWrap ? wxTE_BESTWRAP : wxTE_DONTWRAP) |
882 scripts->Add(
mScript,
true, wxEXPAND);
888 wxNO_FULL_REPAINT_ON_RESIZE |
890 bs =
new wxBoxSizer(wxVERTICAL);
891 outputp->SetSizer(bs);
898 bs->Add(outputs,
true, wxEXPAND);
906#
if !defined(__WXMAC__)
914 outputs->Add(
mOutput,
true, wxEXPAND);
918 case wxSPLIT_VERTICAL:
919 mSplitter->SplitVertically(scriptp, outputp, 300);
922 case wxSPLIT_HORIZONTAL:
923 mSplitter->SplitHorizontally(scriptp, outputp, 300);
940 S.EndHorizontalLay();
960 if (!IsIconized() && !IsMaximized()) {
968 if (!IsIconized() && !IsMaximized()) {
984 mPath.SetFullName(wxEmptyString);
1002 wxFileDialog dlog(
this,
1003 _(
"Load Nyquist script"),
1006 _(
"Nyquist scripts (*.ny)|*.ny|Lisp scripts (*.lsp)|*.lsp|All files|*"),
1007 wxFD_OPEN | wxRESIZE_BORDER);
1009 if (dlog.ShowModal() != wxID_OK) {
1013 mPath = dlog.GetPath();
1023 if (
mScript->GetLastPosition() == 0) {
1027 if (
mPath.GetFullPath().IsEmpty()) {
1044 if (
mScript->GetLastPosition() == 0) {
1048 wxFileDialog dlog(
this,
1049 _(
"Save Nyquist script"),
1050 mPath.GetFullPath(),
1052 _(
"Nyquist scripts (*.ny)|*.ny|Lisp scripts (*.lsp)|*.lsp|All files|*"),
1053 wxFD_SAVE | wxFD_OVERWRITE_PROMPT | wxRESIZE_BORDER);
1055 if (dlog.ShowModal() != wxID_OK) {
1059 mPath = dlog.GetPath();
1081 if (
mPath.GetFullPath().IsEmpty()) {
1140 flags |= (
gPrefs->
Read(
wxT(
"NyqBench/Find/Down"), 0L) ? wxFR_DOWN : 0);
1141 flags |= (
gPrefs->
Read(
wxT(
"NyqBench/Find/Word"), 0L) ? wxFR_WHOLEWORD : 0);
1142 flags |= (
gPrefs->
Read(
wxT(
"NyqBench/Find/Case"), 0L) ? wxFR_MATCHCASE : 0);
1146 mFindDlg =
new wxFindReplaceDialog(
this,
1184 wxWindow *parent =
mScript->GetParent();
1185 wxString text =
mScript->GetValue();
1187 long pos =
mScript->GetInsertionPoint();
1190 mScript->GetSelection(&from, &to);
1192 wxSizer *s =
mScript->GetContainingSizer();
1201 (
mAutoWrap ? wxTE_BESTWRAP : wxTE_DONTWRAP) |
1202 wxTE_NOHIDESEL | wxTE_RICH2 |
1208 mScript->SetInsertionPoint(pos);
1209 mScript->SetSelection(from, to);
1220 wxFontDialog dlg(
this, data);
1228 if (dlg.ShowModal() == wxID_OK) {
1229 wxFontData retData = dlg.GetFontData();
1230 wxFont font = retData.GetChosenFont();
1241 ((wxTextCtrl *)w)->SetDefaultStyle(attr);
1242 ((wxTextCtrl *)w)->SetStyle(0, ((wxTextCtrl *)w)->GetLastPosition(), attr);
1267 if (e.IsChecked()) {
1293 if (e.IsChecked()) {
1330 std::make_unique<NyquistEffect>(L
"Nyquist Effect Workbench");
1342 wxWindowDisabler disable(
this);
1367 wxAboutDialogInfo i;
1369 i.AddArtist(
_(
"Harvey Lubin (logo)"));
1370 i.AddArtist(
_(
"Tango Icon Gallery (toolbar icons)"));
1371 i.AddDeveloper(
_(
"Leland Lucius"));
1372 i.SetCopyright(
_(
"(C) 2009 by Leland Lucius"));
1373 i.SetDescription(
_(
"External Audacity module which provides a simple IDE for writing effects."));
1374 i.SetName(
_(
"Nyquist Effect Workbench"));
1375 i.SetVersion(__TDATE__);
1382 wxEventType type = e.GetEventType();
1384 if (type == wxEVT_COMMAND_FIND_CLOSE) {
1385 wxFindReplaceDialog *dlg = e.GetDialog();
1391 gPrefs->
Write(
wxT(
"NyqBench/Find/Down"), (flags & wxFR_DOWN) != 0);
1392 gPrefs->
Write(
wxT(
"NyqBench/Find/Word"), (flags & wxFR_WHOLEWORD) != 0);
1393 gPrefs->
Write(
wxT(
"NyqBench/Find/Case"), (flags & wxFR_MATCHCASE) != 0);
1403#if defined(__WXMSW__)
1414 size_t startpos =
mFindText->GetInsertionPoint();
1415 size_t len =
mFindText->GetLastPosition();
1418 wxString find = e.GetFindString();
1419 bool down = (e.GetFlags() & wxFR_DOWN) != 0;
1420 bool mixed = (e.GetFlags() & wxFR_MATCHCASE) != 0;
1428 pos = text.find(find, startpos);
1429 if (type == wxEVT_COMMAND_FIND_NEXT && pos == startpos && pos < len) {
1430 pos = text.find(find, startpos + 1);
1434 pos = text.rfind(find, startpos);
1435 if (type == wxEVT_COMMAND_FIND_NEXT && pos == startpos && pos > 0) {
1436 pos = text.rfind(find, startpos - 1);
1442 XO(
"Nyquist Effect Workbench"),
1449 mFindText->SetInsertionPoint((
long)pos);
1451#if defined(__WXGTK__)
1456 mFindText->SetSelection((
long)(pos + find.Length()), (
long)pos);
1458 mFindText->SetSelection((
long)pos, (
long)(pos + find.Length()));
1461#if defined(__WXMAC__)
1474 ((
NyqTextCtrl *) e.GetEventObject())->MarkDirty();
1479 if (e.GetId() != wxID_REVERT_TO_SAVED) {
1480 e.Enable((
mScript->GetLastPosition() > 0) ||
mScript->IsModified());
1483 e.Enable(
mScript->IsModified());
1519 wxMenuBar *bar = GetMenuBar();
1531 wxToolBar *tbar = GetToolBar();
1532 wxMenuBar *mbar = GetMenuBar();
1535 if (p && gAudioIO->IsBusy()) {
1536 mbar->Enable(
ID_GO,
false);
1539 tbar->EnableTool(
ID_GO,
false);
1540 tbar->EnableTool(
ID_STOP,
false);
1555 if (
label ==
_(
"Script")) {
1567 if (
label ==
_(
"Output")) {
1581 wxYES_NO | wxICON_QUESTION,
1593 wxString
name =
_(
"Untitled");
1595 if (!
mPath.GetFullPath().IsEmpty()) {
1599 SetTitle(
_(
"Nyquist Effect Workbench - ") +
name);
1606 wxToolBar *tb = GetToolBar();
1610 tb = CreateToolBar();
1615 tb->SetToolBitmapSize(wxSize(16, 16));
1616 mPics[0] = wxBitmap(document_new_small);
1617 mPics[1] = wxBitmap(document_open_small);
1618 mPics[2] = wxBitmap(document_save_as_small);
1619 mPics[3] = wxBitmap(document_save_small);
1620 mPics[4] = wxBitmap(edit_copy_small);
1621 mPics[5] = wxBitmap(edit_cut_small);
1622 mPics[6] = wxBitmap(edit_paste_small);
1623 mPics[7] = wxBitmap(edit_clear_small);
1624 mPics[8] = wxBitmap(edit_delete_small);
1625 mPics[9] = wxBitmap(edit_select_all_small);
1626 mPics[10] = wxBitmap(edit_undo_small);
1627 mPics[11] = wxBitmap(edit_redo_small);
1628 mPics[12] = wxBitmap(edit_find_small);
1629 mPics[13] = wxBitmap(system_search_small);
1630 mPics[14] = wxBitmap(go_top_small);
1631 mPics[15] = wxBitmap(go_up_small);
1632 mPics[16] = wxBitmap(go_previous_small);
1633 mPics[17] = wxBitmap(go_next_small);
1634 mPics[18] = wxBitmap(media_playback_start_small);
1635 mPics[19] = wxBitmap(media_playback_stop_small);
1638 tb->SetToolBitmapSize(wxSize(32, 32));
1639 mPics[0] = wxBitmap(document_new_large);
1640 mPics[1] = wxBitmap(document_open_large);
1641 mPics[2] = wxBitmap(document_save_as_large);
1642 mPics[3] = wxBitmap(document_save_large);
1643 mPics[4] = wxBitmap(edit_copy_large);
1644 mPics[5] = wxBitmap(edit_cut_large);
1645 mPics[6] = wxBitmap(edit_paste_large);
1646 mPics[7] = wxBitmap(edit_clear_large);
1647 mPics[8] = wxBitmap(edit_delete_large);
1648 mPics[9] = wxBitmap(edit_select_all_large);
1649 mPics[10] = wxBitmap(edit_undo_large);
1650 mPics[11] = wxBitmap(edit_redo_large);
1651 mPics[12] = wxBitmap(edit_find_large);
1652 mPics[13] = wxBitmap(system_search_large);
1653 mPics[14] = wxBitmap(go_top_large);
1654 mPics[15] = wxBitmap(go_up_large);
1655 mPics[16] = wxBitmap(go_previous_large);
1656 mPics[17] = wxBitmap(go_next_large);
1657 mPics[18] = wxBitmap(media_playback_start_large);
1658 mPics[19] = wxBitmap(media_playback_stop_large);
1661 tb->SetMargins(2, 2);
1663 tb->AddTool(wxID_NEW,
_(
"New"),
mPics[0],
_(
"New script"));
1664 tb->AddTool(wxID_OPEN,
_(
"Open"),
mPics[1],
_(
"Open script"));
1665 tb->AddTool(wxID_SAVE,
_(
"Save"),
mPics[2],
_(
"Save script"));
1666 tb->AddTool(wxID_SAVEAS,
_(
"Save As"),
mPics[3],
_(
"Save script as..."));
1668 tb->AddTool(wxID_COPY,
_(
"Copy"),
mPics[4],
_(
"Copy to clipboard"));
1669 tb->AddTool(wxID_CUT,
_(
"Cut"),
mPics[5],
_(
"Cut to clipboard"));
1670 tb->AddTool(wxID_PASTE,
_(
"Paste"),
mPics[6],
_(
"Paste from clipboard"));
1671 tb->AddTool(wxID_CLEAR,
_(
"Clear"),
mPics[7],
_(
"Clear selection"));
1672 tb->AddTool(wxID_SELECTALL,
_(
"Select All"),
mPics[9],
_(
"Select all text"));
1674 tb->AddTool(wxID_UNDO,
_(
"Undo"),
mPics[10],
_(
"Undo last change"));
1675 tb->AddTool(wxID_REDO,
_(
"Redo"),
mPics[11],
_(
"Redo previous change"));
1677 tb->AddTool(wxID_FIND,
_(
"Find"),
mPics[12],
_(
"Find text"));
1679 tb->AddTool(
ID_MATCH,
_(
"Match"),
mPics[13],
_(
"Go to matching paren"));
1680 tb->AddTool(
ID_TOP,
_(
"Top"),
mPics[14],
_(
"Go to top S-expr"));
1681 tb->AddTool(
ID_UP,
_(
"Up"),
mPics[15],
_(
"Go to higher S-expr"));
1683 tb->AddTool(
ID_NEXT,
_(
"Next"),
mPics[17],
_(
"Go to next S-expr"));
1685 tb->AddTool(
ID_GO,
_(
"Start"),
mPics[18],
_(
"Start script"));
1692 SetMinSize(GetSize());
1697 wxString path =
mPath.GetFullPath();
1699 if (path.IsEmpty()) {
1706 if (f.ReadAll(&t)) {
1708 t.Replace(
wxT(
"\r\n"),
wxT(
"\n"));
1709 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()
XXO("&Cut/Copy/Paste Toolbar")
int DLL_API ModuleDispatch(ModuleDispatchTypes type)
static DEFINE_VERSION_CHECK NyqBench * gBench
audacity::BasicSettings * gPrefs
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)
Generates classes whose instances register items at construction.
Derived from ShuttleGuiBase, an Audacity specific class for shuttling data to and from GUI.
virtual bool Write(const wxString &key, bool value)=0
virtual bool Read(const wxString &key, bool *value) const =0
std::unique_ptr< WindowPlacement > FindFocus()
Find the window that is accepting keyboard input, if any.
bool DoEffect(const PluginID &ID, AudacityProject &project, unsigned flags)
IMPORT_EXPORT_API ExportResult Show(ExportTask exportTask)
constexpr size_t npos(-1)
const TranslatableString desc
CommandHandlerObject & findme(AudacityProject &)