////////////////////////////////////////////////////////////////////////////// // File: edit.h // Purpose: STC test module // Maintainer: Wyo // Created: 2003-09-01 // Copyright: (c) wxGuide // Licence: wxWindows licence ////////////////////////////////////////////////////////////////////////////// #ifndef _EDIT_H_ #define _EDIT_H_ //---------------------------------------------------------------------------- // information //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // headers //---------------------------------------------------------------------------- //! wxWidgets headers //! wxWidgets/contrib headers #include "wx/stc/stc.h" // styled text control //! application headers #include "prefs.h" // preferences //============================================================================ // declarations //============================================================================ class EditPrint; class EditProperties; //---------------------------------------------------------------------------- //! Edit class Edit: public wxStyledTextCtrl { friend class EditProperties; friend class EditPrint; public: //! constructor Edit (wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, long style = #ifndef __WXMAC__ wxSUNKEN_BORDER| #endif wxVSCROLL ); //! destructor ~Edit (); // event handlers // common void OnSize( wxSizeEvent &event ); // edit void OnEditRedo (wxCommandEvent &event); void OnEditUndo (wxCommandEvent &event); void OnEditClear (wxCommandEvent &event); void OnEditCut (wxCommandEvent &event); void OnEditCopy (wxCommandEvent &event); void OnEditPaste (wxCommandEvent &event); // find void OnFind (wxCommandEvent &event); void OnFindNext (wxCommandEvent &event); void OnReplace (wxCommandEvent &event); void OnReplaceNext (wxCommandEvent &event); void OnBraceMatch (wxCommandEvent &event); void OnGoto (wxCommandEvent &event); void OnEditIndentInc (wxCommandEvent &event); void OnEditIndentRed (wxCommandEvent &event); void OnEditSelectAll (wxCommandEvent &event); void OnEditSelectLine (wxCommandEvent &event); //! view void OnHighlightLang (wxCommandEvent &event); void OnDisplayEOL (wxCommandEvent &event); void OnIndentGuide (wxCommandEvent &event); void OnLineNumber (wxCommandEvent &event); void OnLongLineOn (wxCommandEvent &event); void OnWhiteSpace (wxCommandEvent &event); void OnFoldToggle (wxCommandEvent &event); void OnSetOverType (wxCommandEvent &event); void OnSetReadOnly (wxCommandEvent &event); void OnWrapmodeOn (wxCommandEvent &event); void OnUseCharset (wxCommandEvent &event); // annotations void OnAnnotationAdd(wxCommandEvent& event); void OnAnnotationRemove(wxCommandEvent& event); void OnAnnotationClear(wxCommandEvent& event); void OnAnnotationStyle(wxCommandEvent& event); //! extra void OnChangeCase (wxCommandEvent &event); void OnConvertEOL (wxCommandEvent &event); void OnMultipleSelections(wxCommandEvent& event); void OnMultiPaste(wxCommandEvent& event); void OnMultipleSelectionsTyping(wxCommandEvent& event); void OnCustomPopup(wxCommandEvent& evt); // stc void OnMarginClick (wxStyledTextEvent &event); void OnCharAdded (wxStyledTextEvent &event); void OnCallTipClick(wxStyledTextEvent &event); void OnKeyDown(wxKeyEvent &event); // call tips void ShowCallTipAt(int position); //! language/lexer wxString DeterminePrefs (const wxString &filename); bool InitializePrefs (const wxString &filename); bool UserSettings (const wxString &filename); LanguageInfo const* GetLanguageInfo () {return m_language;} //! load/save file bool LoadFile (); bool LoadFile (const wxString &filename); bool SaveFile (); bool SaveFile (const wxString &filename); bool Modified (); wxString GetFilename () {return m_filename;} void SetFilename (const wxString &filename) {m_filename = filename;} private: // file wxString m_filename; // language properties LanguageInfo const* m_language; // margin variables int m_LineNrID; int m_LineNrMargin; int m_FoldingID; int m_FoldingMargin; int m_DividerID; // call tip data int m_calltipNo; wxDECLARE_EVENT_TABLE(); }; //---------------------------------------------------------------------------- //! EditProperties class EditProperties: public wxDialog { public: //! constructor EditProperties (Edit *edit, long style = 0); private: }; #if wxUSE_PRINTING_ARCHITECTURE //---------------------------------------------------------------------------- //! EditPrint class EditPrint: public wxPrintout { public: //! constructor EditPrint (Edit *edit, const wxString& title = ""); //! event handlers bool OnPrintPage (int page) wxOVERRIDE; bool OnBeginDocument (int startPage, int endPage) wxOVERRIDE; //! print functions bool HasPage (int page) wxOVERRIDE; void GetPageInfo (int *minPage, int *maxPage, int *selPageFrom, int *selPageTo) wxOVERRIDE; private: Edit *m_edit; wxArrayInt m_pageEnds; wxRect m_pageRect; wxRect m_printRect; bool PrintScaling (wxDC *dc); }; #endif // wxUSE_PRINTING_ARCHITECTURE #endif // _EDIT_H_