1////////////////////////////////////////////////////////////////////////////// 2// File: edit.h 3// Purpose: STC test module 4// Maintainer: Wyo 5// Created: 2003-09-01 6// RCS-ID: $Id: edit.h 35523 2005-09-16 18:25:44Z ABX $ 7// Copyright: (c) wxGuide 8// Licence: wxWindows licence 9////////////////////////////////////////////////////////////////////////////// 10 11#ifndef _EDIT_H_ 12#define _EDIT_H_ 13 14//---------------------------------------------------------------------------- 15// informations 16//---------------------------------------------------------------------------- 17 18 19//---------------------------------------------------------------------------- 20// headers 21//---------------------------------------------------------------------------- 22 23//! wxWidgets headers 24 25//! wxWidgets/contrib headers 26#include "wx/stc/stc.h" // styled text control 27 28//! application headers 29#include "prefs.h" // preferences 30 31 32//============================================================================ 33// declarations 34//============================================================================ 35 36class EditPrint; 37class EditProperties; 38 39 40//---------------------------------------------------------------------------- 41//! Edit 42class Edit: public wxStyledTextCtrl { 43 friend class EditProperties; 44 friend class EditPrint; 45 46public: 47 //! constructor 48 Edit (wxWindow *parent, wxWindowID id = wxID_ANY, 49 const wxPoint &pos = wxDefaultPosition, 50 const wxSize &size = wxDefaultSize, 51 long style = wxSUNKEN_BORDER|wxVSCROLL 52 ); 53 54 //! destructor 55 ~Edit (); 56 57 // event handlers 58 // common 59 void OnSize( wxSizeEvent &event ); 60 // edit 61 void OnEditRedo (wxCommandEvent &event); 62 void OnEditUndo (wxCommandEvent &event); 63 void OnEditClear (wxCommandEvent &event); 64 void OnEditCut (wxCommandEvent &event); 65 void OnEditCopy (wxCommandEvent &event); 66 void OnEditPaste (wxCommandEvent &event); 67 // find 68 void OnFind (wxCommandEvent &event); 69 void OnFindNext (wxCommandEvent &event); 70 void OnReplace (wxCommandEvent &event); 71 void OnReplaceNext (wxCommandEvent &event); 72 void OnBraceMatch (wxCommandEvent &event); 73 void OnGoto (wxCommandEvent &event); 74 void OnEditIndentInc (wxCommandEvent &event); 75 void OnEditIndentRed (wxCommandEvent &event); 76 void OnEditSelectAll (wxCommandEvent &event); 77 void OnEditSelectLine (wxCommandEvent &event); 78 //! view 79 void OnHilightLang (wxCommandEvent &event); 80 void OnDisplayEOL (wxCommandEvent &event); 81 void OnIndentGuide (wxCommandEvent &event); 82 void OnLineNumber (wxCommandEvent &event); 83 void OnLongLineOn (wxCommandEvent &event); 84 void OnWhiteSpace (wxCommandEvent &event); 85 void OnFoldToggle (wxCommandEvent &event); 86 void OnSetOverType (wxCommandEvent &event); 87 void OnSetReadOnly (wxCommandEvent &event); 88 void OnWrapmodeOn (wxCommandEvent &event); 89 void OnUseCharset (wxCommandEvent &event); 90 //! extra 91 void OnChangeCase (wxCommandEvent &event); 92 void OnConvertEOL (wxCommandEvent &event); 93 // stc 94 void OnMarginClick (wxStyledTextEvent &event); 95 void OnCharAdded (wxStyledTextEvent &event); 96 97 //! language/lexer 98 wxString DeterminePrefs (const wxString &filename); 99 bool InitializePrefs (const wxString &filename); 100 bool UserSettings (const wxString &filename); 101 LanguageInfo const* GetLanguageInfo () {return m_language;}; 102 103 //! load/save file 104 bool LoadFile (); 105 bool LoadFile (const wxString &filename); 106 bool SaveFile (); 107 bool SaveFile (const wxString &filename); 108 bool Modified (); 109 wxString GetFilename () {return m_filename;}; 110 void SetFilename (const wxString &filename) {m_filename = filename;}; 111 112private: 113 // file 114 wxString m_filename; 115 116 // lanugage properties 117 LanguageInfo const* m_language; 118 119 // margin variables 120 int m_LineNrID; 121 int m_LineNrMargin; 122 int m_FoldingID; 123 int m_FoldingMargin; 124 int m_DividerID; 125 126 DECLARE_EVENT_TABLE() 127}; 128 129//---------------------------------------------------------------------------- 130//! EditProperties 131class EditProperties: public wxDialog { 132 133public: 134 135 //! constructor 136 EditProperties (Edit *edit, long style = 0); 137 138private: 139 140}; 141 142#if wxUSE_PRINTING_ARCHITECTURE 143 144//---------------------------------------------------------------------------- 145//! EditPrint 146class EditPrint: public wxPrintout { 147 148public: 149 150 //! constructor 151 EditPrint (Edit *edit, wxChar *title = _T("")); 152 153 //! event handlers 154 bool OnPrintPage (int page); 155 bool OnBeginDocument (int startPage, int endPage); 156 157 //! print functions 158 bool HasPage (int page); 159 void GetPageInfo (int *minPage, int *maxPage, int *selPageFrom, int *selPageTo); 160 161private: 162 Edit *m_edit; 163 int m_printed; 164 wxRect m_pageRect; 165 wxRect m_printRect; 166 167 bool PrintScaling (wxDC *dc); 168}; 169 170#endif // wxUSE_PRINTING_ARCHITECTURE 171 172#endif // _EDIT_H_ 173