| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- #ifndef EDITOR_H
- #define EDITOR_H
- #include "tabber.h"
- #include "funclist.h"
- class Editor;
- class EditorListener{
- public:
- virtual void cursorMoved( Editor *e ){}
- };
- class Editor : public CWnd,FuncListListener,TabberListener{
- public:
- Editor( EditorListener *l );
- ~Editor();
- void setName( const string &f );
- void setModified( bool n );
- bool setText( istream &in );
- void setCursor( int pos );
- void cut();
- void copy();
- void paste();
- void find();
- void replace();
- bool canFind();
- bool findNext( bool wrap );
- void print();
- void hilight( int pos );
- void selectAll();
- static void lock();
- static void unlock();
- int getCursor();
- string getName()const;
- string getKeyword();
- bool getModified();
- bool getText( ostream &out );
- void getCursor( int *row,int *col );
- bool canCutCopy();
- bool canPaste();
- static void addKeyword( const string &s );
- DECLARE_DYNAMIC( Editor )
- DECLARE_MESSAGE_MAP()
- afx_msg int OnCreate( LPCREATESTRUCT lpCreateStruct );
- afx_msg void OnSize( UINT type,int w,int h );
- afx_msg void OnSetFocus( CWnd *wnd );
- afx_msg void OnKillFocus( CWnd *wnd );
- afx_msg void OnPaint();
- afx_msg void OnMouseMove( UINT flags,CPoint p );
- afx_msg void OnLButtonDown( UINT flags,CPoint p );
- afx_msg void OnLButtonUp( UINT flags,CPoint p );
- afx_msg void en_change();
- afx_msg void en_update();
- afx_msg void en_selchange( NMHDR *nmhdr,LRESULT *result );
- afx_msg void en_protected( NMHDR *nmhdr,LRESULT *result );
- afx_msg void en_msgfilter( NMHDR *nmhdr,LRESULT *result );
- afx_msg LRESULT onFind( WPARAM w,LPARAM l );
- private:
- EditorListener *listener;
- string name;
- bool findOnly,found;
- CFindReplaceDialog *finder;
- char findBuff[256],replaceBuff[256];
- long selStart,selEnd;
- int findFlags,d_c;
- //formatting
- bool fmtBusy;
- int lineToFmt,fmtLineCount;
- //streaming
- string is_line;
- istream *is_stream;
- int is_curs,is_linenum;
- //sizing
- bool sizing;
- CPoint point;
- int tabber_width;
- //tabber
- Tabber tabber;
- FuncList funcList,typeList,labsList;
- CRichEditCtrl editCtrl;
- void funcSelected( int line );
- void currentSet( Tabber *tabber,int index );
- void resized();
- void fixFmt( bool fmt );
- void getSel(){ editCtrl.GetSel( selStart,selEnd ); }
- void setSel(){ editCtrl.SetSel( selStart,selEnd ); }
- void endFind();
- void setFormat( int from,int to,int color,const string &s="" );
- void formatLine( int line );
- void caret();
- void cursorMoved();
- string getLine( int line );
- void formatStreamLine();
- DWORD streamIn( LPBYTE buff,LONG cnt,LONG *done );
- static DWORD CALLBACK streamIn( DWORD cookie,LPBYTE buff,LONG cnt,LONG *done );
- static DWORD CALLBACK streamOut( DWORD cookie,LPBYTE buff,LONG cnt,LONG *done );
- };
- #endif
|