]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxPython/modules/lseditor/tdefs.h
merged 2.2 branch
[wxWidgets.git] / utils / wxPython / modules / lseditor / tdefs.h
diff --git a/utils/wxPython/modules/lseditor/tdefs.h b/utils/wxPython/modules/lseditor/tdefs.h
deleted file mode 100644 (file)
index 7538980..0000000
+++ /dev/null
@@ -1,903 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// Name:        No names yet.
-// Purpose:     Contrib. demo
-// Author:      Aleksandras Gluchovas
-// Modified by:
-// Created:     03/04/1999
-// RCS-ID:      $Id$
-// Copyright:   (c) Aleskandars Gluchovas
-// Licence:    GNU General Public License 
-/////////////////////////////////////////////////////////////////////////////
-//
-//  This program is free software; you can redistribute it and/or modify
-//  it under the terms of the GNU General Public License as published by
-//  the Free Software Foundation; either version 2 of the License, or
-//  (at your option) any later version.
-//
-//  This program is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-//  GNU General Public License for more details.
-//
-//  You should have received a copy of the GNU General Public License
-//  along with this program; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef __TDEFS_G__
-#define __TDEFS_G__
-
-// should be compiled with wxSTL-v.1.2 (or higher)
-
-#include "wxstldefs.h"
-
-#if defined( wxUSE_TEMPLATE_STL )
-       #include <vector>
-       #include <list>
-#else
-       #include "wxstlvec.h"
-       #include "wxstllst.h"
-#endif
-
-#include "wx/window.h"
-#include "wx/scrolbar.h"
-
-#include "sourcepainter.h"
-
-#define NPOS ((size_t)(-1))
-
-class wxTextEditorModel;
-class wxTextEditorView;
-
-/*
- * class represents column-row position in the source text,
- * may refere to the column past the end-of-line,
- * but should not point past the last-line in the text
- */
-
-class TPosition
-{
-public:
-       size_t mRow;
-       size_t mCol;
-
-       inline TPosition() : mRow(0), mCol(0) {}
-
-       inline TPosition( size_t row, size_t col )
-
-               : mRow( row ), mCol( col ) {}
-
-       inline bool operator>( const TPosition& rhs ) const
-       { 
-               if ( mRow == rhs.mRow ) return mCol > rhs.mCol;
-               else
-                       return mRow > rhs.mRow;
-       }
-
-       inline bool operator<( const TPosition& rhs ) const
-       { 
-               if ( mRow == rhs.mRow ) return mCol < rhs.mCol;
-               else
-                       return mRow < rhs.mRow;
-       }
-};
-
-class TRange
-{
-public:
-       TPosition mFrom;
-       TPosition mTill;
-
-       TRange() {}
-       TRange( const TPosition& from, const TPosition& till )
-               : mFrom( from ), mTill( till )
-       {}
-};
-
-inline bool operator==( const TPosition& lhs, const TPosition& rhs )
-{
-       return lhs.mRow == rhs.mRow && lhs.mCol == rhs.mCol;
-}
-
-// FOR NOW:: bigger ones...
-
-#define MAX_BLOCK_LEN      (1024*164)
-#define BALANCED_BLOCK_LEN (1024*152)           
-#define FILLED_BLOCK_LEN   (1024*148)
-
-// FOR NOW::
-#define T_ASSERT( x ) if ( !(x) ) throw;
-
-// to speed up debug v. :
-
-#define is_eol_char( ch )     ( ch == (char)10 )
-#define is_DOS_eol_char( ch ) ( ch == (char)13 )
-
-// the target-platfrom eol-marking is selected when
-// new text document is created or auto-detection
-// failed to determine the text-format (e.g. no EOLs found at all)
-
-#if defined(__WINDOWS__) || defined(__WXMSW__)
-
-         #define IS_UNIX_TEXT_BY_DEFAULT FALSE
-#else
-         #define IS_UNIX_TEXT_BY_DEFAULT TRUE
-#endif
-
-//inline bool is_eol_char( char ch ) { return ch == 10 && ch == 13 ; }
-
-/*
- * Class contains single fragment of the source text, which
- * may grow or shrink in the process of editing. Blocks always
- * start at the begining of the line and end at eol, i.e. lines
- * are not broken among blocks
- */
-
-class TBlock
-{
-public:
-       char mBuf[MAX_BLOCK_LEN];
-       size_t mTextLen;
-       size_t mRowCount;
-
-       TBlock() : mTextLen(0), mRowCount(0) { mBuf[0] = '\0'; }
-
-       void RecalcBlockProperties();
-
-       bool operator==( const TBlock& blk ) const { return this == &blk; }
-
-        bool operator!=( const TBlock& blk ) const { return this != &blk; }
-
-       bool operator<( const TBlock& blk ) const { return TRUE; }
-
-        bool operator>( const TBlock& blk ) const { return FALSE; }
-};
-
-/*
- * captures info about mutable command 
- */
-
-class TCommand
-{
-public:
-
-       TCommand() : mType(-1) {}
-       TCommand( int type ) : mType( type ) {}
-       ~TCommand() {}
-
-       int       mType;
-       char*     mData;
-       size_t    mDataLen;
-
-       TRange    mRange;
-
-       // positions of cursor before and after executions of this command
-       TPosition mPrePos;
-       TPosition mPostPos;
-
-};
-
-enum TEXT_EDITOR_COMMAND
-{
-       TCMD_INSERT,
-       TCMD_DELETE
-};
-
-enum TEXT_CHANGE_TYPE
-{
-       CT_MODIFIED,
-       CT_DELETED,
-       CT_INSERTED
-};
-
-class wxTextEditorView;
-
-// STL-list is used for managing blocks, since it's alg. collects
-// removed elements into a free-list, from which they
-// can be reclaimed later, that way heap-fragmentation may be reduced
-
-#if defined( wxUSE_TEMPLATE_STL )
-       typedef list<TBlock>      TBlockListT;
-       typedef vector<TCommand*> TCommandListT;
-       typedef vector<wxTextEditorView*> TextViewListT;
-#else
-       typedef WXSTL_LIST( TBlock )  TBlockListT;
-
-       typedef TCommand* TCommandPtrT;
-       typedef WXSTL_VECTOR_SHALLOW_COPY( TCommandPtrT ) TCommandListT;
-
-       typedef wxTextEditorView* TextViewPtrT;
-       typedef WXSTL_VECTOR_SHALLOW_COPY( TextViewPtrT ) TextViewListT;
-#endif
-
-typedef TBlockListT::iterator TBlockIteratorT;
-
-
-/*
- * class shields the higher-level operations from direct access
- * to blocks of fragmented in-memory buffers
- */
-
-class TTextIterator
-{
-public:
-       TBlockIteratorT   mBlockIter;
-       TBlockIteratorT   mEndOfListIter;
-       TPosition         mPos;
-
-       size_t            mActualRow;
-       size_t            mFirstRowInBlock;
-
-       char*             mpCurRowStart;
-       bool              mIsEof;
-
-public:
-       TTextIterator();
-
-       char GetChar();
-       bool IsEol();
-       bool IsEof();
-       bool IsLastLine();
-       int  GetDistFromEol();
-
-       void NextChar();
-       void PreviousChar();
-       void NextWord();
-       void PreviousWord();
-       void ToEndOfLine();
-       void ToStartOfLine();
-
-       bool IsInLastBlock();
-
-       // accesors
-
-       size_t    GetLineLen();
-       TPosition GetPosition();
-
-       char* GetClosestPos(); 
-       char* GotoClosestPos();
-
-       inline char* GetBlockStart() { return (*mBlockIter).mBuf; }
-       inline char* GetBlockEnd()   { return (*mBlockIter).mBuf + (*mBlockIter).mTextLen; }
-
-       bool DetectUnixText();
-
-       // adjust this member to add specific separators, 
-       // the default value is : ",.()[]\t\\+-*/|=<>:;\t\n~?!%"
-
-       static string mSeparators;
-
-       static bool IsSeparator( char ch );
-};
-
-class wxTextEditorModel;
-
-class TTextChangeListenerBase
-{
-public:
-       virtual void OnTextChanged( wxTextEditorModel* pModel, size_t atRow, size_t nRows, TEXT_CHANGE_TYPE ct ) = 0;
-};
-
-class TCppJavaHighlightListener : public TTextChangeListenerBase
-{
-protected:
-       wxTextEditorModel* mpModel; // is set up temporarely
-
-       enum { IN_COMMENT_STATE, OUT_OF_COMMENT_STATE };
-
-public:
-       virtual void OnTextChanged( wxTextEditorModel* pModel, size_t atRow, size_t nRows, TEXT_CHANGE_TYPE ct );
-};
-
-
-/*
- * Base class for user-defined "bookmarks" within the source-text, bookmarks
- * are automatically repositioned or deleted as the text is edited. Class
- * can be subclassed to add pin-specific data (e.g. breakpoint information)
- */
-
-class TPinBase
-{
-public:
-       int    mTypeCode;
-       size_t mRow;
-
-public:
-       TPinBase() 
-               : mTypeCode(-1), mRow(NPOS) {}
-
-       TPinBase( int typeCode, size_t row )
-               : mTypeCode( typeCode ), mRow( row ) {}
-
-       size_t GetRow()      { return mRow; }
-       int    GetTypeCode() { return mTypeCode; }
-
-       virtual ~TPinBase() {}
-};
-
-// "recommened" type-code ranges for custom pins
-
-#define HIHGLIGHTING_PINS_TC_STARRT 50
-#define OTHER_PINS_TC_START         100
-
-inline bool operator<( const TPinBase& lhs, TPinBase& rhs )
-
-       { return lhs.mRow < rhs.mRow; }
-
-#if defined( wxUSE_TEMPLATE_STL )
-
-       typedef vector<TPinBase*> PinListT;
-       typedef vector<TTextChangeListenerBase*> ChangeListenerListT;
-#else
-       typedef TPinBase* TPinBasePtrT;
-       typedef WXSTL_VECTOR_SHALLOW_COPY( TPinBasePtrT ) PinListT;
-
-       typedef TTextChangeListenerBase* TTextChangeListenerBasePtrT;
-       typedef WXSTL_VECTOR_SHALLOW_COPY( TTextChangeListenerBasePtrT ) ChangeListenerListT;
-#endif
-
-/* OLD STUFF::
-
-struct TPinBaseCompareFunctor
-{
-       inline int operator()(const TPinBasePtrT* x, const TPinBasePtrT*& y ) const 
-       { 
-               return x->mLine < y->mLine;
-       }
-};
-
-typedef WXSTL_MULTIMAP( TPinBasePtrT, TPinBasePtrT, TPinBaseCompareFunctor ) PinMapT;
-typedef PinMapT::iterator PinIteratorT;
-*/
-
-/* 
- * Class manages access and manpulation of in-memory text. Can
- * be accessed by multiple views, only one of which can be active
- * at a time.
- */
-
-class wxTextEditorModel
-{
-protected:
-       TBlockListT         mBlocks;
-       
-       TCommandListT       mCommands;
-       size_t              mCurCommand;
-
-       TextViewListT       mViews;
-       wxTextEditorView*   mpActiveView;
-
-       PinListT            mPins;
-       bool                mIsUnixText;
-
-       ChangeListenerListT mChangeListeners;
-
-public:
-       /*** public properties ***/
-
-       bool          mTextChanged;
-       size_t        mChangedFromRow;
-       size_t        mChangedTillRow;
-
-       bool          mWasChanged;                        // TRUE, if any content has been changed
-
-       TPosition     mCursorPos;
-
-       TPosition         mPrevSelectionStart;
-       TPosition     mPrevSelectionEnd;
-       TPosition     mPrevCursorPos;
-
-       TPosition     mSelectionStart;
-       TPosition     mSelectionEnd;
-       size_t        mRowsPerPage;
-
-       bool          mIsReadOnly;           // default: FALSE
-       bool          mIsModified;     
-       bool          mInsertMode;                       // default: TRUE
-       bool          mAutoIndentMode;       // default: TRUE
-       bool          mSmartIndentMode;      // default: TRUE
-
-       bool          mIsSelectionEditMode;  // default: TRUE
-       size_t        mTabSize;              // default: 4
-
-       StrListT      mSearchExprList;
-       string        mLastFindExpr;
-
-       bool          mCheckPointDestroyed;
-       size_t        mCheckPointCmdNo;
-
-protected:
-
-       size_t GetLineCountInRange( char* from, char* till ); 
-
-       // two lowest-level operations
-       void DoInsertText ( const TPosition& pos, char* text, size_t len, TRange& actualRange );
-       void DoDeleteRange( const TPosition& from, const TPosition& till, TRange& actualRange );
-
-       void DoExecuteNewCommand( TCommand& cmd );
-
-       void DoReexecuteCommand( TCommand& cmd );
-       void DoUnexecuteCommand( TCommand& cmd );
-
-
-       void ExecuteCommand( TCommand* pCmd );
-
-       // to methods enabling grouping of undo-able commands
-       bool CanPrependCommand( TCommand* pCmd );
-       void PrependCommand( TCommand* pCmd );
-
-       void SetPostPos( const TPosition& pos );
-
-       void UndoImpl();
-       void RedoImpl();
-
-       void StartBatch();
-       void FinishBatch();
-
-       void CheckSelection();
-       void TrackSelection();
-
-       void NotifyView();
-       void NotifyAllViews();
-
-       void NotifyTextChanged( size_t atRow, size_t nRows, TEXT_CHANGE_TYPE ct );
-       void NotifyTextChanged( TPosition from, TPosition till, TEXT_CHANGE_TYPE ct );
-
-       void ArrangePositions( TPosition& upper, TPosition& lower );
-       void ArrangePositions( size_t& upper, size_t& lower );
-
-       void MergeChange( size_t fromRow, size_t nRows );
-
-       void PrepreForCommand();
-
-       size_t TextToScrColumn( const TPosition& pos );
-       size_t ScrToTextColumn( TPosition pos );
-
-       void DoMoveCursor( int rows, int cols );
-
-public:
-       wxTextEditorModel();
-       virtual ~wxTextEditorModel();
-
-       // utilities
-
-       char* AllocCharacters( size_t n );
-       char* AllocCharacters( size_t n, const char* srcBuf );
-       void FreeCharacters( char* buf );
-
-       void DeleteSelection();
-       TTextIterator CreateIterator( const TPosition& pos );
-
-       void DeleteRange( const TPosition& from, const TPosition& till );
-       void InsertText( const TPosition& pos, const char* text, size_t len );
-       void GetTextFromRange( const TPosition& from, const TPosition& till, char** text, size_t& textLen );
-       void LoadTextFromFile( const wxString& fname );
-       void SaveTextToFile( const wxString& fname );
-       void ResetSelection();
-       void ClearUndoBuffer();
-
-
-       void DeleteAllText();
-       void GetAllText( char** text, size_t& textLen );
-
-       void SetSelectionEditMode( bool editIsOn );
-
-       /*** user-level commands ***/
-
-       // mutable (undoable) commands
-
-       void OnInsertChar( char ch );
-       void OnDelete();
-       void OnDeleteBack();
-       void OnDeleteLine();
-
-       void OnShiftSelectionIndent( bool left );
-
-       // clipboard functions
-
-       void OnCopy();
-       void OnPaste();
-       void OnCut();
-       bool CanCopy();
-       bool CanPaste();
-
-       // undo-redo
-
-       bool CanUndo();
-       bool CanRedo();
-       void OnUndo();
-       void OnRedo();
-
-       // imutable commands
-
-       void OnMoveLeft();
-       void OnMoveRight();
-       void OnMoveUp();
-       void OnMoveDown();
-
-       void OnWordLeft();
-       void OnWordRight();
-
-       void OnMoveToPosition( const TPosition& pos );
-
-       void OnEndOfLine();
-       void OnStartOfLine();
-       void OnPageUp();
-       void OnPageDown();
-       void OnSlideUp();
-       void OnSlideDown();
-       void OnStartOfText();
-       void OnEndOfText();
-
-       void OnSelectWord();
-       void OnSelectAll();
-
-       // bookmarks
-
-       void OnToggleBookmark();
-       void OnNextBookmark();
-       void OnPreviousBookmark();
-
-       // search
-
-       bool OnFind();
-       bool OnFindNext();
-       bool OnFindPrevious();
-       void OnGotoLine( int line, int col );
-       void OnGotoLine();
-
-       // status
-
-       bool IsReadOnly();
-       bool IsModified();
-       bool IsInsertMode();
-
-       // check-pointin
-
-       void SetCheckpoint();
-       bool CheckpointModified();
-
-       // accessors
-
-       TPosition GetStartOfSelection();
-       TPosition GetEndOfSelection();
-       TPosition GetCursor();
-
-       size_t    GetTotalRowCount();
-       bool      SelectionIsEmpty();
-       bool      IsLastLine( const TPosition& pos );
-
-       bool      IsUnixText() { return mIsUnixText; }
-
-       void GetSelection( char** text, size_t& textLen );
-
-       void SetStartOfSelection( const TPosition& pos );
-       void SetEndOfSelection( const TPosition& pos );
-       void SetCursor( const TPosition& pos );
-
-       void AddView( wxTextEditorView* pView );
-       void RemoveView( wxTextEditorView* pView );
-       void SetActiveView( wxTextEditorView* pView );
-       wxTextEditorView* GetActiveView();
-
-       void SetRowsPerPage( size_t n );
-
-       void AddPin( TPinBase* pPin );
-       PinListT& GetPins(); 
-
-       // returns NPOS, if non
-       size_t FindFirstPinInRange( size_t fromRow, size_t tillRow );
-       size_t FindNextPinFrom( size_t fromRow );
-       size_t FindPreviousPinFrom( size_t fromRow );
-
-       size_t GetPinNoAt( size_t row, int pinTypeCode );
-       TPinBase* GetPinAt( size_t row, int pinTypeCode );
-       void RemovePinAt( size_t row, int pinTypeCode );
-
-       void AddChangeListener( TTextChangeListenerBase* pListener );
-};
-
-class TCursorTimer;
-class wxTextEditorView;
-
-class TPinPainterBase : public wxObject
-{
-public:
-       int    mPinTypeCode;
-
-public:
-       TPinPainterBase( int pinTc ) : mPinTypeCode( pinTc ) {}
-       TPinPainterBase() : mPinTypeCode( -1 ) {}
-
-       inline int GetPinTypeCode() { return mPinTypeCode; }
-
-       virtual void DrawPin( TPinBase* pPin, wxTextEditorView& view, wxDC& dc, 
-                                                 const wxPoint& pos, const wxSize& dim ) = 0;
-};
-
-/*
- * a couple very common ping objects/painters
- */
-
-#define BOOKMARK_PIN_TC  (OTHER_PINS_TC_START)
-#define BRKPOINT_PIN_TC  (BOOKMARK_PIN_TC + 1)
-
-class TBookmarkPainter : public TPinPainterBase
-{
-protected:
-       wxBrush mBkBrush;
-
-public:
-       TBookmarkPainter();
-
-       virtual void DrawPin( TPinBase* pPin, wxTextEditorView& view, wxDC& dc, 
-                                                 const wxPoint& pos, const wxSize& dim );
-};
-
-class TBookmarkPin : public TPinBase
-{
-public:
-       TBookmarkPin( size_t row )
-               : TPinBase( BOOKMARK_PIN_TC, row )
-       {}
-
-       static int GetPinTypeCode() { return BOOKMARK_PIN_TC; }
-};
-
-class TBreakpointPainter : public TPinPainterBase
-{
-protected:
-       wxBrush mBkBrush;
-
-public:
-       TBreakpointPainter();
-
-       virtual void DrawPin( TPinBase* pPin, wxTextEditorView& view, wxDC& dc, 
-                                                 const wxPoint& pos, const wxSize& dim );
-};
-
-class TBreakpointPin : public TPinBase
-{
-public:
-       TBreakpointPin( size_t row )
-               : TPinBase( BRKPOINT_PIN_TC, row )
-       {}
-
-       static int GetPinTypeCode() { return BRKPOINT_PIN_TC; }
-};
-
-
-#if defined( wxUSE_TEMPLATE_STL )
-       typedef vector<TPinPainterBase*> PinPainterListT;
-#else
-       typedef TPinPainterBase* TPinPainterBasePtrT;
-       typedef WXSTL_VECTOR_SHALLOW_COPY( TPinPainterBasePtrT ) PinPainterListT;
-#endif
-
-/*
- * Class displays graphical view of data contained in wxTextModel
- */
-
-class wxTextEditorView : public wxScrolledWindow
-{
-protected:
-
-       wxTextEditorModel*  mpModel;
-       TPosition           mSelectionStart;
-       TPosition           mSelectionEnd;
-       TPosition           mCursorPos;
-
-       TPosition           mLastViewStart;
-       size_t              mLastRowsTotal;
-
-       size_t              mRowsPerPage;
-       size_t              mColsPerPage;
-
-       static char*        mpLineBuffer;
-       static size_t       mpLineBufferLen;
-
-       bool                mFullRefreshPending;
-       bool                mAdjustScrollPending;
-
-       wxFont              mFont;
-
-       bool                mScrollingOn; // default: TRUE
-       bool                mCursorOn;   // default: TRUE;
-
-       bool                mLTMode; // line-tracking mode
-                                                                // (when the whole line is coloured,
-                                    //  instead of showing blinking cursor position)
-
-       wxColour            mLTColour; // fill-colour for LT-mode
-
-       bool                mDragStarted;
-       char*               mpDraggedText;
-
-       bool                mOwnsModel;
-
-       wxString            mFragment; // reused heap-buffer 
-                                                                  // for coloured fragments
-       SourcePainter*      mpPainter;
-       PinPainterListT     mPinPainters;
-       TTextIterator       mCashedIter;
-
-       static TCursorTimer* mpTimer;
-
-public: /*** public properties ***/
-
-       int                mLeftMargin;         // default: 20
-       int                mRightMargin;        // default: 0
-       int                mTopMargin;          // default: 0
-       int                mBottomMargin;       // default: 0
-       int                mMaxColumns;     // default: 500
-
-       TPosition          mPagePos;
-
-       // color-scheme properties
-
-       wxColour           mNormalTextCol;
-       wxColour           mIndentifierTextCol;
-       wxColour           mReservedWordTextCol;
-       wxColour           mCommentTextCol;
-
-       wxColour           mNormalBkCol;
-       wxColour           mSelectionFgCol;
-       wxColour           mSelectionBkCol;
-
-       wxBrush            mNormalBkBrush;
-       wxBrush            mSelectedBkBrush;
-
-       // accessed by timer
-
-       TPosition           mCursorScrPos;
-       wxSize              mCharDim;
-
-protected:
-
-       char* GetLineBuffer( size_t len );
-
-       virtual void PaintDecorations( size_t fromRow, size_t tillRow, wxDC& dc, TTextIterator& iter );
-       virtual void PaintRows( size_t fromRow, size_t tillRow, wxDC& dc );
-
-       void ObtainFontProperties();
-
-       bool IsActiveView();
-       void SetTextDefaults();
-       void RecalcPagingInfo();
-
-       TPinPainterBase* FindPainterForPin( TPinBase& pin );
-
-public:
-       wxTextEditorView( wxWindow* parent, wxWindowID id = -1, 
-                                         wxTextEditorModel* pModel = NULL, 
-                                         int wndStyle = wxSUNKEN_BORDER,
-                                         bool ownsModel = TRUE );
-       ~wxTextEditorView();
-
-       /*** setup methods ***/
-
-       void SetModel( wxTextEditorModel* pModel );
-
-       // sets custom syntax-higlighting implementation
-       void SetSourcePainter( SourcePainter* pPainter );
-       void AddPinPainter( TPinPainterBase* pPainter );
-
-       void SetDefaultFont( const wxFont& font );
-       wxFont& GetDefaultFont(); 
-
-       wxSize GetCharacterSize() { return mCharDim; }
-
-       size_t GetRowsPerPage() { return mRowsPerPage; }
-       void SetRowsPerPage( size_t n );
-       void SetMaxColumns( size_t n );
-
-       void SetLineTrackingMode( bool on, const wxColour& col = wxColour(255,255,0) );
-
-       void EnableCursor( bool enable );
-       void EnableScrollbars( bool enable );
-
-       void SetColours( const wxColour& normalBkCol,
-                                        const wxColour& selectedBkCol,
-                                        const wxColour& selectedTextCol );
-
-       void SetHeighlightingColours( const wxColour& normalTextCol,
-                                                                 const wxColour& identifierTextCol,
-                                                                 const wxColour& reservedWordTextCol,
-                                                                 const wxColour& commentTextCol );
-
-       void SetMargins( int top, int left, int bottom, int right );
-
-       // notifications from editor-model:
-
-       void OnModelChanged();
-       void ScrollView( int rows, int cols );
-
-       // accessors
-
-       void Activate();
-       void Deactivate();
-
-       // event handlers
-
-#if (( wxVERSION_NUMBER < 2100 ) || (( wxVERSION_NUMBER == 2100 ) && (wxBETA_NUMBER <= 4)))
-       void OnScroll( wxScrollEvent& event );
-#else
-        void OnScroll( wxScrollWinEvent& event );
-#endif
-       void OnPaint ( wxPaintEvent& event );
-       void OnSize  ( wxSizeEvent& event );
-       void OnEraseBackground( wxEraseEvent& event );
-
-       void OnLButtonDown( wxMouseEvent& event );
-       void OnLButtonUp  ( wxMouseEvent& event );
-       void OnMotion     ( wxMouseEvent& event );
-       void OnDblClick   ( wxMouseEvent& event );
-
-       void OnSetFocus( wxFocusEvent& event );
-       void OnKillFocus( wxFocusEvent& event );
-
-       // requests editor to keep cursor blinking, even when
-       // the window has lost it's focus
-
-       void HoldCursor( bool hold );
-
-       // FOR NOW:: hard-coded key-bindings
-
-       void OnChar( wxKeyEvent& event );
-       void OnKeyDown( wxKeyEvent& event );
-
-       // utilities
-
-       virtual void SyncViewPortPosition();
-       virtual void SyncScrollbars();
-       virtual void PositionCursor();
-
-       void TextPosToScreenPos( const TPosition& txtPos, TPosition& scrPos );
-       void ScreenPosToTextPos( const TPosition& scrPos, TPosition& txtPos );
-       void ScreenPosToPixels ( const TPosition& scrPos, int& x, int& y );
-       void PixelsToScrPos    ( int x, int y, int& scrRow, int& scrCol );
-       void PixelsToTextPos   ( int x, int y, TPosition& textPos );
-
-       bool IsClipboardCmd( wxKeyEvent& key );
-
-       TPosition GetPagePos() { return mPagePos; }
-
-       DECLARE_EVENT_TABLE()
-};
-
-// TODO:: mutex class should be used to avoid race on updates
-
-class TCursorTimer : public wxTimer
-{
-protected:
-       wxTextEditorView* mpView;
-       volatile bool mIsLocked;
-       volatile bool mIsShown;
-       volatile bool mStarted;
-       wxBrush       mBrush;
-       bool          mMissOneTick;
-
-       int           mBlinkInterval;  // default: 500mills
-protected:
-
-       void DrawCursor();
-
-public:
-
-       TCursorTimer();
-
-       virtual void Notify();
-
-       void SetView( wxTextEditorView* pView );
-       wxTextEditorView* GetView();
-       void HideCursor( bool forceHide = FALSE );
-       void ShowCursor( bool forceShow = FALSE );
-
-       void SetIsShown( bool isShown );
-       void Lock();
-       void Unlock();
-};
-
-#endif // __TDEFS_G__