mirror of
				https://github.com/cookiengineer/audacity
				synced 2025-10-31 06:03:49 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			227 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			227 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| /**********************************************************************
 | |
| 
 | |
|   NyqBench.h
 | |
| 
 | |
|   Leland Lucius
 | |
| 
 | |
| **********************************************************************/
 | |
| 
 | |
| #ifndef __NYQUIST_EFFECT_WORKBENCH__
 | |
| #define __NYQUIST_EFFECT_WORKBENCH__
 | |
| 
 | |
| #include <wx/fdrepdlg.h> // wxFindReplaceData member variable
 | |
| #include <wx/frame.h> // to inherit
 | |
| #include <wx/string.h>
 | |
| 
 | |
| #include <iostream>
 | |
| #include <ostream>
 | |
| #include <sstream>
 | |
| 
 | |
| #include "commands/CommandManager.h"
 | |
| #include "effects/nyquist/Nyquist.h"
 | |
| 
 | |
| class wxFileName;
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // NyqTextCtrl
 | |
| //----------------------------------------------------------------------------
 | |
| 
 | |
| class NyqTextCtrl:public wxTextCtrl
 | |
| {
 | |
|  public:
 | |
|    NyqTextCtrl(wxWindow *parent,
 | |
|                wxWindowID id,
 | |
|                const wxString & value,
 | |
|                const wxPoint & pos,
 | |
|                const wxSize & size,
 | |
|                int style = 0);
 | |
| 
 | |
|    void SetFocusFromKbd();
 | |
|    void MarkDirty();
 | |
| 
 | |
|    void GoMatch();
 | |
|    void GoTop();
 | |
|    void GoUp();
 | |
|    void GoPrev();
 | |
|    void GoNext();
 | |
| 
 | |
|  private:
 | |
| #if defined(__WXMAC__REMOVED_UNTIL_ITS_PROVEN_THAT_IT_IS_STILL_NEEDED)
 | |
|    void OnKeyDown(wxKeyEvent & e);
 | |
| #endif
 | |
|    void OnKeyUp(wxKeyEvent & e);
 | |
|    void OnChar(wxKeyEvent & e);
 | |
|    void OnUpdate(wxUpdateUIEvent & e);
 | |
| 
 | |
|    void MoveCursor(long first, long second);
 | |
|    void Colorize(long left, long right);
 | |
|    void FindParens();
 | |
| 
 | |
|  private:
 | |
|    wxLongToLongHashMap mLeftParens;
 | |
|    wxLongToLongHashMap mRightParens;
 | |
| 
 | |
|    long mLeftParen;
 | |
|    long mRightParen;
 | |
| 
 | |
|    long mLastCaretPos;
 | |
| 
 | |
|    wxTextAttr mOn;
 | |
|    wxTextAttr mOff;
 | |
| 
 | |
|    DECLARE_EVENT_TABLE();
 | |
| };
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // NyqRedirector
 | |
| //----------------------------------------------------------------------------
 | |
| 
 | |
| class NyqRedirector:wxSTD streambuf
 | |
| {
 | |
|  public:
 | |
|    NyqRedirector(NyqTextCtrl *text);
 | |
|    virtual ~NyqRedirector();
 | |
| 
 | |
|    int overflow(int c);
 | |
| 
 | |
|  private:
 | |
|    void AppendText();
 | |
| 
 | |
|    std::string s;
 | |
|    std::streambuf *mOld;
 | |
|    NyqTextCtrl *mText;
 | |
| };
 | |
| 
 | |
| //----------------------------------------------------------------------------
 | |
| // NyqBench
 | |
| //----------------------------------------------------------------------------
 | |
| 
 | |
| class NyqBench:public wxFrame
 | |
| {
 | |
|  public:
 | |
|    NyqBench(wxWindow *parent);
 | |
|    virtual ~NyqBench();
 | |
| 
 | |
|    virtual bool Validate();
 | |
| 
 | |
|    void ShowNyqBench(const CommandContext&);
 | |
| 
 | |
|    static NyqBench *GetBench();
 | |
| 
 | |
|  private:
 | |
|    void PopulateOrExchange(ShuttleGui & S);
 | |
| 
 | |
|    void OnClose(wxCloseEvent & e);
 | |
|    void OnMove(wxMoveEvent & e);
 | |
|    void OnSize(wxSizeEvent & e);
 | |
| 
 | |
|    void OnNew(wxCommandEvent & e);
 | |
|    void OnOpen(wxCommandEvent & e);
 | |
|    void OnSave(wxCommandEvent & e);
 | |
|    void OnSaveAs(wxCommandEvent & e);
 | |
|    void OnRevert(wxCommandEvent & e);
 | |
|    void OnAutoLoad(wxCommandEvent & e);
 | |
|    void OnCloseWindow(wxCommandEvent & e);
 | |
| 
 | |
|    void OnUndo(wxCommandEvent & e);
 | |
|    void OnRedo(wxCommandEvent & e);
 | |
|    void OnCut(wxCommandEvent & e);
 | |
|    void OnCopy(wxCommandEvent & e);
 | |
|    void OnPaste(wxCommandEvent & e);
 | |
|    void OnClear(wxCommandEvent & e);
 | |
|    void OnSelectAll(wxCommandEvent & e);
 | |
|    void OnFind(wxCommandEvent & e);
 | |
|    void OnGoMatch(wxCommandEvent & e);
 | |
|    void OnGoTop(wxCommandEvent & e);
 | |
|    void OnGoUp(wxCommandEvent & e);
 | |
|    void OnGoPrev(wxCommandEvent & e);
 | |
|    void OnGoNext(wxCommandEvent & e);
 | |
|    void OnAutoWrap(wxCommandEvent & e);
 | |
| 
 | |
|    void OnFont(wxCommandEvent & e);
 | |
|    void OnSplitV(wxCommandEvent & e);
 | |
|    void OnSplitH(wxCommandEvent & e);
 | |
|    void OnToggleCode(wxCommandEvent & e);
 | |
|    void OnToggleOutput(wxCommandEvent & e);
 | |
|    void OnSmallIcons(wxCommandEvent & e);
 | |
|    void OnLargeIcons(wxCommandEvent & e);
 | |
| 
 | |
|    void OnGo(wxCommandEvent & e);
 | |
|    void OnStop(wxCommandEvent & e);
 | |
| 
 | |
|    void OnAbout(wxCommandEvent & e);
 | |
| 
 | |
|    void OnFindDialog(wxFindDialogEvent & e);
 | |
| 
 | |
|    void OnTextUpdate(wxCommandEvent & e);
 | |
| 
 | |
|    void OnMenuUpdate(wxUpdateUIEvent & e);
 | |
|  
 | |
|    void OnUndoUpdate(wxUpdateUIEvent & e);
 | |
|    void OnRedoUpdate(wxUpdateUIEvent & e);
 | |
|    void OnCutUpdate(wxUpdateUIEvent & e);
 | |
|    void OnCopyUpdate(wxUpdateUIEvent & e);
 | |
|    void OnPasteUpdate(wxUpdateUIEvent & e);
 | |
|    void OnClearUpdate(wxUpdateUIEvent & e);
 | |
| 
 | |
|    void OnViewUpdate(wxUpdateUIEvent & e);
 | |
| 
 | |
|    void OnRunUpdate(wxUpdateUIEvent & e);
 | |
| 
 | |
|    void OnScriptUpdate(wxUpdateUIEvent & e);
 | |
|    void OnOutputUpdate(wxUpdateUIEvent & e);
 | |
| 
 | |
|    void SetWindowTitle();
 | |
| 
 | |
|    void RecreateToolbar(bool large = false);
 | |
| 
 | |
|    void LoadFile();
 | |
| 
 | |
|  private:
 | |
|    wxStaticBox *mScriptBox;
 | |
|    wxStaticBox *mOutputBox;
 | |
|    NyqTextCtrl *mScript;
 | |
|    NyqTextCtrl *mOutput;
 | |
|    wxSplitterWindow *mSplitter;
 | |
| 
 | |
|    wxFindReplaceDialog *mFindDlg;
 | |
|    wxFindReplaceData mFindData;
 | |
|    NyqTextCtrl *mFindText;
 | |
| 
 | |
|    NyquistEffect *mEffect;
 | |
| 
 | |
|    wxFont mScriptFont;
 | |
|    wxFont mOutputFont;
 | |
| 
 | |
|    wxBitmap mPics[20];
 | |
| 
 | |
|    int mSplitMode;
 | |
|    bool mShowCode;
 | |
|    bool mShowOutput;
 | |
| 
 | |
|    bool mLargeIcons;
 | |
| 
 | |
|    bool mRunning;
 | |
| 
 | |
|    wxFileName mPath;
 | |
|    bool mAutoLoad;
 | |
|    bool mAutoWrap;
 | |
| 
 | |
|    wxRect mLastSize;
 | |
| 
 | |
|    DECLARE_EVENT_TABLE();
 | |
| };
 | |
| 
 | |
| #endif
 | |
| 
 | |
| // Indentation settings for Vim and Emacs and unique identifier for Arch, a
 | |
| // version control system. Please do not modify past this point.
 | |
| //
 | |
| // Local Variables:
 | |
| // c-basic-offset: 3
 | |
| // indent-tabs-mode: nil
 | |
| // End:
 | |
| //
 | |
| // vim: et sts=3 sw=3
 | |
| // arch-tag: cad436f5-7c97-40a2-8ee9-3748e8f3e56f
 |