www.pudn.com > TurboPadSource.tar.gz > stextctrl.h
/** * \class STextCtrl * Styled Text Control class * * Styled Text Control class, handles syntax highlighting, etc. * \todo Make mousewheel scrolling while holding Ctrl move pages at a time * instead of increasing or decreasing the font */ #ifndef SText_H #define SText_H class STextCtrl; typedef STextCtrl* STCPtr; #include#include #include #include "child.h" class STextCtrl : public wxStyledTextCtrl { public: STextCtrl(CPtr parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0); bool FindNext(); bool FindPrevious(); bool FindNextOccurence(const wxString &findStr, int flags = 0); bool FindPreviousOccurence(const wxString &findStr, int flags = 0); bool LoadFile(const wxString &fileName); bool SaveFile(const wxString &fileName); inline bool HasSelection() { return GetSelectionStart() != GetSelectionEnd(); } inline bool HasText() { return GetLength() > 0; } inline int GetLastLine() { return LineFromPosition(GetLength()); } inline CPtr GetParent(); inline int GetX() { return GetColumn(GetCurrentPos()); } inline int GetY() { return LineFromPosition(GetCurrentPos()); } inline int LinesSelected(); void BlockCommentSelection(const wxString &comment); void FindWord(wxCommandEvent &event); void FindPreviousWord(wxCommandEvent &event); void GetSelection(int &from, int &to); void MakeLower(); void MakeUpper(); void PlayMacro(const wxArrayInt ¯o); void Remove(int from, int to); void RemoveAllBookMarks(); void Replace(const wxString &findStr, const wxString &replaceStr, int flags); void ReplaceText(int from, int to, const wxString &value); void ReplaceAll(const wxString &findStr, const wxString &replaceStr, int flags); void SetEOL(int eolMode); void ShowAutoComplete(wxCommandEvent &event); void ShowMatchingBrace(int pos); void ShowNextBookMark(int line); void ShowPreviousBookMark(int line); void SortSelection(); void StreamCommentSelection(const wxString &streamStart, const wxString &streamEnd); void ToggleBookMark(int line); void ToggleMacroRecord(); wxString GetTextUnderCursor(); wxString GetTextUnderCursor(int &startPos, int &endPos); private: wxString findString; wxString replaceString; int findFlags; int braceLoc; wxArrayInt mac; bool recording; bool FindCurrentWord(bool findNext = true); inline bool IsBrace(char brace); inline char GetCurrentChar() { return GetCharAt(GetCurrentPos()); } inline PPtr GetGrandParent(); inline char GetPreviousChar() { return GetCharAt(GetCurrentPos()-1); } inline void InitDefaultStyles(); inline void InitMargins(); inline void InitOptions(); void CharAdded(wxStyledTextEvent &event); void MacroRecord(wxStyledTextEvent &event); void MarginClicked(wxStyledTextEvent &event); void Modified(wxStyledTextEvent &event); void PosChange(wxStyledTextEvent &event); DECLARE_EVENT_TABLE() }; enum EOLMode { CRLF, CR, LF }; enum { Txt_AutoComplete, Txt_FindWord, Txt_FindPreviousWord }; #endif