/* ==================================================================== * Copyright (c) 2003-2006, Martin Hauner * http://subcommander.tigris.org * * Subcommander is licensed as described in the file doc/COPYING, which * you should have received as part of this distribution. * ==================================================================== */ #ifndef _NULLTEXTMODEL_H #define _NULLTEXTMODEL_H #include "TextModel.h" class NullTextModel : public TextModel { public: virtual ~NullTextModel(); /** * \name TextModel implementation. */ //@{ /** TextModel implementation */ const sc::String& getSourceName(); const Line& getLine( sc::Size /*svn::Offset*/ ); BlockInfo getBlockInfo( int block ); sc::Size getLineCnt(); sc::Size getColumnCnt(); LineEnd getLineEnd(); unsigned int getTabWidth(); int replaceBlock( int block, TextModel* src ); const Cursor& getCursor(); const Cursor& getCursor2(); void setCursor( const Cursor& c ); void setCursor2( const Cursor& c ); Cursor moveCursorRight( bool moveC2 ); Cursor moveCursorLeft( bool moveC2 ); Cursor moveCursorDown( bool moveC2 ); Cursor moveCursorUp( bool moveC2 ); int getLastColumn(); void setLastColumn( int col ); Cursor calcNearestCursorPos( const Cursor& c ); void addText( const sc::String& s ); void removeTextLeft(); void removeTextRight(); sc::String getHighlightedText(); void undo(); void redo(); bool hasUndo(); void clearUndo(); //@} static NullTextModel* getInstance(); private: static NullTextModel _instance; }; #endif // _NULLTEXTMODEL_H