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