////////////////////////////////////////////////////////////////////////////// // File: edit.h // Purpose: STC test module // Maintainer: Wyo // Created: 2003-09-01 // RCS-ID: $Id$ // Copyright: (c) wxGuide // Licence: wxWindows licence ////////////////////////////////////////////////////////////////////////////// #ifndef _EDIT_H_ #define _EDIT_H_ //---------------------------------------------------------------------------- // informations //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // headers //---------------------------------------------------------------------------- //! wxWidgets headers //! wxWidgets/contrib headers #include // 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 = -1, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, long style = wxSUNKEN_BORDER|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 OnHilightLang (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); //! extra void OnChangeCase (wxCommandEvent &event); void OnConvertEOL (wxCommandEvent &event); // stc void OnMarginClick (wxStyledTextEvent &event); void OnCharAdded (wxStyledTextEvent &event); //! 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; // lanugage properties LanguageInfo const* m_language; // margin variables int m_LineNrID; int m_LineNrMargin; int m_FoldingID; int m_FoldingMargin; int m_DividerID; DECLARE_EVENT_TABLE() }; //---------------------------------------------------------------------------- //! EditProperties class EditProperties: public wxDialog { public: //! constructor EditProperties (Edit *edit, long style = 0); private: }; //---------------------------------------------------------------------------- //! EditPrint class EditPrint: public wxPrintout { public: //! constructor EditPrint (Edit *edit, wxChar *title = _T("")); //! event handlers bool OnPrintPage (int page); bool OnBeginDocument (int startPage, int endPage); //! print functions bool HasPage (int page); void GetPageInfo (int *minPage, int *maxPage, int *selPageFrom, int *selPageTo); private: Edit *m_edit; int m_printed; wxRect m_pageRect; wxRect m_printRect; bool PrintScaling (wxDC *dc); }; #endif // _EDIT_H_